QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,6 ?- t4 d4 k% F- A* F( k/ p
现请教大家,谢谢参与~~7 Y; L! n. G0 i4 U3 `$ Q( T8 m# t' ^

7 P* P6 T/ _, b1 T" Y7 e6 ]
; e! T: g% Z  [  _下面原贴标题和地址/ O% J& c+ Q2 r: P' b
SolidWorks中方程式的应用技巧
( I# u. m9 C2 D$ c, a* lhttp://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
- O( Q$ S( C! W3 t# w- z( n! q' ?7 d( ?5 C8 B

+ S7 K% C% W' r  O原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))6 Y+ v5 p5 w) G  ~& k

$ }" ~+ R2 w7 e2 S5 ]$ C' V方程式目的是从文件名中从左到右取9个字符
2 d( B; s  {, n2 G# q
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
$ t# J8 G+ h' w+ q# v/ F4 X$ f4 G/ h9 k3 W1 I- }( v
如下VBA宏的編程[2012版測試]
1 o# N8 f. ]: ~; L0 s
% l  _9 U1 x8 }7 L8 F3 ], p' M' Y' **************************************************% h; T0 _) \( y# Q3 {% B
'  macro recorded on 06/24/13 by lsc
3 A* c( S1 {1 z, H1 q' **************************************************0 A  ^% n& V# o; W
Dim swApp As Object2 N' B: z; z6 O9 q% g
Dim Part As Object
4 |: S3 W5 q$ N" A, j* eSub main()
1 L  A7 x) v6 `0 jSet swApp = Application.SldWorks
1 y3 ~% p) x' u& H9 S7 gSet Part = swApp.ActiveDoc1 c: C  d6 n, x; L  i3 L
Set swModel = swApp.GetFirstDocument
& Y" k$ u' w% I/ m" T5 zpath_name = swModel.GetPathName '取出目前檔案的路徑及名稱; W$ i% {$ \! v% ]5 I) T5 Q
name_ = swModel.GetTitle '取出目前檔案的名稱
% h- j& `& i! d/ H+ q3 kname_9 = Left(name_, 9) '取出目前檔案名稱前9位文字) `* Z, Z3 S4 F- n0 s1 r" Y2 g
End Sub; B1 N/ m; ]. p  u

评分

参与人数 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 编辑 4 `  m1 \- w6 D1 X
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif! V$ Y$ q. n* e" F; A: g# c
如下VBA宏的編程[2012版測試]( ], r9 r! \7 f0 T
4 d7 U. C9 r$ W5 @  U
' **************************************************
9 B* b+ X" A* e  _  F

0 Y& n9 @$ }+ ~) k- B十分感谢梁老师提供代码学习~~0 _) f( E+ l* Y7 D, U1 e

- K4 u- {) W4 m) p提示进来学习的坛友!
. I* b4 O' ]/ b( B) M
通过在自定义属性里嵌入宏代码,问题已解决。
; g0 [2 |: H8 [! _下面代码在2011版本中均已测试成功。
/ z% J* }6 z  v, @$ p! U7 L* M0 h' s" x* d% v
15楼代码,可以取左边字符
0 e$ q+ o3 o& d: L5 z# q: T! d19楼代码,可以取最后一个下划线后面的字符。
3 l% b' q2 C+ w" M# J! C% V: A* _- Y5 x4 e& c
下面这段代码,可以取第一个下划线前面的字符。1 }7 L0 s1 s( Q* z' F' N' ?# |
14 e% M' }7 v( t* ?+ j* e3 k6 T
dim yfd; }1 M. `+ \* W6 F, s% s" r
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
9 ]3 X* L! x, [: T3 Z" R7 g下面是我在其它论坛 得到的 某位前辈的宏,你看看

7 I8 e7 g1 V' D1 N) i2 R' t  z感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html/ y* v1 D: n: }0 c8 H4 y7 Z
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
$ |6 Z" M0 S3 c3 G# Y# w1 S( {; @( Ehttp://fans.solidworks.com.cn/thread-33730-1-1.html  Q7 b9 y/ \1 E! d
蛋大的教程可能有幫助
, \9 B% B( s/ x
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
$ a6 S6 m8 z, H% |' D 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
+ t8 H0 m7 }0 q楼主添加成功了吗?为何显示无效语句?

