QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
3天前
查看: 31116|回复: 123
收起左侧

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,9 p5 ~3 e# S# k8 Q. ?
现请教大家,谢谢参与~~
' g, l$ U3 ?) m) T% b5 N2 ^8 _3 h+ \
4 k+ s7 v6 N1 Q2 q8 K
下面原贴标题和地址
8 O: J  X$ x- b2 H; P6 t( N( a2 mSolidWorks中方程式的应用技巧
# v0 @9 Z0 _$ m) ehttp://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
1 b2 G: R3 e) [1 |
3 r/ U6 \( a6 P/ \* A7 T6 p1 X- w2 A9 K0 V$ ^4 a/ _6 y3 Z
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
" @/ h* [3 j! ]% D+ z. v: L) p
# V  w4 t$ [% w- [( w$ j: Y方程式目的是从文件名中从左到右取9个字符
' ]5 O9 \! @* x0 {2 x
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
9 g+ `, _! I" Z8 R% c+ j5 E
2 r' J' [4 l9 a' Z) w- O* W! U如下VBA宏的編程[2012版測試]  ~  a$ }! I& J, n0 `: n6 u
" ]7 L0 u* O0 A* k& H' m0 ?
' **************************************************
9 \2 N3 z) y7 c! z: R'  macro recorded on 06/24/13 by lsc! ]" d# Z2 ]4 d$ e# e6 h2 C/ {. T+ w
' **************************************************9 M/ D' v$ q# U; @8 K
Dim swApp As Object/ V8 a( q  I( P4 s5 a+ y
Dim Part As Object! h  \1 \' a0 L, s3 ^1 v; _: e
Sub main()
* c6 Y/ d; {, W" hSet swApp = Application.SldWorks9 Z' t. W. J2 N8 P6 v) \- I9 k  K
Set Part = swApp.ActiveDoc; P4 N# Y. l9 X$ M- m: z/ Z$ B5 o
Set swModel = swApp.GetFirstDocument
1 b# r4 ^( M7 h& Z/ Q4 Jpath_name = swModel.GetPathName '取出目前檔案的路徑及名稱2 C% c: x: \- z! n6 L; Q
name_ = swModel.GetTitle '取出目前檔案的名稱
5 ?. a/ `% C9 N8 {6 e2 B5 Y5 uname_9 = Left(name_, 9) '取出目前檔案名稱前9位文字- k' M0 I( d+ E# Y4 Q
End Sub% E2 |* T) [" 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 编辑 1 W) s& K2 {; a6 L
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
& o* v& z. q- N4 T2 Z0 ]! H如下VBA宏的編程[2012版測試]" L: C8 g+ p  v# d' O
/ l+ O& y* O! w+ X6 R; ^
' **************************************************

- V9 r# [- P0 M6 m6 E; `3 h% o
9 Y5 N' a5 T) |十分感谢梁老师提供代码学习~~8 N# J# {" ^; N4 s& {# F* ^
: E; |  P- n; T* g' _% z
提示进来学习的坛友!: {$ {* z6 f: D
通过在自定义属性里嵌入宏代码,问题已解决。
/ X( A7 ~7 z- P下面代码在2011版本中均已测试成功。
2 j: Z" X; i$ q  n! X7 q  l) \( G' r
15楼代码,可以取左边字符" M$ y8 M  g' f+ s% V! G( b. H! ?$ [
19楼代码,可以取最后一个下划线后面的字符。
& A1 M4 M, i9 @
% s" s: F0 k. ~下面这段代码,可以取第一个下划线前面的字符。+ `2 M) p, T9 u- a# @; E: O
1
/ p* Q4 X. [# ~4 Tdim yfd" E6 Z* v- m1 ]. Z
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.gif3 ^: @* q! S% e) p
下面是我在其它论坛 得到的 某位前辈的宏,你看看

0 I% E1 h# x1 O( R! o/ k感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html: |  I5 Q/ Q/ g! y; G9 _( I. p
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
2 K$ F! m# p# X4 Ohttp://fans.solidworks.com.cn/thread-33730-1-1.html2 w6 q* B7 v% B$ J. \
蛋大的教程可能有幫助
& r$ B1 V% m; ^7 a+ F4 E7 K% R3 r
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?3 F$ {9 z& c" E' p. j1 X/ Z) f
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif2 G" N# Z7 D6 x7 {) ?% Q) X. X
楼主添加成功了吗?为何显示无效语句?
1 E" m: P/ P' S% w4 `' E
没有成功
发表于 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; T1 g9 P0 ?' x: P楼主添加成功了吗?为何显示无效语句?

5 F9 I7 i- F+ }- o看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑
' ?, x, X7 `. k" x$ O
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
$ V1 U( d0 r  X7 w. s+ `2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

3 a' s# g- m' D8 o6 D
7 c) Y& ]4 \" x不好意思,再麻烦闷大老师,我的是2011版本。2 k* Y* w' M/ {; E# z. c
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。% \3 p% w/ [9 K. j6 _5 L
是不是还要添加方程式呢?9 f" I& `4 O, H& t- E7 f7 i- A
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
# d; N$ J9 i+ _) b8 ~" L0 f4 t 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
# n& c+ d. k1 P
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
& G/ P# ^* E: z, _試下這個

/ o& K; k( B1 g
- m. Z! B8 b7 @' h+ N. q$ ?, l: r谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
6 ^8 l) x' N) |我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
+ p2 j" }4 D# F4 i也许是学习版本的问题
/ n0 h! a  {. M" \ 1.png 2.png
) r3 w' Q( y! c; W: z, K0 g" g' `/ Z* O2011版本7 ~# H3 _8 i5 p* k3 a
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif4 d1 }* g2 N  y! t( V1 n( }
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。: c) c7 G3 h6 `- ~3 [1 i2 x. Z
我新建之后做出的,做很多次,还是不好 ...

# Q( _! I0 ?& u) b& d謝謝qiminger兄回帖討論。
/ _6 q( B* m1 y$ U7 a' K% ]2 I0 V/ X% Q2 [% ?% l
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
5 \: `3 k, M+ [+ {" e7 V! ^問題在內碼嵌合到“數值/文字表達”不對。
& p8 N/ D/ j: n% n' d, m! S  T) Z4 N8 B$ J! u
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
. ]# n! a& `5 a1 Y, @dim dummy
) M. l9 a$ O3 o0 Ydummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
. f* d9 R. e5 I" t5 E$ `& t0 x
/ J* ]0 ^) @5 h& Z) j0 G) }

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
- D& l: D0 {$ h  }6 z謝謝qiminger兄回帖討論。
5 J6 k7 N+ q  f5 @  u0 k2 C3 J7 r
# ^! I- P7 m! ^; e方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

. r6 Q! o9 s: {/ t闷大,请教一下。我这样格式的文件名如何提取% Z2 A6 J, D3 S$ z
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
+ |/ _7 G3 p& l6 U0 M3 J% O謝謝qiminger兄回帖討論。4 T$ ~, _  I9 p; a/ U0 E5 K& p
  ?, D) K. I% x% g& ?  b
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

+ O5 T$ N- O9 Q5 L, @: F/ ?+ ^  ]成功了~~
( v7 p) @) G- U/ ^4 S直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
! V8 h2 g: k8 S! H% a宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif8 N7 b% H  x4 K0 G
試下這個

4 j) W/ z9 y7 O( U# w$ @9 U重新命名后,好像就不更新了啊
) B/ @% Y3 A- X# |0 X- z# S# f4 T$ T$ Z/ e  J. N" ?9 ]) f) R
弄个批量的宏
6 D2 m/ \( [! C9 ~# @  C0 N# x: K2 X; S7 ^- A' T/ z! ^
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 : o* D* Q; r  g/ }
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif/ v! s. Z, ^. M3 [6 G+ B4 t! x  R2 y
闷大,请教一下。我这样格式的文件名如何提取
! z6 ]9 e& O' X# O( Z! w例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1, U3 [, r: q+ @$ x0 e) x! _
Dim Txt* ~8 u9 X" q" j
Txt = Part.GetPathName4 R0 @* O" g, g0 a+ L5 D6 j
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)( q- Q4 T2 _- m- F/ ?! a! i
Txt = Left(Txt, Len(Txt) - 7)* a4 n9 K6 U  `$ g% G
Part.Extension.CustomPropertyManager("").Set "partno", Txt
8 C2 l$ ?, n0 X/ u1 S& f
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
+ [. j$ v! ^% c2 ]4 K注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
  j& V9 ^9 G; `* y1 v/ j( b% Z$ f, Y7 j' O. C: @! ?

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif. ~. [8 n' r' ?3 L
重新命名后,好像就不更新了啊
4 `; ]5 Q5 y1 G* b: M+ s/ r/ a: \5 [* @5 f5 X* e
弄个批量的宏

5 j+ H# H2 ?% l0 [' ^) q, k- ?估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
# U) \. y! w+ o: b- |7 k9 j: w- j估計又是『脖子掛餅終餓死』的慘案一宗。
' L, n* N( b3 r( Q: b
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了
0 R& I2 c! p: K9 A( g: n. Q; \; w* I/ [$ o, h: S& O
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
9 E% n4 z, [" `+ |5 y- H0 j把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
! V6 P! [# k# c: j, a# U  o: Z$ h注意!必定要使用複製粘貼的方法,才可嵌合內 ...
, I0 }; ?, j% [! h8 a' q
对不起闷大,宏我看明白了$ e7 ?1 \0 R* {
想起我未说清楚,最后一个“_”前的字符也不固定5 R5 k6 s' I8 n2 ~
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif  X3 h  V+ ?. y  P8 s
对不起闷大,宏我看明白了* T8 E! l7 G% ^& K2 C! b
想起我未说清楚,最后一个“_”前的字符也不固定$ u# a9 w! O1 ]9 |3 u
有没有直接可以从末位数的, ...

) U; N# Y3 t9 b, D! _那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif
/ N: v5 p# C- f那段宏就是奇哥的要求

, U5 K0 F; B+ y0 @1 @
4 ], J! l. ]$ v' i我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。8 E7 A2 g+ n3 d* t: V
请问partno是不是可以改成任意名字,如“工程图名称”6 K7 D4 h& _+ m7 L
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
( T/ I- F  E. T* N# y/ W我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
6 b9 w: g, ^- l; z4 o请问partno是不是可以改成任意名字 ...

8 Y. R# b6 d# l在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
. d/ C5 }. ?3 ~/ Y6 s% r, r$ C7 h2 C( C5 y, e
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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