QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
用方程式自动提取“****_####.sldprt”中“_”前后内容做代号及名称
& G( p' |; |2 ^' A+ w1 ?7 u5 C& q: o1 h
8 r4 Z/ U: S8 y/ |2 M3 f% K& u0 c. o; o8 w
以前有两个方法自动提取文件名中的部分内容做代号、名称,如下:
$ M/ R/ h4 j! T2 l- Q0 E) i: a+ w2 C0 Y5 J! W7 q! N" S
A、用方程式自动提取“****_####.sldprt”前9位做代号,后续内容做名称并填入属性栏的做法见“http://www.3dportal.cn/discuz/fo ... n=newthread&fid=131”。该方法不知道在Solidwork 2014版本里如何实现(方程式编辑方式不太一样),
( d+ |; @4 B$ _4 _  t& d2 W$ @/ a% o
1 e9 V: }/ @0 Z/ b5 x- h) \( A/ W
B、用宏自动提取“****_####.sldprt”部分内容做代号,名称并填入属性栏的做法见“http://www.3dportal.cn/discuz/fo ... wthread&tid=1250784”。具体见附件。
% c+ L/ x/ I6 ]( c! n2 P" D
8 y+ S6 h( l7 b6 J1 ^: a4 `感谢研究并分享A、B方法心得的各位坛友,非常感谢。* t) c  H( N+ E& U
$ o1 H7 T+ m% Z8 H& B
个人认为,以上A、B各有改进空间:8 A7 P. o* x# a) J

- C3 v+ g0 {  p6 U; z6 K2 l1、对于A方法,如果文件代号位数不定,则操作困难或复杂;
+ L5 [% i" k$ M2、如果文件名更改,则需刷新宏文件,不能自动更新(也许个人知识有限)。& [" s3 Y# O$ Q, U

$ c* t" A1 \% d$ p; |如果将A、B方法结合起来,做成零件模板、部件模板,达到“用方程式自动提取“****_####.sldprt”中“_”前后内容做代号及名称".则完美了。不知有谁知道如何解决?请不吝指教。% ?0 o; Z# k( ?) v7 v9 d' l6 y* p

. ]3 ?# V1 v) _- H! B! F9 E

图号名称分离.rar

9.83 KB, 下载次数: 138

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

, [  A9 ?7 M6 l3 c7 w+ }0 M/ P5 R+ @/ K0 R1 F
1.JPG
 楼主| 发表于 2014-6-16 10:18:39 | 显示全部楼层 来自: 中国江苏扬州
上图是我自己以前使用的文件模板,是将文件名做代号用,自动提取文件名转为代号,完全关联,文件名更改、代号即自动更新,不需特意刷新,不会产生忘记刷新导致图号错误的问题。
2 `9 a) {. D! `+ Q# y" h% C4 C5 v8 N9 W& R, H5 Z/ m; Y/ l! d2 X9 u
如果能将$PRP:"SW-file name"改为 6 N: x7 e1 Q# x( q
$PRP:"提取"SW-file name"中_前部分"   ' Y0 C; V" c) @4 Z6 U1 W/ ~( ]9 X6 o6 K
(上面为不正确的表达方式,个人水平有限,仅仅用来表达我之意思。)2 M4 |6 U3 _6 s- |* S8 |. W
实现自动提取文件名中"_"之前部分做代号、之后部分做名称,实现自动更新,则美矣!
发表于 2014-6-16 13:28:18 | 显示全部楼层 来自: 中国四川乐山
可以实现了,我在模板里做了嵌入式宏命令,保存后刷新一次,就可以自动将文件名里的图号,名称提取出来做自定义的图号名称了
 楼主| 发表于 2014-6-16 13:39:49 | 显示全部楼层 来自: 中国江苏扬州
感谢回复
" E* V; }/ x8 q5 P. x; T; q
2 N# B  V7 C" V7 M宏提取文件名字符为何不成功+ u) ^9 X" p0 @' D+ N
- _( E4 x, c* K; F% ]/ [2 b
http://www.3dportal.cn/discuz/fo ... &fromuid=401891
* Y) p! }7 X( V7 @, t3 d# y& X/ s* [2 j, E+ @, Y
% S! x2 l5 S  T' u: s( K& p
上面帖子里,除了“图号名称分离.rar”用的顺利外,其它的都不行(我的是Solidworks2014 SP3),不过没关系,我对 “图号名称分离.rar”已经很满意了。但是美中不足的是,如果文件名改了,忘记了刷新宏命令按钮的话,会导致图号错误。/ q% p, S: o+ }! R; Q- M0 T
发表于 2014-6-16 21:46:44 | 显示全部楼层 来自: 中国香港
arter 发表于 2014-6-16 13:39 static/image/common/back.gif
# X! `1 d$ ?7 T0 c3 }  f- h$ H+ \感谢回复1 c2 p4 {; ]1 d% }
. }8 X/ R6 D: O5 |+ q# j- a  k3 l
宏提取文件名字符为何不成功

