QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
. }( p" T1 }' u3 \2 u0 ]- @现请教大家,谢谢参与~~: e0 q  i% N0 n7 z- A* e

9 Q. `! U3 G2 h+ s% u# |4 e& n* @9 s$ [
下面原贴标题和地址
+ @2 p- D8 i% JSolidWorks中方程式的应用技巧
- |# I% S& e: a4 Y# z, vhttp://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
1 A7 |+ h( x# ^! \$ x
! A; ?$ U1 \# B' H. U; Q4 ?4 G* @6 U5 h4 ?* e7 ?9 P) P6 {4 M
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))) v: q% ]1 \7 \' e2 R

% ]5 w+ b6 U# B1 `( l! x: A- P: b. |方程式目的是从文件名中从左到右取9个字符1 Y. M, {: T9 e  Q) a; s
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 + s5 c& @. A' L
. e9 L2 x, T" D# I1 ?
如下VBA宏的編程[2012版測試]
0 v' y9 X. s8 W5 N/ L2 M
; `4 }% U6 k2 K, ^5 j+ _' **************************************************# c( b( e, C4 ^7 W" y8 ^3 ]
'  macro recorded on 06/24/13 by lsc
3 r. ^; O# n$ h/ u3 {3 J' **************************************************
- O  {' ^/ v/ Z! Z2 Z7 ~Dim swApp As Object  ~( o' I7 T6 \! G! p" B  P
Dim Part As Object
- A7 e- x; H& N- i0 v7 VSub main()" u2 V. \' l% g
Set swApp = Application.SldWorks2 L. v5 n  i% L
Set Part = swApp.ActiveDoc
: I7 l  H" B9 o% lSet swModel = swApp.GetFirstDocument! |# Q/ O; O- X( o4 N1 Q' x, `) |' N
path_name = swModel.GetPathName '取出目前檔案的路徑及名稱
' d7 ]: l9 r1 N0 ?2 V$ Oname_ = swModel.GetTitle '取出目前檔案的名稱3 J& x9 {& x# c$ k% l0 G0 _6 y
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字- H* |  w1 K) K& Q6 p4 `
End Sub
5 ~  \. p* Y( Y. k- q7 ~9 Q( V+ c) 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 编辑
: e- r9 v6 _( E* v
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif* h( L% Y7 B+ a1 N* S) C( V2 q
如下VBA宏的編程[2012版測試]
; i/ K$ x$ S" N- d7 ^$ k9 K
8 w' }& `+ d" x5 o. w0 g3 E$ z' **************************************************

" l  P" a7 V. f5 t$ e8 d6 v3 ]: |
; I. D- N6 k& E8 ~1 ~5 b( m3 S十分感谢梁老师提供代码学习~~
1 x( u. E. ]/ J( K6 l. [  D- B8 \& ]1 U  P
提示进来学习的坛友!6 [, a" Y+ `2 b$ b: w# O1 A. \4 r
通过在自定义属性里嵌入宏代码,问题已解决。
4 K! S; Z+ Z! J! t- t) G$ Z下面代码在2011版本中均已测试成功。
2 y% q7 k& m: F, f3 C- \3 J+ R& O2 X$ U1 m! k& m; O# Z
15楼代码,可以取左边字符9 _, J: `$ y6 b1 S+ C4 W& c
19楼代码,可以取最后一个下划线后面的字符。
1 v. f- T- ~6 v/ D; X: @3 |! c
8 n% F7 T2 D: N下面这段代码,可以取第一个下划线前面的字符。
+ D: J3 Z1 Q  w+ K18 u: ^/ {1 W8 J& g: V% g. X! d
dim yfd
& q% v- G6 N  J: w* H1 jyfd=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.gif1 o. q9 j# Y7 `) L& l% L
下面是我在其它论坛 得到的 某位前辈的宏,你看看

# d7 r, I$ {) U( z' u+ Z, n感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
5 U& |. [5 ]: p( e/ B蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif* }9 U  X, c9 t! }) I2 G
http://fans.solidworks.com.cn/thread-33730-1-1.html, l+ }3 c0 S' F) a- V
蛋大的教程可能有幫助

