QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
11天前
查看: 30851|回复: 123
收起左侧

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,, G9 f2 n6 G1 r  o
现请教大家,谢谢参与~~
. i5 I7 e2 N% V2 f0 u" n
8 Q7 {# P; t7 s# ]/ Q  J) v  ^
: T0 d8 g* j3 M2 d7 L4 F; r! D( z下面原贴标题和地址
9 X2 Q; w& [4 \. K% Q: Y( N+ @SolidWorks中方程式的应用技巧
: c% W% v, S* Y$ Whttp://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
& W7 b2 y" W( _4 q; }* Z: t) M/ n# Z' g3 V- z+ H0 c
# f; a2 J( s. H
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
' @+ K5 E* T, x% |
5 O1 g: i$ i! `, C$ w) u) ]方程式目的是从文件名中从左到右取9个字符7 A' o: X' I% a1 Z5 L% l/ M) d
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 . ~. R' N- Q: Y2 G( N
/ D( y) x- F/ c) K* b3 l5 A
如下VBA宏的編程[2012版測試]+ c" y# L, E# @' B* U; Z
' t# h! J2 r; x5 D1 {
' **************************************************3 m. Y) V9 `( m" O3 `8 k
'  macro recorded on 06/24/13 by lsc# V& i$ P1 D, W; ]9 F
' **************************************************3 Z% [' i0 }8 B, ^1 K& d: M
Dim swApp As Object+ G" y) \0 Y! n7 M
Dim Part As Object2 x1 I+ }& ?, Q! [8 r7 d4 G* [
Sub main()
$ J5 v8 y. J# h2 g, DSet swApp = Application.SldWorks
2 {0 c" W% S# c/ P' RSet Part = swApp.ActiveDoc; j0 B* {% B/ o) Q0 j" ]' Y
Set swModel = swApp.GetFirstDocument
  B5 }" E6 B0 A8 J1 M+ p4 L1 f4 Spath_name = swModel.GetPathName '取出目前檔案的路徑及名稱
& e7 J- [8 \% q$ v; ~name_ = swModel.GetTitle '取出目前檔案的名稱
: r  {# i4 P$ Vname_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
! p% o) x* B6 c7 e% b& kEnd Sub4 \& O/ v  b, h+ F5 K/ p: o

评分

参与人数 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 编辑 $ K8 U) I  n, v: E9 T$ a9 k
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif* \! r& K3 ~+ s- T1 K  L- Z7 r
如下VBA宏的編程[2012版測試]
1 W5 H$ f' ^4 V! X. P* E
+ ^6 ?' i6 |9 H7 P- W' **************************************************
/ x- N6 ~" P5 a
. S; j" q6 U1 l0 f: e& I) V
十分感谢梁老师提供代码学习~~
# w+ \* E; K5 c& ?5 n3 t% O' `+ O& z1 F, m& W: \
提示进来学习的坛友!
! |. P5 y6 [& Q) e
通过在自定义属性里嵌入宏代码,问题已解决。
2 W1 I. e4 ^2 @下面代码在2011版本中均已测试成功。
  [: [& L2 e: X% k) A  F& U1 s8 r7 U% M7 {3 `# v# ~
15楼代码,可以取左边字符3 D4 {0 x& r6 S+ G  T' ^  E
19楼代码,可以取最后一个下划线后面的字符。
# I' n5 E" X# Q# `7 V5 |7 D  o, K& [0 ?& \, L( F
下面这段代码,可以取第一个下划线前面的字符。7 E" |+ I8 j* w2 |, K
1
  j& r  _; G3 K! cdim yfd* R( k2 s- x% _* F4 a6 \+ A7 i
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.gif
* H. M8 c! b4 J' G' z下面是我在其它论坛 得到的 某位前辈的宏,你看看
' k, ?8 P5 Y% H( n  h
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
* r. ^& P  J2 A' z$ p: O蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif7 w6 o# v9 ~1 ]1 z& Z( `
http://fans.solidworks.com.cn/thread-33730-1-1.html. P" M0 B" L* [" p
蛋大的教程可能有幫助
1 p# @# {# y1 W% N% H; ?  L+ p- J
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
. X* z/ L' w7 u  N9 u( t 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif8 e9 g. r: l; ]  k$ I/ J
楼主添加成功了吗?为何显示无效语句?
4 y- C8 M, U: {9 u$ l
没有成功
发表于 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
4 K' g: a# {5 z2 c9 ~5 o楼主添加成功了吗?为何显示无效语句?
* [9 g2 k* V( E8 O2 Z
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 " }, M) \+ h' N/ W% U8 q  S
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif/ c) P# o6 P$ }0 M. l! K
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

+ |+ c* k4 B7 n
- C8 t4 N) P' [" ~0 w; @% y8 j不好意思,再麻烦闷大老师,我的是2011版本。
) b9 j, b" u# H我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。/ w9 I3 P, [0 ~% J
是不是还要添加方程式呢?
6 E# O; G0 w7 p/ h! T4 m& ~ QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
  E* p  N9 v) \+ _ 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
+ x5 h- t% ?* Q/ A$ b( z
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
( P% g$ M  t- L8 {& i9 F# P0 [試下這個
: q/ \$ [% ]  X" h" R

; @# n5 V' r+ k! }$ u0 \谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
8 j! g& M* n$ i7 ~3 H我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。' Q  v+ g2 |8 T! g1 b$ j! b' L
也许是学习版本的问题
2 P  v; C2 [4 i! v 1.png 2.png # e. }/ _3 r, ~' P3 A' D! {
2011版本. g$ m( [3 D# \2 n
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif, B8 E6 I- i# W5 T) e2 G; d
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。8 t( J0 v- |  m6 P
我新建之后做出的,做很多次,还是不好 ...
/ ^* e7 \7 f* P7 O
謝謝qiminger兄回帖討論。
2 ^% S7 S. H( t. I! s1 L# X  W8 o3 K2 D# G
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。( ^# y4 f- Q0 a9 ^; G( a3 P% R
問題在內碼嵌合到“數值/文字表達”不對。
: o& R: k; I5 R$ |% r. `! O- \0 E* J0 k: e( I  r- h/ i
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1$ I& Z! e1 D! R3 K# k
dim dummy) c% W* O1 z  D8 X# }+ O1 w
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

* k+ Z) v7 g: \& _9 }
% g# [! L& Y3 K: I1 Z& ~

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif  a5 }. ~  P  @  T/ J. a0 I& ~
謝謝qiminger兄回帖討論。
7 k' U& [: q: V/ l1 t7 X  u1 I6 Q9 P3 P1 w: p3 K! m) ?! Y* N( v7 z% p
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
4 s/ e9 D7 w0 B0 \
闷大,请教一下。我这样格式的文件名如何提取* i, A+ p# v' p  S4 v0 Y! f
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
5 t4 i: ?. d, Y: n, Q6 P1 `謝謝qiminger兄回帖討論。
! v6 m4 r! d8 \) C  p9 v& F8 J0 t" b7 F7 b9 w
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
8 G7 N% k; k8 w2 q7 O
成功了~~
7 z) M/ ~: {( O( |: X! L直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
0 ~1 s  e1 [3 l" d宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif& y' j3 _+ [+ U6 z  k
試下這個
; X8 r* J. a- S) C2 R7 T
重新命名后,好像就不更新了啊: D+ j! c+ l0 h

( t7 f3 Y; q% W7 N弄个批量的宏. e7 I' d0 i* s+ v6 B/ b
2 b2 I. |- H% Y
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 * F" {) D6 X& T8 v" u/ k+ B
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
7 ~5 _# p( f8 j( e闷大,请教一下。我这样格式的文件名如何提取4 R7 A7 j- P9 u: S; l
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1) t" ~$ f, X- R) n3 }
Dim Txt+ o/ ?3 X. ?: E" w1 g6 o6 g
Txt = Part.GetPathName9 e( i% C" k, t+ R1 v8 P% r2 G
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
. U1 I' E0 ]2 e8 {! |5 U+ oTxt = Left(Txt, Len(Txt) - 7)
8 ]0 A4 [+ {- T9 i: R/ n4 V0 CPart.Extension.CustomPropertyManager("").Set "partno", Txt

" q3 l0 f3 V+ N* s把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
) G$ K$ v& u9 b- A注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
( ^) t# l( Y+ ~$ S
4 P+ ^" k: s. `4 O

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif* P) i: Y3 P- d+ l3 k: M3 }
重新命名后,好像就不更新了啊2 [! g/ G  E2 c+ i- ^

1 P! U& Z. b* a" X弄个批量的宏
' q" y  J+ d1 {, t! L3 y
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
, j3 ~7 Q! q5 {( Q5 G. G% L估計又是『脖子掛餅終餓死』的慘案一宗。

+ l, C8 b; E. w: V我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了' r+ E) a0 y/ }- e0 r1 f

2 G( b- X! O1 e; I- s老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
* H/ h# R' A) v  W把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。. h. Q  W" r- U4 A! P% v: |, B
注意!必定要使用複製粘貼的方法,才可嵌合內 ...
: Y+ i: n+ [' A) ]# ?
对不起闷大,宏我看明白了
' g+ g  F( Z! k& N3 ~想起我未说清楚,最后一个“_”前的字符也不固定9 o) K. q: {$ A8 P& B( g3 j' b
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif; ?$ u0 Z+ S4 ]4 r. f7 \: Y; O0 ~! S
对不起闷大,宏我看明白了
1 T/ H. ^: p; D; w1 s: H- r/ `3 W想起我未说清楚,最后一个“_”前的字符也不固定& y/ B3 N- o8 d9 h+ V
有没有直接可以从末位数的, ...
6 R8 E- R( O9 ~" Q( D* g: d
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif0 ^2 A* I; ^5 x0 _+ M% C- u5 k* T
那段宏就是奇哥的要求
; d8 B2 ~) w/ _- e& V2 f

* Z4 U7 r/ p" I/ A3 m我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。: H( i3 ^1 Y- @' q  u! U3 u
请问partno是不是可以改成任意名字,如“工程图名称”
1 ]; w# g) ^6 A9 |# l再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
9 d6 J4 t$ f, \( e: j我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
& [& \. s2 ^3 i) ~8 M2 j请问partno是不是可以改成任意名字 ...
3 N5 c$ f! V) w% q
在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
8 K8 M# z; [3 s, M$ q, V4 u! X6 _# A1 F: h/ @' K3 B8 ^* X% L% h& O, z" h
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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