QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,* y, v& @3 Z5 b& m
现请教大家,谢谢参与~~4 L; m, c* G% |  b9 I% ?% @9 z' c

) i1 p  Y9 k  ~. C5 M4 ~( I" x6 _& W, ]5 S- J
下面原贴标题和地址- Y7 d) K6 x+ b7 n& h; N* I
SolidWorks中方程式的应用技巧( z& s2 F# X, M4 J3 M+ G0 i
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
- I* [: {7 R2 F, P( S! F
" O% Z* f% t' i% T% U9 I/ \9 c6 o7 P! S$ F; Z& {! y
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
. T- E& t/ u& E4 S: }1 Y5 o3 b  S% N! I, Q) A3 u' ]9 V& {
方程式目的是从文件名中从左到右取9个字符
% L! h- l5 w8 n! L1 K1 w
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 ' Y/ E  f+ P; f7 C

) L1 M; b, z) x# U) ]# |1 ?3 ?+ z. }如下VBA宏的編程[2012版測試]
: ~7 |' X# {" K4 r' x2 m4 F
% @2 Y3 {* B: [' **************************************************
0 x! M& t9 \. m. T+ W: D'  macro recorded on 06/24/13 by lsc" B& c8 `& L& U- ~
' **************************************************6 _! Q2 p% h: i& u, c# b; t" ?
Dim swApp As Object& x+ ~* N+ {# R- ~, S" U1 ^1 s* V
Dim Part As Object$ W! H! h& c2 t/ F7 `! i0 H
Sub main()
$ _6 J6 r1 U0 a1 T! ~Set swApp = Application.SldWorks
* n2 j6 ?. J' `6 s9 R% l1 k# L, P: _Set Part = swApp.ActiveDoc
* Z. M/ V! |9 b! I& `. lSet swModel = swApp.GetFirstDocument
8 r2 F3 F( k' ~/ ]path_name = swModel.GetPathName '取出目前檔案的路徑及名稱
" k+ D( d. }. X) G: H, l& z$ \8 Tname_ = swModel.GetTitle '取出目前檔案的名稱
; v9 ?" J- S0 p: o+ }, sname_9 = Left(name_, 9) '取出目前檔案名稱前9位文字. J& p! p5 {# P! o% |+ `
End Sub5 ^( |$ y3 I  H9 S7 c5 h& o) ^8 `* I

评分

参与人数 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 编辑   t1 w& F, o; q
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif) ?* M4 A" ?2 m- g: c$ w8 Y
如下VBA宏的編程[2012版測試]
$ Z  u) x5 G9 g3 N# n: t. o
8 @% ^9 P. J: T+ Z& {7 V7 n' **************************************************

% b- |0 o8 n2 V2 j' K  D& G4 n- G% z2 N7 Q# Y( [
十分感谢梁老师提供代码学习~~
: l+ j. l$ F' x: g- Y5 B# }4 _/ r
提示进来学习的坛友!
( u4 A3 o1 a- r8 ?" ], i* j
通过在自定义属性里嵌入宏代码,问题已解决。8 d. [1 ^% v( S! t3 w
下面代码在2011版本中均已测试成功。
9 A5 U/ |# c2 H3 s0 V3 u/ M- R( [: d. {
15楼代码,可以取左边字符
- k0 q3 X6 Q! d' u19楼代码,可以取最后一个下划线后面的字符。
0 D0 }" n/ C/ b6 C) j4 _  E* R! l% }6 w$ B0 ^
下面这段代码,可以取第一个下划线前面的字符。
0 T3 m$ K9 M# ^4 r5 @2 ]0 g1# L. A: l2 Q& o/ V
dim yfd6 ?) N: ~  w# w' F5 _6 P
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.gif8 P3 v6 l# I; `6 I
下面是我在其它论坛 得到的 某位前辈的宏,你看看

5 ?1 C0 I/ r$ ~感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
# S4 f+ a  W( y蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif# g. b% u+ q1 n( a0 C. c# k% Z
http://fans.solidworks.com.cn/thread-33730-1-1.html
) z& s0 P8 e2 I- U蛋大的教程可能有幫助

- [9 ~" ?, R% v( M非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?1 @9 f4 x8 O. v! o8 N3 q& U
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
4 \% L& w$ w' J+ }5 A5 r8 \/ w楼主添加成功了吗?为何显示无效语句?

7 l' L7 d+ q" c9 V+ B没有成功
发表于 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# Q* x8 M2 N5 y( O; j( ^
楼主添加成功了吗?为何显示无效语句?
2 b8 j8 p* @: @9 b7 i$ r. E, }
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 # k" L: X! W2 _2 V
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif: b0 k; ?, K& H! Z7 k+ x( Z+ O; N
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

- B/ x- i. ]$ l0 ~  r: s% S
$ V% P- j2 H* i( i; _不好意思,再麻烦闷大老师,我的是2011版本。
4 u3 f$ h& ~  h& ?( h$ i我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。
& F: R7 d; i' w& G6 r; f是不是还要添加方程式呢?0 U2 L- ?6 M6 v/ h
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
4 O& Z) q" n1 j 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
/ y( L3 S5 h' D* s3 L
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
2 A& @/ w% p& \$ r試下這個

" q7 g6 z! r) X- ^) s3 F% B4 H8 Z& ~2 d
% Q4 Y% W" R  M( _; x7 N! f% v谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。5 A% I3 t$ }9 A2 ]1 A( O6 G7 @/ h( |6 `
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
9 ^' K0 M. ]. p# n1 w. Y. T+ [也许是学习版本的问题
1 R: t/ n& ?; B! o& @ 1.png 2.png
0 C* v: p: H: W/ E5 X2011版本
  ?5 Y) e+ }: ~4 m# f, S1 o 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif/ P2 B" ^7 P7 X
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
4 v# p* V. b) M" J4 U8 H我新建之后做出的,做很多次,还是不好 ...

: W1 r) q& D: w3 \謝謝qiminger兄回帖討論。1 ~* o7 f4 s5 T% ]  B( Q1 k
0 K( ^6 u: R, a! i" l
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。4 b# T5 X) `. f0 f
問題在內碼嵌合到“數值/文字表達”不對。# r( c' p! G5 m# A
6 O* J; m! J0 p4 |& s
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
/ T5 e2 l9 ?/ x( Y, a/ Gdim dummy7 |5 a  q3 u3 o$ t
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
) C8 T) s1 n  Q% l3 T% u* h
% ~" E  h6 z0 }  h- c" v

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
, n& v% y2 Q0 N" n% H謝謝qiminger兄回帖討論。# m3 ~& X' `3 m. U

9 p- L9 h2 W3 f" K' ^* C方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
. ~, Q5 Y# a: k" N, c+ q
闷大,请教一下。我这样格式的文件名如何提取
. I6 J2 `$ ^+ l8 T2 _例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
6 y! a' R! A8 k! T' K謝謝qiminger兄回帖討論。
$ L% D; q6 B! T6 B( l( W! I
2 F8 @& R% k6 v/ }4 [( E方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
( t& w' O5 w) d$ A* ]4 y
成功了~~
8 q% s, a1 F* a# Y$ v, U$ c$ }直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,. m$ |$ Z8 H) G# z) }6 D/ }8 _
宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
8 s/ {2 ^+ `0 O: |; S' _試下這個
9 {0 j1 ]) j2 v
重新命名后,好像就不更新了啊, V/ u* w4 O8 p/ ]2 T8 {" C2 R9 ^

1 L3 U! a2 l5 g2 K弄个批量的宏: _- O& N* o! O' B$ |* `$ C9 |

% \9 Q: K6 a9 `$ G
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑
  s& F- k. x0 r! P, m3 A
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
: A& }0 E5 M8 w闷大,请教一下。我这样格式的文件名如何提取
7 K: O6 Q% g* d; }1 K. Q例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1: y- N; |  C3 F( v. \) y
Dim Txt
  H* s7 W) q! `- _, r; |4 k2 UTxt = Part.GetPathName
5 j8 i; V/ R" o' G( qTxt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)) ?$ D8 H! K4 R% c. K
Txt = Left(Txt, Len(Txt) - 7)
7 L- a8 Q/ {8 s3 z" Q  {Part.Extension.CustomPropertyManager("").Set "partno", Txt
' r* i# V  ~* n' b3 o" ^, l
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
1 Q5 |: D, t5 J% n7 ?注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。6 K- Q0 N: R- }  G5 U" f

9 K' Y. Q8 m# E* }

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif4 T0 t$ v" A, m/ K, X
重新命名后,好像就不更新了啊9 B7 u* }2 q6 r3 Q% ?' t& g! M5 ?

