QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,& P8 ~7 l9 J2 @. M5 t
现请教大家,谢谢参与~~
: k3 o- V% P  f. M! ?, e9 ~" n, U/ h$ @

1 Z/ I/ J/ f* e/ ]下面原贴标题和地址
5 y+ p/ j) n, U# W% [4 j5 zSolidWorks中方程式的应用技巧
# W9 Q' V8 k8 v! ]8 v5 Yhttp://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913* Q1 H  k' z6 f2 y
& {+ Y) O+ r( \1 b, c* U5 x
" Q" W# }+ I- f$ m( U+ f$ Y- K+ L/ O1 t
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))6 ~8 B3 `5 M8 |! |

  S) o& G# Q* P7 ^. d方程式目的是从文件名中从左到右取9个字符& i' A( Q( o( L
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
. a6 s* n3 ]6 v1 Y1 z/ y
& ~9 T) ~( m5 b' V如下VBA宏的編程[2012版測試]
4 ~/ c, x4 W6 t( A6 v1 b: `- ~' s! a4 J% u6 B% b
' **************************************************
5 y" M: U& R2 E'  macro recorded on 06/24/13 by lsc- x: f6 H! ?+ C6 M
' **************************************************
5 j2 ~! R, f* J+ CDim swApp As Object
" z  r# j8 ?  ?% E, g2 V; ^" |& _0 hDim Part As Object
- ?# ]2 c* `1 G1 P4 B$ W" rSub main()
) x- H' J! k' a$ `5 ~! t% y3 C1 dSet swApp = Application.SldWorks: z* I* p. v' P, ~; {; Q
Set Part = swApp.ActiveDoc4 E2 G6 j  e' f' I4 w% s& U
Set swModel = swApp.GetFirstDocument
. J9 m/ H$ h2 y* x( b  Q8 gpath_name = swModel.GetPathName '取出目前檔案的路徑及名稱$ f: E6 g6 X/ n9 K% P
name_ = swModel.GetTitle '取出目前檔案的名稱( k5 W4 E! V5 S* e6 a' s) m
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
' H) J) E# W; s4 H3 l. I7 x- w8 Z. hEnd Sub+ U) B% u2 I( [0 D

评分

参与人数 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 编辑 6 R+ @( A. h; y5 p
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
2 {! _1 Q9 g4 l3 e) [0 Y如下VBA宏的編程[2012版測試]  _4 ~9 W6 _5 f3 m* A1 ]
0 w! B7 [8 Z% ~, {5 }
' **************************************************
- n5 J) V% Q# u2 X- V! o7 h

# s8 X. j( }, E/ t) {十分感谢梁老师提供代码学习~~9 _; ?* l% R' g; U
( a* l+ }" b" O5 S' O4 D" ], n
提示进来学习的坛友!
% a) N$ W" J5 q% A: X, v7 D
通过在自定义属性里嵌入宏代码,问题已解决。
* f! T- Y1 [  T下面代码在2011版本中均已测试成功。
. m% x/ b+ K1 d1 G; |+ T( U4 p) H( I8 ^# l) S. X: f2 R
15楼代码,可以取左边字符
6 f& e! f5 D& \2 V0 a4 ^9 V3 ^6 J& c1 |( J19楼代码,可以取最后一个下划线后面的字符。& ^8 U7 x9 p" O  ]0 X9 Y

6 ]4 h. M4 D1 {下面这段代码,可以取第一个下划线前面的字符。
5 {# o! f* p2 b, F& J4 q* ]1+ I5 s' y: z: i* \
dim yfd
5 P, Z- |3 T" ]" eyfd=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.gif8 C% B& p" U" y, _  n- h
下面是我在其它论坛 得到的 某位前辈的宏,你看看
3 R( X# {1 C+ ~( f- k1 |
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
- p8 v- D/ m' z# t0 ^  ]蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif9 o9 ?: G# c  I5 W
http://fans.solidworks.com.cn/thread-33730-1-1.html& }" G  [% T$ x1 D9 V( l
蛋大的教程可能有幫助
7 x6 v& R4 E' T, i% B
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
) ~- b' ^+ G, y& S 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
' @# ?& e4 L. j! H楼主添加成功了吗?为何显示无效语句?
( p7 \+ w( H8 i
没有成功
发表于 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
$ G6 l/ B9 ^1 p; x& Z/ @8 _) [& ?楼主添加成功了吗?为何显示无效语句?

/ o6 V; }, D) A' c7 |/ N0 y/ W看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 ; o# T2 P7 D. L' p. x7 X$ }8 [
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
9 @: d/ Z6 P. {0 {1 B  r/ v* v2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

* Q$ f7 _. q  E' e, `# c) m0 y3 X
' u' {" B/ M. N, `不好意思,再麻烦闷大老师,我的是2011版本。
' M9 l3 i' B6 m, `$ j我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。  n! i7 O' w+ S" J
是不是还要添加方程式呢?- c- m0 R- x0 B- |+ c" N% R$ a. R
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
  S8 I+ K) j3 M* X 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑 ! ]" H5 R& _+ l3 `& a
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
; z$ q1 S! r  C# k( l試下這個

$ ]( a6 G1 L  P  C% H! V
. o5 f! p% l" L8 y0 A谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。2 c. z: C8 V  ?$ Y" ]! ?- u
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
& S8 W9 K9 G; Q& V也许是学习版本的问题
% ?, Q* n4 }+ H; J7 f 1.png 2.png
6 c! d# ]" H* d2 K7 g* }2 d5 ?  a2011版本
+ Q/ A+ C  a/ f! S 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif
: [' q9 Z8 d& H谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
3 l# P5 H) I. j) f- u- }- o7 D我新建之后做出的,做很多次,还是不好 ...

. T( U: S' e0 }8 b, B+ @謝謝qiminger兄回帖討論。
& h4 n# \! q3 h# L) P& s8 g: V
, N: A$ D; F2 v/ Y. _3 P) a方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。0 S$ J# U( Z/ g) i; u& A
問題在內碼嵌合到“數值/文字表達”不對。
( Q7 K- a1 t# u# P  `. R7 G* V
2 R' c$ m" G7 c1 k/ Z, B. U! h把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
; ?* a) e2 _4 udim dummy( G" _2 J  c4 k! L$ A
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
: P7 ~" U* S6 E% H/ z

. M% _2 M0 b& f5 k9 Q0 D& J

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif0 Q2 h/ Z4 c8 T) z; y/ r; i/ E. o7 |
謝謝qiminger兄回帖討論。
5 D+ \& n; r! q6 c# T0 A, I3 j. m' [9 }. W; d
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
& B& g- N3 R! a4 t/ @# x1 A
闷大,请教一下。我这样格式的文件名如何提取& }( ?) i5 c4 M* D  s
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
5 M8 U' T+ F* G  Z; s謝謝qiminger兄回帖討論。. R3 y. M" Y3 F1 \/ s

