QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,) _8 q( Y7 b% J5 c2 U+ u% S: H$ T6 w
现请教大家,谢谢参与~~
! a+ o# t- h3 F/ P% n' A
) F$ |& k6 q* ^0 t: w) \. @8 L8 B" g  m% l0 x- ?/ ?
下面原贴标题和地址
) k* R) v2 |' [$ ~SolidWorks中方程式的应用技巧6 y; K. u1 k" i0 B, F$ w8 [. B
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913# D1 |. x/ M  h% K$ D# f

% }5 {! p0 D; Y1 L0 R4 {
0 {9 v: ?8 \4 L4 i" r' A原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))* q) S+ B, c; m7 {8 n' M
, o6 N4 B: m8 A1 B
方程式目的是从文件名中从左到右取9个字符
/ z# y3 h8 |+ q9 {1 z; i0 V
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
0 X; O4 _: }) R- j  u# j$ g5 _/ E& j3 O% X
如下VBA宏的編程[2012版測試]
0 u# J; v" N0 Q# Z# s, r6 X& C# W- c% z& }
' **************************************************0 d1 E$ T: j; I# q& [: s6 o) _! X0 Z
'  macro recorded on 06/24/13 by lsc# l. J/ P/ o; Y: G
' **************************************************% I. A' x) Z1 a3 Q# e
Dim swApp As Object! l2 d& ?$ o" j- u; Y
Dim Part As Object
$ C! p2 P# s; n1 G' ~Sub main()
" v! O8 C  V  B) l' J6 RSet swApp = Application.SldWorks
3 ]  v' a7 J, K6 k2 x4 a! }( ISet Part = swApp.ActiveDoc
. w* E0 i0 A% K. ?0 Z* N. gSet swModel = swApp.GetFirstDocument
! Z% @" `& [# M! [* r; d4 U- }path_name = swModel.GetPathName '取出目前檔案的路徑及名稱4 R) D5 ^* `: P& d$ p2 b
name_ = swModel.GetTitle '取出目前檔案的名稱
* Z- d+ f+ c' d+ H/ q' mname_9 = Left(name_, 9) '取出目前檔案名稱前9位文字8 Z% [, W5 R) k; ?. O
End Sub8 e6 b3 N+ x8 d+ K/ A- o

评分

参与人数 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 编辑   v3 i/ u! V1 j. v) c
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif, ~% n) D+ ]: S
如下VBA宏的編程[2012版測試]
9 f# c. Q9 [; `% s. I6 U; V' N; Q+ F& D4 H& R5 ~
' **************************************************
9 \4 I! O. Y/ C! _* c3 d, i

, ^: r0 o# Z7 ?& T+ m4 c十分感谢梁老师提供代码学习~~$ o6 J9 Q" x$ w* A
$ \5 G: Y# i8 l  |1 ]$ ?1 S1 P* T# y
提示进来学习的坛友!
$ o8 ^9 t. m" V6 n1 _1 f
通过在自定义属性里嵌入宏代码,问题已解决。6 R+ @1 b2 W9 |! g. i, T: p
下面代码在2011版本中均已测试成功。
/ q6 w4 [+ U' q, g5 j6 `
  L$ F; B  p& X  p- |& r3 R' A* W15楼代码,可以取左边字符8 @- g: \1 H' V( B- h$ o6 v& E4 B, H+ F
19楼代码,可以取最后一个下划线后面的字符。
8 d" V, W+ T7 {- k5 w3 d2 s& f* e9 w& h$ ?1 \5 c1 W' m
下面这段代码,可以取第一个下划线前面的字符。$ p1 c9 L2 h4 y; Q
1
5 b% e8 t1 B* a8 ]  bdim yfd
+ ^& @* o8 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.gif0 K" H; o8 [: f' G2 ^
下面是我在其它论坛 得到的 某位前辈的宏,你看看

" @: i7 |' Z& L6 L. }感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
/ o/ I7 g; P5 I) w, q: B蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
( R  D1 D# a) e& yhttp://fans.solidworks.com.cn/thread-33730-1-1.html$ @/ y  o; d) C" H+ s: Z: i6 e
蛋大的教程可能有幫助
7 }& B$ U1 A0 a1 b. P) U
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?$ E& f9 e6 }4 y: V; d& t
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
# X6 Z! ~6 X" W4 i/ m- c! C/ z楼主添加成功了吗?为何显示无效语句?

