QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,1 i! p% Z- S; Z; y, i
现请教大家,谢谢参与~~
4 k8 D6 k$ e6 R& {. P3 c% t, I! l1 c& ~6 B6 [# d9 E- n5 O0 M
# G5 U8 }) w. x# E; w
下面原贴标题和地址7 c1 S( x# z$ `' O
SolidWorks中方程式的应用技巧
. T; s7 J" B  z! ^http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913( D( N1 ~4 B: v& o- a- x5 O2 r3 ]7 z

5 h. O; y- H- b) i! V* G8 z. i* b3 r3 j7 i, I2 b
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
9 q1 R2 W4 a$ G: P( ]" I6 x1 x$ z2 r4 n3 Q, ^
方程式目的是从文件名中从左到右取9个字符
2 V# N0 H! F8 [6 k; g6 p8 F5 X: s
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
' z+ U! B3 d* j- O
. ~4 h% M2 D3 Y2 J3 {# I如下VBA宏的編程[2012版測試]
8 X9 [7 x5 c7 y8 t' u2 [3 \9 V0 u- o) e" C" f8 Y3 h/ r
' **************************************************
2 L2 c' I* e" |4 c. F! H9 ?8 Y'  macro recorded on 06/24/13 by lsc
5 b9 Z9 L8 V$ U9 P, d: f  @" \' **************************************************
- s1 \/ `9 X( Y/ r& ^8 VDim swApp As Object, R6 a) o& H8 n0 M
Dim Part As Object- l1 L) `  S5 W* c+ m, Q) f. P9 m8 t+ ~
Sub main()
, P0 [, ~5 X& g) X$ g; v4 @1 |: ~Set swApp = Application.SldWorks
8 G( m% M( p- R) Q- d/ c  HSet Part = swApp.ActiveDoc7 x4 C2 e8 L; y& p  k5 f0 ?3 m
Set swModel = swApp.GetFirstDocument
1 J: O; Y. }, G4 }0 A: Spath_name = swModel.GetPathName '取出目前檔案的路徑及名稱. d# n0 V* Z) U
name_ = swModel.GetTitle '取出目前檔案的名稱
# F; \( z' Y" d# B4 o2 ename_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
' W% D+ R5 U' m% B- OEnd Sub
6 W) t( l% i  O

评分

参与人数 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 编辑
% K- d' e# y) [1 g* v" z- k* e4 X
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
+ P" d# L  l# n# D如下VBA宏的編程[2012版測試]8 P- Q2 ^, M5 E* j! y! g: t& q
9 J* b7 B3 O7 [* G/ P7 r4 J
' **************************************************

( l1 ~8 [6 {7 o, _  ^  D6 B: t# E( r& h9 y
十分感谢梁老师提供代码学习~~9 W# ^5 n7 R) h; c6 o
; x6 j' Z% {) m* c5 U
提示进来学习的坛友!6 i  D! I/ N" R  I5 u% [
通过在自定义属性里嵌入宏代码,问题已解决。
" \1 q9 O( H0 h' ~2 w下面代码在2011版本中均已测试成功。0 O! p5 A+ C0 @+ j7 ^

0 b8 D  x: h7 q5 g( E- Y15楼代码,可以取左边字符
, j7 l; \6 ~9 S& @6 g- H! w4 `2 Z19楼代码,可以取最后一个下划线后面的字符。" U4 E8 C$ m5 M$ r; }* _% g3 h& E$ s

$ l6 p% \3 e' h" u6 j8 p" u) Q+ P下面这段代码,可以取第一个下划线前面的字符。0 _! L% k6 g1 S3 y+ o0 c
1
$ N, P$ U9 O; X% wdim yfd5 M; g5 g5 m$ r0 Q& Z+ p" o
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$ F  R; ~* w8 @
下面是我在其它论坛 得到的 某位前辈的宏,你看看
' e$ g6 y1 |) g- Q
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html9 V  C& B& A2 v
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif9 A/ d: U5 ]) M7 m' G1 k0 O; N  w
http://fans.solidworks.com.cn/thread-33730-1-1.html
3 J4 T7 Y2 e4 g  V3 z蛋大的教程可能有幫助
% C- K* n' h! {# `1 ]$ A+ p
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
/ y6 O# {; |; [7 J 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif/ T5 B: v  n; @; ]" o
楼主添加成功了吗?为何显示无效语句?
$ ^4 H0 b, _) \0 h
没有成功
发表于 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
  B, B4 X' O# j' g) J4 C6 p楼主添加成功了吗?为何显示无效语句?
  R6 `* Q1 ]: q, }
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 % [1 E9 v$ p" b- Y; H
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
) G- t7 M, W. g6 u2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

# M7 X! C, L& q  D- O* U
5 h8 _$ c) [8 o2 Z; R, L不好意思,再麻烦闷大老师,我的是2011版本。
) G2 P1 @3 r0 q, I- t3 Z我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。0 ~* R9 C1 Z$ J- @5 O. }+ ~
是不是还要添加方程式呢?1 S2 A, R0 m# i7 e9 ?+ G
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
; W+ S2 @# m( h; S, A& [) i 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
' ~" S( `6 A, c, P7 k" b4 Q
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif9 L3 k% H! j$ }% k- W+ v
試下這個
; p7 }' v3 l8 k9 ]3 g. e$ T

, Z9 u$ b* n8 v3 K谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
( Q8 T9 U& }+ X3 k7 w2 p! t我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
. U+ e6 N- k, P也许是学习版本的问题
+ w, U# ?/ V0 b7 B. ^ 1.png 2.png + a# v4 _- q$ t  l5 c5 i0 @  d
2011版本+ p( Y0 q: R) q
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif" c: @) E! Z* y) w
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。8 o/ a! L7 g* ?
我新建之后做出的,做很多次,还是不好 ...

& }' W$ n) e# R謝謝qiminger兄回帖討論。
2 c1 e! _2 q2 J% s; V4 G4 a' h# X# t& f7 M9 Q( e
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
4 P4 X& i' P. o+ f, \" c. e6 X' g( c! `' z問題在內碼嵌合到“數值/文字表達”不對。
/ [# K- {8 B5 b9 o- @
6 F" O( ?# f: v. ]- c9 `把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
14 f# e4 Z. @$ `  X
dim dummy8 T7 L* J/ s$ n# C4 @/ a
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

! L  S, o/ Y0 ]/ {. E
$ c0 g8 w+ ]0 {0 q1 H! m0 r& T7 [

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
2 }6 U$ J( n% z/ J* x謝謝qiminger兄回帖討論。. E- b2 O0 f( Q6 K3 R; e& j
9 y, h4 ~6 V' G- B9 C0 G! e1 p7 G
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
3 ^: Q. ~8 {7 p( f) L( j! E4 k. C* Y
闷大,请教一下。我这样格式的文件名如何提取, U$ [9 J8 S% h. B* B- O* U: G$ H
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
1 u' m7 }0 [% B1 i, r3 `謝謝qiminger兄回帖討論。/ Z  u/ u3 O0 x2 C$ |4 W  e  E  w

) N9 a" M# n& w, }* L: Q方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
, v$ G0 Q6 K; w. k& L% _" E  C3 _
成功了~~5 z& B. L3 `8 k7 O2 s4 q
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
/ }$ ^1 f6 F+ P+ J  d8 ^宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
/ Z; n* ^2 B2 o- f試下這個

# O- I/ R/ `5 n. k重新命名后,好像就不更新了啊
  _& Z, \4 S. z! n9 T" K
2 n* J- B( j. X% d; H弄个批量的宏( r9 j+ q* q' [7 t" E8 N
6 c! u' Z  B- x& W' @) v7 J
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 ( S, ~$ d9 M# |$ W7 v6 m4 Z
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif' n% u' e- v! F6 C4 J" D& z& P: Q
闷大,请教一下。我这样格式的文件名如何提取
1 l- [& D+ ]* e( S& U9 k% w例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
! [  X: h* v) Y1 n" I! rDim Txt
" M. [2 W! ~& C' s7 l$ W2 s3 ITxt = Part.GetPathName% ^$ z# W+ x3 C( W4 Z9 o# M: l
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
# u3 u5 A( `3 n) P- _$ d$ X6 uTxt = Left(Txt, Len(Txt) - 7)
0 t4 p5 |; u8 z2 @; ~Part.Extension.CustomPropertyManager("").Set "partno", Txt
' }) }  |/ {' |* v- p
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。4 \' A- K# ]. u$ y  p
注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
+ @0 J, O; z/ w% K+ A  [; s$ F1 q! ?7 K2 I6 m2 |, p+ H! ~3 n

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif* |+ C) V  B& c3 o% e2 A5 ]
重新命名后,好像就不更新了啊
/ K* o* N, b2 P3 W, M7 ]4 u6 ]4 w2 n5 f& R, r; y
弄个批量的宏

+ o8 J5 P; w8 Q$ s* q( R1 j* N8 \估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif
* E2 X- M: Y- b6 H7 {! m估計又是『脖子掛餅終餓死』的慘案一宗。

2 w& ~* \. Y' W/ g9 C' q7 l1 z我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了
4 e( X! l& _3 @& a3 j2 i# p; b, s5 W, K) b) G* y
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
& _$ y! o) O4 T" C# m' ?把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。# G% _6 o2 G3 b8 j% Q0 P8 r  T) ~$ E, D
注意!必定要使用複製粘貼的方法,才可嵌合內 ...
/ p. ]3 @9 i* c: D/ P$ @0 q
对不起闷大,宏我看明白了
: g5 p+ J* x% p* j5 s& u' D- V想起我未说清楚,最后一个“_”前的字符也不固定
% D  N5 g. ?! D# C3 h+ B有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif8 G8 `: x3 \" Z) `
对不起闷大,宏我看明白了
4 ^6 S. L3 z# a# t  v9 |7 }想起我未说清楚,最后一个“_”前的字符也不固定. ]2 H2 Q$ u8 S2 r
有没有直接可以从末位数的, ...
: c6 G/ Z' r3 A' z- h+ V/ w, M
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif& a$ m9 _7 {/ ?7 T- Y; a
那段宏就是奇哥的要求
/ Y# z% G6 x  X6 n1 e6 V7 ?

. [) Q3 t, P- _. n4 z# r我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
" o& b! M1 I; l7 B3 x; |请问partno是不是可以改成任意名字,如“工程图名称”
# F7 b5 I& x! x, h再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif' k# W/ ~' @5 i$ a9 O( {
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。% K& J+ z1 p3 |2 {  g) @6 i2 \
请问partno是不是可以改成任意名字 ...
9 O/ ?$ c8 r4 d2 c5 Z4 w- @5 G$ }/ \4 I) r
在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。
$ a1 l1 w, k5 p7 q% Z- Z; g& V# G* l" E# ]  c
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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