QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
用方程式自动提取“****_####.sldprt”中“_”前后内容做代号及名称
; x0 i& U" I$ n
( \, ?8 c) y1 p/ U( A, V3 z+ i- F. b
5 T  ?: W0 T1 [以前有两个方法自动提取文件名中的部分内容做代号、名称,如下:
) m+ u7 ?8 ~, L. g" ?9 }4 [$ }+ V
  E' t$ w, L  K" z8 u* |A、用方程式自动提取“****_####.sldprt”前9位做代号,后续内容做名称并填入属性栏的做法见“http://www.3dportal.cn/discuz/fo ... n=newthread&fid=131”。该方法不知道在Solidwork 2014版本里如何实现(方程式编辑方式不太一样),. G' U. S) F2 h9 ?5 ^
9 h2 @0 a, ~  t

6 |( Y4 u3 \4 n& _* |B、用宏自动提取“****_####.sldprt”部分内容做代号,名称并填入属性栏的做法见“http://www.3dportal.cn/discuz/fo ... wthread&tid=1250784”。具体见附件。4 w! p' a/ y- I4 n2 p! P4 p
- e& _' F8 ?% h7 G( t' ~
感谢研究并分享A、B方法心得的各位坛友,非常感谢。
1 B+ ^* q. `0 L9 K, D% R
  A* L7 h+ U+ H- r: P/ |$ y个人认为,以上A、B各有改进空间:
- T* Z; L% f7 n; Q
& ?9 q% ]4 W; M1、对于A方法,如果文件代号位数不定,则操作困难或复杂;) H; J- J6 L! T# W6 f+ b. Z% Q
2、如果文件名更改,则需刷新宏文件,不能自动更新(也许个人知识有限)。
* O# L4 F- R; N3 v& E
0 J5 X4 r" O, S, y4 Z如果将A、B方法结合起来,做成零件模板、部件模板,达到“用方程式自动提取“****_####.sldprt”中“_”前后内容做代号及名称".则完美了。不知有谁知道如何解决?请不吝指教。
6 g$ ]. u2 g( C4 I9 f% A4 r5 _" r
1 T9 W/ b1 d! o, o6 c/ E( x* z/ C1 @9 H

图号名称分离.rar

9.83 KB, 下载次数: 140

 楼主| 发表于 2014-6-16 10:11:16 | 显示全部楼层 来自: 中国江苏扬州
这个问题我谈下我的感受,”图号名称分离.rar“我感觉使用效果很不错,感谢作者及辗转提供该附件的坛友,。在sw2014 sp3里能很好使用,其它版本应该更没有问题,但有个前提文件名称必须按照  “****_####.sldprt”来编制,及代号部分与零件名称部门之间必须有个下划线"_",否则不能实现提取功能。
; C9 [$ U  k  f7 y7 B' W' M  l9 U, q& d* G8 f( z+ W& S

4 C% x. d, O; W. ]9 a
1.JPG
 楼主| 发表于 2014-6-16 10:18:39 | 显示全部楼层 来自: 中国江苏扬州
上图是我自己以前使用的文件模板,是将文件名做代号用,自动提取文件名转为代号,完全关联,文件名更改、代号即自动更新,不需特意刷新,不会产生忘记刷新导致图号错误的问题。3 Z" Y  P6 x8 a: O, w5 O! T: }
. l1 }! M8 [* c7 S- d
如果能将$PRP:"SW-file name"改为
( N: J9 Z! Y# H4 w, D  S $PRP:"提取"SW-file name"中_前部分"     g$ P+ w4 w( t" S! M4 D6 l
(上面为不正确的表达方式,个人水平有限,仅仅用来表达我之意思。)0 F4 B5 k6 q$ Z; `/ _( J" Z2 j! X  ^
实现自动提取文件名中"_"之前部分做代号、之后部分做名称,实现自动更新,则美矣!
发表于 2014-6-16 13:28:18 | 显示全部楼层 来自: 中国四川乐山
可以实现了,我在模板里做了嵌入式宏命令,保存后刷新一次,就可以自动将文件名里的图号,名称提取出来做自定义的图号名称了
 楼主| 发表于 2014-6-16 13:39:49 | 显示全部楼层 来自: 中国江苏扬州
感谢回复
3 J! o! J8 p  T: K4 A: z( V* I" ^# \6 j1 M" E& U  S" `2 _
宏提取文件名字符为何不成功
8 j1 ^4 q) r& j" y9 w& T/ n: J; T- I" j
http://www.3dportal.cn/discuz/fo ... &fromuid=401891
8 G+ \& k+ y$ x2 H/ T$ l+ h' N) X9 G5 S8 a# Y

) C# j: I( ]+ P' t上面帖子里,除了“图号名称分离.rar”用的顺利外,其它的都不行(我的是Solidworks2014 SP3),不过没关系,我对 “图号名称分离.rar”已经很满意了。但是美中不足的是,如果文件名改了,忘记了刷新宏命令按钮的话,会导致图号错误。' f+ d) [! ^$ k# M+ V
发表于 2014-6-16 21:46:44 | 显示全部楼层 来自: 中国香港
arter 发表于 2014-6-16 13:39 static/image/common/back.gif
5 A7 w: k% |) n( G6 Z) T+ a- C感谢回复
* c/ m; e5 \# Q9 l2 l
% S. m$ J5 ]3 @4 n9 @1 f6 U宏提取文件名字符为何不成功