- v+ j$ ~2 U" o/ X; l* |% k$ ^$ D* s非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
5 J5 i% V: m$ ~2 t6 p5 ` 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif5 d" C. {0 J! v( y( J/ M5 P
楼主添加成功了吗?为何显示无效语句?
" W/ B) x+ }# g3 h5 @% b9 _9 _
没有成功
发表于 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
% m& [, Q  L$ Q9 I  }/ z" g1 Z楼主添加成功了吗?为何显示无效语句?
# U' O3 |. {; V; |! M6 f
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 & j1 @+ }$ r8 F/ Z
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif: D) I+ N$ b- Y9 \3 R$ G4 N: a1 S7 l$ Q
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

8 ]' O7 k0 |' z* j# [1 t8 p9 b3 M+ h
* C% L1 \& `" m$ {5 s不好意思,再麻烦闷大老师,我的是2011版本。9 s3 r2 ]( U9 L' y7 ^) g2 n  Z1 V
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。' w" U6 S( |9 ?5 u9 z
是不是还要添加方程式呢?
4 j4 }( ~& o3 F. `' e4 ] QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個; s+ @5 I( b9 `/ h/ f; _/ |# D
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑 . e! T) ?$ x/ ^$ U$ L+ p; H% o
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif  {4 g& A& |; s9 h
試下這個

7 S3 V4 v4 I3 ?1 G6 ]
2 I* R5 }7 G* l- |谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
: u; W: ?2 a4 m9 E3 p我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
- z' T. e- S$ X  e. g0 v* E: ^8 ~也许是学习版本的问题; H' {" k  X; ^6 k9 A
1.png 2.png ( P& S" U9 I% N- {# o% E$ O  q4 m+ n
2011版本0 S4 a! u$ X. T& n0 f; L
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif* d6 ?3 H7 W$ L. d  E3 ?* v
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。6 |1 d$ B* \  Q  s, u% t& j; H$ y
我新建之后做出的,做很多次,还是不好 ...
. m' i9 T, y  L9 c9 ]8 _/ n
謝謝qiminger兄回帖討論。  ]$ h: {% u$ c& v. j

, D# P3 ?& y/ z! S; z3 u方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
: c$ e6 h- t1 Q% c+ j) B4 r* _) I問題在內碼嵌合到“數值/文字表達”不對。
$ ~# n6 ]4 Q# u2 {2 |/ c
* r/ W1 C1 ?+ B5 s+ n把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
18 `( C' w6 M* s( ~
dim dummy
: a& M, A. ]7 K1 G; o" Xdummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
4 p+ ?- T( w4 [' m7 N3 |, a
& B6 {$ C: J. @8 J

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
" i( n# n" q, _謝謝qiminger兄回帖討論。
8 ]/ P- J& M, }+ l" c: E3 e( _: x( R9 n- G
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

5 W  o" O+ q7 \& h' D闷大,请教一下。我这样格式的文件名如何提取
  Q7 x1 j5 ]# K% A$ F* d3 e0 e( J例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif& D/ i1 S8 L  B2 G
謝謝qiminger兄回帖討論。6 M8 R9 T+ s% I
& s# t, _+ x; [) Y% r. Y
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

! C9 @1 t# \* G* j, e) ]2 J% m成功了~~. y1 b3 _% |. z+ c
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
1 S# p& u* ]. r# D. `5 z& \( i宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
4 _- Q! n. w8 y7 n# }( \0 _試下這個
2 U  }: s3 V9 `
重新命名后,好像就不更新了啊
( a( u$ |$ J9 C9 u- o9 ~
; _; q# h1 i" F: C4 r" Z弄个批量的宏) `. s2 }4 i$ a% ]% b1 \

7 d. }% M: f. z& D$ o2 }
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑
) l8 u5 d# e1 ]8 C. |
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
. c- \# E$ Y3 Z: K9 ^. f7 |闷大,请教一下。我这样格式的文件名如何提取
& t/ A7 d9 h# h' S8 D. g$ W例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
10 H% v% F  s0 I
Dim Txt
5 D4 b! ^  y% ^Txt = Part.GetPathName
2 W/ F9 i% k% m5 B, dTxt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)- u3 s, y; S9 h3 C
Txt = Left(Txt, Len(Txt) - 7)5 c% E1 u/ S' Z$ n9 C" U
Part.Extension.CustomPropertyManager("").Set "partno", Txt

* K% p5 D0 F- v, f把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。* z# R; _+ ?: o. p' S
注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。+ C5 d( X3 Y3 _, M- u: X  K3 e6 t3 E
% W9 p+ \0 G, N" {: t. k" e" X# E

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
6 T/ D5 x+ l$ r( t4 \$ N% f重新命名后,好像就不更新了啊7 Q6 _3 X( d; t! R4 r7 o" q

! {) ]. P( n% Z( [( ]5 |" O) a' e弄个批量的宏

" ?& Y$ u% D" @6 k1 a3 O估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif4 L, z& c% P* C; O  G: E& e) g: Y, m
估計又是『脖子掛餅終餓死』的慘案一宗。

8 ?+ J; U( }# e* Y' P) w# r我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了+ V4 |. V1 m0 p; g& t0 y

1 s" j7 Q  V' e老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif2 K* ]5 Z+ X8 t& R8 G9 I
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。: v% z  L. ^( C, {
注意!必定要使用複製粘貼的方法,才可嵌合內 ...
9 A( f, g$ v5 I- P; V- B6 i
对不起闷大,宏我看明白了
) e6 p# V6 M& l2 U: @) W想起我未说清楚,最后一个“_”前的字符也不固定5 w: H: u# E% N$ O/ s' G
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
' S( A- A( Y0 }! Z对不起闷大,宏我看明白了. G7 n- h* D! e( [7 d
想起我未说清楚,最后一个“_”前的字符也不固定, [2 w5 P8 k! G! B
有没有直接可以从末位数的, ...
5 v. k8 h; i+ q/ P7 f9 R. o7 S
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif
" K! \" Z3 @2 r- f那段宏就是奇哥的要求
$ H( s, z3 w. F8 ^! g' [) i  }
0 b/ ~1 H0 T5 p# x% I, j# q! }7 r
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。2 J" }/ q$ R( E9 P3 U4 Z
请问partno是不是可以改成任意名字,如“工程图名称”
' r. i4 x# |1 I) J+ N, u再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif5 t* F! Y/ i$ X- V9 `
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。+ p" V+ `! @1 i! u0 }
请问partno是不是可以改成任意名字 ...
* ?1 w. N$ [: a. P( U' \, W. i
在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
& M- m% G& {9 w* b$ E( b/ b" F# F! f5 R5 \; ]( I$ e
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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