QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,: b1 q0 s( X9 x: R
现请教大家,谢谢参与~~
8 \9 x3 V( m8 q8 L2 x0 p
  a5 x1 J" d4 B- I2 {7 ^) s2 t- M4 Y7 v7 t6 m, f
下面原贴标题和地址
9 B1 Q' D  r/ l, VSolidWorks中方程式的应用技巧
6 R- L: I6 {3 n) `% Hhttp://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
8 k4 u$ a  T  y7 @$ I- d& |% U- l; ^3 j9 {9 ]1 z' D' l
+ X- z1 O( w7 x( X
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
8 t7 E; u6 l) B+ \, f. I: W+ C. O0 q  [: X/ X1 s" j
方程式目的是从文件名中从左到右取9个字符* e4 S+ _# R% p$ [
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
7 \$ t* Z+ @& m
+ t: p: b3 B$ s# h) p如下VBA宏的編程[2012版測試]
$ m# L8 ^, K5 j- x& W( w# d
/ D5 B! n& i5 J8 H3 j: X; _' **************************************************, H  a' a: f4 E7 A" p4 ^5 n/ t
'  macro recorded on 06/24/13 by lsc& ~$ ?/ [) [" z& v2 Z! a( e% D
' **************************************************
' n/ s* J  a9 M8 eDim swApp As Object
1 p  y$ Q# J: H! D+ tDim Part As Object
" T$ a6 E% Q/ i4 L" \$ GSub main()  A6 b! Q# L3 E0 z1 C
Set swApp = Application.SldWorks  D* Z( l( v( ]( s# R% T* V
Set Part = swApp.ActiveDoc6 k7 m8 [+ W4 v1 h$ ]
Set swModel = swApp.GetFirstDocument
) P' s# t3 A! F' G2 \path_name = swModel.GetPathName '取出目前檔案的路徑及名稱; l  v8 }6 T  f( u* X
name_ = swModel.GetTitle '取出目前檔案的名稱* L) w# k5 o& e( y* T* f
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字8 Z8 M7 a: I, g# L* l( }
End Sub
* A. d7 `% g2 ^$ Q# ?" T& [* V

评分

参与人数 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 编辑 , c" D: w. H) z$ j, {) V; h: A
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
6 J$ O, C" S9 F5 u1 P3 e如下VBA宏的編程[2012版測試]7 D* C( }* D& u3 d( y: t

4 u( ~8 P/ D( O5 Y' **************************************************

& M  h6 d) \; Z! @" T5 h! v4 ]7 ?$ v9 z$ q! P! {8 k
十分感谢梁老师提供代码学习~~
: X+ m& n( S) _3 B, H; L6 E7 e
& D  D. b5 L+ A9 a! t( K% |提示进来学习的坛友!3 }/ p  K) a4 u+ P; i5 J1 L' h0 P# q9 Z; Q! K
通过在自定义属性里嵌入宏代码,问题已解决。
9 @! `8 e4 t: Z1 Z. }# `下面代码在2011版本中均已测试成功。/ N$ ?! h0 A" d, b0 I
6 A# d/ N  ]" o* y& H
15楼代码,可以取左边字符" O6 \# V: m/ |
19楼代码,可以取最后一个下划线后面的字符。
2 ^6 G( H9 \9 I  ^  \7 d9 R% l+ `- M' H' }" {3 y2 M! [
下面这段代码,可以取第一个下划线前面的字符。; Q( P7 ?, J- Z0 U' |/ ]1 p3 a
1
% g" H/ N1 M# D1 Edim yfd& A7 |& H; F2 D+ y/ S
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
( R  y9 O- W" m6 M" y; {& B# B3 U下面是我在其它论坛 得到的 某位前辈的宏,你看看

1 ^: Q2 w7 F5 ^: O# T感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html
6 u  N4 f. e( h; x2 Q" J蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
- y1 [+ n) B+ Dhttp://fans.solidworks.com.cn/thread-33730-1-1.html
: O) S" `7 r9 k& S: a蛋大的教程可能有幫助
  l4 ]( Y" K5 J6 ~6 w: ?' H3 C6 U
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
% Y3 N/ C5 ?- ~ 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
' ?# P. Z7 w0 F% z楼主添加成功了吗?为何显示无效语句?
5 }% P$ f4 T: ]; z' [8 b
没有成功
发表于 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! ]+ \8 t; o9 O) W) y4 Q
楼主添加成功了吗?为何显示无效语句?
6 b* M5 ?) v& f9 m: c2 b5 B8 ~
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑
) ]0 F& w& g, i5 U
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif  y6 B' ^1 f( T8 \9 L7 J
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

  d2 l' J) D. A' G) r. m# \' ?& M; ?
