QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,3 Q( J2 ^$ Z- G$ a8 w
现请教大家,谢谢参与~~; u9 G- @" z3 z; U

( p6 o# w$ m) s4 {* ]8 T% a6 Y; K0 ~$ ^. J
下面原贴标题和地址% `5 v8 i( g: N5 p  V/ {+ R
SolidWorks中方程式的应用技巧2 O* W2 N& J7 j: B, v
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913  k, H& s: W1 e; s+ u! h

: b; C! O7 v0 Q( S3 g) w' t2 Q# g+ u- d$ k1 p$ w! ]% }: a
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))7 E) A; x/ A6 a2 Z2 n* u2 e3 d$ O

+ j+ W5 F- n. L9 @2 O5 e" \方程式目的是从文件名中从左到右取9个字符
. i; F2 x( Q  j% j
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 8 f& A% Q& R# E" R% b# o

, ]' B3 l% O; @% d3 ]" W2 `+ m如下VBA宏的編程[2012版測試]
" l1 a( D# q; B7 x" r" J  D6 Z! d  x# i$ |
' **************************************************
9 v& e% {1 B" f" p$ F, t( W'  macro recorded on 06/24/13 by lsc# i0 Q2 l! @( C9 U+ C- K
' **************************************************& E- ^. v& A, m) O, i
Dim swApp As Object
: `3 o/ H  _+ t' g, Y0 ~+ [5 FDim Part As Object
$ X) t1 E+ L* D: v' ^4 o, }& USub main()0 D* c0 z  a( G  F
Set swApp = Application.SldWorks
; N& M7 \* h8 ?& q) `Set Part = swApp.ActiveDoc7 s4 X' O1 ]8 k9 i  B! F% [3 O2 b  Y+ ]
Set swModel = swApp.GetFirstDocument
5 t6 J/ T- Y" ]) D( {. r# ?path_name = swModel.GetPathName '取出目前檔案的路徑及名稱; _4 D7 ^6 `1 T3 i# i
name_ = swModel.GetTitle '取出目前檔案的名稱
  X3 y) w; ^* a2 m( `, Q+ iname_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
8 ^6 e3 ]. ~/ j) R, UEnd Sub' g5 X. H( I5 u

评分

参与人数 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 编辑
. T# p0 Y& N) {2 m
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif. i  F5 ?/ j, h9 p
如下VBA宏的編程[2012版測試]
5 l8 h% [- h# a" z6 O. d9 h) }+ D5 |- V6 t! a0 R
' **************************************************
; z5 E, X! j+ q) h- C" s5 T
0 K5 l3 P6 U9 k5 @$ D2 f6 A
十分感谢梁老师提供代码学习~~/ ^% g" Y9 c* y! L* d6 D1 c
) I; f! l& ^8 y* S+ k( y
提示进来学习的坛友!
+ q% N! e0 ~3 _7 A9 y5 f
通过在自定义属性里嵌入宏代码,问题已解决。) N$ |3 K6 O; l* u! _/ v
下面代码在2011版本中均已测试成功。
' u* n5 g" q& E: p! N; i5 v1 U/ S! y! o
15楼代码,可以取左边字符
8 t: |$ Z5 w# \1 r" Q8 G. Y1 X19楼代码,可以取最后一个下划线后面的字符。3 s. V+ O2 S5 V9 v

6 U) O$ P7 w" ]- }' @+ k下面这段代码,可以取第一个下划线前面的字符。4 b& O% a5 p, D% V7 L0 H
1
: o/ ?3 [& d8 s$ b, udim yfd- U" V$ `0 N# m- I4 |: E2 F
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/ m4 Z. B$ N( r: f! m) d( m$ e
下面是我在其它论坛 得到的 某位前辈的宏,你看看
# u% l7 U* e: g9 ]
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
6 d6 o- N5 @0 d9 E$ K蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif( L4 G4 d6 K, ]' q8 P# A4 a
http://fans.solidworks.com.cn/thread-33730-1-1.html
6 C5 s% O2 |9 `1 ^  {蛋大的教程可能有幫助
) D& o* H  i% R- I5 h; M: v
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
( Y; Y2 f, {% R6 W9 e9 e! C 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
9 I8 J* h+ s4 I1 {楼主添加成功了吗?为何显示无效语句?
% W  x# l' t3 B  b2 e
没有成功
发表于 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
, ?! P! }6 M. R0 S( t楼主添加成功了吗?为何显示无效语句?

  d, N+ t! \$ s& |3 Y; B# R5 }, H看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 # M' j: D% |9 Z( W
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
7 b7 P8 ^* d0 E, _; N( b3 N2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
0 q- [# u+ O8 ~  w0 _6 u# Z
2 |, X- x( R+ l
不好意思,再麻烦闷大老师,我的是2011版本。
$ A( s, P6 k* B3 P7 [; w, {我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。
& L" y4 S# k& U) B# I  P9 L是不是还要添加方程式呢?
4 g2 [# g* g; _5 p QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個0 @; f: U- m( v4 C- C5 m/ \
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
( N( V. i) f/ l$ F2 Q
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
" h# p: v% ], R試下這個
. p6 Y3 [2 E- O! g/ _
: S1 w# P: M4 O7 r
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
0 L; F; O1 H! o- J" A( Z5 G我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。0 R4 d% Z, f- \: @* i
也许是学习版本的问题
2 V  h0 F) d2 t$ Q/ o+ ~- X 1.png 2.png
4 a9 s" t- o& ~$ x" T2011版本5 w5 G3 @7 }# i: U$ B" T  F6 N+ U  k
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif
; @! C6 v& ~6 C1 M( l, f谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。# v  _7 T: X+ `1 q6 @' ~
我新建之后做出的,做很多次,还是不好 ...

  v4 o5 ~. i+ E- F$ @% n8 \0 b$ ~謝謝qiminger兄回帖討論。; G3 \' ?/ n2 n
7 u1 l- L! D' w0 \( Y" x3 ]$ D
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
; A( m7 f! Z$ A$ G( s問題在內碼嵌合到“數值/文字表達”不對。
( i2 t; T- [/ S5 _8 v& [- i) Z2 q# _
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
* T0 d" ?/ C# L; Y3 sdim dummy
; ~! \7 {2 T- q& U& L- P6 p) bdummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
4 j+ x$ ?/ K8 r

# h: n% J. ^4 A; ]/ h- I

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
1 g' C' [( }# T謝謝qiminger兄回帖討論。
$ W, n  a0 d) m0 N
$ g6 D7 l% m( l: C方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
, r) M+ J: u8 p5 y* {, I
闷大,请教一下。我这样格式的文件名如何提取
! C, C7 ]  T$ G: D5 ]5 y/ t+ u例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
4 v  e6 L6 {' d" Z7 D謝謝qiminger兄回帖討論。0 D" b& ~; J$ J* g+ k6 Y6 ]

$ C0 l- t+ r% y; z6 P9 A, ~+ @$ }方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
$ N6 b8 l1 C( L: P) A% `
成功了~~. `/ N/ g2 n) c9 ~% A7 `
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
* G) @8 [  H1 h9 B; b4 Y* K宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif$ H6 J5 \6 t2 i5 D: g# Q
試下這個

# M# M& t3 G5 I! }  |9 c$ Q, R  L! [重新命名后,好像就不更新了啊
/ I+ s- O+ k  u8 M' q3 H& E; p, e
弄个批量的宏: {+ e% v. ^4 h# W1 m

1 M! s1 J, m7 l( x  l
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 ' _, _  W6 X5 O
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif% L) [! b9 B; H. R/ R4 J( T, d
闷大,请教一下。我这样格式的文件名如何提取
- c/ ?8 D# ~$ S6 K3 y例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
  V8 T9 F0 l9 A9 q8 c* eDim Txt; \5 a3 w* b' C/ L2 L" }' h
Txt = Part.GetPathName- T! W4 H$ l& z# ]  i# b
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
- x5 L2 o2 x! q8 kTxt = Left(Txt, Len(Txt) - 7)
( N+ F: w4 C  u: o0 F# G8 zPart.Extension.CustomPropertyManager("").Set "partno", Txt

( H; R6 V7 M, [3 X  A把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
( n/ R# Q% @0 Q0 T. l注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
8 s* ]/ P: o/ h! E0 {, p  }7 h3 F5 A  p" }. l$ m2 `# Q

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
% t- G0 L7 l% ]& c9 M' z重新命名后,好像就不更新了啊
. D/ Y5 E" o0 X. j9 `6 ^& I
2 z; |, {: Z: d  l& ~2 H" a; {( F弄个批量的宏

1 R4 R0 g! j3 A) j# p7 b( M估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
' ?" ^0 q( h% I2 {估計又是『脖子掛餅終餓死』的慘案一宗。
% `. S( o% y1 F  H1 \% _  F
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了
) s# L. u9 E9 G' L8 k0 L) {5 Q: B5 \' U6 k2 k3 ]) ]  v
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif2 n( ^* }2 T+ _9 [6 N/ O& ?0 k9 f4 L
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
: X1 d& i' `5 u+ w1 W/ h% D; Y注意!必定要使用複製粘貼的方法,才可嵌合內 ...

* x  U% A- A. c对不起闷大,宏我看明白了5 |0 e8 M( i# G( _
想起我未说清楚,最后一个“_”前的字符也不固定
) T1 U0 }& Z0 @% K& y有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif2 @% p# P7 t4 ]- X& C3 h$ U' Q
对不起闷大,宏我看明白了
+ u: J- e/ T: a想起我未说清楚,最后一个“_”前的字符也不固定& Y- g0 k9 D% |: J2 g" K/ X
有没有直接可以从末位数的, ...
9 v: U6 k: q) Z9 J+ \- R7 j
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif8 z! Q' B( P" n! D3 L: i
那段宏就是奇哥的要求

4 q$ _2 Z8 p: c& s3 A: R+ c) v: |& s) A  `5 d
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
; |; j8 l' d2 N" Q0 [2 _5 [% Z请问partno是不是可以改成任意名字,如“工程图名称”. p+ e! O8 P2 D6 n8 C
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif% D$ ~7 }# M8 y( X. \5 B
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
9 W) X) R1 {' Q# b" ?请问partno是不是可以改成任意名字 ...

. E* w/ _" P% L) ]1 ^9 E在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
/ D! `: h; p" [- m
  _% Y& ^0 z4 L; ?. p  lpartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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