QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
2 O# m0 q* J% B现请教大家,谢谢参与~~, J1 a0 X- l; X, v* i3 E, {

) X: B2 V% T# F, k& `+ @* x0 V) E+ i8 h% O$ M! y0 s' C1 R
下面原贴标题和地址
/ Q- p/ `% _2 a6 U' F4 j) n+ ySolidWorks中方程式的应用技巧' ^) c2 p# b/ j
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=489138 A4 P/ j, M  R1 A3 k8 w
0 {& \, E' e- @: T3 I3 z2 N  L- r2 X

6 a' e6 d( P% C5 V. Z* T  K  v原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
7 n1 j+ `( b* m$ w7 u! {6 N9 `* A+ s3 @% s
方程式目的是从文件名中从左到右取9个字符' ]4 z; w: @/ L6 U
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 4 @- E! j  L( n
) k5 J' `. o: C
如下VBA宏的編程[2012版測試]
3 Y6 N0 E# Q0 D8 {0 J1 e, Z; s6 b, j8 [7 l; E) ^
' **************************************************2 [0 \" A8 E" w4 g
'  macro recorded on 06/24/13 by lsc
& B1 m7 s+ j# e$ ~0 d' **************************************************
& a( v  V2 T4 r% \2 ODim swApp As Object
" j- p9 [) u( K% o# V* t6 M$ X* h/ sDim Part As Object
; |  ~5 }6 V! G2 Z7 V2 I# OSub main(): _' m3 V7 x4 O5 r4 G+ }
Set swApp = Application.SldWorks5 i, j9 q8 u4 `6 Z
Set Part = swApp.ActiveDoc4 ]  D4 T, B( n% ?
Set swModel = swApp.GetFirstDocument% w4 F4 d9 o' v% T3 J* B3 E9 ]
path_name = swModel.GetPathName '取出目前檔案的路徑及名稱1 }* J# r3 N0 n: q4 V: ~- v7 ?
name_ = swModel.GetTitle '取出目前檔案的名稱% H3 \# H6 J' o9 Q1 v% n
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字7 o% s  f4 M' p% g% v
End Sub$ r& `* h' J9 V4 w

评分

参与人数 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 编辑
8 K7 E3 z* S1 d0 }- N5 r% ?" J
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif$ H5 @" I1 h7 }9 P
如下VBA宏的編程[2012版測試]
9 n/ O; e: g/ O! z
4 B, \# k$ D/ _# d0 t1 _' **************************************************
6 H. X3 r$ y% `: l. \1 K* G

: s" @0 t* n" w( [十分感谢梁老师提供代码学习~~2 Q/ @' u2 [2 W& l, J5 M+ R* B! [$ [$ `
. E) W' R. x3 E
提示进来学习的坛友!' J& K/ u" s# d7 s! y! Y
通过在自定义属性里嵌入宏代码,问题已解决。
8 t2 f$ O% C% z+ c下面代码在2011版本中均已测试成功。' L& a8 C. ]4 I, i& A* [9 P

3 s4 L% l+ n4 _! ?  d3 Y; M; u15楼代码,可以取左边字符
. A6 D* `% Z) e. @19楼代码,可以取最后一个下划线后面的字符。
3 d, }' ?7 X6 L+ C7 A& P. W+ V* D8 R. r% K
下面这段代码,可以取第一个下划线前面的字符。
. A  b# ^$ L4 C9 q2 [. U- F1
: W8 v/ q& O# f) f. ?2 L# k1 Edim yfd
5 T8 g. L5 |  o, qyfd=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
7 n; Y4 ]1 O7 Q* U# ^下面是我在其它论坛 得到的 某位前辈的宏,你看看

5 ?  O9 m1 F+ Z. p感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
8 F$ Q1 v8 W4 O; T* c' I4 H) l蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
) a+ k& p  \0 P8 B; |http://fans.solidworks.com.cn/thread-33730-1-1.html8 E1 i; m" s- C: b1 a) W
蛋大的教程可能有幫助

8 `$ s1 |$ l3 O7 s非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?" z1 R* }* d# s) ?+ d
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif. y  q  o- E3 A7 \# f
楼主添加成功了吗?为何显示无效语句?

