QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
3天前
查看: 31115|回复: 123
收起左侧

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,7 X: C, n; q4 c% e3 u6 O0 H9 e4 G+ l
现请教大家,谢谢参与~~
& j1 p+ ~1 U0 a2 ^& D1 f) F/ i( c+ n' Z7 i7 M( u4 R
4 @$ K; x  b% ?
下面原贴标题和地址; o) G: h. c* t
SolidWorks中方程式的应用技巧
! n+ \: O5 k) a* X2 l" y$ o5 s2 L6 _http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913
  Y7 h8 ~  \* r4 `$ e
: j9 Y- [% s& E3 m, P& y/ ?
& E, u" d7 A3 ~0 Z$ U5 h3 X8 K原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))9 Z/ {3 [: V& W
: i. @8 N% F6 ~
方程式目的是从文件名中从左到右取9个字符% q: D  D6 A; f1 V5 u
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑
) B9 p0 s8 }) r1 u! ?7 u) J; A1 z0 r+ F- P- \  j
如下VBA宏的編程[2012版測試]" _' s# v5 P2 m

8 a9 P9 \7 }6 U2 h' **************************************************8 S, I1 B3 B5 Q: C
'  macro recorded on 06/24/13 by lsc% [3 h0 [* _- t! \0 k% u2 @( f
' **************************************************' i5 ?" Q7 R9 W7 `( ~9 _
Dim swApp As Object
& i" N# i, R2 _Dim Part As Object% C$ J/ Z6 ]8 U4 E$ r
Sub main()( _- c6 c1 v) K* v  V$ |7 _
Set swApp = Application.SldWorks7 S, h. J8 Y4 M4 G0 q  H% J
Set Part = swApp.ActiveDoc# N/ A% V' r/ O6 U* t
Set swModel = swApp.GetFirstDocument
( ~8 X4 \( L! c9 l  O# Fpath_name = swModel.GetPathName '取出目前檔案的路徑及名稱9 T1 H- K4 W8 G7 ]. P
name_ = swModel.GetTitle '取出目前檔案的名稱
2 {6 _" N( l# W' Q3 D- A, ?name_9 = Left(name_, 9) '取出目前檔案名稱前9位文字, k7 u; J# k3 T" V+ S' U4 z
End Sub7 r  }, @% r) K' a2 N* B. l3 O9 k! P

评分

参与人数 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 编辑 5 U" s2 t* a) \- B+ _6 ^" @
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif- R+ H9 D. F4 d* P
如下VBA宏的編程[2012版測試]3 l: q, g5 M. s: L0 p+ m9 G+ W

1 k6 h: v6 R4 D$ l# K: K4 n5 t' **************************************************
0 `2 A1 e1 i. U' M8 n
* R) c/ b; n& `
十分感谢梁老师提供代码学习~~/ i3 \& j3 N5 C# F
: d  J# [+ t+ E+ v$ M+ E* q
提示进来学习的坛友!, _' h6 P7 B1 {$ Z7 W4 y
通过在自定义属性里嵌入宏代码,问题已解决。
5 V% a4 T& |6 D) r9 {下面代码在2011版本中均已测试成功。
, _) s. ~& J; O- O
7 X4 [; v# Q+ e& i/ z1 p# ?15楼代码,可以取左边字符3 G- n" A6 h* z, F
19楼代码,可以取最后一个下划线后面的字符。
' H5 T3 d$ T) h2 M1 }7 @) t9 N0 H4 h5 L, e4 d, F" v% b( q( H
下面这段代码,可以取第一个下划线前面的字符。1 k5 a5 }5 ?5 J; |6 ?2 N4 a7 S
1  t9 ]  V9 |1 G# T$ j
dim yfd
. h1 Q  _9 o) K* ^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
' C% D' G. a0 V# @* k" A* G下面是我在其它论坛 得到的 某位前辈的宏,你看看
- j! J3 q6 ?- L! R: a- N
感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html9 o: T0 V! i5 d: _; t6 B5 ]
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif! ~' Z2 F: J: R6 I$ |
http://fans.solidworks.com.cn/thread-33730-1-1.html
/ Q7 g/ o1 c* @! C# ~蛋大的教程可能有幫助
9 ?. H) t! y9 \/ G4 U1 \- b3 [- D& x
非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?
  }3 Y# {6 H# x4 c* s/ i; ~ 无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif
& v5 \, E2 ?. y3 S/ c. f+ J2 I' [楼主添加成功了吗?为何显示无效语句?

" E) Q! c  [+ v+ n& {& }: Y  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
0 y* P8 D) U2 x8 g楼主添加成功了吗?为何显示无效语句?

