QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
" T! T/ B, r' k现请教大家,谢谢参与~~
- J( j5 t5 O- |" E. g3 G+ I: k
: b7 w, }8 T# w8 N- a
下面原贴标题和地址
2 t# b9 ?5 k4 ^0 JSolidWorks中方程式的应用技巧
, `5 N+ ~# a9 C1 A1 whttp://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
, d& V2 D2 R( `! `/ P# L
7 ]. Z; N: @5 j# K; S! W0 Y) T  B" Q2 F$ U% `) J" B  h9 B4 ]
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
4 @! U& |7 m3 T# M2 O* D0 x! m  H$ m$ a; T, I7 ]4 B
方程式目的是从文件名中从左到右取9个字符
1 q1 a6 f: X( R( ^
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 % U" ^5 E# ~$ Q) _) B1 ?; h

7 {! t+ N" X9 B- G8 T如下VBA宏的編程[2012版測試]: q. i4 x/ g. d

# \# h. N& K7 M' **************************************************4 g1 ?+ G& j) [. i" F; l4 ]2 N
'  macro recorded on 06/24/13 by lsc: `7 c% S5 m# C! D: V2 s8 b- ~
' **************************************************
! z" D, B: P+ ~3 U; \  z2 jDim swApp As Object3 Q0 l( l6 b/ z) M9 z% L: d6 a
Dim Part As Object
' ]9 a8 a3 v+ q; s+ ?Sub main()
7 b$ K1 p% k5 @) G& I9 `Set swApp = Application.SldWorks, X! M! N* @; D
Set Part = swApp.ActiveDoc3 u5 ^7 s" k6 d1 g# N  L/ [8 S5 @! l1 h
Set swModel = swApp.GetFirstDocument* @" s. `0 j% T3 g
path_name = swModel.GetPathName '取出目前檔案的路徑及名稱
& H$ I! R, C% d3 {, Cname_ = swModel.GetTitle '取出目前檔案的名稱! Y! {% O" h# C! M
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字) S6 X0 V% ~" I+ o! o
End Sub
. ?" @, B* U7 ~

评分

参与人数 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 F% @* }0 ~; O7 y
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif3 @. Q: O% z. M9 {+ A$ m
如下VBA宏的編程[2012版測試]$ v# D8 Y" a( D9 H& q: T
0 p7 A' v* g1 F, H6 ^$ D$ q" H
' **************************************************
5 n5 s; Z; y+ j4 r/ P9 d2 s7 Y

3 R2 \6 v4 h2 c3 O  j( ?0 o十分感谢梁老师提供代码学习~~
1 H8 s4 ]5 T& T: V& {: r
# j7 {' ?. O! G6 t  }( F1 a  T提示进来学习的坛友!
5 y) J; d# |, T/ |$ l2 F
通过在自定义属性里嵌入宏代码,问题已解决。6 N- R* `# g2 b+ r- f$ ~
下面代码在2011版本中均已测试成功。
. u) |+ o( q% z8 v9 \7 D6 t# Z! B% X! @- U# u
15楼代码,可以取左边字符: S" y7 y6 d( `! E
19楼代码,可以取最后一个下划线后面的字符。
: K: @6 p0 t9 o4 v+ L* g$ x8 Q
$ p' B$ E2 d) p' O% F' s4 }# ^下面这段代码,可以取第一个下划线前面的字符。$ y7 ^$ m. `3 s4 R! z
1: u  ?  `3 V3 r1 i( B2 b+ _
dim yfd
2 b! R. q# h' z, h0 Lyfd=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
! ?. B; K4 Y! c  n下面是我在其它论坛 得到的 某位前辈的宏,你看看
) V5 u( v8 l3 w4 ?
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html5 r6 d+ `$ B% E9 Q3 _# Q) z% G
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif2 j. {, }. x4 [
http://fans.solidworks.com.cn/thread-33730-1-1.html' `: R4 P" f8 W1 t4 i0 d
蛋大的教程可能有幫助

; O- x1 n  n$ r  R3 V$ d4 B. d0 W非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?0 j3 N( i3 e5 }, y3 d& J2 ?
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
! A. [% V1 `" z! d+ r  B楼主添加成功了吗?为何显示无效语句?
/ q% i( M# z2 j% F
没有成功
发表于 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
3 \4 A" D, C& ~9 E- \2 U" o楼主添加成功了吗?为何显示无效语句?
7 a8 d# X/ K' v7 S
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 ' c) T" Q) G4 P! k; W
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
  ^; x0 r1 [1 `' j2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
6 }2 J6 W/ z2 C: _) ?+ w' ~
6 i5 H- S9 x$ i+ U" g
不好意思,再麻烦闷大老师,我的是2011版本。/ n3 o. _1 x, T
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。5 r. r3 V/ x0 I
是不是还要添加方程式呢?
% G4 a# m0 _. s; ~' v' J( z QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
2 @7 |! f1 M0 S0 R9 q+ N 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑 , O. _( j3 X# Q% V- ~  I" l
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif; ~5 ]7 a: y/ S
試下這個
3 A0 i& a4 z5 W- u1 F7 o$ v. U
- v# B, h2 b6 q
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
$ T9 @' c0 w# t! b; ]4 w我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
& C" {. l0 b# r1 L也许是学习版本的问题
2 {5 J9 P8 \" v' ] 1.png 2.png $ Y( R( K3 f; y8 n, V( E( l
2011版本
( b/ d' U+ N7 M* k/ B 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif( y( i7 E4 D* R. l( {+ F7 F  u
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
4 q) a. U/ c* o; k( S% S3 i' {9 a- M/ B我新建之后做出的,做很多次,还是不好 ...
6 h1 ]6 e$ V5 C8 a! v  @1 a
謝謝qiminger兄回帖討論。
* q2 y% H7 Y% O# `* C( a' R! N
0 v) p+ g8 T0 u# h% P方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
! y( B5 O3 D) `5 F9 p問題在內碼嵌合到“數值/文字表達”不對。* ~  C; C. [6 b( q

! W; J, e& M$ b3 \: K0 l2 s1 c把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
3 F3 B9 D* c1 p& Tdim dummy
) t: V) p; U6 Xdummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
8 `4 q+ h* w( j2 B7 {

. a3 `( N9 t# u

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif" M9 p$ G9 x* g/ i0 P
謝謝qiminger兄回帖討論。
  l) L: B+ D/ \0 `) N) B+ U! d" o/ G
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

  r: ?/ n) @% y5 c" A: l闷大,请教一下。我这样格式的文件名如何提取
/ ]7 H: M. q! O& w5 ?/ U例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
$ v/ p% S1 o2 O' t謝謝qiminger兄回帖討論。2 z& g0 y! K6 e5 p% R$ q" n! J

  h) o; c4 a8 C% b方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

) a' F& ~1 L6 I  X- \& Y8 ?成功了~~: e5 f" G# Q9 U" ^" P9 L8 B/ O
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,9 P+ q2 m( b9 c: |6 K! `
宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif2 T5 i2 A& m$ V8 u/ d+ `7 a
試下這個

5 \, q7 K' |* S  {! L9 K重新命名后,好像就不更新了啊/ `# ^1 ]; J# i8 h6 ^" n' T$ k, p

4 K# C) U( k- O( a- [弄个批量的宏* f5 I  J% o8 b# x

1 F$ i: n# j5 ~2 q5 Y& i
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 - D* [- }  e$ \1 F  h8 v3 `- I
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif6 |- t& I; w* \4 y5 I. ^! u
闷大,请教一下。我这样格式的文件名如何提取: D  E5 D3 W1 B4 U$ B$ y
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
5 c: q4 H: r5 n0 U  I0 DDim Txt
" u1 \! o/ _) e( p7 ^Txt = Part.GetPathName
2 s3 _* d0 z6 c% G" X2 ~5 Z5 XTxt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
) c# x. |2 r6 C  e: s3 m+ OTxt = Left(Txt, Len(Txt) - 7)
# G- \: h) f# [! p' ]6 u3 YPart.Extension.CustomPropertyManager("").Set "partno", Txt

6 a( Q+ E" ^) M7 Q把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
/ j) r! X- n- T" p2 P, }注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。- O. _6 z9 K- w! Z: J' C$ e

4 G/ A5 H$ m; `0 z& s  j% P" b

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif& ?' e$ _2 g" |8 Z. h4 C
重新命名后,好像就不更新了啊: u/ s1 R4 q( b+ C4 N2 u  m
# U$ P, U2 t# `' x1 I
弄个批量的宏
! m2 d& G: o3 p! c3 C1 f, c
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif5 @' K& p# e  _7 K( L: [! R( u
估計又是『脖子掛餅終餓死』的慘案一宗。

1 j+ T/ i* W! f+ `" {我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了* L2 i3 y# L) K0 E5 }
' Q& `$ A7 A& c5 @
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif( @+ `) h# b- G% w
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
3 o9 K6 }* r6 F: i( P注意!必定要使用複製粘貼的方法,才可嵌合內 ...
% p! N/ l+ V' o5 L5 m7 p2 M1 W
对不起闷大,宏我看明白了9 c/ ~7 I$ O: v2 D' w
想起我未说清楚,最后一个“_”前的字符也不固定
5 `/ \+ G5 z0 D- g' X! I$ m有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif4 [8 T) ~! b, g6 y  A
对不起闷大,宏我看明白了  |  U4 o3 R* _" i- o3 m8 B5 D2 h3 O/ j# }
想起我未说清楚,最后一个“_”前的字符也不固定
, i& A5 _6 z; o- D. i; x2 x8 ?有没有直接可以从末位数的, ...

4 z: H! O0 U8 |* {1 l: r5 t那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif( q7 W2 J, F% n  u' H
那段宏就是奇哥的要求
# ]' g+ Y3 H- p* ^2 N
' e6 l9 ]8 c- a: ~5 y1 I
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
  P5 j( k5 d/ e请问partno是不是可以改成任意名字,如“工程图名称”1 |- m# E" n) i
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
& U4 e" h' d4 `6 y9 Y我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。; u8 T4 a$ w* Y: m4 G
请问partno是不是可以改成任意名字 ...
+ ]# V$ W7 d+ d9 D
在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。# j- i" T0 Z9 v/ a2 j4 V
9 j& z" }- m4 E2 C7 z, z4 G0 v
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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