QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
* C8 ~( |5 @' w  R; V( ~现请教大家,谢谢参与~~3 ]6 F  q- n6 v5 [5 _
* y9 t5 a' j4 L# _% Q2 K0 x
5 C+ Q8 w% p- l$ z
下面原贴标题和地址/ A! ^; A! u  a" R" G
SolidWorks中方程式的应用技巧; e2 W2 P6 E3 R+ g& G  P
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
& {5 }$ H8 i: E" Y$ z$ {) s8 G7 {5 {- f4 g6 i
6 z3 e0 n1 x) G/ u2 d. {6 t# k
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))/ k- ^/ q( |/ }/ `4 U6 ^4 @

3 D/ H8 n, s0 t8 r6 y方程式目的是从文件名中从左到右取9个字符
6 ^; S1 _- B2 }- ~. |. d6 Q
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
0 \% H8 j# P4 S! M" ]( P! I4 a! c+ v
如下VBA宏的編程[2012版測試]
* A2 D! Z3 A" x* L1 F6 U7 S3 o2 J+ B/ L; D/ |
' **************************************************
3 E; _) D* t3 @# @' m/ g7 ['  macro recorded on 06/24/13 by lsc# c- J% ~* h, @% @3 h
' **************************************************& X( W' n; C% t# u
Dim swApp As Object
" j& m8 u5 @7 ~+ s# FDim Part As Object
. ^" E2 v% K0 U* X: R& _) TSub main()
( P0 O6 y5 h, y! k  w1 ]Set swApp = Application.SldWorks" R9 q! Q! S" z+ |
Set Part = swApp.ActiveDoc5 Q' D6 K1 a2 |$ {4 ]6 x' {1 D* r! I9 n
Set swModel = swApp.GetFirstDocument- U' g: E( l+ y% b8 i" I* ]/ B
path_name = swModel.GetPathName '取出目前檔案的路徑及名稱
( g+ d+ Y! _) j! ]. bname_ = swModel.GetTitle '取出目前檔案的名稱' W3 z8 o8 w) l5 X
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
9 m, ]1 k  U1 V) e+ a; A% K$ UEnd Sub8 f, n. G; a7 y2 K: s" |4 @8 f; Y

评分

参与人数 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 编辑   x' B7 z( h5 S, F  A3 L
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
7 ?0 y, I+ S; D8 G, t1 o如下VBA宏的編程[2012版測試]& [7 r# M1 F: b6 y6 ]

, f7 K1 C  y8 ?; p9 S' **************************************************

& W1 ]0 |5 e7 i! u% e1 i# i0 \1 C- _. L! i  ?% p
十分感谢梁老师提供代码学习~~/ t8 Y9 ~% D; V7 a4 H. b' ]

1 U& L# `& O8 M1 |; Q提示进来学习的坛友!% g8 S- i+ a5 q7 x
通过在自定义属性里嵌入宏代码,问题已解决。
1 \9 }2 m) C. {下面代码在2011版本中均已测试成功。" G6 U" ]7 M5 v3 ~" U# f) {
! f/ ^8 k* j( O" V4 S% V$ A' r
15楼代码,可以取左边字符9 z) r, E+ {, Y2 N: x6 z
19楼代码,可以取最后一个下划线后面的字符。5 N! z. H( f. X4 p! W6 n& Q

9 i3 C5 s) `! p7 \" V! P, R6 A: A下面这段代码,可以取第一个下划线前面的字符。* [! t/ k4 O8 j9 A6 ~; ~
1  W7 N; c8 _# P5 J7 ^
dim yfd/ |" b" w/ A3 z" A) o8 O$ M
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
6 S7 Q! S% u% V6 V/ _, f' e# i, Q: F下面是我在其它论坛 得到的 某位前辈的宏,你看看

  ]9 p4 L6 W6 W; j# I. z感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
6 R! S9 h6 F% k% O% y! \, |蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif; [$ p* t, D: n1 o
http://fans.solidworks.com.cn/thread-33730-1-1.html; Y! [8 ]" D2 F) b* }0 C
蛋大的教程可能有幫助
1 B3 J- }' w% Z' ]) i3 T6 n
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
! K0 k6 F+ i7 G. R& ~/ _8 C$ X1 t 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif* O) U3 x0 b8 D& J, T0 t1 q
楼主添加成功了吗?为何显示无效语句?
& H0 A: G8 q2 Z- y; u" N  c
没有成功
发表于 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.gif8 t9 \' [- V2 q  s) G$ T" C, b
楼主添加成功了吗?为何显示无效语句?

1 a6 l' _2 h$ @' U' o8 |7 A看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 ! D2 O& x; t$ x
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif* K2 |3 Z: g6 E! h. ^( M4 r2 I
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
8 l6 L9 V" L! P* F' f4 q

$ G' e9 P$ V/ @# H  w/ _' z/ g# r不好意思,再麻烦闷大老师,我的是2011版本。7 M1 B7 s1 `) P' c0 T
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。1 K+ n  x. }5 a3 _* S
是不是还要添加方程式呢?
9 @& i/ h6 x( H. D4 t9 U QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個3 G6 o6 N2 [' p$ S8 v5 G5 [
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
: R" V# k1 b) T! b7 a
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif* |! p  i6 f6 d' R/ h
試下這個

: ?8 t+ q  F; d. }9 M7 Z9 L+ O* g, o* t3 Z
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。) w# F% w% N  B- e5 F
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。- o* ^+ R' _% i  Q# O. N
也许是学习版本的问题
* w: I4 B7 E* l; I$ v, X# \! j 1.png 2.png % P% {1 s' e% \
2011版本+ X) Z: y& j7 N0 \) v7 I) g
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif
3 X  ^! Q; \: K2 S! I+ P' A谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。0 H' s7 v! r' Q2 G( m
我新建之后做出的,做很多次,还是不好 ...

