QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,- q1 ?1 i! Y$ ?/ B" J8 \6 e
现请教大家,谢谢参与~~. G& e' M- g7 N4 Z; a

+ [# f& r9 ~( z* f9 e; P& L% G
4 c6 T, T0 B" e0 X下面原贴标题和地址) h# s' F. F# h9 @) U
SolidWorks中方程式的应用技巧
2 T2 N' ^6 Z* x. P  _http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913) {* z" D5 D4 y& Y

4 F2 s+ l; W3 v! ^; u! N
# Q" |8 @- B' f. F+ x, ^( ?$ I原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))4 p2 Z5 d/ L- v* O% S4 d+ ^
- Y6 C' i$ E9 ]% J, }
方程式目的是从文件名中从左到右取9个字符
  v1 ^* }- T6 V$ n' p2 r3 ]
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 + G1 Q+ p( w# W
* Q2 J6 L( |$ K% Q
如下VBA宏的編程[2012版測試]
" S7 a( M; p5 {  ~8 u1 e# W
* P! O! c8 K. @' d' **************************************************: `) Y. r( N" F+ l* M  W
'  macro recorded on 06/24/13 by lsc
# g& a/ C4 ^# f5 S! }' **************************************************
8 l  S6 T& |( D) y' s; nDim swApp As Object% u. B" j; l$ r- d7 Y' f: \
Dim Part As Object
( U5 E$ w. V! j, N# m, L! {Sub main()
1 k. ]  F( ~; |Set swApp = Application.SldWorks
+ V6 L5 {! r0 F6 v) aSet Part = swApp.ActiveDoc
8 C/ L' K/ q8 i/ O1 u  R& ESet swModel = swApp.GetFirstDocument
9 W/ w4 h% J! u. cpath_name = swModel.GetPathName '取出目前檔案的路徑及名稱
/ \' @7 R% l6 f5 `9 x& i% n6 ?1 Aname_ = swModel.GetTitle '取出目前檔案的名稱4 ?2 O" U5 |, x/ O% W
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字# Q9 H' y! O; e' a& ^
End Sub
5 e" d% i5 p( {; |

评分

参与人数 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 编辑 - a, q1 g! G$ d. Z. }6 D
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif, A. Y3 D* L) h& H+ u
如下VBA宏的編程[2012版測試]
$ s, v0 Q3 I4 ]" F* m3 X0 J9 p" G7 X1 v( p
' **************************************************
( L6 M+ {0 _+ |
0 S( y& T* N; F( S+ K
十分感谢梁老师提供代码学习~~
0 y1 {( t# T/ u- m9 J5 e
+ c9 L, T" q$ L; F  A- l! S+ N3 C% G提示进来学习的坛友!
2 K1 F" O$ }7 D, I/ p
通过在自定义属性里嵌入宏代码,问题已解决。
* x, _8 p) M! @5 l0 F下面代码在2011版本中均已测试成功。
: s7 o# d9 p% ^4 J
+ y4 \: ^( d1 P& ^15楼代码,可以取左边字符
9 C6 n% g& M- a- S' f" ~19楼代码,可以取最后一个下划线后面的字符。5 v5 B6 H1 N# w6 @! Y2 ~& \

; f$ b2 f' K/ j. m" N# i/ f6 b9 p下面这段代码,可以取第一个下划线前面的字符。5 _7 O" t8 I/ P4 H7 A
1
9 i& ^, i) d4 P' [" u* j# Kdim yfd
2 z2 K% \- v/ q: v# O/ tyfd=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.gif2 j) g9 \# Y/ f7 f% A2 v; [7 X7 w
下面是我在其它论坛 得到的 某位前辈的宏,你看看

1 }3 C+ f4 ]0 ~0 v! S0 N+ d( i% h* S感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
6 \* i+ E1 [4 \, E蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif" [. x' J( H( S* M1 _& g
http://fans.solidworks.com.cn/thread-33730-1-1.html
" q& I, v0 {7 ]7 C2 s4 M. B蛋大的教程可能有幫助
- u" F( Q: P/ F4 B0 D1 J3 X4 X' g
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?- D2 r8 ]% J' j+ e3 B+ J
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
# ^3 j8 q# v3 i. z4 L1 p* y楼主添加成功了吗?为何显示无效语句?

/ q9 {( U7 R0 j1 v没有成功
发表于 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. Y" M* x; w' ?% p5 _
楼主添加成功了吗?为何显示无效语句?

- ^) W5 y% ~7 H3 }8 x" Y0 C, C看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑
7 l% u& q. i- \3 e2 H8 Q5 c# ^3 A
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
4 |/ n; w# h( R* _7 \' k2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

9 m/ R5 A9 N; [3 |3 y
4 r' G, i* Z5 c8 b9 I# j不好意思,再麻烦闷大老师,我的是2011版本。- q  a& \2 g0 E& H2 n4 M
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。
( J$ V0 q: L: t4 W$ C+ g9 n/ N是不是还要添加方程式呢?% i+ m' P8 K( T
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個5 p* G) U5 B  m* p5 ~# U, F
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑 - t9 r8 \& F) v9 J8 }
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif+ b* Y5 F* W2 G+ V; e
試下這個

( Y" Z9 a3 E$ e: c
0 q- B5 v1 r* c; a谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。- k7 c( B) B' h( Z6 M
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。5 k$ v' V3 k1 d9 o3 J
也许是学习版本的问题2 z, T( |0 D5 y0 _; }
1.png 2.png
; Z) Y: J- M( ^' a2 i2011版本
; x7 I! ]+ `  d0 ^0 ^ 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( o6 g; p2 @0 W$ x8 w
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。9 Y0 X$ A7 `: u" D( s" W
我新建之后做出的,做很多次,还是不好 ...
( n, c6 S& b) Y0 t8 ]) c6 g
謝謝qiminger兄回帖討論。
; I- c2 R- k5 I7 v4 {$ |; O9 h% [  w% w8 [
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
; U" ~& N" z) k( |: T4 |+ \: s問題在內碼嵌合到“數值/文字表達”不對。
6 r* [5 r" p- H7 m
1 l4 O5 ^- P# d! P把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
8 \3 a6 S; F  ^, r3 s% Sdim dummy
, o3 F- Q; i4 Edummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

$ }9 Q9 j, K/ D2 |& c% @5 n9 q5 a5 Y6 C- Z, f- ]

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif3 ^7 ^6 y! H6 o1 f
謝謝qiminger兄回帖討論。* j; d, u3 H8 M& K" A0 O
) G- ]! D' e( F
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

. L) {0 ]4 e# y/ H闷大,请教一下。我这样格式的文件名如何提取
7 H/ Y% u: ]( _4 ?7 X4 o% S例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
8 k; h  o! ]& `, j( |0 u謝謝qiminger兄回帖討論。
! ]) b& P+ A. p( j6 q
  O. P2 x3 `2 b6 n& V8 S$ H方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

