QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
5 n: s7 O% G9 n$ w6 m& Z现请教大家,谢谢参与~~1 ^% a& G" G1 @7 L
' q4 ?# C( o; S7 j
; k- [  O' c! H1 a. w/ G  O7 c
下面原贴标题和地址
9 A0 n# u! r2 T$ fSolidWorks中方程式的应用技巧5 K- P; h: M4 R  g4 ~
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
6 Y& G0 w# a0 u' ~/ V0 j
# j  @: G! d, S* ^
/ J. x' J0 C3 w5 w$ P原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
, J7 |7 V/ b+ R& x8 O( V7 T
: s1 J, o5 H% S" g. G8 O% |方程式目的是从文件名中从左到右取9个字符6 q, ]! D: o* u: J; [: I3 n
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
  [; t2 B* I6 c! w5 O2 ^  V9 k# k2 N- \! V1 r3 z+ s
如下VBA宏的編程[2012版測試]5 O" S# A. H2 J9 f

  o! z& g! I$ [  R. o7 R' **************************************************: b; s: ~2 D3 B/ [4 }
'  macro recorded on 06/24/13 by lsc
. n; k9 [- a3 R' D" u% m- {' **************************************************
. U, M4 E1 j& ^% S3 E) jDim swApp As Object
& \& \. l! b7 v. O" p  @2 R( N; TDim Part As Object9 b4 H( x/ f! d7 ]) H& U" T" `4 g
Sub main()
+ d% i# @. O+ J! L0 u$ \: c8 ASet swApp = Application.SldWorks; h7 u" z+ _; I9 J
Set Part = swApp.ActiveDoc8 J! a8 X1 C% Z9 ^6 u2 A3 @
Set swModel = swApp.GetFirstDocument
) y# N' C( r; U) }# g0 p2 epath_name = swModel.GetPathName '取出目前檔案的路徑及名稱
: l# g; c% _1 `7 J; [name_ = swModel.GetTitle '取出目前檔案的名稱( O! {: h# K: k: \1 v1 [
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字1 `, K" ~3 V% H8 _4 J
End Sub
1 m# o& v' m5 @8 b0 \$ ^

评分

参与人数 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 编辑
+ e8 m* i4 d- f4 H! k2 e
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif5 j: S# v! K& E8 v, V2 Y# ^6 z6 c
如下VBA宏的編程[2012版測試]
- Q# M: q: ?  _9 W8 \2 b" f6 K( f  H7 d7 A, ~
' **************************************************
$ b( i3 I6 c$ I5 \

2 |! P  |5 N( `7 R7 E6 b5 Q十分感谢梁老师提供代码学习~~
' O6 `! j" L% I% D9 I4 D; P4 m6 }
/ L/ T) w$ C( l; L提示进来学习的坛友!8 C, \' F$ m& X8 d* \5 A; x
通过在自定义属性里嵌入宏代码,问题已解决。$ x  @: t; S% O; x
下面代码在2011版本中均已测试成功。' S# n3 e' @2 O' i) @# }

! u# W1 V( r3 |4 e15楼代码,可以取左边字符
2 O" M2 }9 @1 i. k( n0 L4 ^19楼代码,可以取最后一个下划线后面的字符。; @1 {, O% B, i; U# R3 b. q
9 d4 d: z1 x8 Q7 l' x9 ^
下面这段代码,可以取第一个下划线前面的字符。
+ Y$ d8 p6 c, D3 {/ T1$ C2 R' m6 {" P) k4 g  e
dim yfd
3 a  b6 {0 L- Gyfd=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
. p9 X* C( o7 d+ M" {下面是我在其它论坛 得到的 某位前辈的宏,你看看
, f( Y9 l" B6 E& F) m" G
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
! K$ o% s* c0 Z# l6 \" E+ K蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
! l4 ^; E, l% |2 X8 K1 yhttp://fans.solidworks.com.cn/thread-33730-1-1.html9 n4 R; D# \( Z
蛋大的教程可能有幫助
# w5 d3 ~) H+ E0 i0 v" K
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
5 {: d8 K0 S: W 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
3 a" B" K0 R3 g4 v& p. u楼主添加成功了吗?为何显示无效语句?
: y& X9 ~, ]3 }, A
没有成功
发表于 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
' J, c; X6 f5 W楼主添加成功了吗?为何显示无效语句?
& Z+ n% E7 L0 R2 L* ~5 Q! F
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 & o4 i# N# k6 o2 @
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
" r* U9 m3 O+ D" q2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

/ e) e, c0 N2 W3 _9 F/ ~) }0 v. H- R$ n" w) W
不好意思,再麻烦闷大老师,我的是2011版本。- H3 f" o% Z; K5 a0 }8 Q
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。$ `: {* H: R# e! g: F  [
是不是还要添加方程式呢?
; S1 N# Z& P  t7 ^ QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
5 Q$ S8 M4 k8 |0 r 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
' A3 z9 A$ S- u3 y, V! R
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
; a# A* s* e% T! X/ f! ]試下這個

# n+ `6 N6 C8 D1 Y" B4 Y' C/ F) n
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
5 {* E5 U" F  B- N* [我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
) \1 ]8 s- q1 ^# s. o2 y也许是学习版本的问题& x  ~2 ]: }( m0 H
1.png 2.png
& r" Y2 W% \' W2011版本
; m; d! B8 ~0 h+ w/ @, u" 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
& L1 N0 k$ K. g* T. `* O3 X* H9 M谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
. B+ F$ w2 F9 e9 S% G  i) C7 r, q我新建之后做出的,做很多次,还是不好 ...

: @0 X- ], R3 o6 p5 L謝謝qiminger兄回帖討論。- E- D0 P+ y, p% G: J( W

2 z/ Y. B# C  U  x) `) n方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
1 g( x; ~% ]0 s: i問題在內碼嵌合到“數值/文字表達”不對。
0 s, u6 i! i! D9 E! f5 b' \' p; ~" g  u
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
% U  t: ]$ U. {" z% Idim dummy7 T2 |8 T* d, U$ W# ^* _/ W# N$ G
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

2 R' k9 o) ]4 ^7 t' n/ e
, H; U" [0 A! H3 {+ ^/ d" ^& C! F3 Y9 Y

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif8 H6 x) N$ o! C8 p/ _+ S  a
謝謝qiminger兄回帖討論。
; F- l# l' R2 L; d, Z7 ^. q- F) l
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
& Q; T* r! w9 j& J6 f$ F
闷大,请教一下。我这样格式的文件名如何提取5 S2 Z- P( j6 K5 N
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif: G& {& y% h" ?8 Q& O
謝謝qiminger兄回帖討論。; c5 u; o; ?! J7 h5 O
0 Z% L) V% Z; r  y/ Y" X
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
% U7 F( P/ s, K8 T' a0 N
成功了~~8 I% F+ s# @3 h- p- Q
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,3 S9 e$ e6 j& Y5 m
宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif; y0 H% K1 n4 ^# M- w% ^/ m. D' ]/ _
試下這個
' R9 R" Q* k" D" _
重新命名后,好像就不更新了啊; F, n# Q# Q6 A0 m; Z

2 Y. W' W) i3 y9 c弄个批量的宏
" c) X* Y/ ]+ J8 F8 F( C  q/ n- W( _! [% w& a% B
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 + z) ~1 N: _* X
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
- r- ?- C% M7 \. s) v' Q$ c. }6 g8 X闷大,请教一下。我这样格式的文件名如何提取
4 g/ h! r6 w+ U例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
+ q0 ^3 ~2 r; ?9 f2 p; s- I- [Dim Txt
2 s$ e* d' M  f6 }, ^: i# y; l1 XTxt = Part.GetPathName5 N& r' \# H& k4 R) n% C
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
7 e* w$ b% I. n: j4 t$ G8 ]. Y8 i3 kTxt = Left(Txt, Len(Txt) - 7)
) T; y; [% u: g7 i0 }Part.Extension.CustomPropertyManager("").Set "partno", Txt