3 X# y4 H7 o/ W5 G" ]0 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
9 p9 u+ }' ~1 K' g( \, `楼主添加成功了吗?为何显示无效语句?
: H" v* N, |% d
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑
$ }3 X/ J  n, t1 R, a( ?
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif# `$ N+ @  S6 C: m* R- S: y9 ?
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
1 J" ^" R' P+ R3 [

( |! O) T8 ^1 i  Z不好意思,再麻烦闷大老师,我的是2011版本。
. ?& j0 [: W4 g! A我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。) a# m, u) x/ `& f! r8 o) H
是不是还要添加方程式呢?
: w: s0 D, W  A/ R! u QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個1 X  ^6 Y" u8 R  z. ]
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑 + h. \7 O7 c  O8 v+ |: h+ Y
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif  s! r* J5 X5 [3 @2 J4 O% C+ ?
試下這個
& Q. ]. P5 H, A

$ L) L7 ~9 T5 o/ ?; P- ^谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
1 z% G  `0 z! j7 U0 C# p- g2 S我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
& ^- G  [, h" T* l9 _/ Y: O9 V也许是学习版本的问题4 h; ], h  s+ c2 z- H& p
1.png 2.png
; p% u# h' n  |) G2011版本
. D9 z& D# v$ Z2 ^3 w, H 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif2 [" Y9 L5 F+ {2 E( ]5 x3 X0 M2 s
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
) W5 e8 S5 a. C& _! ^6 a! z我新建之后做出的,做很多次,还是不好 ...

: l! x$ X) Z* L8 E謝謝qiminger兄回帖討論。
: K, ?8 P2 o3 v" I6 t- l( U5 i& O: B- p1 J/ U/ X1 E! D
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。# I% L2 t" a% ^+ F
問題在內碼嵌合到“數值/文字表達”不對。
* r" `0 c( q- ?' F/ E  b  Y
4 z2 W  ]2 y+ u4 I5 ~把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1+ Q) D, B4 u6 U- L( [+ c; w
dim dummy
; G7 Z1 \* V' Adummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
- k5 K. a5 ~! g$ |' w. |

- H! y5 \  J3 ?' p; g# Q6 u' u

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
' z9 ?8 w, G5 L; E4 w0 m謝謝qiminger兄回帖討論。3 G1 {  X, o/ ^4 s

. q9 ?. w! ^0 I% f+ H7 {) o& z方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

, u; r3 k) K( c5 Z3 J" B* }0 s闷大,请教一下。我这样格式的文件名如何提取
% H  g  s- N+ T. t8 F& G2 S例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif" o" q' f4 S; v8 l2 a3 \( S  q
謝謝qiminger兄回帖討論。" y. D+ T* R" l6 D

! h5 b: r, g9 ~4 Y9 ]方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
/ V3 F% ~: C+ p: i8 k
成功了~~5 @4 D  M' t1 r* A
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
# U4 E# @1 S1 w! i宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif5 E0 t5 Z( H5 p2 Z0 ^0 l" g
試下這個
% x- q, ~" k: K* v9 X: Q0 s/ ^
重新命名后,好像就不更新了啊
; s$ ]: h  \( @6 ^$ \0 X
1 j7 K# c. @8 u5 o弄个批量的宏; [) N; k) Z' h* e3 A; |
2 T0 t8 p/ t! `8 ?3 H) h
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 . a( `$ Y' v' D$ j8 B2 P3 z5 D# G
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif2 M, O% C; }; H7 t# i% X0 T
闷大,请教一下。我这样格式的文件名如何提取& Q# V  D9 e! [1 d4 Y2 H
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
: ~( Z+ z7 G! i( c. g% x7 fDim Txt
* Z* O" ~. k8 ?- W7 i, ~+ ~Txt = Part.GetPathName/ z( X: j7 R) s+ @: X) x
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
" Y& j: z3 o% u3 }! c% ATxt = Left(Txt, Len(Txt) - 7)# o& w9 D3 G2 U5 q9 i. a
Part.Extension.CustomPropertyManager("").Set "partno", Txt
8 A4 i' a5 J, p9 y; F* u! X
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
4 k' k# ~( L  q) C& b% K注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。3 l) P5 w) p; L! U
: S. a; P5 `, s4 I

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
- `- c  ?, O0 u/ e3 Q2 T7 ?重新命名后,好像就不更新了啊
+ Z. V/ |" A1 e! V  x: H3 Q' r- D+ M9 @
弄个批量的宏

8 p7 @$ X$ \( y9 f+ F估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif' v( J# j  a- y
估計又是『脖子掛餅終餓死』的慘案一宗。

7 ?8 v$ ^! j; Q) k4 H& h6 v我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了( E3 A/ ]3 f& J" W) h' f; `

. \% u  w, S5 m1 H( U% E老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif8 [9 t" s1 k) X: P. u! }1 K
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
4 g! k" E# V& t; k9 A0 j" j6 \1 ^8 S注意!必定要使用複製粘貼的方法,才可嵌合內 ...
0 o2 A3 w# c+ Q, v: f
对不起闷大,宏我看明白了
6 g8 i9 H7 g! P; s& O0 d+ P# U* l3 v想起我未说清楚,最后一个“_”前的字符也不固定
7 o$ N6 ?0 P  j有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
- _( N/ _; t0 `对不起闷大,宏我看明白了+ C& {- ~0 {: P, b* j- T( W4 j
想起我未说清楚,最后一个“_”前的字符也不固定3 x; E# o: o) @! H/ k, Q1 q
有没有直接可以从末位数的, ...

9 t/ l4 N# `  m) T那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif
- B6 D4 \. W# c  p$ A0 M! d2 i& Z那段宏就是奇哥的要求

# U9 S  o4 R( \) f9 `: o; C
0 }+ U9 O8 h/ n我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
* q  P; x: i: ^( J/ z2 K. A请问partno是不是可以改成任意名字,如“工程图名称”  O& \, ?0 Q7 k: C
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
% H6 e: O  e6 n8 D  g* r我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
+ E2 |) X- Z& j- L  L0 L请问partno是不是可以改成任意名字 ...

5 Z! N- t: U$ h0 Q在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
4 h1 b- [, g; [+ h
$ H5 Z- s1 M. e$ E0 h2 Y0 tpartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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