QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
按下面帖子学习做了一下,我的2011版本不成功,操作N变了,
8 z4 ~$ c7 |3 P现请教大家,谢谢参与~~
; z% x# w# @+ }9 l8 I* b( ]8 _% y% h5 @0 ~( B  R/ M
' [: ^- E- G' ^" E+ i
下面原贴标题和地址
3 w7 B8 a0 k4 R' C6 K- ~" Z2 CSolidWorks中方程式的应用技巧6 y$ d0 z- U9 v* a4 f* L
http://www.3dportal.cn/discuz/forum.php?mod=viewthread&tid=1028623&fromuid=48913, p' n( n4 l0 L

' a+ p, W, Q6 t4 A8 h0 o9 G: v% k2 R0 d* ]
原贴方程式:dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9)), T) n* ?4 D3 S1 X4 C3 v. r# S

1 ]& U. V7 R7 t: D; f5 C方程式目的是从文件名中从左到右取9个字符) j$ z) k( V& s9 u1 A) r
发表于 2013-6-24 17:25:45 | 显示全部楼层 来自: 中国浙江嘉兴
本帖最后由 ryouss 于 2013-6-24 17:31 编辑 9 T( ^, H0 o9 d/ W
4 F6 |" B3 w5 {* G3 V% p! K
如下VBA宏的編程[2012版測試]- r: s& O/ o3 c5 K

2 d! `  I' }& N* p' **************************************************" I7 g* [( A& a1 ~; I
'  macro recorded on 06/24/13 by lsc
6 W1 m0 y# m- Y  E% H' **************************************************
# ~3 B: I/ B  KDim swApp As Object
2 q$ l/ `' g* [Dim Part As Object6 D7 Q$ b, _+ ^. {& C
Sub main()' P5 n1 {' B3 j7 H8 l9 R
Set swApp = Application.SldWorks  j: C1 K& l5 y4 T0 ]: s  _; k2 s7 {) Q
Set Part = swApp.ActiveDoc! `5 h) D& e6 z( l1 z. j
Set swModel = swApp.GetFirstDocument5 ]! F# z# q( d! h) ]0 Z
path_name = swModel.GetPathName '取出目前檔案的路徑及名稱9 Y, W0 {/ H6 |) A* G
name_ = swModel.GetTitle '取出目前檔案的名稱
' ^9 q5 B: Q' G* H/ Q; R% Hname_9 = Left(name_, 9) '取出目前檔案名稱前9位文字2 H: x0 d" g( m; J5 z
End Sub- ], N) v. u# C7 ~% L

评分

参与人数 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 编辑
: p$ }/ ^5 ?1 t+ N  Y( o; Z
ryouss 发表于 2013-6-24 17:25 http://www.3dportal.cn/discuz/static/image/common/back.gif
+ P  \7 ]' q1 ^9 F如下VBA宏的編程[2012版測試]
2 ~# z4 K# q6 H3 _; \, o. B0 Y4 \- G; [3 W0 c
' **************************************************
) N+ C3 m5 H3 ?

8 R! P  m% t' Z3 a" @十分感谢梁老师提供代码学习~~
% W2 @' q  S+ w
6 X2 C& {$ f7 _1 p提示进来学习的坛友!" c, {# K; W, |: J
通过在自定义属性里嵌入宏代码,问题已解决。# [" {: t, k4 u/ D! W' Z3 A: n
下面代码在2011版本中均已测试成功。
0 |( _0 S% ^/ a" ?" a+ y- W* `# C6 F+ D0 F! l
15楼代码,可以取左边字符2 g5 p- b9 Y9 p4 _/ C" Q) H
19楼代码,可以取最后一个下划线后面的字符。
9 U6 L* y0 H2 T% U9 o' m  G' u: A
2 L" _3 {7 A4 E6 a下面这段代码,可以取第一个下划线前面的字符。
1 I- r+ D$ W, j. u  g1' Y  _/ C# w8 h2 Q+ t/ ]( y1 f9 |
dim yfd3 s/ D7 h; h/ U: Y1 [) K+ R
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, O+ Z: |# x% ]/ k, Z& j9 o
下面是我在其它论坛 得到的 某位前辈的宏,你看看

