QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 30882|回复: 123
收起左侧

[求助] 宏提取文件名字符为何不成功

[复制链接]
发表于 2013-6-22 08:47:02 | 显示全部楼层 |阅读模式 来自: 中国辽宁沈阳

马上注册,结识高手,享用更多资源,轻松玩转三维网社区。

您需要 登录 才可以下载或查看,没有帐号?注册

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
( W/ T9 G6 N+ Y' ^: O, n现请教大家,谢谢参与~~
- [7 m% {2 i  {' L5 x
% ]1 G4 H$ I* G0 T+ \1 T
. P. D6 _6 [; k# E下面原贴标题和地址
7 a$ K1 |6 l0 o9 f% zSolidWorks中方程式的应用技巧2 ~. d* t* Q, O8 I2 {
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913+ r& o$ H- D. k  X6 g+ B1 Y. ^

+ M" i; I+ m) d3 i! q" l5 }$ W9 [; v, {
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
& U: B8 P; i5 r; b2 t1 u: P( s1 D" S" {3 I6 J3 B
方程式目的是从文件名中从左到右取9个字符/ l6 ]& F" k1 }. A
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 ( t6 P" i& G8 Y8 k2 p% `

% a; o0 O3 b/ f; g7 v如下VBA宏的編程[2012版測試]
1 k8 f9 e) Y; F* k8 f4 q: w& e$ t7 L5 @0 {- \+ i( M
' **************************************************
1 W& L) A6 O/ [/ z5 h  R9 \* F'  macro recorded on 06/24/13 by lsc( l- o8 J, k7 k9 `+ M, w3 y* X( }
' **************************************************
6 p3 W6 K. f7 K& N/ rDim swApp As Object5 Q( X/ ]: W# ~" L& W5 }& Y- Q0 e/ F
Dim Part As Object
6 h" t! T* j" S" M% t  o! ^. hSub main()
1 U  R  A) b+ pSet swApp = Application.SldWorks' x  c7 k9 F4 R( D
Set Part = swApp.ActiveDoc
' m7 f4 K5 i8 qSet swModel = swApp.GetFirstDocument! [& O( q( e5 O6 k3 L7 t7 v, B
path_name = swModel.GetPathName '取出目前檔案的路徑及名稱% o( W1 D, j. z
name_ = swModel.GetTitle '取出目前檔案的名稱
- @% Z( J7 a- X4 C3 }) iname_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
2 V/ |6 \0 o+ r! EEnd Sub7 G3 k" x) b9 ]2 g- M) a

评分

参与人数 1三维币 +3 收起 理由
阿帕奇 + 3

查看全部评分

发表于 2013-6-24 20:19:17 | 显示全部楼层 来自: 中国浙江温州
下面是我在其它论坛 得到的 某位前辈的宏,你看看

图号名称分离宏.rar

9.83 KB, 下载次数: 380

评分

参与人数 1三维币 +3 收起 理由
阿帕奇 + 3

查看全部评分

 楼主| 发表于 2013-6-25 13:05:59 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 13:28 编辑
( c. s7 Z; ~( i4 b4 S/ C) e
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
! ?( F  b7 V/ u# B如下VBA宏的編程[2012版測試]9 Y2 \' @1 X' _1 D1 p+ S8 W
+ K5 R- `) L0 ?: z$ D1 n4 {
' **************************************************

2 n) d2 j7 b2 j# h6 h# n1 a' S5 S& k- d; ~
十分感谢梁老师提供代码学习~~
' s, ?0 u" \# h# Q3 A) c, Y# L! o
提示进来学习的坛友!
& N# O  M  Y, k" n+ n
通过在自定义属性里嵌入宏代码,问题已解决。
" s/ y. z$ f7 s$ O9 u6 ]3 |下面代码在2011版本中均已测试成功。% Y! Y$ e' `5 l, J

7 z! k+ ^1 E1 A! X- E15楼代码,可以取左边字符
$ S8 s8 n& Z# D+ K19楼代码,可以取最后一个下划线后面的字符。
5 E, x# Y) |4 i7 x4 C1 R8 V- z% v, h! j1 i7 _: H
下面这段代码,可以取第一个下划线前面的字符。- |. v. h& V! i/ `
1
! o) z  ?6 X9 F2 Bdim yfd# V- g7 V" @0 m2 d* |$ Z# F
yfd=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,InStr(1,part.GetTitle,"_")-1))
 楼主| 发表于 2013-6-25 13:07:11 | 显示全部楼层 来自: 中国辽宁沈阳
杀苏 发表于 2013-6-24 20:19 static/image/common/back.gif
. R$ w# V7 A' t/ g下面是我在其它论坛 得到的 某位前辈的宏,你看看

- @8 ]+ N7 j: T0 v; M感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
9 a1 i4 r& r/ {# d) v! g3 x蛋大的教程可能有幫助

评分

参与人数 1三维币 +3 收起 理由
阿帕奇 + 3

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
* \$ x3 a6 p5 h4 r* Q* \. chttp://fans.solidworks.com.cn/thread-33730-1-1.html
% n" {0 A' b4 r& u+ g+ _2 Z3 c蛋大的教程可能有幫助

9 ^  U! }' i% F) C非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
5 b7 w! P# A5 _- w3 b; ]6 ?0 @# B7 c/ ~ 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
3 [, {4 t  z# {  K" i2 X楼主添加成功了吗?为何显示无效语句?
- L1 A% y1 J$ K0 J+ W& q
没有成功
发表于 2013-6-27 12:17:11 | 显示全部楼层 来自: 中国香港
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
capture01.png

123456789-qiminger.rar

16.24 KB, 下载次数: 236

评分

参与人数 1三维币 +3 收起 理由
阿帕奇 + 3

查看全部评分

 楼主| 发表于 2013-6-27 16:02:37 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
5 u' }) A5 _; {. y# t楼主添加成功了吗?为何显示无效语句?

3 Q" S& D6 ^+ _6 d8 G看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑
9 v  C9 a2 P. K& F% k  b! M
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
2 b+ c& f3 R8 I& l% M' t4 n% ^2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
' |1 Y% s. g* f5 R* ]$ Y' I  [+ p! b3 ^

1 y, y$ Y7 y# D5 V# v* k' G不好意思,再麻烦闷大老师,我的是2011版本。
' O8 ]3 i( D; Q; W& R我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。
& R% O' E; T' g% @2 p+ r是不是还要添加方程式呢?
3 M6 G6 C7 X4 {6 ~, E QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個8 x; I  f3 v  b1 m( \6 A0 B; [7 w8 x5 }
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
+ ]' z' k9 p- l' y$ g0 l2 b0 E# Y' M
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif# q; P5 M5 c3 t5 v8 l( V  {! F# _
試下這個

3 `0 O8 b& V8 {3 S4 d1 G# }
! L( @" P1 J. P* u* W  F0 C谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
: F3 F: g( Y9 h' Q* i我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
1 |7 l5 ^5 F7 b8 `" m3 F也许是学习版本的问题- \: p& p  v' N9 W
1.png 2.png # b( o" h4 q- m+ w* ^: g  ^
2011版本: k: e4 K' x$ b; ~: g( Q
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif+ O9 W  Q2 ^  p
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。: I9 I2 D' h1 r" m* k% x7 X7 {! j
我新建之后做出的,做很多次,还是不好 ...

& Y& H5 v' ?3 ^1 g1 {' d謝謝qiminger兄回帖討論。( R8 o) C' b7 h$ f4 y- ^# k

+ i  G. ]/ I$ u方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
$ ]2 J$ C2 [; t  f: I& R+ K# h4 ]7 \問題在內碼嵌合到“數值/文字表達”不對。4 C1 j1 s4 {0 x# N$ H* p. }$ _

6 ?% [4 ^# j' A  u# R& z把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1" ~9 @0 Y; S7 t" e3 |
dim dummy0 o1 Z; S0 l9 Z$ K5 q
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

0 j) Z1 K% @. X
( d( b) D7 R; W

评分

参与人数 1三维币 +3 收起 理由
阿帕奇 + 3

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
. R9 z: Y3 Q! g% A謝謝qiminger兄回帖討論。
8 U5 b/ S3 i; j( Y5 s5 M  ]2 I* p& n  w4 l
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
5 `: Z% ?# S5 ^
闷大,请教一下。我这样格式的文件名如何提取
& }$ `2 V. W6 Q. L& ?* `" M# V- |例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
& b4 c. d/ S7 E7 Y  g- s: n謝謝qiminger兄回帖討論。" l- `# P4 e7 ?4 U+ A

2 s5 T3 y9 w8 g% B5 u; V) T0 C方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

: j: k* ^) V/ Z3 h; ?( f, l成功了~~0 |* u) t" g7 N# r: U( i
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
  b+ Z0 Z4 ~9 `宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
/ @" r4 }$ v. o4 h. I" ]+ n試下這個

( k2 q- [" I3 c重新命名后,好像就不更新了啊; k" v0 l4 @3 p" L4 C+ H
. J7 q+ n+ a9 s# h2 s# s
弄个批量的宏
7 s, l6 M6 r" ~, ?# R" P0 {3 o0 z+ Z7 n; P8 [; ^0 _
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 $ v+ O- d* n5 o
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
0 |* ^0 u6 a  a5 D7 J8 {" w闷大,请教一下。我这样格式的文件名如何提取% l1 l4 O0 e. j) ~) Z
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
* S( E6 f& N7 x. k9 F, ?9 T3 HDim Txt
( q, O5 u1 X3 D& e! G) BTxt = Part.GetPathName
+ C0 E8 y( m. jTxt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
' N3 K: ], D) C+ XTxt = Left(Txt, Len(Txt) - 7)
" K9 @% q  b5 a5 R3 VPart.Extension.CustomPropertyManager("").Set "partno", Txt

3 \: N( }* V" U* F( e( k6 x7 M把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
$ B6 e1 Z: l9 {) s3 T注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。' Z) a9 R* E( o3 H) C

5 \/ b0 n& V  L! M) Q7 L! @% z3 `% v

评分

参与人数 1三维币 +3 收起 理由
阿帕奇 + 3

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
( v9 c' `1 [) K& [9 B. `! E重新命名后,好像就不更新了啊
+ }9 P% N. h5 G- S- ]* ^5 ]$ R, ]2 Y8 E0 J7 Z2 e
弄个批量的宏

8 P) K7 i% P6 u9 s; v& A估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
! b# I2 s/ j' d& j4 F. W估計又是『脖子掛餅終餓死』的慘案一宗。
2 K% Z  M. N- }8 a8 J
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了. Z5 `- ~2 U4 R  U& d$ s  {

% l+ C% k& ?! n9 ]3 p% n0 x1 R老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif- A! @% h/ `, C) `6 z5 B& S
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
  x$ I, N3 z) ^  `! W, Z注意!必定要使用複製粘貼的方法,才可嵌合內 ...
! E" x" }* _% F  x8 ?0 y
对不起闷大,宏我看明白了
* |4 ]* O5 M5 C4 a5 c4 X想起我未说清楚,最后一个“_”前的字符也不固定, E2 F8 m6 g" h# L$ I' W, |. L8 X, J
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
: \6 r+ I7 z, ~3 U9 A! D  b9 V对不起闷大,宏我看明白了8 G1 W: Q; F+ F: g
想起我未说清楚,最后一个“_”前的字符也不固定& k' A& w2 J: F* C$ P
有没有直接可以从末位数的, ...
3 x! {& V) \  S- D- P% ~, L9 s
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif7 j, S2 L* p5 T7 ?; x5 B0 i
那段宏就是奇哥的要求

3 k# y5 b& `8 H: E- D2 _4 X& z, b" X# I) p& p& {2 @
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
( {0 j1 R4 u' p; \* [* X7 `. X/ |1 u请问partno是不是可以改成任意名字,如“工程图名称”
' V1 Y7 t. L' x2 O, h  |7 T再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
/ H* y+ S/ Z# h& A我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。, D$ a* Y5 T9 i1 Z  c
请问partno是不是可以改成任意名字 ...

! {, P- x' J" W) p3 K( N在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。* w  G4 x8 {; F& Z8 o, f

! z/ t8 q- s' ^partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


Licensed Copyright © 2016-2020 http://www.3dportal.cn/ All Rights Reserved 京 ICP备13008828号

小黑屋|手机版|Archiver|三维网 ( 京ICP备2023026364号-1 )

快速回复 返回顶部 返回列表