( S! ]8 _* V  }3 f9 I把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。0 w6 \8 |, v0 }: N+ S/ J" _9 v# {
注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
( H) S4 |" G" `( W$ }- }$ H. e6 e" f) c4 P5 Y  G

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif4 d; z# S) V# R* f4 x3 o
重新命名后,好像就不更新了啊
( i) O/ t  j' Y- M" h$ g& o5 s+ {2 G* u: d  e
弄个批量的宏
  L. E2 a: E% w( [4 h
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif! z. {; c: s6 P" [
估計又是『脖子掛餅終餓死』的慘案一宗。
4 ?- @1 O0 b. y1 {8 w, s& n2 n3 `* O& |7 f
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了3 r  a- h" q- q, D0 S+ w

! V8 j6 o- F( K老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
7 A6 M& f6 o* g把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
& ?. |! D8 [7 |+ R7 ~5 @: u注意!必定要使用複製粘貼的方法,才可嵌合內 ...

- K! w: C, i. ^$ v8 [对不起闷大,宏我看明白了
9 H% n+ r3 G4 [8 z0 ~4 S想起我未说清楚,最后一个“_”前的字符也不固定
; V2 e0 b+ m8 x" ?4 t. f  J6 g有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
4 T& [6 q3 d7 [8 c对不起闷大,宏我看明白了- v6 ?9 P4 J" y# ~9 V' ?  u! |9 C! f
想起我未说清楚,最后一个“_”前的字符也不固定7 B/ K" p& m# Q. f3 @* y
有没有直接可以从末位数的, ...

% K* R. Y& I5 v+ _( }( c那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif
  q# G# ~- V/ |9 v  `& j那段宏就是奇哥的要求
& G( k- \+ f, Y6 V" y! e" L4 X3 K

  H7 C' ~( Q- H9 a, G我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
2 E- V3 c: n* d6 S2 X$ q/ l* r* z) V请问partno是不是可以改成任意名字,如“工程图名称”
7 u% J* v9 |- I2 F) g" x再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif/ U2 h7 m, Z3 z' Z5 v4 ^4 Y
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
' h+ T6 T! I5 b1 [- P0 W1 b! r请问partno是不是可以改成任意名字 ...

. ~/ I9 h( W% V在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。5 x0 f0 H0 W$ a; \3 o

9 A$ G& N& S/ i3 K$ @/ upartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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