" j5 [3 A% X8 @' J% Q  l感谢杀苏提供宏文件分享,学习
发表于 2013-6-25 21:34:29 | 显示全部楼层 来自: 中国香港
http://fans.solidworks.com.cn/thread-33730-1-1.html; _9 L7 |& Q3 @0 b4 x
蛋大的教程可能有幫助

评分

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

查看全部评分

 楼主| 发表于 2013-6-26 07:24:17 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-25 21:34 static/image/common/back.gif
9 p3 L4 T( T- O* f; Whttp://fans.solidworks.com.cn/thread-33730-1-1.html: v8 D) E4 u+ f% y
蛋大的教程可能有幫助

( ?# d/ F- K3 B' A1 h# G非常感谢大师指引
发表于 2013-6-26 09:22:21 | 显示全部楼层 来自: 中国北京
楼主添加成功了吗?为何显示无效语句?6 A; n, n4 z- a. c
无标题.png
 楼主| 发表于 2013-6-26 09:50:09 | 显示全部楼层 来自: 中国辽宁沈阳
ps122hb 发表于 2013-6-26 09:22 static/image/common/back.gif/ G- C" j' t3 i; e, @: t( x
楼主添加成功了吗?为何显示无效语句?

: n( [8 ?7 V9 m% \没有成功
发表于 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.gif0 {3 }- _- [# M& W- e
楼主添加成功了吗?为何显示无效语句?
. _* L5 |' M9 ^. N8 j$ w
看一下十楼方法,有源文件2012版本的,源文件我打不开。你如果研究明白了,说说方法再截两个图。
 楼主| 发表于 2013-6-27 16:16:35 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-27 16:18 编辑
4 B% H. h+ a- s8 m
Francis 发表于 2013-6-27 12:17 http://www.3dportal.cn/discuz/static/image/common/back.gif
- R$ w  N1 H0 O0 }2009版本以後,宏的嵌合方法已經改變,具體請參附件(2012版本)。

- @9 r% G1 {# ~8 y, ]
2 X+ o" v+ b5 g1 |" D不好意思,再麻烦闷大老师,我的是2011版本。5 W! a' U1 {( d
我按图在自定义属性里加代码,重建模型,保存关闭文件,重新打开也没成功。) O/ a* v! }* `+ Z1 H
是不是还要添加方程式呢?! L# r: V$ a( N( g' }
QQ截图20130627161203.png
发表于 2013-6-27 21:31:42 | 显示全部楼层 来自: 中国香港
試下這個! a+ {& b* P9 G7 O" h9 {
123456789-qiminger2009或以上版本.rar (11.35 KB, 下载次数: 218)
 楼主| 发表于 2013-6-28 08:38:05 | 显示全部楼层 来自: 中国辽宁沈阳
本帖最后由 qiminger 于 2013-6-28 08:39 编辑
& d5 C7 n- z( j  X* \5 B+ t
Francis 发表于 2013-6-27 21:31 http://www.3dportal.cn/discuz/static/image/common/back.gif
+ T& U% O& p* z, P5 a試下這個
* t: |# b- O, q2 H* `
' o! p. g4 N1 \$ A, s$ a6 K, S
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。
5 b$ Z6 l3 V' l5 z我新建之后做出的,做很多次,还是不好使,我感觉过程不应该有问题了。
) s5 X" s0 l6 v( @也许是学习版本的问题
% K! l3 Z, u4 Z6 J6 R$ p! ~: u6 g 1.png 2.png * n% g/ o* p! @  T* r4 \
2011版本2 f0 i; g% e' j; S7 Y/ h# O
987654321-qiminger.rar (17.86 KB, 下载次数: 60)
发表于 2013-6-28 09:55:31 | 显示全部楼层 来自: 中国香港
qiminger 发表于 2013-6-28 08:38 static/image/common/back.gif' K* d+ ]9 o# i8 f+ X, ?1 S5 h
谢谢~我试了你给我的,重命名之后重建,属性可以更新,好使的。* W( U* N  s6 |7 b4 \. ?
我新建之后做出的,做很多次,还是不好 ...

' [; ]/ C. n- D9 Q7 s謝謝qiminger兄回帖討論。" g! T& x( _6 K5 U/ g- k% s

9 H% B6 Z) c' s! P# O7 b方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。4 h  H& _: Z) Y7 b8 w
問題在內碼嵌合到“數值/文字表達”不對。! R0 s; N5 i9 Y% C5 w; ^1 A

! P3 q: ?' Z8 {6 ]把以下內碼copy&paste到“數值/文字表達”欄位再試一下吧。
1
1 z, H7 E/ e6 }$ C8 bdim dummy7 P0 [/ E8 J; Y- W3 {5 e+ _# e" v
dummy=part.Extension.CustomPropertyManager("").Set("partno",Left(part.GetTitle,9))
" J" C$ J! e# a' d& M

+ ~  h# U& \4 I7 u4 B

评分

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

查看全部评分

发表于 2013-6-28 10:17:35 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif
, l; x  P9 c" M6 Y" B3 n) o9 l謝謝qiminger兄回帖討論。
6 j  H& S+ x- b- Z8 z( R7 T2 _0 K# P+ z
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
' l: @$ v. i- U1 v( |
闷大,请教一下。我这样格式的文件名如何提取1 h- k) w% v) t( o8 a
例如:300_222_33_固定销压板,我只想提取最后一个下划线“_”后面的字符,如本例的固定销压板,但是最后一个下划线的后面的字符个数还不固定。
 楼主| 发表于 2013-6-28 11:30:13 | 显示全部楼层 来自: 中国辽宁沈阳
Francis 发表于 2013-6-28 09:55 static/image/common/back.gif. j1 j! i* d6 e
謝謝qiminger兄回帖討論。
5 T5 K% F, d' ^- A+ B, P8 A* K( e$ i+ D( \( W# G8 X5 F
方程式的寫法正確,出現的驚嘆號代表呼叫的屬性值不是數值。
  }+ m0 P3 D( J
成功了~~
. L' S/ y: q0 N0 x" O直接从你给我的源文件属性栏里复制,再回来粘帖,终于可以了,2 M$ L8 ^3 S3 U6 g  x  Q
宏真神奇,我英文不好理解困难,再次感谢了~~~
发表于 2013-6-28 11:41:34 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-27 21:31 static/image/common/back.gif
, `2 K3 T& ^; {7 Q8 |試下這個
& J) P1 J5 f" p
重新命名后,好像就不更新了啊
; Z, |" e; o, G2 u9 o
& Y( c  A6 |& C3 S; _. {& l弄个批量的宏' c4 D8 e9 z* C6 _! A6 c) M( n
2 m2 e) c: V0 |. R" x+ Q  A3 s( S
发表于 2013-6-28 12:06:04 | 显示全部楼层 来自: 中国香港
本帖最后由 Francis 于 2013-6-28 12:12 编辑 ! c, G$ g5 d! }. T7 q& l
阿帕奇 发表于 2013-6-28 10:17 static/image/common/back.gif  \5 r) M6 @5 S+ t& w" }8 x  l
闷大,请教一下。我这样格式的文件名如何提取
2 M# J5 r, u$ N  {' ?例如:300_222_33_固定销压板,我只想提取最后一个下划线“ ...
1# c0 Z; o- H6 E+ V# n- c
Dim Txt
( i% z, ]6 C! ]8 t9 k9 ^0 ^Txt = Part.GetPathName' e9 M( w% Q* H# A% v
Txt = Mid(Txt, InStrRev(Txt, "_", -1) + 1)
( N6 F: X" q8 yTxt = Left(Txt, Len(Txt) - 7)) Y) J$ d# L- _, W3 `2 W1 y5 A
Part.Extension.CustomPropertyManager("").Set "partno", Txt
* d& R  t7 n3 h/ e; b3 ^6 U
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。5 T# f; d0 t3 y. ]$ k
注意!必定要使用複製粘貼的方法,才可嵌合內碼到欄位。
; z: w; T: E0 T) Q) @) T/ ]: d4 v& H7 V9 `

评分

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

查看全部评分

发表于 2013-6-28 12:09:05 | 显示全部楼层 来自: 中国香港
hongwei_1987jp 发表于 2013-6-28 11:41 static/image/common/back.gif
& \4 K' [% V0 @. ^8 m6 [) B重新命名后,好像就不更新了啊
: h4 j3 s% R% R+ U$ h0 s5 h! `+ }, `: S& z5 f
弄个批量的宏
! P& y: Y: W, e! g7 u% V% Q
估計又是『脖子掛餅終餓死』的慘案一宗。
发表于 2013-6-28 12:28:20 | 显示全部楼层 来自: 日本
Francis 发表于 2013-6-28 12:09 static/image/common/back.gif1 B) d. {. S4 A% O. Z0 i
估計又是『脖子掛餅終餓死』的慘案一宗。

% Y, i1 ^9 P8 k! W$ \1 z我平时不用那种加文字的文件名,感觉用这种图号和名称分离的宏挺好的,有批量改的话,那就太好了4 @5 O- I* m9 O( j9 f+ w& z) h
* B& K5 Y6 }" q# V/ _
老兄搞下吧
发表于 2013-6-28 13:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 12:06 static/image/common/back.gif) n, r9 Y/ s& Y5 X/ {7 E0 a
把以上內碼copy&paste到“數值/文字表達”欄位試一下吧。
- R$ Q2 G1 D- F0 I/ c注意!必定要使用複製粘貼的方法,才可嵌合內 ...

# _5 B: A, N3 Q! S1 C" O6 E对不起闷大,宏我看明白了2 V" f2 j1 l( i" ?
想起我未说清楚,最后一个“_”前的字符也不固定! Z! Y) _% z# B" j9 s- u
有没有直接可以从末位数的,到“_”停止的
发表于 2013-6-28 14:52:03 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 13:51 static/image/common/back.gif
( i! Y) J) X( d6 `对不起闷大,宏我看明白了6 K( M  W3 v' q2 L+ B
想起我未说清楚,最后一个“_”前的字符也不固定7 M5 k: h! k' c) {; d
有没有直接可以从末位数的, ...
$ B' d% ?: k6 A) S, g+ E
那段宏就是奇哥的要求
发表于 2013-6-28 15:51:55 | 显示全部楼层 来自: 中国辽宁盘锦
Francis 发表于 2013-6-28 14:52 http://www.3dportal.cn/discuz/static/image/common/back.gif. `. t+ _0 A. ~$ a
那段宏就是奇哥的要求

/ c0 m' N) `  o, T  N" R4 b2 A! q5 U) U6 t& o/ C
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。+ \2 Y2 h4 M4 E% ^7 ]" z2 j, c
请问partno是不是可以改成任意名字,如“工程图名称”. f& W3 a0 t+ K' t* e0 ~) z: k
再请出手相助
无标题.png
发表于 2013-6-28 18:18:24 | 显示全部楼层 来自: 中国香港
阿帕奇 发表于 2013-6-28 15:51 static/image/common/back.gif, A8 j" A  \) k. \- R
我是13版,也许我做的不对,粘贴后只显示“1”,partno无数值显示。
0 N4 p& I& R4 z; b请问partno是不是可以改成任意名字 ...

/ g1 N+ s& `" g; A  p+ e在“自定義”的設定應該對了,可能還欠缺方程式執行,下載以上所提供的檔案仔細研究一下執行方法。2 q  J$ ^+ ]* L. L! B; m& A" W

5 T+ @8 O- i- K; ipartno只是一個代號,怎麼字符都可以的,中文也可,只要對應宏內字符就可以。
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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