8 x* g: `/ r; J4 Z$ f1 ~. O寫多一個宏, 讓SW在每次切換文件時都自動執行指定的宏, 那就可以避免忘記按動按鈕.
' N4 l* s5 n) D" n- V
9 Y4 |# r0 A9 c5 z3 p1.- x7 t+ G8 S* V9 \
在C:盤建立"Macros"的文件夾, 並複制宏"partitionTM.swp"於其中.( w# L# `/ q  U9 l1 B2 ^* h( J+ h

2 l0 e* o" j, K+ i* F2 M  e7 `/ @9 ]2.4 J1 T' t% L# y8 B' R
新建一個宏, 儲存到"C:\Macros\AutoRun.swp"
0 l! Z8 c  _/ b# j! S$ N把以下代碼完全取代模塊的內容:, K! K/ F- e5 T' D3 b: e
Public AutoRun As 类1% _, o& j% K/ `1 F, `8 s
Sub main()2 ~& |7 A2 S0 |8 X6 K: G6 r6 U
Set AutoRun = New 类1
  R1 X" t/ }$ R. y" aEnd Sub0 ]. i1 [7 E1 H, e: P
再插入"類模塊", 名稱為"类1", 內容如下:4 `1 F; j+ ^* j
Private WithEvents SwApp As SldWorks.SldWorks
* x$ A! P3 x  m5 S" TPrivate Sub Class_Initialize()" s4 f6 T1 f1 a4 f. ?+ ^
Set SwApp = Application.SldWorks4 n" e# d; q  _1 _9 N* n2 u
End Sub5 f* L$ k8 A# b6 d, i3 n
Private Function SwApp_ActiveModelDocChangeNotify() As Long
$ @  N0 M" ^$ p. yDim runMacroError As Long7 J6 C: O5 _0 [8 S* D9 l
SwApp.RunMacro2 "C:\Macros\partitionTM.swp", "partitionTM1", "main", 0, runMacroError
! S) U! g5 k: C' o, ]5 J& QEnd Function' T% t) H7 b6 W! }& v; Y- E% G/ `
儲存宏及關閉SW.
% P/ D5 `' i6 y( t
: Z  _4 T, {) H$ M* v3 f7 g6 N3.2 j; a3 u3 K3 z: _
執行SW並一起載入宏的方法
0 `' M* f/ O- ~% ]" U. N5 w"安裝位置\SLDWORKS.exe" /m "C:\Macros\AutoRun.swp"
 楼主| 发表于 2014-6-17 09:34:26 | 显示全部楼层 来自: 中国江苏扬州
本帖最后由 arter 于 2014-6-17 09:57 编辑 * T- h6 t( L. J) ^9 B, h

# X6 B: u. |9 o4 \& V) Q5 F非常荣幸能得到闷人老师的指点,让闷人老师费心了,,终于完美了。
发表于 2014-6-17 11:22:31 | 显示全部楼层 来自: 中国台湾
按悶大教程設置,成功了~~
发表于 2014-6-17 16:00:48 | 显示全部楼层 来自: 中国四川乐山
本帖最后由 l88i 于 2014-6-17 16:04 编辑
0 B, @5 A4 Y( a* i- }5 m9 Q
% X% c- e# k/ C! }4 I" Z  ?9 I( _9 p零件
1 M" U: i/ h( L3 R, G0 e1 e/ {1  P8 H# F. F9 c  o$ f7 i
Dim Txt. O* K8 C& R. ?' A
Txt = part.GetTitle()  N) c3 d; f3 {3 \  a+ P! l) _
Txt = Left(Txt,InStr(Txt," ")-1)4 N4 J7 r5 y( V5 r; a
Txt = Part.Extension.CustomPropertyManager("").Set("NO.",Txt)
# O' o& b( d+ i, N, e装配体
+ Y, w8 E  r0 y' ~) D1
4 t. u1 f% k  n3 [Dim Txt
1 a; I$ z; W, N/ R# D+ ETxt = Assembly.GetTitle()6 D- p5 X. p# |/ a# G; c; d/ b
Txt = Left(Txt,InStr(Txt," ")-1)( M4 h9 b( E0 g
Txt = Assembly.Extension.CustomPropertyManager("").Set("NO.",Txt)
% ]1 d$ I6 i* F# I7 ]! R& j零件' G- u9 [3 f6 o7 C) }" R
2$ U" s" E) ]! [: H
Dim Txt8 V  F) X9 d% X! N/ J
Txt = part.GetTitle()
% Y+ w9 U2 R+ GTxt = Right(Txt,Len(Txt)-InStr(Txt," "))
! h& u  K$ C$ d+ T( UTxt = Left(Txt,InStr(Txt,".")-1)
. g) i4 b* }# b7 ^  E* H( {! lTxt = Part.Extension.CustomPropertyManager("").Set("Name",Txt)+ a9 J& g7 ?  A$ t( z' y
装配体: \+ F6 S# a7 t' N( G0 M9 [" ^
21 v) H  j* M/ m: ~
Dim Txt
/ M! s# Z; e9 V" _% y* xTxt = Assembly.GetTitle()
; e" j- l1 n6 x3 I/ m1 k6 zTxt = Right(Txt,Len(Txt)-InStr(Txt," "))
: P0 Y- R$ N# u1 dTxt = Left(Txt,InStr(Txt,".")-1)  L; Q! e7 F2 `. z- n
Txt = Assembly.Extension.CustomPropertyManager("").Set("Name",Txt)
# N  ?* K* q" R
# q  V0 }) b. q1 f
$ W: }6 d4 M- d: e4 E0 |1 W1 C! \5 m# [
这是我调试好的内嵌式宏
4 P5 }8 N' E) b3 }我定的规则是图号名称间加个空格,以空格为来设定的+ u4 m& M  |, F# p2 P
然后我设定的Name为名称,,NO.为图号,因为在06年的时候只有06版,那时候不支持中文的自定义名称,只好用这代替,一直沿用到现在
发表于 2014-6-17 16:05:31 | 显示全部楼层 来自: 中国四川乐山
如果有人感兴趣我就发我的模板
发表于 2014-6-17 16:57:59 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2014-6-17 17:29 编辑 " X' z& S5 r( g1 C8 c' c" w( Y
l88i 发表于 2014-6-17 16:05 static/image/common/back.gif( q5 G$ O5 x8 c
如果有人感兴趣我就发我的模板

/ T: G3 A# H, z# X& s9 E9 k7 r) t+ Z0 [, T  A# `/ M2 U+ x
自己按語句嵌入一次,得到錯誤的回應…; j3 F! {* h. W

' l7 C9 J  l5 @3 m) j8 F能傳上來研究一下嗎?謝謝。
发表于 2014-6-18 13:42:18 | 显示全部楼层 来自: 中国四川乐山
内嵌式宏命令,自动分割文件名生成图号名称,分享模板
3 ]9 U2 c5 v% s, D' Shttp://www.3dportal.cn/discuz/fo ... &fromuid=3026583 g0 y  `  n& g& H  V# ]0 r
发表于 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 编辑
& T  E) _) ?' O8 H- C5 u1 D
arter 发表于 2014-6-16 10:18 static/image/common/back.gif. m: a! {+ r$ ]+ Y. O. b
上图是我自己以前使用的文件模板,是将文件名做代号用,自动提取文件名转为代号,完全关联,文件名更改、代 ...
1 ?9 O) X8 H/ B$ }. u) O' n  |, x
不是属性链接设置也可以把文件名跟图代号关联吗,呵呵,软件只是为了工作设计提供方便,能方便快捷就好没必要走弯路显花招,把时间精神多花在针对专业中去吧
发表于 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# r: i5 a# H5 ?6 U
零件4 O% V, P1 j& |2 s$ ^
1' u; T5 `) f$ Z) c% B% K) `9 r9 U
Dim Txt

" I1 J7 p: I4 j7 z你好,用了你的模板,图号可以更新为空格键前面的字符,但是空格后面的名称不会更新,望指点
发表于 2016-1-29 10:51:25 | 显示全部楼层 来自: 中国北京
l88i 发表于 2014-6-17 16:055 W* ^6 C& L" M$ C# R
如果有人感兴趣我就发我的模板
& ?. X4 f1 f5 P4 n/ R" N2 v
你能把你模板发给我看看吗谢谢你啦。
发表于 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 )

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