. J$ J, T1 L1 S弄个批量的宏
6 ~2 x) P+ O* i
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif: S, ?( }; O) T# H6 ?9 |8 {& g
估計又是『脖子掛餅終餓死』的慘案一宗。
. [3 R/ c1 W; ?
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了* d  a, x$ b+ b

) i# G0 R0 v) x0 P$ h$ m老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif/ [: j( R+ n) J
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。& t2 ~4 ~7 ~+ ]% @- E
注意!必定要使用複製粘貼的方法,才可嵌合內 ...
6 v' I" }7 R6 G- W2 l# h; x
对不起闷大,宏我看明白了& O$ {1 n9 i- A1 s2 s$ O
想起我未说清楚,最后一个“_”前的字符也不固定
* d; W% R% x0 \. ]& Q/ m* A有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif& e- s: m+ y* m
对不起闷大,宏我看明白了
, K& i) o, ~+ q, N想起我未说清楚,最后一个“_”前的字符也不固定2 k8 f8 P- _# T
有没有直接可以从末位数的, ...
+ b9 R7 J& q* Z6 `5 O* |$ K, f
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif2 v. a' f' g* }/ `: u  Z
那段宏就是奇哥的要求

. v" F. D. v+ z
/ x6 @* v0 x. t/ @% i我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。, P6 f  k7 F5 r/ ]( a
请问partno是不是可以改成任意名字,如“工程图名称”
/ y. s& f! W* B+ d3 Z再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
& a/ W1 E: \- K" v/ N/ s我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
9 Q8 n! F! A9 N请问partno是不是可以改成任意名字 ...

6 ]( z% @) z: Q9 A% s$ J& i  a7 u# P在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
* B& |" d# G) }
7 G  \1 u2 o2 J1 h3 H% fpartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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