/ N( u- H% v8 G寫多一個宏, 讓SW在每次切換文件時都自動執行指定的宏, 那就可以避免忘記按動按鈕.
  ^; R1 K& i  u& C; B! ?: K8 Y/ j) g. t4 J
1.3 G- V9 m1 _7 o# l1 K' L6 W
在C:盤建立"Macros"的文件夾, 並複制宏"partitionTM.swp"於其中.
( s' P) Z" |# v- j4 N/ ?
: T, t) R& M/ i  T, K2.. ?- f8 a# A# d* h) t
新建一個宏, 儲存到"C:\Macros\AutoRun.swp"
8 H' n" y! r: \3 ?& w把以下代碼完全取代模塊的內容:
4 a4 z+ O6 ~3 l1 b. h, [Public AutoRun As 类1
! f  E# s& C. k/ y' ]Sub main()
; }# c8 f9 @$ J/ T( ]* wSet AutoRun = New 类1) l! y2 w: Y7 ]) l6 K7 [
End Sub
' B7 j3 j$ N$ I1 D再插入"類模塊", 名稱為"类1", 內容如下:
4 A! A  X( m' e4 rPrivate WithEvents SwApp As SldWorks.SldWorks
& F+ o) R8 f; }Private Sub Class_Initialize()2 O, c' f! F2 Q9 r6 a1 u) I4 {
Set SwApp = Application.SldWorks
7 I: u  z7 r7 A% u' ]End Sub" z& j) c) L' k& O9 `5 H' r
Private Function SwApp_ActiveModelDocChangeNotify() As Long& ?( a3 S% i% D; p# q
Dim runMacroError As Long  z, c3 K7 `% ]: u
SwApp.RunMacro2 "C:\Macros\partitionTM.swp", "partitionTM1", "main", 0, runMacroError
" W8 y* b1 Q& YEnd Function
2 D1 O, ~- k1 C2 k% w6 ^儲存宏及關閉SW.
7 o" V! `$ F3 ~  g: k& \/ m4 \4 u% ^9 U4 n) C/ E
3.; u7 `; s" P' c7 \# a# ~
執行SW並一起載入宏的方法
0 `+ m6 e% F' D0 n- G9 W# y1 R. O"安裝位置\SLDWORKS.exe" /m "C:\Macros\AutoRun.swp"
 楼主| 发表于 2014-6-17 09:34:26 | 显示全部楼层 来自: 中国江苏扬州