+ y" e( }3 a$ [7 h$ `1 R' Y# h" m  J没有成功
发表于 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  Q, Q4 {( u# I) F& @$ r2 P楼主添加成功了吗?为何显示无效语句?

$ Z) i% ~: Z. q! N( F1 s) r看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 . |) e& X+ l3 M' r9 c6 z
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
! l' V% x1 G6 i" S2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
0 G: D% D, o0 D- ~" Q, q
; l- y/ X* k! g
不好意思,再麻烦闷大老师,我的是2011版本。
' ]" U0 ^/ u6 V% J: G8 e我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。! B6 h% k2 I: c; q2 B7 e
是不是还要添加方程式呢?+ _( r. u' x7 t" V! a4 E
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個- b8 O# D. W* K
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑 , c7 a* e  U: g) w8 N% Z' r
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
( a0 e* v& D6 ^* C/ D試下這個
; B3 u( s6 n  N' k5 J3 b

/ K. I" C, \! |* n4 ]3 ?$ S谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。9 X: j+ \& i, ^- N; k, Q
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。( E& y+ X2 B$ D! }9 Y$ t
也许是学习版本的问题
( K, j& f1 p) e' F0 J5 t! e8 D 1.png 2.png * q( }% g4 d" K- n$ A1 Q) q
2011版本* w+ s# v9 ]1 ]; a( K$ r+ J
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif$ X4 N! {! w3 _3 `/ H5 F# Z
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。4 l+ i& d1 A8 F5 n7 n4 R* j
我新建之后做出的,做很多次,还是不好 ...
; E" |+ d; f' C5 V
謝謝qiminger兄回帖討論。
) m. g! b' s  y8 y4 J7 K- P
. P- g  f; u! O4 _0 i# ]方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。1 p; N. E5 h. H
問題在內碼嵌合到“數值/文字表達”不對。
9 @$ r# m. r+ r/ \7 R  c5 }+ ^! ]9 q' F" R
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
7 W+ Y2 q8 f  X$ L* i6 j( Edim dummy; `  D* d; @3 s- e0 W$ M$ g
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
& `6 a5 [: ?' Y, y: n
7 ?4 D) g8 D8 K0 b

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
$ B9 _7 G2 t" G謝謝qiminger兄回帖討論。# x0 R. [$ I' C# P" l
9 [+ }3 O7 X; L- W# d" D
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
' ^# l; W4 ^  @/ C" r1 ~
闷大,请教一下。我这样格式的文件名如何提取
" F; h3 r) Z& j0 y8 K4 [例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif1 {, Q* ]$ }" v! i: w
謝謝qiminger兄回帖討論。' i$ H. a( G# L0 \7 y- n

* Q& @+ e+ E: l4 P/ {方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
0 ?! O* I& u7 a. Y/ L
成功了~~
9 Y  H- {9 R  v2 g( i9 a直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
1 W1 Z- l0 m+ \( c宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif3 b5 _8 A5 I& B+ L8 @( F* b% r$ O; C
試下這個

# I6 J; J. a9 g+ s% [重新命名后,好像就不更新了啊  P3 v% C  r+ l2 ]- h) Q

# \1 `  i- t6 _( x' p0 N弄个批量的宏+ X6 X6 @" r; j, E: O. u; g
5 H; _8 Y/ v$ Y+ J
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 ) v  o3 b, x3 r
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif) Z9 Y7 i' Z& M4 ~) c
闷大,请教一下。我这样格式的文件名如何提取
$ W; \0 W9 b0 @2 s7 l( s例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
2 ^9 J  Z' U8 }- Q% K$ A3 pDim Txt
( z0 U: ^3 z0 ]% rTxt = Part.GetPathName
$ z' {4 F8 |* X- P/ pTxt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
+ }) v2 G: m2 w: vTxt = Left(Txt, Len(Txt) - 7)  g8 j0 j" d+ @( {7 d7 V
Part.Extension.CustomPropertyManager("").Set "partno", Txt

0 B* `1 e$ P4 J# [' {0 ^2 |把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。% }- X2 X4 e* @
注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
! Q; H" Z# E* ^) c$ B. ^/ v" G2 q6 i; i

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif0 W6 R1 {4 ~4 m
重新命名后,好像就不更新了啊
+ P# b- `3 h: G- @  c5 I1 F& l* e/ a3 b, X+ v" J- E, I% P
弄个批量的宏
- L) S0 F& z) T8 n! v. C" [
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif  ^) m4 I* m6 z1 ^6 ~
估計又是『脖子掛餅終餓死』的慘案一宗。

% Q2 n) N% @+ Q+ G1 S我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了
  R% D  ]# ?" c! i6 x4 s
3 d4 m$ c% V! c6 [" e0 ]. q老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif  G1 T2 ~. ?% V  a+ x
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。2 S+ X3 k- E) u& M1 Y
注意!必定要使用複製粘貼的方法,才可嵌合內 ...
$ o( D0 c2 P- E% I
对不起闷大,宏我看明白了
, T3 I  w$ a  y4 Y% c6 s+ e+ Q想起我未说清楚,最后一个“_”前的字符也不固定
; N3 o6 J! k( M' K, g" j1 A有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
% x4 [5 C* A; |% I! E0 F' t: s5 n* `对不起闷大,宏我看明白了: n# a( Q( w  ~8 m" m
想起我未说清楚,最后一个“_”前的字符也不固定$ g" g) K7 c' v5 O) @0 ~
有没有直接可以从末位数的, ...

+ ?: _1 n7 Q6 O2 W3 t( ?) {  z. h那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif
6 m) ]% Z5 s# ]* a那段宏就是奇哥的要求

" ?+ m- D/ l3 L( w: f0 g
$ U7 Q; b8 O- ^& }% z) |; V我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
$ E  _4 {9 x( j; m$ `! K请问partno是不是可以改成任意名字,如“工程图名称”- v: a, t; }" {9 K2 }# ?$ w! y
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
# T- f' O  b( c我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
- u4 M/ `: f6 O- R- ^( y( [- z请问partno是不是可以改成任意名字 ...
2 L8 G7 A. _( J  |& k. H
在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
4 I: L. ]1 C5 `
0 u- X. f9 C2 v) jpartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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