+ k- k) J) E' J3 A/ O没有成功
发表于 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
  ]% T* z$ U& Z# J3 l楼主添加成功了吗?为何显示无效语句?
  V% v* b8 F4 m# G
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 , `$ s" m5 O* @" B* s" |( [0 u1 P- j
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
& V. D- ]) a0 I& u2 |1 @' C2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
- d6 z; O( ]- |- Y

$ Y( x$ U/ P& O+ `- Q不好意思,再麻烦闷大老师,我的是2011版本。* r9 |& u9 U3 O- ?
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。
, ^4 ~2 F. E% x) j) i( r8 W是不是还要添加方程式呢?
" D4 l+ a' J! a( F9 d; b/ t QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個" y! j- v$ N* u9 Y: g. d6 J
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
0 Y% S  r+ H$ g* K
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif# F  w3 m/ b; M5 ^0 C8 H; z* M
試下這個

, z& X: I2 v  r+ y* U" J2 n' s" K7 J# r4 b9 {) r3 _
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。+ @2 ^' x) L9 J/ h1 F
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
! Z5 ]7 I5 c  U/ l- S5 W也许是学习版本的问题
1 X- W4 S2 }( C1 T8 H( ]8 c 1.png 2.png
7 R' p+ Q2 {! _; W% U2011版本
& p# }  d5 j7 P# Y 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif6 V' r2 Q$ g' [! a$ |' T$ R9 E
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
6 c* U; g) K) d: L2 O) }6 ^我新建之后做出的,做很多次,还是不好 ...
* B5 S, E. O7 H  Q7 ]7 G* s
謝謝qiminger兄回帖討論。
# Y0 A4 A8 q6 O. r9 q$ H4 s; \0 m# @9 d+ U3 T% C
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。  j! A1 ?) ?1 a' b! z; |+ a9 \
問題在內碼嵌合到“數值/文字表達”不對。
& L6 k: n- l4 d# E+ t7 l3 D1 X6 S; v/ w: ^& Q, E# |8 }
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
; B# Y& e! q/ @' @" odim dummy
- f/ ?) N4 K0 Z9 t! Adummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
, G1 t4 l; s9 F/ Z) b2 E
* t- P0 c6 E: ~' K# W3 L' P4 g. N3 Y

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
7 F, C; X5 x0 x+ v謝謝qiminger兄回帖討論。
3 v) S+ T! Z7 n) o) _) n! D- ?: Y1 l
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

) D  X5 {" ~: o% j闷大,请教一下。我这样格式的文件名如何提取: D4 b8 E/ O. y' w4 s: L( q
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif3 {: G/ l" ^, I2 }! w$ G9 R8 q
謝謝qiminger兄回帖討論。
! \+ s( {- s0 g- C- H
  R4 a' t; N1 {( A. C; p方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

. M8 o% A/ W# X5 F, K  g6 [1 e成功了~~
4 K% d3 i( a4 C& G直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,% L  q- R1 n5 @7 x
宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
# f( T8 Q, m" {1 o2 \5 J0 i試下這個
. s: r; A2 Y5 U
重新命名后,好像就不更新了啊
& D% E5 M  z- c  C& K
6 S$ ]0 i% N6 h* {; o0 T弄个批量的宏
8 u# F- {7 e- L) d, a0 d) {4 q4 b, Z0 e# T" T+ T, X
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑
7 f1 o- a7 H2 u$ s- X5 y' v0 v
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif5 s1 ]4 D+ ^9 @
闷大,请教一下。我这样格式的文件名如何提取
& p# i1 y1 W/ b5 R9 u& B  Y7 u5 @, V例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
/ I5 w' @3 f; n# XDim Txt
0 P) m% h9 ~& }1 {8 jTxt = Part.GetPathName
, \( P: r$ R6 i  A3 L1 x9 s$ kTxt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)& W2 r$ N3 a0 c  l
Txt = Left(Txt, Len(Txt) - 7)# W; s3 {" j* p
Part.Extension.CustomPropertyManager("").Set "partno", Txt

+ U2 }. q9 A5 N! \' Q" p( B/ d把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
8 b/ e' J! x5 R- a8 P注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。. B* X$ w5 N0 F
- h" K! z" Y7 ~

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif% h7 Y8 r1 |+ ^3 W) _+ J
重新命名后,好像就不更新了啊/ T/ v2 ~0 Q% C7 Y2 l' }9 I$ W
1 f7 |) q& B1 Q( R7 `( L8 W
弄个批量的宏
6 X/ t# J7 d' e+ B/ W* S
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
. `1 T0 Y/ X# X7 y! C: H4 x估計又是『脖子掛餅終餓死』的慘案一宗。

  z( ^( T. k# N, |" D. d8 b: n我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了
: F- S5 J& e/ c# @1 o5 Z
2 ]) O! W# k9 x! a, i/ [. v' }, `老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
0 H" [8 v) i4 a7 O- t5 ]. r0 N把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
! o/ N4 x1 e# c9 ~2 V注意!必定要使用複製粘貼的方法,才可嵌合內 ...
- o% l; h8 I" N: ]
对不起闷大,宏我看明白了
: i) e% |6 m3 S8 s7 \; U想起我未说清楚,最后一个“_”前的字符也不固定+ ~$ t6 U; S. W) [' s8 Q
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
( Z( @  k1 q8 T4 j9 \! D, \/ H对不起闷大,宏我看明白了& |3 C! ?, d0 ^# ?+ j- V
想起我未说清楚,最后一个“_”前的字符也不固定
' b* E; s6 {6 ~) t有没有直接可以从末位数的, ...

! K4 z7 [/ a: ^% }4 K" x/ ~8 j那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif
, l; o0 d2 D8 d% D5 Y8 r那段宏就是奇哥的要求
" a/ N. }& h1 T0 C5 |5 x5 [

# Q+ h3 R5 J5 C4 ?" D# |0 i我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。) |" x. X& f" c# J& N
请问partno是不是可以改成任意名字,如“工程图名称”3 ?* O7 t7 S& Y. Z1 r* `# C- W
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
; t& u0 D! _: N6 ~* x我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
2 N7 x$ D& D% f+ c9 L请问partno是不是可以改成任意名字 ...
6 ]- ^  T6 {# v8 }2 b" R, O/ B* F
在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
; \" C/ I; U$ v* A" W! _7 L5 Y9 n- t  w
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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