QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,5 c2 R* X. G; [3 U% G( p
现请教大家,谢谢参与~~
! }. y  D; B5 G" H. n( |/ y/ M1 o. u/ l5 E

( T* e: f( P( T- }下面原贴标题和地址
6 E0 Z/ i; R6 E' R( J4 {SolidWorks中方程式的应用技巧
, b9 M8 ]2 |9 ]http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913! {7 C- J* Q( r  P& U; c! N
$ {) \; I! z; r+ p

# V* ]. P* U# `. D. t原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
! z# W* |, J/ O) j0 d
) B* r: }! y; t7 l3 N7 |方程式目的是从文件名中从左到右取9个字符6 }& p5 z/ p7 A7 f& y; e4 R
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 4 ^9 [0 X( r: u; T" f7 l" ?

/ E5 D4 Z: r1 M. F如下VBA宏的編程[2012版測試]
1 L. l+ h/ g' x# N" c8 Q' ^2 j
' O. D, S* m8 h& U9 Z' **************************************************( ~) D% e: Z# `: B/ H
'  macro recorded on 06/24/13 by lsc
! T5 q3 Q& I7 Q$ M. @- t0 T3 Z' **************************************************
% Y7 p" N2 I1 V$ d( @& dDim swApp As Object
% X0 x$ b8 [. l3 L8 W/ a  L2 QDim Part As Object
! m$ w$ \2 O! q1 H& V( vSub main()
- N; G$ d' f, l1 xSet swApp = Application.SldWorks. c( k+ Y; u4 ~
Set Part = swApp.ActiveDoc
2 E6 e: C. b6 `# s  }1 F. }Set swModel = swApp.GetFirstDocument
/ F  x' c. _6 |path_name = swModel.GetPathName '取出目前檔案的路徑及名稱
$ x' B) F6 i- Cname_ = swModel.GetTitle '取出目前檔案的名稱2 M* ]! }( B1 G6 l% T- U
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
" {' ?1 A) j$ I2 w7 t( k$ O8 z& gEnd Sub5 Q0 j1 ]7 n6 L4 c- 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 编辑
, m. z. ?6 R+ M" t5 [$ f% A
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif) v) D6 ~* C, C4 b+ G' I6 k% }$ n0 k
如下VBA宏的編程[2012版測試]; J- Z( f2 F) Y& _7 \6 E6 F! ~; m

2 W& V0 v+ m5 e6 \/ D0 X( P$ ~' **************************************************
0 ~( m  N0 a; i) R  |1 n. i* D

1 B) x8 n: {2 T十分感谢梁老师提供代码学习~~
- G+ o9 c' e+ V5 S  u) q! p9 s+ v5 ?. ]! F0 C  f
提示进来学习的坛友!- l- e  v( r. K
通过在自定义属性里嵌入宏代码,问题已解决。* d& u) ~( C3 u$ {- V7 B6 x$ l
下面代码在2011版本中均已测试成功。
' b4 t# g: a: g3 _* s2 d; M/ g5 ^9 T; H. I! G
15楼代码,可以取左边字符
" V. V9 r6 Z8 p19楼代码,可以取最后一个下划线后面的字符。  ~/ s9 l9 c5 U% {& I, ~" b

% |; j9 X- F( o; }5 J下面这段代码,可以取第一个下划线前面的字符。) H' {$ G7 \0 |$ w# T
1
  V) r+ G( W: W6 Q' @dim yfd" `) B" t- Z& B1 j0 t
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
7 g4 J9 ~5 a* p. j2 Q2 i( |下面是我在其它论坛 得到的 某位前辈的宏,你看看
' ^! h: j+ g  c: C1 ^8 u( z. v
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
0 c" z/ P: G. }( a* t& E' m蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif* d4 I6 r, v; a, d5 _
http://fans.solidworks.com.cn/thread-33730-1-1.html
2 D2 t- e7 d. j+ c蛋大的教程可能有幫助

8 N# _! A( q" ]8 y/ k9 h' W非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?" V) v5 ^5 T$ E7 T9 f: J
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif& u6 Q$ Z, G8 ]
楼主添加成功了吗?为何显示无效语句?

* B8 n: E, K- o" S: Y" k5 u' o- A没有成功
发表于 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% ^, K/ A2 Y. O& j楼主添加成功了吗?为何显示无效语句?

. f0 F! w- W5 u/ ~9 K看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 3 A+ k5 F/ i$ N( B0 U
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
% S9 O6 D9 P- T4 Y5 a9 M0 U. P2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

8 Y& c6 \! }3 a9 D/ A7 ?; r3 g7 Y% j3 z+ t) u: \  \  z! J
不好意思,再麻烦闷大老师,我的是2011版本。
5 ~7 s1 z% q( R, w9 G% W我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。
6 ~0 h. T9 u2 w# Q: y# c5 [" y是不是还要添加方程式呢?: w# O% y- U: D, H" s
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個3 x# n1 u4 R- p% w  k. a
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
3 @) T, x! [" V8 w) a2 Y+ s9 C# p2 i" ^
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
0 r& L  F, S7 M' X; E試下這個

) `& b5 t5 A5 d0 P- Z5 c
# ^7 W# m, N+ O3 y+ H/ J谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。7 l# S; K; E4 |5 X
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。# ?( B# k* ]- Y2 r% j) v4 ~3 F
也许是学习版本的问题1 F! g% o- \; K, \. ^
1.png 2.png ) f) }; L0 j9 v# k$ q7 {
2011版本
- K( @0 W/ W5 N8 h1 ? 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif2 B' P- ?5 i% i7 R6 ~1 N
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
  }  t3 c2 k! Y1 e我新建之后做出的,做很多次,还是不好 ...
( g+ y) V* r' i( C9 B. ]
謝謝qiminger兄回帖討論。
# J) \, Z6 B/ r0 B5 v% i
/ R& z' c) \7 u9 z方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。4 p8 {6 d2 F. P3 X# f& h
問題在內碼嵌合到“數值/文字表達”不對。
* W7 j% E0 _- \. r8 d! R! @- o- f6 A! B, v6 h6 S% d( J: U) G
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1$ f6 Q  e2 [2 b1 c9 R
dim dummy( \  q" r# L# r2 X6 p0 e4 Q
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

& r7 S6 x- E! C% y' E& J8 o# M0 i: B/ S9 F% \* ~" `% U" G2 f3 a. d

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif7 S4 i' o- d4 `
謝謝qiminger兄回帖討論。
8 X' P# }( Y: ?5 C$ ]% o8 T: t; d
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
3 [1 ^; g- \0 L) [. J
闷大,请教一下。我这样格式的文件名如何提取0 @" ^( e& \# j% I" e0 `5 y( X
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
- {- G: G% [# d2 f* u7 k謝謝qiminger兄回帖討論。) s$ Y$ F; K2 \
' H% |  p6 O7 ]0 c8 z7 F% r# y
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
. ?1 Z2 n4 b$ Y! F
成功了~~
: x9 e2 M5 {' h. ~直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
  G, ~/ U5 k0 a3 E, G* Q1 k" M3 ?宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
3 F0 F" d# _$ E" @試下這個

+ L, S" r# m7 D1 p2 C$ P( m重新命名后,好像就不更新了啊, R) S3 b9 d+ o* O# `+ u' Z

6 q/ G* ~( a, r& F( Q4 C弄个批量的宏
# Y* V! E' U6 Y+ g- S8 ]( m) G$ ~/ [5 P3 M; R: O6 i
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 ) @& G9 J, y* @  Y
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
3 }3 w) O8 |1 S. u# D闷大,请教一下。我这样格式的文件名如何提取# i# l9 J5 `, v# b, b
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
14 v. F( J$ B7 A4 @1 C( Z
Dim Txt
9 V6 u; Q4 d; y1 ~Txt = Part.GetPathName1 J4 z" j9 @5 v* T; U; t
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)5 ]0 A, @1 n. _9 ?6 m2 j
Txt = Left(Txt, Len(Txt) - 7): i! F4 N$ z, N
Part.Extension.CustomPropertyManager("").Set "partno", Txt

* w. [. h3 Z& C8 R+ V把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
0 I& @  A0 Q9 _+ ?! u8 E注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
! G9 z2 I( u7 w
  g6 `3 {: T4 q

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
* a: q& X9 H7 X3 J重新命名后,好像就不更新了啊* ^/ Y; l1 [: S; g# q: J/ [
' f7 G" o1 R2 ~
弄个批量的宏
! \! i3 D" a3 h2 }
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
& U3 N! {# j9 x) M估計又是『脖子掛餅終餓死』的慘案一宗。
# K6 L7 D4 O: L. h  m7 Q. }
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了5 O8 [0 W' `4 l
; A  Y- K9 k7 p: o
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
; [  J/ Z7 N) V0 K' q0 ~把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
8 h* U0 D5 U. p; ^2 B7 w注意!必定要使用複製粘貼的方法,才可嵌合內 ...

/ O; _* G! c% w5 z' q对不起闷大,宏我看明白了
) R8 ?3 q6 ]7 S想起我未说清楚,最后一个“_”前的字符也不固定! x* y  L* h" x5 e7 I1 M
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif% C) f. t# ]- P3 X$ |! P
对不起闷大,宏我看明白了
9 z9 @' _* B7 _" G, [0 L想起我未说清楚,最后一个“_”前的字符也不固定/ f& W% e; p  [7 Z. V" D5 z7 @
有没有直接可以从末位数的, ...
4 @2 Y$ U& w- X* M' v: m, u
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif. [, K3 |( f/ V4 @
那段宏就是奇哥的要求
) u9 o) o* L8 C1 d" z( Q
- f6 K7 X' ?9 F/ b! x: a
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
) _5 D2 t2 K0 _- `; }, {请问partno是不是可以改成任意名字,如“工程图名称”0 ^+ u% \( i6 j) o' e! Q7 c
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
! k+ b. t: K9 B% _我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
8 u) j) |( H; a0 w! e" y, B/ H请问partno是不是可以改成任意名字 ...

$ t' S$ Q5 z( A在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
' `1 P* Y" G2 p! ^: u' z9 L) q7 |3 |* _' c+ i+ R* Y
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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