QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,* o/ G$ x6 }" Z! Z' F! x! |- k
现请教大家,谢谢参与~~
: \7 v' I( f( l$ B( C
, M, j/ R. c$ w2 f
1 R' t6 Z, q3 V, F) u' R) z8 h$ e下面原贴标题和地址
, _9 e# e: H1 \% ^3 [; i1 xSolidWorks中方程式的应用技巧
$ C: R3 Y+ V' J/ \http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=489137 p9 t3 ~- h. O, C8 y% O" T! m' ?

) @2 [* X" S) u: O5 H2 x/ n: X! h7 x3 Z8 d/ U9 @& v
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
8 m0 N+ A, x$ U& d" X  ^' N' ^, u6 W, K
方程式目的是从文件名中从左到右取9个字符
; H; t4 @5 q) \. y" _3 ?9 M
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
, N2 j: d, l/ M7 Z5 p# T# m" o/ ]4 y+ Z
如下VBA宏的編程[2012版測試]
) d- f# a( V6 }+ n' m( `5 ~% {. \7 i$ [/ k- y8 ?  K6 @
' **************************************************& v( J% n2 I1 M" B5 @  ^* S/ q
'  macro recorded on 06/24/13 by lsc
+ M+ D4 t/ R7 J: ^$ T* y' **************************************************' J7 s* z7 p0 x
Dim swApp As Object
- `$ ]/ N- U8 D8 Z6 HDim Part As Object% L5 c; T1 M3 b7 H% U3 e) ?* Y
Sub main()
& _1 l2 M! E2 I) K  S+ B, `# O* I7 TSet swApp = Application.SldWorks( Z+ M8 M7 |5 n. k) g3 S  ?
Set Part = swApp.ActiveDoc
% g5 I4 V7 E( W5 I+ x4 TSet swModel = swApp.GetFirstDocument
1 G) z0 M& k- n+ ?: k  X' rpath_name = swModel.GetPathName '取出目前檔案的路徑及名稱
- C2 _. ~. P2 v& S- qname_ = swModel.GetTitle '取出目前檔案的名稱7 e8 I$ S5 w% d8 \: \. t
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
$ n1 f2 f8 C& u' tEnd Sub
+ Q) r$ e" g5 k- D' ]

评分

参与人数 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 编辑
3 W4 i* R& @$ V- q/ ~+ |+ F
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
- y# x7 G/ N5 `* J  H! k- X7 ~如下VBA宏的編程[2012版測試]
  g# C. f. i" g: I; h
