QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,, T5 z5 z$ M" S! p
现请教大家,谢谢参与~~7 ]3 R' p% c) X: {1 f

. i2 k$ z. \) m" [7 w$ Z! G$ A* W. p) u
下面原贴标题和地址. O  |9 \( i* W6 u  k; R% x
SolidWorks中方程式的应用技巧
* E1 l/ Q0 S( a- K! t3 {3 P; l) n: }http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
! r; t/ _# G" f! T
" P# ~1 k6 u. u* E( k; R! A
9 C* g3 R) H* j+ T. A$ O原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
* N; H5 _: y- K2 P! {% J+ C5 V0 }" j% i6 K9 }3 S6 Q- z; b# U# w
方程式目的是从文件名中从左到右取9个字符; R0 N$ W1 |2 L/ |1 J+ }
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 / Y% Q* k$ L# P) \& i
! y+ C1 j# Q0 ]+ Y4 U
如下VBA宏的編程[2012版測試]
3 H' ~5 W5 p2 A& f3 e/ Q2 k* I4 C
6 \" d" E( e8 }; i' **************************************************2 _: u2 ^: C0 u8 o% r- F* r8 }6 z
'  macro recorded on 06/24/13 by lsc
5 R. z; E3 K: I4 C' **************************************************( z6 j  `' @% |
Dim swApp As Object
3 {; T5 G" W3 O5 E5 kDim Part As Object" t+ |' {6 n. _1 t$ `% |, z# K4 N
Sub main()
" K" U' Z: ~8 y7 \( R0 t4 YSet swApp = Application.SldWorks
( E) l' s/ }; x$ ]8 Q% BSet Part = swApp.ActiveDoc
8 v+ B8 E, x: z. ]Set swModel = swApp.GetFirstDocument
# t  u$ n, V0 ]1 upath_name = swModel.GetPathName '取出目前檔案的路徑及名稱3 Y6 G7 ^& R! _; N3 O1 G
name_ = swModel.GetTitle '取出目前檔案的名稱
& K# a& w1 ~( p( m9 Qname_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
7 Z! S7 a# }9 [& R1 P* aEnd Sub; a! a1 U, F: a8 w9 t

评分

参与人数 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 编辑 / R  I* m2 N5 _  z2 }3 f4 d# Z
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
; g9 ]- t8 m& e+ q如下VBA宏的編程[2012版測試]
4 t2 T; h0 ]' c; t+ J3 P! Y
% ]2 K# u( G1 `/ ~  r, t+ `7 B/ M' **************************************************

) e; \2 T) s' E; A/ b( g: ~; {- S, m, b/ l# D' A
十分感谢梁老师提供代码学习~~  H$ ~) M+ X  f0 K

