QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
/ |: v( o/ S1 p# g: R! W现请教大家,谢谢参与~~; Z8 t0 D6 F# q
# f% T6 p5 m, k$ y- b9 N
; p& E5 P$ S; t
下面原贴标题和地址
; z# k5 g$ M. Q' T$ c' I* zSolidWorks中方程式的应用技巧
+ @  c  G# O# h0 |' W2 ohttp://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
# R8 r: S$ p$ D# q( p7 j. f2 U: b2 l4 `1 |! c

2 y7 g  v% {6 f  N" k原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
/ w) F) Y2 P" J3 ^- E; f. c' M- Q% _" C6 p% J/ @1 ~' O; D
方程式目的是从文件名中从左到右取9个字符
: j4 R2 ~  _$ Z. A  H* }
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
. C' ?# v6 R9 I5 n2 A8 [& e6 T3 X2 ]2 Y5 D& l5 A) T2 V2 ^
如下VBA宏的編程[2012版測試]
* f0 W2 U/ c5 n5 Z1 G
- t) t' y) z& ~4 e7 `% r, U. K' **************************************************
* j  `$ g/ V% A  x; {+ k% ~+ ]'  macro recorded on 06/24/13 by lsc9 c: Y! z# U; k9 X
' **************************************************& u/ U8 x: W$ k- @9 n# F) x$ w
Dim swApp As Object- l( w4 p5 ~4 u. s; L+ @1 p
Dim Part As Object
: ^5 S0 ~  q0 m, I" q9 X! OSub main()
3 h$ i+ H9 ?$ RSet swApp = Application.SldWorks
8 {( S7 n" S/ l& `, |+ `$ W. L/ USet Part = swApp.ActiveDoc% ~& k$ I; J) D' A+ j/ N; Z  q+ N
Set swModel = swApp.GetFirstDocument
. I% a9 L4 u3 Z  V+ Opath_name = swModel.GetPathName '取出目前檔案的路徑及名稱1 F9 m+ c2 H& D
name_ = swModel.GetTitle '取出目前檔案的名稱
8 z: v, ?% E; h/ O* L: n1 b6 W: Cname_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
& i& U9 W3 t! l& p, X& p( E+ N7 OEnd Sub
1 c7 k6 R9 m9 t5 N8 p6 e7 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 编辑 4 X% [% i9 x8 R5 @4 w
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
# m: t% e+ b1 s) W4 W; |如下VBA宏的編程[2012版測試]% k  r1 a7 x6 X; `6 L4 g

/ B, W1 f! }! {. k, m8 M+ \' **************************************************
$ s. e. M, ]. U
5 z( R8 ]# S9 o. |, {1 }4 w
十分感谢梁老师提供代码学习~~% |0 b- z7 A, W1 x- K

" _# z; v1 v" ]+ S/ p  b) e提示进来学习的坛友!
- P) [. T: I6 I, g9 ]2 k
通过在自定义属性里嵌入宏代码,问题已解决。! h: u+ H3 p. H+ c8 [6 h
下面代码在2011版本中均已测试成功。( Z' h% ?2 D7 Z' B3 X

0 n' x8 d4 \5 }$ i2 U( a15楼代码,可以取左边字符
+ L8 }9 E2 Z! |" \) U7 c19楼代码,可以取最后一个下划线后面的字符。
9 Q9 G( f" C9 o1 H( C+ g; S* U) ]' M$ e% Q5 g. @/ h' W
下面这段代码,可以取第一个下划线前面的字符。
- C/ w) @1 Q9 {/ x1 v4 j1
; M; x9 b4 I/ U! N! x" ^dim yfd
0 w( }, z& h1 b8 h  G' Oyfd=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( z- ]8 y/ Y" Z2 J1 k
下面是我在其它论坛 得到的 某位前辈的宏,你看看
2 ^, G5 _$ ^  e2 ]
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html' r2 ?3 P/ r3 p& E
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
+ a  B1 l; _2 F2 p4 whttp://fans.solidworks.com.cn/thread-33730-1-1.html# J. d  X9 G% ]1 K0 b# o6 H
蛋大的教程可能有幫助
# s' z# g8 @" S: ^
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?/ M" x3 \% J5 }+ J3 q
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif: m. b  s3 f2 s4 \0 n$ d4 I
楼主添加成功了吗?为何显示无效语句?
  C5 M3 `' f5 H2 [
没有成功
发表于 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. g4 }( a2 Y8 a7 u1 o# n2 Y/ m
楼主添加成功了吗?为何显示无效语句?

3 g2 z! h  b- H. f2 O/ H- w  z- |' z; C看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 . t+ ]* _6 f, B4 p
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
* ?$ |* V# w, n2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

5 w3 z# n' K+ p: n. m5 b2 c, F3 l7 e* `% b6 P6 p
不好意思,再麻烦闷大老师,我的是2011版本。
4 K' K7 P: y4 N我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。6 {. E' H' }. ], j4 H" L3 k
是不是还要添加方程式呢?
1 m5 w% f1 Q. I0 c  h  c QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個+ _1 [% K/ T: f# v& G
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
2 c3 a8 O0 D: G% X) U: R
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif) E' L# S2 Y9 I- \
試下這個

