QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,: f* p6 g% x) q) T% A
现请教大家,谢谢参与~~" j  r( i+ P4 n0 J7 S5 o5 H

, n: I9 J0 a' R! ^- Y6 n  H2 g+ K+ C% J2 x
下面原贴标题和地址9 c0 i  W# q: E! \
SolidWorks中方程式的应用技巧) Y$ C  u, V2 p( v/ A9 n) a# i8 K8 {
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
5 c  d/ B7 o/ y% p4 a8 i3 `% N0 }8 Z6 H/ M$ Z0 }* y2 j
$ F6 Q8 \8 C0 A  [% e: @
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
6 \# O3 _/ q' v1 S5 A* ?  e- J3 P* o1 `" u. d4 _) P
方程式目的是从文件名中从左到右取9个字符& _! Q6 T" l2 n. \
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 " V9 |2 @. k4 z% V
0 ~) i* W1 G2 p5 x
如下VBA宏的編程[2012版測試]! h. z1 t6 _5 \0 V) @9 _. |: d- Q

' w9 S2 z+ t  }' **************************************************1 M7 Q( K4 N; l3 b: w! K! z
'  macro recorded on 06/24/13 by lsc+ C5 W6 R/ w3 _0 l
' **************************************************5 S7 [: O% |$ F/ c1 j# E# |6 j
Dim swApp As Object
7 x* V; {/ v/ o0 p% h, k6 ]: UDim Part As Object2 V5 O0 ^+ ^5 u- w" x
Sub main()
5 }; d9 U3 O2 n: s0 J2 {6 N% DSet swApp = Application.SldWorks7 ]7 ^+ W, ~: `# o7 F; O
Set Part = swApp.ActiveDoc
  P5 U# i7 s: `1 M/ \Set swModel = swApp.GetFirstDocument" R& z  d+ D% r+ S7 e; n- Y" h( x
path_name = swModel.GetPathName '取出目前檔案的路徑及名稱
6 b& `, N, E4 q5 t9 rname_ = swModel.GetTitle '取出目前檔案的名稱# T& o; r0 P3 M4 O+ \0 {
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字7 m+ ~: O- Y& L7 m
End Sub0 u5 Y9 L% D# ~2 ~1 d5 \7 M' M

评分

参与人数 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 编辑
( p; I+ v+ S$ ^8 [
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
. o9 ~- V. f; I5 m如下VBA宏的編程[2012版測試]
) ^8 j8 c( J  L" t9 ~0 o6 N* o- v
' **************************************************
4 E4 D% |: D& U9 \& a: n5 \6 x# z1 k

6 m/ D, D2 O' S7 I+ g十分感谢梁老师提供代码学习~~" [% S, f/ B; r4 ^8 A8 B4 t$ d
6 c  ?; |% I4 Z
提示进来学习的坛友!: h9 U) U" R  |3 [! w5 n2 @" {) d
通过在自定义属性里嵌入宏代码,问题已解决。! S- g( F7 `+ _$ n  e* s5 O/ t$ o
下面代码在2011版本中均已测试成功。
0 V4 Y  F& r1 R' \" x9 L: B" X  C3 F! e( c% W0 T
15楼代码,可以取左边字符5 s# n- Q) ]; q0 L5 |: G
19楼代码,可以取最后一个下划线后面的字符。/ \, h  `0 r9 Y, H, x9 a# I; h
/ G% O  f# i( P8 C6 A
下面这段代码,可以取第一个下划线前面的字符。
3 o2 X* ~5 u; }) Z8 c1
" B, `( L  z8 x3 ~5 |; |dim yfd
0 J3 i. B: m4 b7 K* R: syfd=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
# }' i  }! P+ @4 |. Z! _! B4 P下面是我在其它论坛 得到的 某位前辈的宏,你看看
2 |' N, f- H5 Y% m5 N3 m, i
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html# n! A: n3 [/ h( l% f7 t9 j
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif% A0 O; A+ t3 m8 D" O2 C
http://fans.solidworks.com.cn/thread-33730-1-1.html
2 D# p8 n" [; C) h* U5 ~蛋大的教程可能有幫助

  [" ]( I/ D) o非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
! ^0 `; g6 a0 Q7 V& l6 i 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif- ?! Y" v+ l- ~$ Y- M/ m7 Y
楼主添加成功了吗?为何显示无效语句?
& E5 r4 e/ v0 G; C( r0 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% x& K/ o" F1 D5 m( U* a
楼主添加成功了吗?为何显示无效语句?
. a5 w, }: T0 a, H7 {. `
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 3 W) ?# Z. K- k2 D
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif4 e0 Y8 A4 j8 _* J3 ^' b: o! I
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
$ ?) g1 O" |# ~/ H! ]3 a
) V6 K8 x# P' T
不好意思,再麻烦闷大老师,我的是2011版本。( l* e, [- O; }% J6 l, G
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。
: b4 {* U7 f+ Q  D是不是还要添加方程式呢?
  B5 w5 F( D0 j9 b. } QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個* E3 h  r4 Y& d, @2 Q& w& l
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑   o& d3 v* N& j" Y' s6 V# e
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
; T  J* Z* A. S: H& x! ?' p試下這個
, d3 h( Z/ P5 O5 [, v8 T, `
7 s" c' d' U5 L, ?1 }8 \1 N. R
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。! V4 B% _0 _$ A6 `0 F) @% s; H
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。2 Y# D) g( n( G- O
也许是学习版本的问题
; p: X' B. o+ w/ Q 1.png 2.png $ x' K5 e: d- ~
2011版本+ j" C% P) ~' B* ~& r' W
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif
. K3 t& m) g3 W& W& F谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。1 f3 A( P6 b' j
我新建之后做出的,做很多次,还是不好 ...

6 U$ V1 \0 `+ S. k$ O9 v/ h謝謝qiminger兄回帖討論。
! c* k) j% ~( ]5 Q8 K! V+ `5 v3 T, \% v4 V4 _
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。4 Y. z- m- X2 v# f
問題在內碼嵌合到“數值/文字表達”不對。# ?5 T( K# |1 m4 r
7 J  y# \8 d( o" }
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
& [5 v, `5 |/ ?# A. g& W7 Vdim dummy
0 z% A; I3 P; B- H9 Y* Tdummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

  q4 w# h( N& A/ c3 i
, |2 V% n/ S# `; Z- S. |$ r, |  M1 x

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
3 q( v$ a' }" M3 y+ A: T$ K! U2 S謝謝qiminger兄回帖討論。
; P& K4 [: ?/ v$ C, L; ?
& u5 F  n+ ~! E+ b+ \方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

, n9 `/ f5 \# |. j) \( V: g& `闷大,请教一下。我这样格式的文件名如何提取
/ V. i# r3 r+ {( I& ~# M! n" D/ U例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
2 `/ }% y" k& c謝謝qiminger兄回帖討論。
) j8 O2 c/ j  N# v3 a* B; L% z: B
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

+ m" j7 M- T7 l成功了~~9 q8 S' v. [4 X5 g& ]1 g7 v
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
8 F/ A# i+ I* @# R" V宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
6 t1 r8 u  {! y$ l7 R, w9 H/ ^9 N4 l試下這個

# ~8 M/ }/ G' W- B( ]. k6 O4 U重新命名后,好像就不更新了啊; n; d. R! O2 a2 `1 v1 {5 S/ d
8 E9 y, o2 P' p
弄个批量的宏
3 [0 f" L$ O- \% [2 J0 U* N0 h6 V! p4 y
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑
8 D- H/ c, W7 {- w, x& ^+ y
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
4 c. O$ _# L2 B闷大,请教一下。我这样格式的文件名如何提取# R: z* h( F$ \7 e8 h, x
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
) G: }9 Q8 W! Q" r7 P+ cDim Txt
8 J% x. G4 h' _3 n' m) C1 A2 zTxt = Part.GetPathName  E& W& R4 }. ^+ G& ?7 k: z( W
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
$ }0 z2 G" G/ o, GTxt = Left(Txt, Len(Txt) - 7)3 U2 V/ }& ^$ p, y
Part.Extension.CustomPropertyManager("").Set "partno", Txt
4 X5 K6 U7 A# U
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
) v% W/ J, T( l5 Q) e$ a注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
  Q' @3 c4 P# l! ~
0 F  \; L: y, n

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif* p! f( \- [& n+ O
重新命名后,好像就不更新了啊7 I5 R& `0 w0 W1 ?4 S% H7 E6 Y1 O
. C5 d8 z/ v" O3 K; Y. o0 k
弄个批量的宏
: N1 Y6 E/ K3 F4 b! z* x! c
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif  H+ |8 J: }2 N& D
估計又是『脖子掛餅終餓死』的慘案一宗。

6 i5 x4 }* n& ~2 l我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了2 `, Y2 p( u% V+ J  b! i+ m. [

* n" A- D6 C/ J4 ?老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
/ E+ r' [" v7 \把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
9 m$ L0 L  j* F% B% `/ }* Y注意!必定要使用複製粘貼的方法,才可嵌合內 ...
5 G, M1 h& I. M5 c
对不起闷大,宏我看明白了8 T# g* L& w& A2 P5 W- W2 I/ J6 C
想起我未说清楚,最后一个“_”前的字符也不固定: j/ M* a7 `" l0 ?: P- k
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
, V. w" ^# j; q' U9 b: ]对不起闷大,宏我看明白了
+ \, g/ ]" o  S, e) S; c4 H想起我未说清楚,最后一个“_”前的字符也不固定
/ R$ C! ^2 g2 U4 n有没有直接可以从末位数的, ...
# w. X6 w! w2 g3 ^
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif& G$ g; A, [/ x: O5 @) \$ i5 j" y' U
那段宏就是奇哥的要求

0 B( Z/ A7 J! H' G# p
2 }) c' x) J; X) W  ]/ Z2 R1 n$ j8 D7 ]我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。: o$ D4 K0 M5 R" a
请问partno是不是可以改成任意名字,如“工程图名称”2 {  N/ r* C# Q  Y
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
5 }& E6 s& x: Z4 A! {5 K! b我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。1 m, V$ z, J4 F6 _
请问partno是不是可以改成任意名字 ...

& A! p9 h9 Z- [/ j) M: D$ _& S* ?在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。* z6 H3 ], u1 @' {4 e
& J4 X' ?: P% h8 g# j
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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