QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

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

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

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

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

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

x
用方程式自动提取“****_####.sldprt”中“_”前后内容做代号及名称
7 J/ k! C) E( X( A
& ?, {! s4 g7 ?5 [* X! ?4 p
* @8 A. f4 \) Q5 L$ V3 X, \% s4 G* D以前有两个方法自动提取文件名中的部分内容做代号、名称,如下:
( K4 h$ `4 k7 e2 i
5 ], K7 g1 H% Q& mA、用方程式自动提取“****_####.sldprt”前9位做代号,后续内容做名称并填入属性栏的做法见“http://www.3dportal.cn/discuz/fo ... n=newthread&fid=131”。该方法不知道在Solidwork 2014版本里如何实现(方程式编辑方式不太一样),2 F, L% p3 E1 t: F" t
. M4 S7 `- }% [- C$ ]* ], j4 }
- m9 x) q8 E5 I1 g) _
B、用宏自动提取“****_####.sldprt”部分内容做代号,名称并填入属性栏的做法见“http://www.3dportal.cn/discuz/fo ... wthread&tid=1250784”。具体见附件。; q# R4 P3 ]5 r+ t5 o( {
9 `! M1 b, @0 `6 M+ C1 f
感谢研究并分享A、B方法心得的各位坛友,非常感谢。/ ^. ?5 j2 }& p) M( y/ h

* E' _5 _) F* }' F3 }个人认为,以上A、B各有改进空间:& b  f. R$ l" L: \3 R* B- w

2 W- j( W; l8 a- k; J) R# I8 g, w1、对于A方法,如果文件代号位数不定,则操作困难或复杂;, X6 r7 W6 B# u
2、如果文件名更改,则需刷新宏文件,不能自动更新(也许个人知识有限)。
- f: ~  h6 x4 n4 R6 L9 W4 n  W/ |8 ?  B
如果将A、B方法结合起来,做成零件模板、部件模板,达到“用方程式自动提取“****_####.sldprt”中“_”前后内容做代号及名称".则完美了。不知有谁知道如何解决?请不吝指教。: a" t1 X, Z6 A, H9 \: ^6 c
  f* n5 O& s7 Z; }) m

图号名称分离.rar

9.83 KB, 下载次数: 140

 楼主| 发表于 2014-6-16 10:11:16 | 显示全部楼层 来自: 中国江苏扬州