" U5 D# D6 W7 l! w9 g: s成功了~~: r) [0 Q5 s: O
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,0 b! h8 T3 ?  v% ~2 I3 l+ S
宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
3 C. S9 o, I5 R, w% Q+ Q3 m% J) }試下這個

( U9 l" t: O# K3 p# _9 t重新命名后,好像就不更新了啊0 g8 B& z9 p9 b  V" `. T5 w1 b
. \5 ^) K( H4 l7 h5 {0 u: I
弄个批量的宏
# H4 F& n7 B$ V' a+ a
. N7 k6 d8 n9 C0 @( c/ h( V
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑
# b8 E% i& c5 s
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif8 C; x! ~- q8 @- j6 a; i
闷大,请教一下。我这样格式的文件名如何提取
% v3 y0 N5 c- H& V+ Z例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
, F  I& }7 ~1 c3 \8 d( J6 BDim Txt& r; o& g4 f0 a
Txt = Part.GetPathName' ^$ r2 D  t0 A. `: ~) T1 q+ H0 h9 `
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
" q5 B. Q2 _8 K" Q0 _Txt = Left(Txt, Len(Txt) - 7)
4 G" D9 }+ A4 F  I! I. m! g4 H, KPart.Extension.CustomPropertyManager("").Set "partno", Txt
% I) u; W2 v4 b- {
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
; F+ }. j& V; X注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
* x2 s0 [0 C3 i& H+ \+ A
% x2 Q& f) r. S2 l3 M

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
3 v1 K# a' d# U7 o5 ?2 l重新命名后,好像就不更新了啊2 W% E5 F* R: Y0 o1 s* y! T+ [

- d; W: [3 t& R1 z# g弄个批量的宏

6 P6 i+ b( a* ?  k估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif6 u. _" h) r. Z" q( A1 j: T7 G
估計又是『脖子掛餅終餓死』的慘案一宗。
4 Q6 A/ V& |, K+ L
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了# t' k& G8 x) i: i2 b9 Q8 s. k

& x7 I# ?" x: t7 R" m/ K) \) t老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
  D6 [7 n7 a- [  l& _把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
. H4 ^  G& X4 C& H: [注意!必定要使用複製粘貼的方法,才可嵌合內 ...
) j) ]" }- Q1 y  e# Y1 Y
对不起闷大,宏我看明白了
  {# O. b- C2 \" ]( x% b5 ]想起我未说清楚,最后一个“_”前的字符也不固定
/ a' M# R5 c. \7 l3 R有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
8 r' W9 P9 C( X3 K对不起闷大,宏我看明白了
2 l3 z& q  \0 u5 S" _想起我未说清楚,最后一个“_”前的字符也不固定
1 C# M8 g* n: v: L有没有直接可以从末位数的, ...
; W. A% S! ?' i, g8 y; ]
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif
* G% M7 i) G( O/ T3 M9 M$ ?那段宏就是奇哥的要求
; @3 \4 \% V# _
% O+ L% n$ h( |# t+ n) F7 @
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。2 M1 c4 a5 I; w3 }2 Y0 W
请问partno是不是可以改成任意名字,如“工程图名称”0 P8 r) L2 P* I1 y' z
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
# ?* e5 Q. v/ L' w3 I我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
# X7 L; y: a0 x3 Q! F请问partno是不是可以改成任意名字 ...
- n; v1 }; u- U& ^' Y: b) ]5 L
在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
% ^. E% a( O7 _; \+ q+ T
8 [/ _. T/ N4 s% P9 F, b6 a8 ~, B8 zpartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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