QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
! j& S- ^$ Q4 X% A0 @( i) |% ~+ M现请教大家,谢谢参与~~
' k! F& o1 J* b; B; `6 y
0 m3 d& l% J, {9 b7 U) v: t" g8 w1 @4 r; a: b; G
下面原贴标题和地址7 k  @5 R0 _  j# V, ?
SolidWorks中方程式的应用技巧
- O9 s$ V% {, n% k0 }' M0 lhttp://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=489139 D7 k1 d$ P8 ?! Y
; R. Q5 }+ V: {- n4 E# E

3 w% Z! I$ @2 J1 L+ H原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))3 j5 \; r& F- ~( T7 U
. x1 R$ W( d* [, A, u
方程式目的是从文件名中从左到右取9个字符
$ f) b% `* ]) x3 b) k
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
+ c7 x. n8 w; v! I2 l. e% D8 L3 c9 ?1 k0 Y. ?2 t
如下VBA宏的編程[2012版測試]
4 J! t2 o9 o( z
+ a4 x& l' C. F) r- ^# b/ t0 @' **************************************************
7 N* S$ K' f) `'  macro recorded on 06/24/13 by lsc$ S5 a* Q2 R; Z$ \0 b* v
' **************************************************( I  k' s# B; K! x# o8 P& ?
Dim swApp As Object
8 l3 Z9 r: ]; _- |1 g+ [5 N. VDim Part As Object
: v9 f4 F7 X7 r3 M7 x# @Sub main()% c2 w6 \5 y) @; ^. ]
Set swApp = Application.SldWorks! }) I0 {4 N" D7 F
Set Part = swApp.ActiveDoc6 d& b( k9 J  V! [) G, h7 j. F/ E
Set swModel = swApp.GetFirstDocument: y% R# c# g! c5 X" `
path_name = swModel.GetPathName '取出目前檔案的路徑及名稱5 r& d: g( I) O/ J1 g, w6 ^
name_ = swModel.GetTitle '取出目前檔案的名稱
5 J$ p2 v7 |6 G# ename_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
6 E& ?7 a/ _* [: z; M; a2 h* @$ IEnd Sub  _& O. @# v2 `" f) c' ^9 L4 l

评分

参与人数 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 编辑 ( I5 j! U& G( Q/ z0 m
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
7 B$ ]5 c, A& S" u* y6 ~4 c如下VBA宏的編程[2012版測試]3 J0 a3 q4 B9 h

( [7 [- _; n* O& [% c' **************************************************

7 Q) `/ F: s. R1 k8 q9 e! L; z% T- v. k
十分感谢梁老师提供代码学习~~8 u; F/ \; P* B8 s; W- }
! H6 @6 D, w8 x% t- `$ g
提示进来学习的坛友!
6 N+ O2 E! f9 U2 Q
通过在自定义属性里嵌入宏代码,问题已解决。7 d4 {1 H) O2 o8 T. G* [0 C
下面代码在2011版本中均已测试成功。
+ ]; P& G% X! N* R  y3 [  c$ C! r3 m- g6 O/ N" a7 N
15楼代码,可以取左边字符: A1 j% V5 j4 O& A
19楼代码,可以取最后一个下划线后面的字符。
) t9 x0 M2 k  O1 u' d+ u
. ~( p' A+ p* C) m下面这段代码,可以取第一个下划线前面的字符。
; L6 A! d: [* v$ S+ X* v5 x/ r1
6 `6 o" S! Y1 q# Y1 C5 h/ pdim yfd
; w1 G6 k0 }; H4 `  L7 t* Cyfd=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
+ R& g4 Q  `( x' o: ~下面是我在其它论坛 得到的 某位前辈的宏,你看看
' X% E9 n  l7 t! T9 s
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html" e# y" j& R& M8 p3 K1 j5 X4 m
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
5 I# w5 o) h3 }% p- ihttp://fans.solidworks.com.cn/thread-33730-1-1.html
1 a7 E8 O4 t# F& N蛋大的教程可能有幫助
  e# _3 s) X& ^# o' m( e/ i0 o1 z
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?1 y; ~% q0 h5 Q4 y0 n; X
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
4 n. W5 r& `( n, C- w楼主添加成功了吗?为何显示无效语句?
/ E" A! u+ Q( C7 z
没有成功
发表于 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
) G$ S5 X/ W2 R0 [楼主添加成功了吗?为何显示无效语句?

. L! q) d4 N! N: |2 Q6 F看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑
2 J) z8 C6 Y/ H! g1 F# J
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif" u% s5 O( v: Z' U$ e( K
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
; B$ p& G% G# Z) }" D

# T$ j* i4 p+ L, b, x不好意思,再麻烦闷大老师,我的是2011版本。
5 ?4 o: A6 t1 \8 M- J+ D我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。* U# n* w$ T3 H) ?8 _& [
是不是还要添加方程式呢?5 ]' [/ T4 N9 n/ z& m& {* @
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
* O) b, A; }& p  @ 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
* I8 S6 J. H+ C: ~, U
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif. G' W2 J; }8 M) F7 @2 B9 x
試下這個

. o0 H3 }/ c- Q0 Q
# l. j  [; ?! w& a; t谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
" `1 P( x4 z6 u' E9 l/ N我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。' C4 f! l: _* U# E' X, B6 u; @
也许是学习版本的问题: S4 r3 q# z5 V$ B: I, `( n
1.png 2.png $ y. U  ~5 P/ [
2011版本
' p) L/ `% o6 } 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif. p5 h. c- l# h* d4 Z* V
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。  g$ a; d) ^7 i9 ^# F+ M6 k7 x
我新建之后做出的,做很多次,还是不好 ...

- K7 N/ P- E2 d- b+ Z% f* m謝謝qiminger兄回帖討論。3 L& y- T6 H( {- l$ q" M; u' x

' o" v! G! r" k方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
% e' X( z9 ?5 Y; ^$ z2 X  n4 M問題在內碼嵌合到“數值/文字表達”不對。+ X) w+ T* G- k4 {* w

- N, C/ t6 S, l3 l9 {+ f把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
14 A, g$ ]7 T" F  P7 Y. ]' M6 ^. ]+ J
dim dummy0 l$ q4 ]9 X/ P0 B/ t
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
; ~3 U: x  C8 H# ?
) `$ y' N& T5 M" |! p

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif2 R3 Q9 `) x% O
謝謝qiminger兄回帖討論。$ `3 l5 C4 N8 G% ~; m

# z/ J) G) m( ?3 ]# r方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
7 M* ]2 a9 x5 o: \
闷大,请教一下。我这样格式的文件名如何提取
: A  T5 C# b7 c( y9 x! t- u* s例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif2 t% W  p5 R% D# O- |9 F/ V9 h
謝謝qiminger兄回帖討論。1 c  }; a9 {1 Z7 R: ?3 u

5 E: b1 h7 f2 ]# c方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

9 z3 v" ~: Q+ P9 }& @  u" D. e成功了~~
" S' B2 j0 v9 w2 o6 H直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,8 F( V3 q5 |' Z9 f' ^
宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
4 y' `5 s9 z% s- n0 U試下這個
( `" ]; H/ s; C2 [
重新命名后,好像就不更新了啊
8 k* A2 g* F3 Z$ V6 l
7 G" r/ K# Y9 `; r弄个批量的宏
; m8 d: s- i. V
( C6 K7 n, {0 B$ _; \
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 # F( R2 x/ F5 {
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
$ A9 |/ X1 x! Q  O* |闷大,请教一下。我这样格式的文件名如何提取/ C) E$ c: r9 `/ F: ?! I
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
13 |* [, P# Z$ _& @/ B( O
Dim Txt
% l. _  D6 _& k; ]3 E7 UTxt = Part.GetPathName7 F; t. w+ Y- @1 n$ L/ m
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
" ]# X/ ~- B6 hTxt = Left(Txt, Len(Txt) - 7)/ h. e- _4 Z4 L$ x8 A; d5 I
Part.Extension.CustomPropertyManager("").Set "partno", Txt
, S: t" O, C0 Z& }" r( E; d
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。3 O# d7 K2 s( j0 U
注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
: I* Q/ R  ^( |! _% i2 v% i% L9 [9 U. z3 x* m

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif8 s+ Q* r" K: S: ~7 [; x" ~
重新命名后,好像就不更新了啊- J3 a( `6 p, v5 L& S. _) c( {& D
, ~/ G7 [0 {- h! ]/ ?2 S/ V' _
弄个批量的宏

# g" i1 V8 p0 s估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif: M) F! o4 l/ y
估計又是『脖子掛餅終餓死』的慘案一宗。
: u2 i, j- X/ r; ^* a" H9 n4 e5 M
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了
7 |$ Y+ a) O1 n: k8 n5 i  L4 T; ~% s, O! P' S2 q% S/ M. L
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif5 q" M! P" R. {3 o, m" e- n0 r
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。: I% P% F( A; S' C) O, e  q
注意!必定要使用複製粘貼的方法,才可嵌合內 ...
$ F6 n( n1 t  m& T
对不起闷大,宏我看明白了
( ?( v! t1 W/ r7 X2 ^" a想起我未说清楚,最后一个“_”前的字符也不固定
+ |3 O% J% M$ T有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
5 E2 y1 N: |. d6 d& v对不起闷大,宏我看明白了( Z7 p! [, S# V3 Z6 w, w- ]
想起我未说清楚,最后一个“_”前的字符也不固定( K8 S: {- F$ D6 X
有没有直接可以从末位数的, ...
0 f+ o  x5 g$ R1 g" E5 S
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif6 h: R; e! n% b+ k- x" w2 @5 y
那段宏就是奇哥的要求
2 }9 P7 C" r$ U. [

! q4 |0 p; k. z1 O+ r我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。3 A0 F* c( x  ^6 f) o
请问partno是不是可以改成任意名字,如“工程图名称”
% G. Q; O. H+ C+ d* e1 E" D再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif6 E) @- x( x9 U" W
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。3 W  v; L1 `3 r' z, H0 A5 y9 G4 m. ]4 U
请问partno是不是可以改成任意名字 ...

# j' Q7 b& y% K0 R" o在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。3 X6 c6 T; B% k* [/ L/ ~8 W

) u0 ]! F6 C2 l) T0 }partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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