这个问题我谈下我的感受,”图号名称分离.rar“我感觉使用效果很不错,感谢作者及辗转提供该附件的坛友,。在sw2014 sp3里能很好使用,其它版本应该更没有问题,但有个前提文件名称必须按照  “****_####.sldprt”来编制,及代号部分与零件名称部门之间必须有个下划线"_",否则不能实现提取功能。
# _6 v4 l- r, O, W1 q( ]! M6 u
( ?. V0 I# X# n  `- M; y! q
$ _8 p% j5 `, M
1.JPG
 楼主| 发表于 2014-6-16 10:18:39 | 显示全部楼层 来自: 中国江苏扬州
上图是我自己以前使用的文件模板,是将文件名做代号用,自动提取文件名转为代号,完全关联,文件名更改、代号即自动更新,不需特意刷新,不会产生忘记刷新导致图号错误的问题。
) Y- L) U' i3 b
5 b' H6 K( ]$ s8 h/ |* m' ?/ B如果能将$PRP:"SW-file name"改为 - o% H# F2 u5 C: |, m8 o6 v
$PRP:"提取"SW-file name"中_前部分"   
) M3 {9 {; Q; {* P+ T(上面为不正确的表达方式,个人水平有限,仅仅用来表达我之意思。)" A7 Z& X- z, Q  r! X6 O& t5 s
实现自动提取文件名中"_"之前部分做代号、之后部分做名称,实现自动更新,则美矣!
发表于 2014-6-16 13:28:18 | 显示全部楼层 来自: 中国四川乐山
可以实现了,我在模板里做了嵌入式宏命令,保存后刷新一次,就可以自动将文件名里的图号,名称提取出来做自定义的图号名称了
 楼主| 发表于 2014-6-16 13:39:49 | 显示全部楼层 来自: 中国江苏扬州
感谢回复
+ m$ t8 s0 C! I  a" h3 o  V, a+ d( _
. I) u& A- |1 a: R宏提取文件名字符为何不成功
# H' P( J" N% b7 g
9 A; E6 C6 p2 w& U* f7 y! C, mhttp://www.3dportal.cn/discuz/fo ... &fromuid=401891" o, A, o$ I. B; w9 E: \
$ f. e5 U) S' B3 X; Z1 A* K
, I7 \, O$ }. L6 v& R( Z4 Q, z# T
上面帖子里,除了“图号名称分离.rar”用的顺利外,其它的都不行(我的是Solidworks2014 SP3),不过没关系,我对 “图号名称分离.rar”已经很满意了。但是美中不足的是,如果文件名改了,忘记了刷新宏命令按钮的话,会导致图号错误。; Z% b! x7 U9 o2 {2 f3 ]8 i& W6 T
发表于 2014-6-16 21:46:44 | 显示全部楼层 来自: 中国香港
arter 发表于 2014-6-16 13:39 static/image/common/back.gif. K! e- ?+ {9 X3 U, _: a
感谢回复
. |: i; z1 t4 A  s2 o# X! G
( a1 `! y7 ~  I9 b( d+ X1 X宏提取文件名字符为何不成功

& `0 ~1 Y; K  I寫多一個宏, 讓SW在每次切換文件時都自動執行指定的宏, 那就可以避免忘記按動按鈕.
6 h- }8 t1 n4 G5 W; W6 T  w9 d4 U4 i  {
1.
  m* D2 f4 D; U- c在C:盤建立"Macros"的文件夾, 並複制宏"partitionTM.swp"於其中.
2 y' \9 u1 T( n% @& @
8 A7 O# z6 Y& g; a# }1 U2.
$ F/ r) G; J, J  ^% y' R9 a+ n新建一個宏, 儲存到"C:\Macros\AutoRun.swp"
$ O3 E" l9 e+ Z$ J( G+ U/ @把以下代碼完全取代模塊的內容:
; R6 D8 N& h! sPublic AutoRun As 类1
! E3 [2 A9 D3 R% z  O* T! \6 n- QSub main()
. p5 m) _2 P- [  v) Y9 l" kSet AutoRun = New 类1
+ g& o! w# I5 s' S) u5 V1 q1 IEnd Sub9 a3 p* H1 b& c  c# y: V
再插入"類模塊", 名稱為"类1", 內容如下:
3 w, ^3 W# |: H+ y; |7 C4 ^4 yPrivate WithEvents SwApp As SldWorks.SldWorks
; \9 [) _6 o% I* M  W/ n' G8 ~5 IPrivate Sub Class_Initialize()* _9 K. t$ i, {! C0 ^$ }
Set SwApp = Application.SldWorks; l* X! z8 L3 O# C
End Sub
" k+ u) g. U% v7 VPrivate Function SwApp_ActiveModelDocChangeNotify() As Long
. S9 f8 O4 m2 x! g( UDim runMacroError As Long
+ e% X: L1 Z* t8 O  tSwApp.RunMacro2 "C:\Macros\partitionTM.swp", "partitionTM1", "main", 0, runMacroError
) {( e1 }9 B  ~0 H$ [9 yEnd Function9 H8 f* L, ]$ D5 s! ~
儲存宏及關閉SW.
8 {+ O; p* L$ e( p4 c1 L' h) Q: c
, R- _$ T/ ~  ^5 J- V3." `2 [9 y: G: p' Q, s# S; {
執行SW並一起載入宏的方法5 [) T# ?  s0 l5 a% t  {
"安裝位置\SLDWORKS.exe" /m "C:\Macros\AutoRun.swp"
 楼主| 发表于 2014-6-17 09:34:26 | 显示全部楼层 来自: 中国江苏扬州
本帖最后由 arter 于 2014-6-17 09:57 编辑 ( ^. h: r7 S/ C& A8 D( A. m" B
: l2 X6 l# ]9 R' p
非常荣幸能得到闷人老师的指点,让闷人老师费心了,,终于完美了。
发表于 2014-6-17 11:22:31 | 显示全部楼层 来自: 中国台湾
按悶大教程設置,成功了~~
发表于 2014-6-17 16:00:48 | 显示全部楼层 来自: 中国四川乐山
本帖最后由 l88i 于 2014-6-17 16:04 编辑
6 H7 b% k; z: @: K2 G/ q. d2 d: z- \. r; R
零件
. r1 r, b9 x8 x" S; s1$ x) x/ i! A/ g8 v
Dim Txt5 b" Z; \* S8 U' s$ u
Txt = part.GetTitle()4 Y% I# l: q6 m1 Z# ]
Txt = Left(Txt,InStr(Txt," ")-1)
; B$ \9 `: A$ l  Y/ {% YTxt = Part.Extension.CustomPropertyManager("").Set("NO.",Txt)  ]+ |5 Z. L9 u) N
装配体
4 u. c$ `7 Q6 Q' C7 x3 w) _1+ }4 P' t8 e5 K( V0 C6 I
Dim Txt
/ u3 R- Q& ~6 xTxt = Assembly.GetTitle()  q7 _& [- l0 _
Txt = Left(Txt,InStr(Txt," ")-1)
' [, k. m3 e+ m' |Txt = Assembly.Extension.CustomPropertyManager("").Set("NO.",Txt)' P7 n% l8 A$ t9 X2 g6 U5 ?
零件
3 ], z8 Z; ]: p3 ^: g2! p) v' |3 w$ F. m! e
Dim Txt
7 e1 E- k) p& ^* o" P. ~7 OTxt = part.GetTitle()4 i  x) s8 N) R& u' r, O6 n
Txt = Right(Txt,Len(Txt)-InStr(Txt," "))
6 W% l. ~+ `& i8 h  [+ ^Txt = Left(Txt,InStr(Txt,".")-1)8 D8 N: w1 W: L/ D* p' S7 ?
Txt = Part.Extension.CustomPropertyManager("").Set("Name",Txt); S9 x2 p4 {. b& d: T
装配体% C/ B+ o+ `' D% o; J: C  a
2+ J3 ~7 i6 q9 Y5 P4 a, k. @: @
Dim Txt& L. p/ {7 k( a. y$ G& f0 Q
Txt = Assembly.GetTitle()) C$ w- `1 I) d
Txt = Right(Txt,Len(Txt)-InStr(Txt," "))  K8 R$ M; x, ]' h2 q' e
Txt = Left(Txt,InStr(Txt,".")-1)7 S( z# }1 l" M; L+ D$ R, t. q
Txt = Assembly.Extension.CustomPropertyManager("").Set("Name",Txt)
& e" E  q4 G; J+ A% ~5 j9 h5 P& p* D6 I0 g! ]# U

, \/ t- z! v; m) t$ f& D. ?" [1 z& Z; o! G  M/ Y* s+ i
这是我调试好的内嵌式宏
5 C$ `& }8 Z1 }7 {) K9 J我定的规则是图号名称间加个空格,以空格为来设定的$ ^# ]0 @! G$ X# J. f1 A
然后我设定的Name为名称,,NO.为图号,因为在06年的时候只有06版,那时候不支持中文的自定义名称,只好用这代替,一直沿用到现在
发表于 2014-6-17 16:05:31 | 显示全部楼层 来自: 中国四川乐山
如果有人感兴趣我就发我的模板
发表于 2014-6-17 16:57:59 | 显示全部楼层 来自: 中国台湾
本帖最后由 gt.adan 于 2014-6-17 17:29 编辑
0 q& n# v3 b- K4 Z. J' q6 N
l88i 发表于 2014-6-17 16:05 static/image/common/back.gif% j* Y' g8 V. K9 |# I, {! Q
如果有人感兴趣我就发我的模板
, J1 h* K# O# j  ^1 j' P
3 |; y0 v# K# r4 D8 E
自己按語句嵌入一次,得到錯誤的回應…& E4 {, K1 x7 Q
4 I& A! C; j1 k' v
能傳上來研究一下嗎?謝謝。
发表于 2014-6-18 13:42:18 | 显示全部楼层 来自: 中国四川乐山
内嵌式宏命令,自动分割文件名生成图号名称,分享模板
& m1 p2 q4 D5 p1 }* |. C: D7 bhttp://www.3dportal.cn/discuz/fo ... &fromuid=3026583 s2 m' r4 m- ]1 r  [/ Z
发表于 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 编辑 . a: P; v' ?" z- ^3 S$ g+ |
arter 发表于 2014-6-16 10:18 static/image/common/back.gif
$ Z- M3 K+ ]3 Z- k/ m( N6 Q! A. {上图是我自己以前使用的文件模板,是将文件名做代号用,自动提取文件名转为代号,完全关联,文件名更改、代 ...
7 t6 i4 j) d4 r& {6 ^4 d
不是属性链接设置也可以把文件名跟图代号关联吗,呵呵,软件只是为了工作设计提供方便,能方便快捷就好没必要走弯路显花招,把时间精神多花在针对专业中去吧
发表于 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.gif5 ?- I+ k6 ]/ d- r+ U. M3 e
零件
9 E( [; P7 z+ g" ^& r- H1% U. A4 r2 R. T% y* q* b# Y
Dim Txt
. A5 K% ~, X% Y; M! D2 v( h& }
你好,用了你的模板,图号可以更新为空格键前面的字符,但是空格后面的名称不会更新,望指点
发表于 2016-1-29 10:51:25 | 显示全部楼层 来自: 中国北京
l88i 发表于 2014-6-17 16:05
7 h- L5 T0 i9 a9 w* E0 G如果有人感兴趣我就发我的模板
, P2 }% ~/ {4 f: H# ]. a/ ]
你能把你模板发给我看看吗谢谢你啦。
发表于 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 )

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