QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

查看: 9124|回复: 25
收起左侧

[讨论] 用方程式自动提取“****_####.sldprt”中“_”前后内容做代号及名称

[复制链接]
发表于 2014-6-9 16:00:05 | 显示全部楼层 |阅读模式 来自: 中国江苏扬州

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

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

x
用方程式自动提取“****_####.sldprt”中“_”前后内容做代号及名称
9 O0 u% ]. i5 j9 I1 |1 q6 n# _: @9 w3 Y1 }7 h! _* _5 I6 b
( f$ w. U0 ?6 X9 d' i5 m% \* P
以前有两个方法自动提取文件名中的部分内容做代号、名称,如下:
  b  h6 k- F: ]# V# b6 k: T# V/ r& Q: f$ v; }: {; x5 e: `) T. ]
A、用方程式自动提取“****_####.sldprt”前9位做代号,后续内容做名称并填入属性栏的做法见“http://www.3dportal.cn/discuz/fo ... n=newthread&fid=131”。该方法不知道在Solidwork 2014版本里如何实现(方程式编辑方式不太一样),
4 f3 i5 R: ^/ L- P6 ?- Z1 Q  s+ S! }7 S8 _% |

/ I; E5 o6 V, D! s: B9 x" jB、用宏自动提取“****_####.sldprt”部分内容做代号,名称并填入属性栏的做法见“http://www.3dportal.cn/discuz/fo ... wthread&tid=1250784”。具体见附件。/ N; @8 V- C6 Q7 j

+ T- I, {# m- _感谢研究并分享A、B方法心得的各位坛友,非常感谢。
4 S# h. P  g; J) x0 S" I: L; `: o
, P) ~& }9 X( }7 N4 n' c. G个人认为,以上A、B各有改进空间:
; C& Z! ]  W7 s2 {2 p# S
2 i) q8 Y2 n, H1、对于A方法,如果文件代号位数不定,则操作困难或复杂;+ s2 D) N& W7 A7 S. Z, m: ^. ^
2、如果文件名更改,则需刷新宏文件,不能自动更新(也许个人知识有限)。' U8 W  S7 u5 E; c( e3 {

+ H$ o% c  c+ k3 V3 f如果将A、B方法结合起来,做成零件模板、部件模板,达到“用方程式自动提取“****_####.sldprt”中“_”前后内容做代号及名称".则完美了。不知有谁知道如何解决?请不吝指教。
% D7 L3 U" h1 u  F3 h, g8 F1 t' k

图号名称分离.rar

9.83 KB, 下载次数: 140

 楼主| 发表于 2014-6-16 10:11:16 | 显示全部楼层 来自: 中国江苏扬州