( w' z* Z: I) ?不好意思,再麻烦闷大老师,我的是2011版本。" V: f# d; _; o7 `: v+ }5 }0 T
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。+ P8 K. e, Z) C7 E+ y/ U, x
是不是还要添加方程式呢?
8 D2 h% h5 d! G- b" L$ d4 H QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個8 ^* E- |( d, N/ n$ e+ ~
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑 1 c( M9 q# A; `1 \' ^9 F6 x8 Z
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
! f$ c- U7 t! {$ b4 T! V$ \, z試下這個
6 V6 m1 u4 ?  j; \$ d

5 L% l0 E2 T! T* O$ U# V谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
( @. e5 z" i) ]0 x我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。& T* B& ~0 u  B) `
也许是学习版本的问题- d- X! c' D0 a+ l/ H& z+ u
1.png 2.png # w( B6 o1 k3 l* `3 ~2 Q5 y# Q
2011版本
& l& |2 w' Q2 N; V) e6 @ 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif
- Z8 \0 W- d) q! |: I谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
  s7 ?+ ]2 h9 {" [1 [我新建之后做出的,做很多次,还是不好 ...
, W4 ^9 g8 I+ @5 V
謝謝qiminger兄回帖討論。
) }7 l, x- d  l7 i
2 w" R$ `5 D% l( k  x3 K% j- V! P方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。- M2 K! K) d0 c' Z- U  R
問題在內碼嵌合到“數值/文字表達”不對。7 M- T+ \( I1 \, a7 @6 e* p

/ C4 S/ s  _$ K' a- t把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
13 U& c) F- g( R$ b6 ]
dim dummy
3 o! Z) z: L/ j- t( ^/ Vdummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

5 Q% V' m# f, U6 C6 C8 F& Q; \# F+ y. q

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif8 z, [' v8 d- l
謝謝qiminger兄回帖討論。
4 v* G- G6 F9 m  N: k/ T4 P2 A" ^0 x  V- r* _% N0 O
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

; T1 b/ k7 _1 l5 r; e+ l闷大,请教一下。我这样格式的文件名如何提取/ ^6 t7 W1 y% l) G
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif6 N2 [4 N7 X( T+ J1 U
謝謝qiminger兄回帖討論。
7 _9 o" [. P9 v# C/ X9 u1 E9 f; Y) w" k: D$ x
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
- c+ _1 }" Z/ W/ }
成功了~~# b0 o* a& K# l7 s' b
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
0 E0 I4 v+ O8 P+ X6 d7 t宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif5 D" {" B7 |8 N! ]2 C* L" N8 E) L
試下這個

  E. ]" n! y+ \) M重新命名后,好像就不更新了啊0 ^+ g& r4 t, |  Z3 x
9 p7 d! v, w4 [3 ~2 \- b8 V
弄个批量的宏
: @; A. [5 m/ x+ k" z. J$ W. T* r3 Y. q" v% `) \* M# j
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑
8 K( P+ J6 Q5 J+ A6 Y7 L: ^
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif2 Q: q# {% L4 w3 X  t+ ^
闷大,请教一下。我这样格式的文件名如何提取
9 L4 y' f5 a6 x/ P  w8 E& R: P例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
17 X$ Z. G* H% h3 b1 J0 x
Dim Txt
& ]1 q" G; \; UTxt = Part.GetPathName" p  ?7 E8 a6 x' G9 _
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
& \& u5 p9 C, R. a7 ]! A/ aTxt = Left(Txt, Len(Txt) - 7)
( m& Q- z( y( DPart.Extension.CustomPropertyManager("").Set "partno", Txt

* V. r$ M8 H9 L2 a* a把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
) \) j  S! F, @1 e: T( h注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。" Q) P1 d3 y8 n, }/ f( j
/ \0 t& e, [, X9 g% l& R" U  A

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
9 l( }* g- I0 u# q9 e重新命名后,好像就不更新了啊
# j0 g0 }5 @& F: y- n
! H( Q8 }0 v1 [* [4 m, [" E弄个批量的宏
* O  x3 P2 o7 M' u5 K4 y
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
+ a5 T  M* a* p0 w+ r估計又是『脖子掛餅終餓死』的慘案一宗。
& P" C  x! `" ?! S" @) Y# @: h
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了1 q' t' h  Q& p- t0 J" ]# d

0 F, A4 o, Y- E6 r老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif, d/ t" }/ q% s& B* ^
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。+ `3 B0 e* N( w2 B5 l. C6 K" N
注意!必定要使用複製粘貼的方法,才可嵌合內 ...
7 U5 z' a/ f7 {- p
对不起闷大,宏我看明白了% j/ v) H3 j: [! A" t( _
想起我未说清楚,最后一个“_”前的字符也不固定8 m1 Q9 }0 \1 O( C. q
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
8 X! x" ?2 j! V对不起闷大,宏我看明白了( v/ F* @# w# L9 o
想起我未说清楚,最后一个“_”前的字符也不固定4 R0 v" ], ?, h0 f
有没有直接可以从末位数的, ...
1 {. z% Z) @* u, x" s+ n8 y, k( T
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif6 f/ v5 H) q) n0 \
那段宏就是奇哥的要求
+ K# Y! ^$ [$ V

7 F2 l7 R" f, R: m! `我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
! `/ H% b- Z7 T7 s请问partno是不是可以改成任意名字,如“工程图名称”) F6 a2 I, r& ]% d! H2 J& _
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
$ h- {' G7 Z( [9 k5 e4 _我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
9 j% y7 w3 E1 Q/ \( o5 o请问partno是不是可以改成任意名字 ...

) V; _$ \2 r; S6 ^+ n7 g' q7 p在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
( y/ q9 v8 A2 h
6 t+ y! x) f+ Q! v/ r9 W/ Y8 Cpartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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