本帖最后由 arter 于 2014-6-17 09:57 编辑
& H2 S2 B7 i1 K3 e; `' Y* o4 W$ s6 J6 g
非常荣幸能得到闷人老师的指点,让闷人老师费心了,,终于完美了。
发表于 2014-6-17 11:22:31 | 显示全部楼层 来自: 中国台湾
按悶大教程設置,成功了~~
发表于 2014-6-17 16:00:48 | 显示全部楼层 来自: 中国四川乐山
本帖最后由 l88i 于 2014-6-17 16:04 编辑
( f/ Q! m1 p6 D3 ^$ p- ?8 q: Y
5 V. o- P6 g6 N) w零件
: z0 A6 F9 Y" @( M3 k9 W3 ^15 b! R- p; U% k& ~
Dim Txt2 [3 Z/ w9 b* p3 C
Txt = part.GetTitle()
4 R- H" {- h7 G* u! {Txt = Left(Txt,InStr(Txt," ")-1)5 u; ]4 J6 H4 d/ S. P
Txt = Part.Extension.CustomPropertyManager("").Set("NO.",Txt)
$ l3 w) I' C' r* L- P+ e, h4 K1 _8 [  k装配体
8 H( c' g% [$ e8 |+ |( |1
. t3 p/ N  w/ M* @8 j3 \8 ^Dim Txt3 G0 x- J: d& G9 c3 Q
Txt = Assembly.GetTitle()5 A6 `+ @: c2 F' o. X- a0 Y4 k
Txt = Left(Txt,InStr(Txt," ")-1)6 J, D* H8 e7 V' |5 o
Txt = Assembly.Extension.CustomPropertyManager("").Set("NO.",Txt)
+ l, _' D6 t7 D; f零件
& }9 o7 P: H$ R- w0 N7 O4 e( v2
  B8 o# N- K8 vDim Txt, R% w) E  k% h8 w
Txt = part.GetTitle()
3 H7 T" G5 Q# W8 {+ @Txt = Right(Txt,Len(Txt)-InStr(Txt," "))) {- I" |' d! P7 q
Txt = Left(Txt,InStr(Txt,".")-1)
7 B3 E. ~- L$ f6 h, BTxt = Part.Extension.CustomPropertyManager("").Set("Name",Txt)$ W) \. p; c' ?8 L! ?9 o
装配体
/ g/ j! M1 a: l2
) A, r" f) i% xDim Txt
8 J* E- Y3 }: O' i7 |, ~% v3 YTxt = Assembly.GetTitle()$ }! {3 V& r7 I
Txt = Right(Txt,Len(Txt)-InStr(Txt," "))
, D0 f& k6 R: KTxt = Left(Txt,InStr(Txt,".")-1)
  j- e& x  D. Y) q# a1 ]+ u1 NTxt = Assembly.Extension.CustomPropertyManager("").Set("Name",Txt)
. A1 F, R3 P: c( a; p# J! F3 @
9 V/ u, O2 f/ n3 A# O3 h5 u
; s! T' m" c( ~% M
% z3 j0 S+ c+ Z. o. h这是我调试好的内嵌式宏
& J% F4 s. w* p  e% M我定的规则是图号名称间加个空格,以空格为来设定的
: J. v8 T* C' d) x1 H' C然后我设定的Name为名称,,NO.为图号,因为在06年的时候只有06版,那时候不支持中文的自定义名称,只好用这代替,一直沿用到现在
发表于 2014-6-17 16:05:31 | 显示全部楼层 来自: 中国四川乐山
如果有人感兴趣我就发我的模板
发表于 2014-6-17 16:57:59 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2014-6-17 17:29 编辑
) y5 }' O& I/ a# e7 t8 H. o
l88i 发表于 2014-6-17 16:05 static/image/common/back.gif& W% c$ {, q$ Z0 J' E
如果有人感兴趣我就发我的模板
7 P+ W) f+ a% B0 @, K

0 f6 K: D- A, o& T, M, B自己按語句嵌入一次,得到錯誤的回應…1 }- z; S, u. A/ K+ G

# k6 `; ], x9 q; `' ?能傳上來研究一下嗎?謝謝。
发表于 2014-6-18 13:42:18 | 显示全部楼层 来自: 中国四川乐山
内嵌式宏命令,自动分割文件名生成图号名称,分享模板5 A9 o. z3 S1 h/ y/ M2 T
http://www.3dportal.cn/discuz/fo ... &fromuid=302658
$ r" v; v3 O3 R7 S
发表于 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 编辑
, U+ ^& q- v% ?9 W+ a6 X( E
arter 发表于 2014-6-16 10:18 static/image/common/back.gif
$ Z3 P9 ~* G8 f& t7 ~2 A0 `上图是我自己以前使用的文件模板,是将文件名做代号用,自动提取文件名转为代号,完全关联,文件名更改、代 ...

4 `. |  ?3 C* n$ N) r不是属性链接设置也可以把文件名跟图代号关联吗,呵呵,软件只是为了工作设计提供方便,能方便快捷就好没必要走弯路显花招,把时间精神多花在针对专业中去吧
发表于 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( n2 [  w, }* J
零件7 L+ y0 Z2 U1 y
1- r$ j9 D) h/ ~( v
Dim Txt

, F+ w- \6 {  y3 _你好,用了你的模板,图号可以更新为空格键前面的字符,但是空格后面的名称不会更新,望指点
发表于 2016-1-29 10:51:25 | 显示全部楼层 来自: 中国北京
l88i 发表于 2014-6-17 16:05+ C7 X( l" E4 m! o2 y& L
如果有人感兴趣我就发我的模板
( ?( {/ t: U2 F6 g; j4 G
你能把你模板发给我看看吗谢谢你啦。
发表于 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 )

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