这个问题我谈下我的感受,”图号名称分离.rar“我感觉使用效果很不错,感谢作者及辗转提供该附件的坛友,。在sw2014 sp3里能很好使用,其它版本应该更没有问题,但有个前提文件名称必须按照  “****_####.sldprt”来编制,及代号部分与零件名称部门之间必须有个下划线"_",否则不能实现提取功能。
! R. m- U, O1 ?: U# k) W
+ s+ v1 M( l1 g. f0 d; x" V, {& q7 V5 F! Q) `. A
1.JPG
 楼主| 发表于 2014-6-16 10:18:39 | 显示全部楼层 来自: 中国江苏扬州
上图是我自己以前使用的文件模板,是将文件名做代号用,自动提取文件名转为代号,完全关联,文件名更改、代号即自动更新,不需特意刷新,不会产生忘记刷新导致图号错误的问题。
7 [/ G( h# o. t) V1 j" z" `1 P
( r! `) i( |  ^! z3 V如果能将$PRP:"SW-file name"改为
3 i1 U+ C/ ~+ i# J/ e5 l" ? $PRP:"提取"SW-file name"中_前部分"   ) v8 \* N4 r4 d7 O! W  a; |
(上面为不正确的表达方式,个人水平有限,仅仅用来表达我之意思。)
5 h/ c! G+ g1 r( H实现自动提取文件名中"_"之前部分做代号、之后部分做名称,实现自动更新,则美矣!
发表于 2014-6-16 13:28:18 | 显示全部楼层 来自: 中国四川乐山
可以实现了,我在模板里做了嵌入式宏命令,保存后刷新一次,就可以自动将文件名里的图号,名称提取出来做自定义的图号名称了
 楼主| 发表于 2014-6-16 13:39:49 | 显示全部楼层 来自: 中国江苏扬州
感谢回复
! `7 s) a( x7 `& L1 Q) V, v8 K2 y) ^2 F; e4 _, m& Y
宏提取文件名字符为何不成功
3 A5 p8 a' d$ O  l7 S2 K8 |3 J6 m. |8 }# w) ]! `
http://www.3dportal.cn/discuz/fo ... &fromuid=401891; W3 ?% V4 V; z( x
2 s! C6 m& b6 U( i

& l% s: k( Q2 h( `上面帖子里,除了“图号名称分离.rar”用的顺利外,其它的都不行(我的是Solidworks2014 SP3),不过没关系,我对 “图号名称分离.rar”已经很满意了。但是美中不足的是,如果文件名改了,忘记了刷新宏命令按钮的话,会导致图号错误。& O, s) u5 b% H! z) W
发表于 2014-6-16 21:46:44 | 显示全部楼层 来自: 中国香港
arter 发表于 2014-6-16 13:39 static/image/common/back.gif1 d. a: l( {6 T8 o* |0 m8 Q
感谢回复" b( s0 S# v8 J: U& I7 K- m; x

7 V" D& U" p4 F5 {# O3 P4 v; T宏提取文件名字符为何不成功

0 c0 ^1 C1 H' i9 U. s- `寫多一個宏, 讓SW在每次切換文件時都自動執行指定的宏, 那就可以避免忘記按動按鈕.' C" W" u8 `8 K

% H2 F, h  F3 e7 I& u" Q" u1 g1.
9 y, Y  e+ `) D% u在C:盤建立"Macros"的文件夾, 並複制宏"partitionTM.swp"於其中.1 z2 x9 j) X3 }, v7 F9 c

/ E* S$ l) x4 Z" x; N( L# M3 }. X2.
+ r9 b  y# z2 p3 k1 W新建一個宏, 儲存到"C:\Macros\AutoRun.swp"1 d* R% a+ L- ~9 x, `8 G- X
把以下代碼完全取代模塊的內容:
$ Z6 S1 M: U( L7 ?; l5 c' FPublic AutoRun As 类1! ~, Z* p6 D" P8 J# I
Sub main()
( I9 @0 e7 _/ Y0 c; X/ U7 SSet AutoRun = New 类1
& k0 H3 ~& y7 _$ lEnd Sub
" A6 O$ N! ~' t& }* [再插入"類模塊", 名稱為"类1", 內容如下:
$ ^4 F- U0 I9 t5 M( [+ T$ HPrivate WithEvents SwApp As SldWorks.SldWorks
" D/ R5 i+ M2 nPrivate Sub Class_Initialize()! J+ N. S5 Q# s& `5 Z& J
Set SwApp = Application.SldWorks
# d3 ]# @& b/ k: ?End Sub/ F+ D" ?2 q6 K2 o
Private Function SwApp_ActiveModelDocChangeNotify() As Long
" S0 e5 t; L; u1 a1 F2 ]) _Dim runMacroError As Long
6 d) ]: Z, ?+ r/ `. b' qSwApp.RunMacro2 "C:\Macros\partitionTM.swp", "partitionTM1", "main", 0, runMacroError0 Q, T  I3 s- ^: D% n# C3 c
End Function5 I" @; b6 X& P' L
儲存宏及關閉SW.* k! w2 G, ?! c5 l1 P2 X
, E; ?- I# r7 e- N% x7 z
3.
2 ~5 x& ?4 |! r9 u( R執行SW並一起載入宏的方法0 }0 ^, z5 T$ r$ ?+ O! G
"安裝位置\SLDWORKS.exe" /m "C:\Macros\AutoRun.swp"
 楼主| 发表于 2014-6-17 09:34:26 | 显示全部楼层 来自: 中国江苏扬州
本帖最后由 arter 于 2014-6-17 09:57 编辑
- s" s: c+ z. f; N: M$ L5 ]. q: v) ^8 l' t& R! Z
非常荣幸能得到闷人老师的指点,让闷人老师费心了,,终于完美了。
发表于 2014-6-17 11:22:31 | 显示全部楼层 来自: 中国台湾
按悶大教程設置,成功了~~
发表于 2014-6-17 16:00:48 | 显示全部楼层 来自: 中国四川乐山
本帖最后由 l88i 于 2014-6-17 16:04 编辑 & T; T8 x, _7 A4 w6 r  W
" C, a- E# l/ u# A" f* X
零件+ N* H9 x/ d9 h1 g( Q1 M* M( j1 k# G
18 V5 H2 h  \0 N- ?& u% |4 Z
Dim Txt7 Z, o) B: O( \6 c7 Q1 S
Txt = part.GetTitle()" A- P' r0 Y2 c
Txt = Left(Txt,InStr(Txt," ")-1)
& ?* U  a1 R! MTxt = Part.Extension.CustomPropertyManager("").Set("NO.",Txt)
* l8 j; o  e' _; L装配体
. T' T* q; O8 u1 ~' o0 U5 O18 b1 I- t4 n% K" |- g
Dim Txt
. G( y: x7 |( n" M1 [: y9 }2 ^# |Txt = Assembly.GetTitle()- @! S/ W: r% g- J7 P! t$ o/ x
Txt = Left(Txt,InStr(Txt," ")-1)
/ h: d/ ]+ q7 Z# k1 f% iTxt = Assembly.Extension.CustomPropertyManager("").Set("NO.",Txt)
1 N6 k  v7 q- x, b. u零件9 ^! }2 {, Q  e. y, Y5 O* x
29 _' X0 `; ?/ U( r9 n
Dim Txt  O( z  I+ l7 [, p5 P4 O
Txt = part.GetTitle()
* T3 M" ~9 r. ^2 l  }- y: LTxt = Right(Txt,Len(Txt)-InStr(Txt," "))
' {3 w0 Y0 C8 D) \8 UTxt = Left(Txt,InStr(Txt,".")-1)
9 j9 n  t1 @" }2 w+ ETxt = Part.Extension.CustomPropertyManager("").Set("Name",Txt)
" O( r: R/ C* D装配体
6 G9 w' J* ~+ ~6 N% ]  `6 s8 h5 [+ j26 ^4 y  ?* `+ H# _, c
Dim Txt
0 E3 e9 k- L3 I' qTxt = Assembly.GetTitle()) B7 n1 E. @) I4 {( `0 e' a! w
Txt = Right(Txt,Len(Txt)-InStr(Txt," ")): E7 y, ?9 u5 h, {- Z% x& L, w
Txt = Left(Txt,InStr(Txt,".")-1)
# s' V: F8 g7 n3 h  TTxt = Assembly.Extension.CustomPropertyManager("").Set("Name",Txt)# D7 m3 T+ r+ N! s

4 {+ C  e$ a6 ~8 H4 O6 G  \& G$ A: D, G. c
* H1 b4 ^7 U. ?  \9 t! {1 \- g, P- @- d4 g
这是我调试好的内嵌式宏+ A) v/ H( k, K4 v- o- E
我定的规则是图号名称间加个空格,以空格为来设定的
5 z) t7 K$ T' ~: J3 t1 j然后我设定的Name为名称,,NO.为图号,因为在06年的时候只有06版,那时候不支持中文的自定义名称,只好用这代替,一直沿用到现在
发表于 2014-6-17 16:05:31 | 显示全部楼层 来自: 中国四川乐山
如果有人感兴趣我就发我的模板
发表于 2014-6-17 16:57:59 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2014-6-17 17:29 编辑
3 U! }) o: T' D7 ~
l88i 发表于 2014-6-17 16:05 static/image/common/back.gif/ X1 O) L1 \* h4 M  w1 _
如果有人感兴趣我就发我的模板
: i+ B) Q1 T* q: H  O

6 q0 ~& w' _7 p) i! H; h, s* I+ m自己按語句嵌入一次,得到錯誤的回應…1 b  e) P  C! N3 G
4 |6 p7 ]% Q/ k  r4 G2 A1 R2 p
能傳上來研究一下嗎?謝謝。
发表于 2014-6-18 13:42:18 | 显示全部楼层 来自: 中国四川乐山
内嵌式宏命令,自动分割文件名生成图号名称,分享模板$ Y5 f. i7 p; z0 [0 Q' x( _
http://www.3dportal.cn/discuz/fo ... &fromuid=302658
8 e! X: m; [# ]- ]* s, c
发表于 2014-6-24 14:01:22 | 显示全部楼层 来自: 中国江苏苏州
我一直代号,名字放一列里。不能自动改新。看来落伍了。
发表于 2014-6-25 15:20:27 | 显示全部楼层 来自: 中国江苏扬州
8错啊。路过

评分

参与人数 1三维币 -2 收起 理由
jiang.jh -2 灌水

查看全部评分

发表于 2014-6-27 09:56:14 | 显示全部楼层 来自: 中国湖北武汉
附件无法打开啊
发表于 2014-12-27 12:58:41 | 显示全部楼层 来自: 中国浙江嘉兴
这个很好,应该有。
发表于 2014-12-27 21:20:25 | 显示全部楼层 来自: 中国广东揭阳
本帖最后由 machine134 于 2014-12-27 21:25 编辑
" X* p( ^# c1 Q  C2 u- F+ H6 }
arter 发表于 2014-6-16 10:18 static/image/common/back.gif  p! l/ B4 F3 V! L. a
上图是我自己以前使用的文件模板,是将文件名做代号用,自动提取文件名转为代号,完全关联,文件名更改、代 ...

: ^' V' I0 F0 h不是属性链接设置也可以把文件名跟图代号关联吗,呵呵,软件只是为了工作设计提供方便,能方便快捷就好没必要走弯路显花招,把时间精神多花在针对专业中去吧
发表于 2014-12-28 13:23:49 | 显示全部楼层 来自: 中国北京
有顶起,有回复,有下载
发表于 2014-12-28 13:46:39 | 显示全部楼层 来自: 中国北京
不科学 ,这嵌入宏要是能提取文件夹你名字就好了
发表于 2014-12-29 19:24:43 | 显示全部楼层 来自: 中国江苏苏州
厉害,总结归纳也很重要,能人多出力,普惠大众。。。谢谢
发表于 2015-5-20 10:16:58 | 显示全部楼层 来自: 中国广东深圳
l88i 发表于 2014-6-17 16:00 static/image/common/back.gif
, y0 G4 H' N: \) Y2 _. t. o零件! g3 K* ?: E) ?0 q; N5 W4 u
1
3 w( v) X- b$ i4 G* k, p% R2 ~Dim Txt

; _; i0 o1 Q7 A0 a8 {1 ^8 U你好,用了你的模板,图号可以更新为空格键前面的字符,但是空格后面的名称不会更新,望指点
发表于 2016-1-29 10:51:25 | 显示全部楼层 来自: 中国北京
l88i 发表于 2014-6-17 16:05
9 {, J% T# B0 |1 l8 @$ y  I如果有人感兴趣我就发我的模板

' |( i2 d& U0 A- M/ r8 B+ {* E你能把你模板发给我看看吗谢谢你啦。
发表于 2016-2-2 15:48:40 | 显示全部楼层 来自: 中国山东济南
谢谢分享,来学习。
 楼主| 发表于 2017-7-6 19:28:41 | 显示全部楼层 来自: 中国江苏南通
有没有WIN 10 ,solIdworks 2014能用的图号名称自动分离模板?以前的都不能用了
发表于 2017-7-7 08:25:39 | 显示全部楼层 来自: 中国广东深圳
学习
发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则


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

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

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