1 M2 W  X4 a  p  _2 I3 x提示进来学习的坛友!) u# ^& b& I8 f
通过在自定义属性里嵌入宏代码,问题已解决。
4 r$ M9 I: {1 y0 _) ~2 d下面代码在2011版本中均已测试成功。7 h) i; G/ |( K* z- K
3 j9 m1 c, s# p7 ]: a/ H/ z
15楼代码,可以取左边字符& q) [/ U4 Y6 n2 E+ a1 l
19楼代码,可以取最后一个下划线后面的字符。
: x* q$ q7 b7 H9 D# r4 u1 N
4 o# {, E4 N1 x  n, ]- S下面这段代码,可以取第一个下划线前面的字符。2 H" q4 M; i4 d
1- x: k4 l$ N6 f& f% w  j$ |
dim yfd
* A/ M8 h( |0 _( l6 qyfd=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.gif3 R9 X  k! x; d5 p- ?3 d
下面是我在其它论坛 得到的 某位前辈的宏,你看看
4 V: V: V; N$ E/ T6 G3 B- `
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html0 u" b, K0 p+ M: a
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif% K- n  n  Y0 c, n% }# u; E( }
http://fans.solidworks.com.cn/thread-33730-1-1.html
7 B, M7 U0 O. E蛋大的教程可能有幫助

& q* d0 d& u- `非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
! F5 [& |$ J" d2 H 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif' W4 G0 j5 G, l4 p  `6 A
楼主添加成功了吗?为何显示无效语句?
% t; d8 l* ^0 {# d7 T7 v
没有成功
发表于 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
# I$ d1 ^5 }0 u楼主添加成功了吗?为何显示无效语句?
/ k) c8 F7 I" F  ?, ?
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 ) M9 R% s4 I/ ?
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
( k* O4 E5 q; ?* x7 n/ n/ r2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
( Y, _2 t! Z% ~( P! i

0 w* ~1 c* d0 q( e  T0 o0 ]( x不好意思,再麻烦闷大老师,我的是2011版本。
7 d& r" s* ~# X我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。! ~( \& o! `9 Y- U
是不是还要添加方程式呢?3 M' _" K6 ]0 D, r/ K4 [
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
" ]2 {6 ?5 P! B. j 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
0 J4 w& W# F7 T1 ~0 N$ ?
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
' `* Z  o7 X# S  P+ U8 ]1 e試下這個

) Y8 F  [( _. ]5 r3 ]! s/ c+ i0 Z3 K3 F8 @/ v/ p- B
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。4 V9 A/ i4 X5 t6 `2 X8 @
我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。' x9 C8 A6 m8 W# _0 ~* {
也许是学习版本的问题
" M* A' Z. G2 L+ d% e* \ 1.png 2.png , \; F. @0 i5 ?
2011版本
! g" A% w6 }$ G/ m* c 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif) A& h8 I5 f  H" x  i
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
- @2 F1 M, ]" S我新建之后做出的,做很多次,还是不好 ...

* E( D/ f  c& X4 x: Z- j謝謝qiminger兄回帖討論。
3 W% }2 s2 d- u# r1 T8 `/ C! k4 a$ h- c, ~
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。; R* J* A8 h7 l' W3 W  V
問題在內碼嵌合到“數值/文字表達”不對。
1 Z( S: Y) I% A4 q) b8 F7 m) M. K6 ?( E+ b
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
' Y2 f& B' w0 M! n  ]; Fdim dummy' h0 f3 O1 y# F7 Q8 R
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

" H. ?! N4 o8 j
) I7 j& v7 Y" p9 c  D  x1 r7 I

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
1 ^+ u9 {% Y4 w: F$ G) U9 e謝謝qiminger兄回帖討論。
, O$ J# d2 t& P" W8 X7 v6 i  c( C  i5 c
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
! `2 A+ h4 u% @6 Q* l6 C/ G7 T
闷大,请教一下。我这样格式的文件名如何提取* y, E* ~( M9 J# V* r* c1 t, ?: S0 u) C
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif4 _% u8 g' v! Z+ A
謝謝qiminger兄回帖討論。1 A+ M# a* [; i5 ~5 J7 {* Q6 z( N4 N
. p! g* E2 K1 N3 ?
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

* _4 \7 x/ [# |) ~* N, v+ b成功了~~6 x$ t3 W, Y* |3 E# l/ \
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
. a  {! w  _/ U, K' j( ^' s+ r宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
; N  [+ m* Y$ K" u8 ?/ @試下這個
9 M1 S3 s2 ^2 A
重新命名后,好像就不更新了啊2 F: B: @" f3 q
1 }7 q2 R" ^/ o4 N+ d3 J
弄个批量的宏
+ a( r! c6 K9 c8 m' i! A8 \6 C1 Q0 G  H4 D! q4 ~4 W
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 9 Q5 }5 V7 ~) S- D* j. S9 _
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif
# h8 n" e0 N" E4 f闷大,请教一下。我这样格式的文件名如何提取1 ~. d. G, Z7 W$ `3 O8 p8 p
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1. k; C$ a. y5 V: J' T; t
Dim Txt6 F! g* t" Q2 B0 A; v
Txt = Part.GetPathName; `* l+ T7 L# O3 Q8 U
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1): c$ y% W( R) p! f6 M/ f
Txt = Left(Txt, Len(Txt) - 7)' |/ b' @" p& f5 N; ?5 y$ {! i
Part.Extension.CustomPropertyManager("").Set "partno", Txt

* {' G4 B0 Y* r$ m7 B) @% B8 h  P把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
: X. e/ Y, U, e0 F( n注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。, B( T5 C/ ^, Z% }

- N  u$ g6 k8 I: K' h

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
+ W& n& K+ y8 G2 [5 [' ^重新命名后,好像就不更新了啊
3 p7 n0 a8 B' g& S4 ]4 ]( R2 G' d: T( ^3 ]. s. j& E
弄个批量的宏

8 l" [7 u3 x4 f' A8 M" \( N估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
; R' |- r5 l/ E3 e) d估計又是『脖子掛餅終餓死』的慘案一宗。
% u( y* }: m7 |+ Q. t
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了$ K& D6 I& E, N7 l8 \
" g: G! ]& K1 \& \
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif3 D3 j0 z) m* r4 A& S2 b
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。  e4 k" A4 ]' S0 a, z. Z
注意!必定要使用複製粘貼的方法,才可嵌合內 ...

; u# P/ |$ o- [对不起闷大,宏我看明白了6 m- ~: |7 j  \: u8 q
想起我未说清楚,最后一个“_”前的字符也不固定
# a3 W5 A% I+ n8 T  A1 P! ?有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif1 N) [+ F4 O% P; Q2 t
对不起闷大,宏我看明白了
0 H. u2 R( W1 b+ S* X8 k4 K2 x想起我未说清楚,最后一个“_”前的字符也不固定
( d+ b1 _6 C3 a1 M! x有没有直接可以从末位数的, ...
6 m4 F$ {- v5 v# W
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif+ R' L2 T5 @7 e9 j8 l0 N
那段宏就是奇哥的要求
1 E5 g0 T9 Q6 o# j1 B, f& f7 M3 T# R+ P
! c- ]; O  V& e8 ?  L# i; k5 @
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
% }0 K; X, u. r请问partno是不是可以改成任意名字,如“工程图名称”6 w5 f; P% V3 N& b1 z
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif
4 h  o8 u% g# U: q3 T0 ?' X我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。& r5 V% w8 S: J+ v" O+ i
请问partno是不是可以改成任意名字 ...

* B( T& s* ?8 t在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
, o- \/ X  [0 u1 M8 C; n+ |2 P/ U$ y. I% v- D
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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