+ [2 |! J+ q0 d  h% b謝謝qiminger兄回帖討論。! _6 r! p9 ]4 t2 N
# R) `$ F0 R% v# c* W0 X
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
% c# B* Z" m7 I& n問題在內碼嵌合到“數值/文字表達”不對。+ x$ y' F3 l5 l  E

! H  J* M: c8 z# a4 u4 ?/ ^$ a8 r$ u把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
0 [( U. {% O4 g' h6 t/ v+ jdim dummy& R; x  A; g) |0 b4 F
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
0 k! t& p/ P0 D" l, m$ \6 y
$ Y- F+ e5 T" r8 o% ]; |% N

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif3 Q. z" g0 s' \8 v
謝謝qiminger兄回帖討論。8 b# I, }2 O* }! J4 w& f+ X
& Y0 k( o  q1 w% t( X* ^  K9 G
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
; V( Y; u1 H! O$ j  |" A* j
闷大,请教一下。我这样格式的文件名如何提取3 m4 f4 t+ N0 n
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
: }2 k" r/ l' l2 H/ s謝謝qiminger兄回帖討論。0 i1 {) _8 E' I- b; `

) b9 w: H3 h: ^; f方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
$ ?# G: _& T: h- b+ i
成功了~~3 c. L8 F) c# M% m) ^
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
- k" M# Z% y; v( Y' m. Q$ F% R" {宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
6 ~6 Z4 F& H& Y, \, u7 d% p試下這個

% v& A; F6 `) |% R( p: h重新命名后,好像就不更新了啊
+ N3 i: _5 r/ r- {
" ]. X7 w. ~2 u8 V7 V弄个批量的宏# {# Y4 J! D6 M# L' Z

9 |' V. ^  n4 R. I# U5 y
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑
8 E- M: g( ~3 [7 M: y4 }, q4 g- J8 V
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
0 o8 c) V9 h* t% ]3 Z, a闷大,请教一下。我这样格式的文件名如何提取- x8 o, R2 C# n+ [, `
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1+ C4 m9 D, x( x* V2 H5 s2 {
Dim Txt6 O3 ~6 [8 g/ H4 a1 G) H
Txt = Part.GetPathName5 h- i; j5 d% e' Y# Y
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
% f; _- i4 j. R  P# t% NTxt = Left(Txt, Len(Txt) - 7)
! a5 d3 E/ u) n8 o" S, Q) GPart.Extension.CustomPropertyManager("").Set "partno", Txt

9 }  b! e4 c# @) F/ G* p) I/ `把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
' t/ l) M" T, w, j* A注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。6 T4 P  {! Y* z. P" d

: C5 l/ B" O4 `* c

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
: k. L0 p6 S6 w重新命名后,好像就不更新了啊
  s" ]) @3 o) h2 z4 a0 }& L- f2 |
弄个批量的宏
3 \/ T4 ?: c6 u( r1 b0 e  z+ {
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
$ u! a5 @  {. Y% x8 @% A) Y估計又是『脖子掛餅終餓死』的慘案一宗。

9 b- E& D  p8 `5 `$ N2 Y我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了# o8 q% Y( J3 t0 m) R" m
& _% S0 y, R) G: Y+ S3 z& K# G
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
5 i8 N3 u# k. g把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。0 e$ z! z; y  r( N9 w% C7 S: r* i
注意!必定要使用複製粘貼的方法,才可嵌合內 ...
! p  c% E. V! C% m2 @5 Q
对不起闷大,宏我看明白了; E& D/ u" T+ y$ `# o4 q
想起我未说清楚,最后一个“_”前的字符也不固定$ Z( P# I3 q9 _" \3 j
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif( I% c; s7 b* L& W1 ^) U5 R
对不起闷大,宏我看明白了
9 X2 B% _4 L# B, A4 c7 W, m, f想起我未说清楚,最后一个“_”前的字符也不固定
- [: \' C8 w7 o# z$ d2 v0 ~+ B有没有直接可以从末位数的, ...
! Z- N; w$ N9 `2 B0 Q
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif
7 a* M6 E7 F/ [( J7 [9 Z那段宏就是奇哥的要求
0 }5 V& [2 A* g
* c! h. v) f7 J4 P1 ]" G) \6 }
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。  o5 t# ?+ \0 S1 H
请问partno是不是可以改成任意名字,如“工程图名称”
# }+ Q& `# w) S1 t- W) C再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif* ?5 ~, a4 a' x5 A$ S" j
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。7 @8 q' T* ]. Q* M1 D; Z8 E4 R4 v
请问partno是不是可以改成任意名字 ...
8 k3 v, M/ V' i2 Q8 v. c
在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
, B1 Z, w3 B% P+ }" X- e3 w
' `. V' K8 k' k% D0 |  H9 a8 Cpartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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