8 ^& F, Z5 ^& ^  [+ D( G! ]6 `* A3 t* j
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。# d3 A/ o% b& _! x% F- j$ Y& Y
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。$ o1 g, u% \, m! z& s" M
也许是学习版本的问题. B. @8 H# T# _/ r% z: U! Q
1.png 2.png $ f6 M% h: `& f. A& o* k0 u1 n
2011版本
3 O* G, _$ ^' V: b; u; _( I: M 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif
5 T( ?4 o0 R1 a0 }3 m  U) t& Y0 U谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
; A5 y& H( ^2 D) X' \  m# D! n4 N, ?我新建之后做出的,做很多次,还是不好 ...
( S/ M8 L/ W2 ]% ]+ P3 [9 O
謝謝qiminger兄回帖討論。" S" K5 C$ g  j0 }

9 T/ `( e+ j3 P方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。8 N( @5 k# C# `: ^* M; R4 a
問題在內碼嵌合到“數值/文字表達”不對。- p' |, @% Y/ t: |
; Z8 E; [& a  Z( G
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
# c8 W) X: j, ?3 ydim dummy9 d) [1 R0 u  `& e
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

# a) O; K% d+ R* M. e3 U2 Z
  _% C' \+ R/ A! W7 X4 H# s

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif$ c! X' [' U: J2 H& t
謝謝qiminger兄回帖討論。3 l9 E1 ?4 D" ?$ K$ ]. ~
% H, _+ ^4 G# t+ U
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

" b3 x# o" e: z1 A- o闷大,请教一下。我这样格式的文件名如何提取
$ N! s) j: z9 m8 ~5 d3 c2 t例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
4 \: [4 F& U5 |! g0 F, H謝謝qiminger兄回帖討論。5 x0 l5 s. `1 g) t: [, S

0 x1 X) Q9 L) x% A" i. z方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

8 n* x+ h/ m# f  {: n! X成功了~~
( N# X/ b4 W6 q2 L! I. U: Q直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,1 Q: r9 m& Z( X" ~$ l
宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
3 E  F6 E+ x) h; h# ?; E+ K- _: O試下這個
6 D: V" Z2 y$ W
重新命名后,好像就不更新了啊
5 X5 a# B' w; O; H& F3 C1 s! Y9 X: e! N
8 U- ?3 D# J; j9 ]弄个批量的宏8 y, x6 A  r% s6 u
8 z2 _; U% C& S
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 . ]+ d) v; b% ^/ W
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif; D( _% a3 W2 J1 O
闷大,请教一下。我这样格式的文件名如何提取
. d9 J: Z8 Z$ I) l" |4 t9 q例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1! W" W5 Q# E* h; }0 }+ E( P  T8 B
Dim Txt
; f9 f) z( a/ GTxt = Part.GetPathName9 I/ C5 c7 o! A% h
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)2 \$ E1 _8 z5 R( \, S4 c3 `
Txt = Left(Txt, Len(Txt) - 7)5 H; i8 x0 u+ c# A1 Y
Part.Extension.CustomPropertyManager("").Set "partno", Txt
. I5 d7 j. Z, O% B9 X% t
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。) K0 d0 C8 `( Z
注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。! ]  z# H0 j8 H$ G; r& n, O# q

9 K6 G7 f, j) e3 w+ W( w

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif' N3 q9 [' I% J9 H+ Y7 F
重新命名后,好像就不更新了啊
( e' L8 _) k( }! P( C5 Y' V- C
" S1 `  @. S3 `0 M( z弄个批量的宏

$ @2 q, D7 I$ P估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif3 t/ P  }: S8 _2 I
估計又是『脖子掛餅終餓死』的慘案一宗。
  v* y9 J; ]9 T2 ^- {" D
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了
3 B1 S" B  [; l5 i% g& c. l
4 A. F: Q5 E( {. ~老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif  Q3 T0 B4 N0 ~9 x& S
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
- h# @# z1 q- k" G5 T5 J注意!必定要使用複製粘貼的方法,才可嵌合內 ...
2 h6 A' `1 A7 n. O% c. a
对不起闷大,宏我看明白了
8 F+ ^) _0 D# m( G" e, _# }# |想起我未说清楚,最后一个“_”前的字符也不固定) X& h9 z' T7 c, R
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif3 `+ i$ Y; Y7 n7 g8 {% T* C8 g
对不起闷大,宏我看明白了" g8 l, @6 C& ~  S2 I- n! r
想起我未说清楚,最后一个“_”前的字符也不固定( k3 s/ s: L, e" E! ^0 M  }6 j0 {
有没有直接可以从末位数的, ...

* a. A. Y5 c3 Z那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif! m) U; z8 O' g  g, K
那段宏就是奇哥的要求

5 M, C2 a8 O  N  e
" h9 n, a( z6 G0 R( R我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
# t+ i1 c; R7 W, o* l请问partno是不是可以改成任意名字,如“工程图名称”4 j# G7 N+ b& e3 h) |
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif2 k; r7 _' v5 q! r9 Q; |/ @
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。- m/ l2 {+ f6 L5 h( w5 G
请问partno是不是可以改成任意名字 ...

# w3 ^5 e& t9 n( A$ S  F在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。( X$ r; v7 g3 ~6 n

3 W) D& ]+ x4 ~5 z8 w$ Zpartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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