: m# A/ X! G/ z7 h* Y5 ~7 `4 H' **************************************************
% E7 g& ?5 |; \3 Y- J( u

1 [# i7 t" S0 M9 D十分感谢梁老师提供代码学习~~4 p: F3 p5 ^+ |' m

# u5 y7 v* y! ]  H( Z提示进来学习的坛友!
+ w' K9 J4 w5 u5 q
通过在自定义属性里嵌入宏代码,问题已解决。- R' b& {+ H) X% x) a& Y/ Z
下面代码在2011版本中均已测试成功。
! m- |6 z$ s% z& G
  F+ @" V# x& j( ~9 }: i15楼代码,可以取左边字符
. i8 ?! r/ |+ Z4 ^$ G* F19楼代码,可以取最后一个下划线后面的字符。
, V4 G: m; \# y# G* D7 ?4 V4 [; j3 u# R' H
下面这段代码,可以取第一个下划线前面的字符。* ~1 I# z- l. |# G4 z$ s
1
; N5 F. L$ F& E7 ]; F0 [1 Vdim yfd+ f3 ?& H& E2 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.gif
8 W, Q1 y7 h/ G下面是我在其它论坛 得到的 某位前辈的宏,你看看

3 x- ?) D' t/ Y# L感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
2 I# x9 x6 [' g5 _) J7 c蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
7 l$ J: ?' V# k9 C5 y5 ~- i& A, [http://fans.solidworks.com.cn/thread-33730-1-1.html, v0 \# I" K, |5 V+ h* A4 |3 ?7 l
蛋大的教程可能有幫助
: U6 j8 T. c& I' o
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?( d$ [) V9 i4 x: i- s! B9 a) F
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif+ Z! I% n! J, J! e
楼主添加成功了吗?为何显示无效语句?

% ?' b3 d$ _2 B5 R没有成功
发表于 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.gif4 @+ h; J9 D5 [+ a7 c: F9 j5 ], w
楼主添加成功了吗?为何显示无效语句?

: Y8 K, f4 \% V) |+ s0 h看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 ! i3 ]. A1 {( v( [# H$ ?* v
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif8 M0 s+ N3 W, S1 J) P
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

  x% k3 @+ E+ G$ [, X: i1 Q
% Q; M* r6 e' y# H. Y不好意思,再麻烦闷大老师,我的是2011版本。
2 c" Y9 |  U9 N3 Z# V, y+ p我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。
9 u  W) `, U$ g/ n: d# t) ~是不是还要添加方程式呢?. ]/ n; F" p" U9 Z
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
! u5 Q' j' V, T  k2 A8 I 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
8 ]6 n, o6 W/ V; C& C
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
! {# Z7 J! b0 M' ?  J  ~試下這個

- A+ ^7 c! v; |7 D( r% c
3 S9 h4 M& a4 @: Q谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。$ Y9 U& `7 j6 h* E
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
- |( U5 t7 ?5 h( |7 T也许是学习版本的问题2 V& b( d' |6 {0 o
1.png 2.png " K. A# w1 Y5 z
2011版本
; I/ C  B& M$ `( O) r 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif7 y. k1 e0 O- p8 v
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
3 ?3 |! y6 \9 e我新建之后做出的,做很多次,还是不好 ...
# m! j) I; f6 p, @& M5 k/ }
謝謝qiminger兄回帖討論。
: v+ ]5 C4 B6 ]; f! g. k
1 H8 c6 H* s9 W方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。. e3 N6 m6 A+ x
問題在內碼嵌合到“數值/文字表達”不對。
. N7 e3 _2 `" |* U
6 i+ h" Z, i1 j8 f  y3 a8 N0 [把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
13 \$ m+ \; K1 t4 y& |& s
dim dummy: X+ ?& B) O" {( k
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
: B5 W) e8 e0 A$ n4 W
3 r& a/ Q1 P% @7 Y2 j3 V  R

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif8 }: E$ z5 Z+ L- \* C
謝謝qiminger兄回帖討論。
( Y1 o' J2 ^) s; w% e; r) P$ e5 b
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
3 c; w  H9 U! Z) B7 b
闷大,请教一下。我这样格式的文件名如何提取% ?) N% g2 H! H5 x
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif0 {" q$ g* c) X# d
謝謝qiminger兄回帖討論。
# c+ E# c2 V, f/ B' D4 t
! b1 \% X8 q9 y方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

2 \; w$ Z4 U- j6 h) a% t成功了~~' W# g; R; Z( `" P& ^( i4 z
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
2 n- E; ?3 ?: K- z% X宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
! _9 g3 Q1 I# ^試下這個

5 P) {4 L) T& Z重新命名后,好像就不更新了啊
- w# O. f4 A; d+ t7 X- p5 G! e
/ |3 Q0 V1 S2 w9 h/ t弄个批量的宏
: v6 k3 G4 h0 f7 r( @
" O7 ~3 ~; a4 h& j; {7 M9 \* l
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑
9 p! G7 C' A: w3 U: [
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
6 b* U* e% `; W' \闷大,请教一下。我这样格式的文件名如何提取( J0 D8 I4 Z4 w
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
5 c2 G$ Y9 Q( Q: D! b( {1 f- MDim Txt: Y2 j  _9 B/ P
Txt = Part.GetPathName4 E6 v  H. X2 E# g
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)7 |" b& N8 ~, p0 M0 P
Txt = Left(Txt, Len(Txt) - 7)0 |& n, ~5 U$ ^# ^* Q
Part.Extension.CustomPropertyManager("").Set "partno", Txt

2 B% I7 E" t, P/ S  V7 E' R( M9 ]把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
/ a% C: I, y; T4 a. ]注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。6 A! u# b  c' @; Z: ]

7 ^1 R! f3 X$ R# t

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif) e$ r4 a. P" [
重新命名后,好像就不更新了啊
9 r" m# q# g0 a$ H/ a
9 ~" D0 k& J8 O8 q# D: e弄个批量的宏
  e  h# F$ u; E
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
3 x; |' P8 R2 M- n估計又是『脖子掛餅終餓死』的慘案一宗。

- S6 u, \, |4 H/ o我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了
0 |, X" x; p. ~! _: O! w/ b) H6 n  b" E, G3 E
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif5 {2 P# }0 `! P* M7 t
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
8 ~. b; s: E6 U$ H注意!必定要使用複製粘貼的方法,才可嵌合內 ...
9 [0 V/ G3 a8 {$ I' p& d, E7 [; K
对不起闷大,宏我看明白了
0 A. x+ I) w) Q7 w7 r) Q2 |想起我未说清楚,最后一个“_”前的字符也不固定. l; F0 F% \, }  {$ W! q
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
2 q( k+ a8 ~+ N/ S) K% M  t* K对不起闷大,宏我看明白了3 j  d: \* Y" R$ Q# @7 d3 k- \- C
想起我未说清楚,最后一个“_”前的字符也不固定$ z4 V( d( Z6 O
有没有直接可以从末位数的, ...
7 _3 D* e7 X2 L
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif
, }1 q7 ^8 M5 V  r  h那段宏就是奇哥的要求
4 ]& V& Y) Y( W' j" ]

- m5 j- B+ k' P  Y3 g+ p2 i! P5 e我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。+ b3 M6 ]% E  S1 a: l
请问partno是不是可以改成任意名字,如“工程图名称”
6 m5 X4 g, g, S( J再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif3 _1 [% d4 B5 ~0 w1 z6 ^; B
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。4 f+ \- ]) [1 s3 O
请问partno是不是可以改成任意名字 ...

- f4 j. A. v! [# v在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。4 p5 m/ M. N8 ~  P) w( L& I
( V4 r8 C/ Z# s" y/ b' X* l
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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