QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
6小时前
查看: 31105|回复: 123
收起左侧

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
+ B3 w- p! }* j. U5 B, F. w现请教大家,谢谢参与~~
9 b! ]/ [, w# J, ?" H1 n! ?/ p# m9 M0 Z  l2 e' ]# C9 G
( n- |1 \7 i; q% ~
下面原贴标题和地址' v& o" P. l' K' h
SolidWorks中方程式的应用技巧$ l) f& X" Y7 Q( R
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
. I4 c6 H: Q4 [/ T7 p7 [- a# U# I7 m  r; Q% M
9 C7 `9 V' Q( u# P! d
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
5 U9 \  j$ h5 k
- x6 w) C. i* ?* p方程式目的是从文件名中从左到右取9个字符
" r' l5 ~! S* v5 u
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 % c' k. S, ]$ ~
. _" j" Y3 Q1 n/ E% \
如下VBA宏的編程[2012版測試]$ \' m0 A4 ]) }

+ v7 |2 \5 k$ \4 r: H) d' **************************************************. ^& K' G  U3 \. a$ K6 b- ~0 _
'  macro recorded on 06/24/13 by lsc
9 G; K, P8 Z4 E, e' d' **************************************************
  e3 u8 T0 n4 |. yDim swApp As Object
9 K* O$ ~4 b7 C) e3 V0 t7 U) s$ oDim Part As Object- p- T% A& E5 r' L% s/ L$ N) [
Sub main()
  ~6 o" p+ a1 L7 |Set swApp = Application.SldWorks
4 Y3 Y& f( ~; r+ f, x) OSet Part = swApp.ActiveDoc
+ B/ R+ ~% y, k4 HSet swModel = swApp.GetFirstDocument; }. H0 h7 @: E. i! m8 r9 Y
path_name = swModel.GetPathName '取出目前檔案的路徑及名稱1 s* o) X* R5 N" I
name_ = swModel.GetTitle '取出目前檔案的名稱/ ]) F* V, `/ @0 y
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字9 C/ O: H% T) j1 h+ l& G" J, C
End Sub
& C" ^4 s) N# t$ _0 D- v4 |

评分

参与人数 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 编辑
- t2 M. ]  B! _  K/ Y1 z7 Q: F
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
6 N# n! `# }' G( }如下VBA宏的編程[2012版測試]
( U/ |8 z  \  O3 z' n
/ l- H* D0 K5 V5 h1 P* N% v  U' **************************************************
3 k* t) P+ ]9 o' Y2 O
9 [6 L! _* |0 i$ K
十分感谢梁老师提供代码学习~~
- a' M% |( s, \( z. ?& E& v
7 N9 Z& B! B; ?( k3 M, L. L6 F! Z提示进来学习的坛友!; o6 }. S% h' I5 z
通过在自定义属性里嵌入宏代码,问题已解决。- @& N1 Z( z" {7 x4 W" z
下面代码在2011版本中均已测试成功。
  \' W0 K2 `0 L& H' S* @% k! g% |3 A1 u
15楼代码,可以取左边字符7 [* Q: T" L6 r9 w& {
19楼代码,可以取最后一个下划线后面的字符。
5 M* B& r4 m) R. j3 u' E% H: P; z  V8 ]4 T  T5 k( E
下面这段代码,可以取第一个下划线前面的字符。8 W9 z( x# j7 z
1( ?; \3 o6 m0 H- R8 a3 g3 O2 e
dim yfd$ l7 e( c$ l7 l+ ~( x$ t- E2 b
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
6 [/ b- f7 x) f下面是我在其它论坛 得到的 某位前辈的宏,你看看
. E% p  |. ^1 Q5 \; o: O- e
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html  |0 A2 u3 U3 t$ g0 c' I1 M% X' H
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif+ ]/ t5 [$ S2 `1 ~, a
http://fans.solidworks.com.cn/thread-33730-1-1.html; O2 R( Z5 m& E5 e% ]1 s
蛋大的教程可能有幫助
( t" t# y3 k3 X* x
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?# W6 h; S9 e  @6 W" w8 r( H* `4 J( i
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif! u# H5 ~0 Y# D" ^1 i4 H
楼主添加成功了吗?为何显示无效语句?
. U2 Q6 U- z+ c! L( p
没有成功
发表于 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
) H" L4 W4 j. W* G( _$ _楼主添加成功了吗?为何显示无效语句?
  Z. c" d  g. S! T6 r( j/ o; N  I
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 + m3 W4 G* U3 H; Y6 }/ I: L
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
# W7 D. m9 _( k2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
# B0 G' J3 b) h5 l, x* |" X
2 a* U; m4 z" K% O1 }( ]
不好意思,再麻烦闷大老师,我的是2011版本。
9 ]. X% q) I& Y4 ]9 H/ X0 n我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。
6 T% Y' c% ?3 \9 w是不是还要添加方程式呢?- C" U$ o4 s  G4 e
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個( J" j& i& b! O/ `
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
; S$ X$ e' T( M+ i  o
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
- I( L& m) [9 D( \試下這個
+ o6 V1 j# v5 N2 O9 h
' t' w# w/ E8 q0 f" m
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
6 K  c. o3 r4 K% ?* D0 v/ ^' D我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
7 B) E7 g4 x% D3 ~也许是学习版本的问题
6 w2 I; Q+ D; L5 _6 I 1.png 2.png . I$ b8 Y0 S& `
2011版本
* f% h& Q# L( u 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif$ I# m9 \& ~' d
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
5 I6 f: i9 E3 M' _- B, P* ?我新建之后做出的,做很多次,还是不好 ...
3 X/ z& @( O# o+ q0 {5 |
謝謝qiminger兄回帖討論。# I3 q9 v0 s, G* \: X

8 m/ S" v8 }; }. u% ]8 ^( O7 E方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。4 P; R( \) I4 A/ O3 }2 g3 G
問題在內碼嵌合到“數值/文字表達”不對。3 [' }" |3 w0 Z/ u" }5 i
: L' l7 j! u. N# W
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
! Q; ~1 N$ k( h# o* L* G/ Sdim dummy
" x+ y' v  w; J( Xdummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

* q1 M8 r  P8 T4 J3 U, H
% S4 Q3 _! @, o( q' J

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
% s; J' V( d2 P5 ~; o謝謝qiminger兄回帖討論。
! n" C6 d% u0 c7 P+ _6 S; ?( _$ F7 v" |5 |' f& X
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

; o& Q" L4 b  y# w) t; Q6 }; T闷大,请教一下。我这样格式的文件名如何提取
4 j1 x& g7 C8 `4 o8 x' E& C& M% u例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
( j/ L! \  ^( ~: C6 _( Z謝謝qiminger兄回帖討論。" B1 x- [0 Q7 p9 t  u: u- D$ I

4 t5 P3 ^" b/ ]$ x" U# n# j3 J0 H方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

4 Y: f7 C5 I: R! e5 ^& p1 _成功了~~5 t7 d$ E& y- |1 U$ e% V( A
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
+ Q6 E- H( v% C, g5 L宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
4 H) _+ f7 x2 \5 b4 q* \4 b試下這個
$ A8 k% p+ `+ w" g
重新命名后,好像就不更新了啊/ e4 E9 v7 C0 K5 I( t

4 L9 k; m8 r+ |3 `8 v  `弄个批量的宏
8 l) J8 |9 w- Z5 [- I& q. u
4 U0 M( ?+ i+ O( i& @; C; h: l
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 . u# G* I  _: m4 o, Y
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif6 a" M+ D- |2 G' n- s/ X$ x$ t5 }7 W
闷大,请教一下。我这样格式的文件名如何提取
) e0 H# _, I; x# j2 D4 @  W例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1' E! k6 @: Q5 q4 x0 r
Dim Txt; ~" |( D) G! H! q( c& A
Txt = Part.GetPathName6 l* k6 u) o& d
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
9 l. [2 m/ G7 R* cTxt = Left(Txt, Len(Txt) - 7)0 o/ V. `/ A; k. @  y
Part.Extension.CustomPropertyManager("").Set "partno", Txt
) ]/ @% N" O& |) j; C4 q6 Y
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
7 K0 x! g9 P, b3 v4 w4 V注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。: T( F+ O  h) a1 q! i% I" j6 Q
4 ~4 Q+ H  B1 }/ a) ~

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
2 O' B, T6 m6 n7 `; e+ [0 V重新命名后,好像就不更新了啊
9 M( H- J5 |- E
5 j1 [0 Q6 X2 d$ k- L0 a- T  t+ W1 r. X弄个批量的宏

4 ~: o# f/ m- c7 x- W4 u7 e估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif$ {+ H5 T2 V$ {; u
估計又是『脖子掛餅終餓死』的慘案一宗。
* C4 ]; v* e8 h6 ]  b- ?2 h
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了
  i7 Y9 ~( r5 Q0 c$ p9 M, D/ U
2 [0 v) O1 T7 Q" h9 z  @+ Y老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif+ F( h# X& \3 J" ~
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
$ f/ C( _6 B" R! h9 Z( n6 b5 I注意!必定要使用複製粘貼的方法,才可嵌合內 ...
. P; v$ G8 L+ g. d+ @. L3 n
对不起闷大,宏我看明白了
; _( ~7 O, M8 I9 K( B9 j0 }想起我未说清楚,最后一个“_”前的字符也不固定
: E) ~  s# J1 @5 ^$ r. P有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
+ C3 B& X  c3 m9 [) z/ f对不起闷大,宏我看明白了
" N6 }) K  e. b/ w想起我未说清楚,最后一个“_”前的字符也不固定
1 r, q9 }0 W& U! v* g有没有直接可以从末位数的, ...

  y6 o( z$ Y; v& t4 i" u# a那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif2 A" X3 o0 g; W* k3 ]
那段宏就是奇哥的要求
) ?0 d: y# [( N0 t: ?# o3 n; t$ @) C

4 P+ A7 g1 j% K8 w4 W4 s4 P我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。6 j; R2 ^% a1 m$ m
请问partno是不是可以改成任意名字,如“工程图名称”% S; ^( a" k  o# S, i$ I& U2 s
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
  s4 y3 @- c, `: Y0 \7 J我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。! j  Y' l/ I' H+ w) r: ?0 B6 t
请问partno是不是可以改成任意名字 ...

- Z9 x2 r: k, \$ o! B6 i在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
1 U9 ]  z  H: B- v1 [% v1 k- i: m! B3 r$ b: y' j- s' x
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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