$ e- s* i4 B! ^& b0 M看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑 9 {( r8 J- C9 U/ p# A
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif- J3 G8 m& }% M$ _- R
2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。
+ Q8 F; K; l8 j- [  R$ A9 {

; \: T% [# K$ D6 ~$ h( F不好意思,再麻烦闷大老师,我的是2011版本。
$ K2 U% L/ k5 }; A' f* L我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。
6 ?: [$ H0 g9 f+ D是不是还要添加方程式呢?
/ F$ @. B! V4 j( I! k. w' n% _( q7 S QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個7 t1 _' c& {2 ?6 t$ V
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑 + u2 Z$ n; o# ?, K9 j
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif, Q2 [: A4 x% D# x1 A% b
試下這個
9 T' |" m- ?5 T

0 {5 z8 b, Z8 z( Q$ N谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
9 E( P; }+ g$ y5 D+ I* ^( p$ e我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。) O: F$ C- r& ?# t+ `3 j3 ^6 P
也许是学习版本的问题' f/ F- o; z2 g( e5 c2 ?: Z1 g
1.png 2.png / J% x0 P6 k) d& {8 \
2011版本1 y; |" k) ]" m* d0 [- \
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif* r% ~) o! W4 @) C: x* Z% ^) T9 C
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。1 h. O% i; ^0 \6 a, L
我新建之后做出的,做很多次,还是不好 ...

6 K! D; _3 R) W/ j. C  @謝謝qiminger兄回帖討論。
  i& \9 N3 t: Y, i
9 y( ]7 p( O2 r; B1 @' {# `! O方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。% ~( }/ I, p9 C3 h5 e$ p# s
問題在內碼嵌合到“數值/文字表達”不對。+ B) b4 M2 g: `3 d( O" m
) `( X' j0 t* S, j, B! @
把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1( y/ ], T( e$ B' O" X
dim dummy
& s5 V+ Q* F% V3 c; _3 p  zdummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))

4 }, Q9 E) V/ f2 R! q: g
2 E6 l. \, W2 k, s+ U

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
7 n3 v; K9 @% x& i, @& ?謝謝qiminger兄回帖討論。8 `* `1 \) }- F0 s( u$ c1 M$ A

5 R8 K# ^( Y2 H/ ~" F: O方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
0 C* h: u, S# F' \& H: Y! a
闷大,请教一下。我这样格式的文件名如何提取
. y$ z  o. z5 G: [. J* r) N) r例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif" L' W+ [% S4 \6 C; V" L+ X
謝謝qiminger兄回帖討論。
3 q+ X6 t* E3 y9 c0 c2 s( `' @2 q8 Y; l' ?3 @6 L0 `/ o0 _0 m
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。

/ i6 Z( m0 O2 J2 u6 y$ {成功了~~3 M) r2 E# R8 Z' b* m" g
直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,: B" W% Y/ n+ {( o. E' N
宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
7 Y. [8 k0 x) t/ s! f2 G" \4 P試下這個

) X& m/ M2 z/ J9 o7 `2 s3 P重新命名后,好像就不更新了啊! S: d# J$ Q  }8 D  R

- P- E) N2 V! m$ O" J弄个批量的宏
0 T) \/ h+ t& s* p2 }3 N1 y
" N; a' g  F( ~2 [& Y9 q
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑
5 F/ {4 i7 F3 }6 Y; h1 v
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif% e0 |1 @: e$ C) }3 \; q' b- M+ ~
闷大,请教一下。我这样格式的文件名如何提取# D6 z4 e" v8 x( s/ ?; ~
例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1
1 G: d2 Q- M6 ~% ?3 yDim Txt0 \* J8 V; K; Q, O: F
Txt = Part.GetPathName2 Z1 i9 R8 i% |: v/ k( b
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)* U( f+ C! C. D3 {. G7 P  G
Txt = Left(Txt, Len(Txt) - 7)
0 t' a' R( W9 f# ^- m$ t0 b. v& j7 OPart.Extension.CustomPropertyManager("").Set "partno", Txt

* M, M, K, f, p% \3 B/ u4 H3 A把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
6 x0 w  T- ?7 r# J' |; V注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
# @; x( m9 O( e/ q
" I2 Y7 v) u6 ?( s8 d4 c

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
8 u4 c: h# K9 b6 {重新命名后,好像就不更新了啊
+ a4 [+ ~/ b+ P0 c5 X6 \& K* K0 Y/ }; |
弄个批量的宏
4 v3 t+ g4 }2 K7 o5 ~+ S! B+ V9 q
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif2 n3 K* M# G' h  |7 p
估計又是『脖子掛餅終餓死』的慘案一宗。
, [" t) q7 p; P) p1 C- M
我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了
, t! {+ m* p4 l7 i6 `
) t; A' a* h6 T% ]老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif
8 L6 T5 C% |/ B/ ]2 t3 [) I* G把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。! J( R/ f7 x3 r; O' s
注意!必定要使用複製粘貼的方法,才可嵌合內 ...
' {( P' H5 e7 h! ^  f6 ^+ t
对不起闷大,宏我看明白了
4 V6 x) B0 L8 @2 H) |想起我未说清楚,最后一个“_”前的字符也不固定7 S( |9 G5 M6 C" d3 H0 H; P
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif" c0 y8 n" r* U; ~# F& l
对不起闷大,宏我看明白了
6 N2 ?( H% i) n6 s3 {/ `' ?想起我未说清楚,最后一个“_”前的字符也不固定
# a$ s) N- y4 R有没有直接可以从末位数的, ...
1 H4 q; z' e' z- C* F
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif8 y! S9 c1 ]+ R* D/ ]" j
那段宏就是奇哥的要求

; N+ ?" u" ?; u9 N+ q3 d6 x8 I  s) S) a! ?! H+ K2 p7 d8 w3 p
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
2 c0 E& m3 Y, d$ O0 V9 S请问partno是不是可以改成任意名字,如“工程图名称”# n- V4 m4 Z  |! r3 k' l. @; F  h: l- B
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif, U- z& W; u( p3 |# B5 D
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。1 o) B1 ]- ^; }0 o8 `$ L- J: u
请问partno是不是可以改成任意名字 ...

6 k$ x6 Q( {! N, E5 C在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。. R6 U& P  j% ]$ T
$ N& }6 d  F* n
partno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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