5 P, G' m$ K: r方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
. d" l) E( G6 g, k5 b' [
成功了~~
+ \$ j2 ]( X% s/ Z- k3 I直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,/ }7 y4 N/ U9 R5 v# x$ B. P. o# C
宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
( j1 z- Z3 h+ q2 @) Q# F試下這個

% ?2 ]& p7 B6 b0 x, M8 @1 q重新命名后,好像就不更新了啊: f4 c' D5 Y, H
& s) p6 w+ M8 X
弄个批量的宏& \( Y6 e. O2 F0 C8 U  n

* @, p' k: b- V) L) O6 f1 c
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 ) z9 i' D  g4 U0 @
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
3 _- y, V, z  n, X: @% w& F, J% U; x闷大,请教一下。我这样格式的文件名如何提取: K/ e4 l: y2 a6 G
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
) s" i, F# C8 A+ H4 HDim Txt- G: n3 b' ?% `1 y! C5 n% U% G
Txt = Part.GetPathName1 B8 \* F9 @+ ^
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)& T0 a0 E# `! M3 m
Txt = Left(Txt, Len(Txt) - 7)6 P  ?5 i' @: `
Part.Extension.CustomPropertyManager("").Set "partno", Txt
# w" ?' p, J3 V' p8 I2 r" ^& ?6 Y
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
# J9 O! s) q' @2 o/ e* l2 M9 D注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
2 d6 F( {  D  g' A- ~( h8 j* q/ [
2 A" H6 [8 M9 q% w0 j

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif$ t) b! H. T, `9 e* R0 \" x
重新命名后,好像就不更新了啊
4 j6 p  C  e9 Y+ G' D. f
$ y* ~. h& |5 |- J' X4 v弄个批量的宏

: I% Z% M" r, ]1 {. H, H估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif- O3 l6 u7 e1 V+ z
估計又是『脖子掛餅終餓死』的慘案一宗。
3 O  f% g5 H, I6 ~6 M5 A
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了4 x5 {* y# `; \
0 {+ s+ U9 i6 {: t
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
. _6 C0 T' l* q/ k! }# w7 S5 m3 D把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。% d1 `! t, t# M  E$ y' j
注意!必定要使用複製粘貼的方法,才可嵌合內 ...

. x0 A* F0 n4 d% a% T对不起闷大,宏我看明白了# J. w4 N" I# ^5 O
想起我未说清楚,最后一个“_”前的字符也不固定
4 |0 a( F% r; C: e7 `有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
' T8 M$ K9 H& @" t1 ~+ D对不起闷大,宏我看明白了5 a' f2 o' }. `! K7 k) j* ]
想起我未说清楚,最后一个“_”前的字符也不固定
' `8 s( z- c, y+ t+ E有没有直接可以从末位数的, ...

) O3 `7 a3 I' |$ w5 s+ }那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif
7 \, f' a9 R% C5 |那段宏就是奇哥的要求
5 }# g* P( d  e3 }5 L, G' T

* H9 H4 r9 N  D2 w我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
6 y: @9 w$ k4 {6 S6 e7 a. A0 o& m4 a4 Z请问partno是不是可以改成任意名字,如“工程图名称”
1 \$ \, h+ Y8 O! t) a% y% }再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif, D$ U, s2 H8 Y& G! [: h
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。) ?4 ^# D$ x& L7 Q8 u3 U% p. I
请问partno是不是可以改成任意名字 ...

& B6 p+ R: E) @$ F3 H! M在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
+ S6 l& x5 g: t  _8 I
* \$ n, ^4 r( p' X- @+ v" E* upartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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