QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
6 ~, Y7 W! W5 V3 R3 S+ r$ V现请教大家,谢谢参与~~. v) U5 }' [' h. k+ J

1 J0 w9 E% ?' f2 S, ~/ u! M# G4 e( ?4 v3 @  O
下面原贴标题和地址  F- R# ^  }9 ^2 w4 p8 w
SolidWorks中方程式的应用技巧+ a( h0 d7 r1 T* f% R
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913: u0 D7 @- d/ }/ u2 k3 e
6 t8 g- U- A( \% A4 n6 r

) Z( i0 J& p) N, Q原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))1 ^* Y/ B. {3 j7 }0 N& Q' _. @0 N

. I) P. g% D' y  r  }$ j方程式目的是从文件名中从左到右取9个字符
; g1 J/ T0 I# e1 k$ Y
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 0 i4 b) h4 C7 l8 D$ i5 |3 C
( F: V6 K8 I9 U7 W: ]9 K; |
如下VBA宏的編程[2012版測試]
0 K* F' S- i) r/ G9 b
/ J0 I0 M0 c" N# Y0 O3 Y# b% M' **************************************************
3 }) Q+ d# W4 i! {# @# O'  macro recorded on 06/24/13 by lsc- g9 t+ _5 v4 P  c
' **************************************************, z& |; q. V" O( \- k
Dim swApp As Object
4 v0 w( j& W& o2 Q( F1 FDim Part As Object
* ~2 Q, p. x7 Q7 [Sub main()
$ c% R9 x" p- S% x3 gSet swApp = Application.SldWorks
- t+ d: t/ [# d% t8 q( QSet Part = swApp.ActiveDoc" L8 R, Q- y" C. r
Set swModel = swApp.GetFirstDocument8 w# }& N. X, S
path_name = swModel.GetPathName '取出目前檔案的路徑及名稱
* k+ p. o+ I* i0 O2 Q" C- oname_ = swModel.GetTitle '取出目前檔案的名稱9 p6 B6 g& Y) D+ P& E5 v
name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字
- Y9 v# e, b% o3 X. cEnd Sub% W9 `# ?) q( i8 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 编辑
7 C* Z( N3 D# w3 P4 C7 F* J4 \! I8 _
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif$ `. t  v7 Y( J, d" z7 P3 p
如下VBA宏的編程[2012版測試]$ B4 C; R8 f4 a" r5 Q3 C: f) F

- L4 @  u+ y; G7 R1 o( v0 ~7 c' **************************************************
: n+ P* b; D  q$ R4 e0 ]7 G7 _. s
3 ]/ C; Q) M5 C( j5 i# h% b
十分感谢梁老师提供代码学习~~
: q; ]. a% P" {2 q/ z7 h
! s! E" u$ {4 V, a, U; j提示进来学习的坛友!
9 [4 }. p! s6 `
通过在自定义属性里嵌入宏代码,问题已解决。7 \) L. Q! P8 F$ _: G5 t# `
下面代码在2011版本中均已测试成功。
1 A/ ^5 T' \  O9 q! S  z% X: N; e" t+ @0 `" O' ?( Y% a: [% w
15楼代码,可以取左边字符: Q6 f" f6 ^- x3 }4 G
19楼代码,可以取最后一个下划线后面的字符。8 S% S2 W6 i8 j3 H* X  @- n
+ D, T' f- S0 r- [
下面这段代码,可以取第一个下划线前面的字符。- |6 U6 s9 N4 d
1! {; J3 f( P! @2 H4 _/ R4 X
dim yfd* G# a7 r: o8 s$ R. y. H9 ?
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.gif2 H9 p# V- _5 l# x- f
下面是我在其它论坛 得到的 某位前辈的宏,你看看

9 g% j$ v9 N" W/ V7 i3 k感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html' d0 l/ z6 Z  U+ Z! m! p
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif0 T, w- P/ T& E9 {# q
http://fans.solidworks.com.cn/thread-33730-1-1.html
" X& R1 D9 f: M( I9 }3 L$ @蛋大的教程可能有幫助

4 y8 @! S8 l9 v+ @8 ~非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?( W2 M, i; H- _: Q. G3 m4 D
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif' R; B: P( v* ~; Y  `
楼主添加成功了吗?为何显示无效语句?
- r7 j7 v7 t9 @# u+ c  X' u; C
没有成功
发表于 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
5 R. Y# t2 v7 p7 O! [+ E/ g# R楼主添加成功了吗?为何显示无效语句?

) V$ ]) ]6 T3 p4 H* ]3 [5 G& j; N3 e$ r看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑
' o8 `2 Y' o# ?# V% e4 M$ Q
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif$ y# t$ _/ D/ o+ f
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

$ e$ x; N- E7 h8 y5 O" v9 w$ G2 c# s3 ^: E5 t- b
不好意思,再麻烦闷大老师,我的是2011版本。* d- p% U2 m6 n
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。$ q2 k. ~9 R* A
是不是还要添加方程式呢?5 r3 C% h! Z5 |. B
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個
: Y$ j4 D5 B  o5 c 123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
# N- H+ W+ {' [; `8 F" u  M
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif0 r# Q1 X- ?$ F! v0 c
試下這個

( H  ^. I2 g1 o$ Q; i1 q  Z: P* y# ?7 s  {# K1 I( c
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
1 m$ a! O3 E& c) s我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
1 q& o4 ]. I* h& Z也许是学习版本的问题
  t$ M$ c" n8 H, P9 ` 1.png 2.png
! @9 ~2 G; ]9 w( ~2011版本
! a) @" x9 w% R8 }# ^  a 987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif
$ U/ o' }& h0 j/ a谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
) S: v: N) v- d' Z( x( Z! c' a我新建之后做出的,做很多次,还是不好 ...
2 @2 W1 N8 c; _
謝謝qiminger兄回帖討論。" f' Z# W* T8 ?/ b! h9 D* I0 g7 @

+ T2 Y0 q# O$ Z# `方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
/ W/ |3 P) V, ?) o' P; ?問題在內碼嵌合到“數值/文字表達”不對。! P; O8 ^# j* `

) S% Y2 \# a- _& j; ?把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
6 t* }! h2 T* ]4 v9 |! s! q3 adim dummy
7 {# k7 E6 Y7 ]& W' h$ Odummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

' ?0 v3 E7 S; D, T! C) u6 K8 Q  ~+ _5 \- D. [

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
7 P; @) x7 P% q9 b/ Y謝謝qiminger兄回帖討論。, ?( H2 [9 p& N6 ?5 t( O& R% W

0 v* j' F$ E! c7 Z. n: W- C方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
  L% E3 a1 ~" a* s8 ~1 `
闷大,请教一下。我这样格式的文件名如何提取
/ ~1 {) j- q$ x. T. b例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
, h! }' C% U# ^1 d* Z3 b1 g7 h謝謝qiminger兄回帖討論。, |3 J5 h- H3 L2 a- ~

0 I! ?% _6 K" m: P: j方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
. r% G. P' T* e' h- [. C8 @  n' s  @
成功了~~
" }; H8 b$ s, P) N4 M* t直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,
3 L4 m; S, G! r, c4 t宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
5 h6 \; G# g4 r4 @試下這個

" W$ y+ f0 {- Z重新命名后,好像就不更新了啊
; C+ H. D8 r9 @4 B" g, l. [$ w# p8 C2 W+ E. t. C
弄个批量的宏
( y' ~* w, k8 P6 P; I/ o9 x4 J6 r, Z( ~
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 4 e% Y- I4 l; V6 z
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif. ^" Q' R1 c7 a. S2 Z9 N3 s) e
闷大,请教一下。我这样格式的文件名如何提取, x; g) f1 f6 Q' d
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
( l! g( ~/ E0 F/ ADim Txt
- x- ~7 I0 ?# d) I0 n0 n$ `Txt = Part.GetPathName
+ ?4 c; t& t' X' R( o2 y8 C& L$ U2 fTxt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)2 r, }5 W4 N3 v8 e  {9 a  {
Txt = Left(Txt, Len(Txt) - 7)3 O! J9 X% e: R) V9 q
Part.Extension.CustomPropertyManager("").Set "partno", Txt
7 l4 _- t2 `7 s! K+ z0 n
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。$ X; A" T0 _- d" p6 m$ x
注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。" {& q1 n+ o, p4 J6 j! L; r& q

+ T8 o( m7 \$ B

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif3 z5 q# r+ s% L
重新命名后,好像就不更新了啊
7 g* M2 |$ `0 a1 i" u6 _' F: H+ S3 r: L$ I( t, f6 M
弄个批量的宏

0 `0 }1 ~# g# T( U! h1 y3 X估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif8 D6 F$ p" @( |3 V. C
估計又是『脖子掛餅終餓死』的慘案一宗。

4 Q4 s7 o! H( B- h! d我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了+ V; _6 b- ]4 v) {  V
  m6 v8 k* r& `' D
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif% t6 z4 J5 V& L9 f! s5 ^
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
" S. j2 [+ ~' ?( H9 J& l( S注意!必定要使用複製粘貼的方法,才可嵌合內 ...
$ l8 f4 J$ m5 w
对不起闷大,宏我看明白了3 i' L3 Z# Z- W' p4 H5 `5 P
想起我未说清楚,最后一个“_”前的字符也不固定; V" z5 I. b. O- }8 O  ^
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
  \2 m4 f( s& @/ Z4 f" n5 A$ Q% H对不起闷大,宏我看明白了% l6 f0 V- \9 f. o& }5 q& v
想起我未说清楚,最后一个“_”前的字符也不固定+ e5 k8 b9 W4 R4 A- O% ]* G3 q
有没有直接可以从末位数的, ...
% k' c' P7 `" q
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif5 E3 f6 N6 a- Y- `9 r+ v! j$ `
那段宏就是奇哥的要求

4 v) v1 [0 `) K2 }
" ^$ f  I7 N; |, ]! d  q4 j1 o我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。" ^; H; x  j( K9 B4 D
请问partno是不是可以改成任意名字,如“工程图名称”
% E" |7 l( M) x2 m4 j# }再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif( G5 l) E9 j' }/ C8 q; a
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。/ K7 [# I# q/ _  o: F7 A- u& w3 z1 g
请问partno是不是可以改成任意名字 ...

  A) X2 W  [5 s+ {在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。3 O2 |! h& [. M4 Z! X2 d+ r

: X  H/ a* I/ _) [partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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