QQ登录

只需一步,快速开始

登录 | 注册 | 找回密码

三维网

 找回密码
 注册

QQ登录

只需一步,快速开始

展开

通知     

全站
4小时前
全站
goto3d 说: 版主微信号:caivin811031;还未入三维微信群的小伙伴,速度加
2022-07-04
楼主: hheyafu
收起左侧

[已解决] SOLIDWORKS怎样将图档名“图号+名称”分离后自动链接到属性中

[复制链接]
发表于 2016-4-27 20:48:25 | 显示全部楼层
jinqin11 发表于 2016-2-18 18:459 t* V7 `! {/ C. P
打开属性栏,设置属性,如图
2 [, d; i# [9 a( N进入方程式界面,设置全局变量,如图
; J0 Y! h! J4 k! N7 n" j! S0 t
老师按照你给的东西我的怎么不能分离,你能加qq帮我一下吗553942958麻烦你了,我图号是这样例如:GH01-02-03-04支撑架,装配图号例如:GH01-02-03-04-001轴承座组建
发表于 2016-4-27 21:38:24 | 显示全部楼层
杨成武 发表于 2016-4-27 20:48
' h' p; s; a! C1 l老师按照你给的东西我的怎么不能分离,你能加qq帮我一下吗553942958麻烦你了,我图号是这样例如:GH01-02 ...

$ x" T9 t6 a/ A. ^4 Z' t# @) R装配图好像不管用。" Y1 S( \: p- i! F( s
你的是什么版本的2 Y+ m: B" }! V/ W  k8 |
发表于 2016-4-28 19:16:50 | 显示全部楼层
jinqin11 发表于 2016-4-27 21:38! B. j+ G3 k* m5 N# [
装配图好像不管用。- }4 b+ \3 V* t+ H0 |
你的是什么版本的
# k, w1 D. L. j+ ^& ^
sw2015,你有qq吗?
发表于 2016-4-29 07:01:38 | 显示全部楼层
杨成武 发表于 2016-4-28 19:16
/ r0 m+ c, a% k5 Z1 v8 W' ?sw2015,你有qq吗?
% x# C0 D0 X4 e" k' p) ^& y
#18 大大說的方式以前有討論過,似乎2013以後就不支持這樣的崁入方式了。
. i4 K+ h1 M5 y' d% j4 ^把你要的編碼方式寫出來,具體要求到哪邊寫入圖號?哪邊寫入名稱?這樣才好幫上忙。
8 C, `1 ~& m1 V' U, c' w0 O0 d! J每一公司的命名原則都是不同的,怎麼能期望一個宏就打遍天下呢?
发表于 2016-4-29 07:54:52 | 显示全部楼层
gt.adan 发表于 2016-4-29 07:013 [0 ^. r  k2 t1 [
#18 大大說的方式以前有討論過,似乎2013以後就不支持這樣的崁入方式了。
$ {. p! a0 y0 e8 w  s# B把你要的編碼方式寫出來,具體 ...

9 z8 X0 p) x" l  ?" v3 g) U谢谢丹大的回复,我的图号是这样命名的例如HL01-01-01轴承支架,装配图号编为HL01-01-01-001轴承支架组件
发表于 2016-4-29 09:42:20 | 显示全部楼层
杨成武 发表于 2016-4-29 07:54
$ W3 X3 Y  q( P# j" j谢谢丹大的回复,我的图号是这样命名的例如HL01-01-01轴承支架,装配图号编为HL01-01- ...
$ m( B1 e# _5 g
看不明白…% E: q/ }4 [; X# }0 r
這裡討論的應該是零件的圖號分離,怎的又有裝配圖出現呢?' [( b% N8 o( a5 `4 B
能否明白舉個例子?一個完整的零件命名,然後哪一部份要寫入「圖號」?哪一部份要寫入「名稱」?
发表于 2016-4-29 15:29:43 | 显示全部楼层
gt.adan 发表于 2016-4-29 09:42( L6 ^/ x8 G. ~. ?5 W: Q* @+ i4 \
看不明白…
- u  b- \9 a8 O$ h: |這裡討論的應該是零件的圖號分離,怎的又有裝配圖出現呢?9 t% x0 `% V5 W: @) v9 _
能否明白舉個例子?一個完整的零 ...
" w+ U; q. g8 a6 _* I
丹大这个是一个示意图;
: Q% w* }8 I5 \. J) k做的不好希望能看的明白
/ J& Y' x1 B/ w4 _ QQ截图20160429152357.jpg : x" y, M8 b/ O3 h" ]

1 e# ]. S& j/ l1 A" }& U& ~5 a* o% {! Q' h$ t2 J- a! g6 p  W1 O
麻烦丹大看看谢谢。
3 J) T' Y. l- t. Q' I/ o: o! z
发表于 2016-4-29 15:38:32 | 显示全部楼层
本帖最后由 gt.adan 于 2016-4-29 15:58 编辑 $ x, v0 P0 |1 _0 P* g8 k
杨成武 发表于 2016-4-29 15:29% V! p$ b9 q' U1 m) V, [+ |6 c2 b
丹大这个是一个示意图;
7 |' x5 Q( L+ l做的不好希望能看的明白

/ ?- }3 I. j) x6 @如果貴司的命名原則統一是如此:前10碼為圖號,其餘的為名稱。, l- W1 P/ Y0 v- b( a
那麼以下代碼就可以使用了。0 M  J6 Z( p" g# a

- E( l+ h& m; c3 t
  1. Sub main(); j  a; g! O6 {. P* \6 ~, r

  2. ' W' n/ f. G  K. c
  3. Set swApp = Application.SldWorks
    9 B, C5 ^5 A8 D+ I/ c: ]0 \
  4. Set model = swApp.ActiveDoc' ?9 h8 Z& h& i0 n: a0 w! w

  5. / r7 g( v$ P2 v
  6. ModelName = model.GetTitle
    & t; ~7 O9 G+ y" ?2 m
  7. ModelName = Left(ModelName, InStr(ModelName, ".") - 1)
    + T* G) x1 o) W% n) J
  8. . F! x; K8 X) s. l3 F  p  v. e, r
  9.   retval = swApp.ActiveDoc.DeleteCustomInfo2(sconfigname, "Number")1 X+ Y3 Q2 e$ v. a' u$ f/ R" E
  10.   retval = swApp.ActiveDoc.AddCustomInfo3(sconfigname, "Number", swCustomInfoText, Left(ModelName, 10))
    # Z7 U5 Z/ f& [( b; ?3 ]1 l+ f
  11.   retval = swApp.ActiveDoc.DeleteCustomInfo2(sconfigname, "Name")
    4 {9 R( x$ H, W5 b/ w% L
  12.   retval = swApp.ActiveDoc.AddCustomInfo3(sconfigname, "Name", swCustomInfoText, Right(ModelName, Len(ModelName) - 10))* C0 w& G# r. M2 b. w& @

  13. ) Y2 A4 H2 C# Z: }' j
  14. End Sub/ I7 G: U3 h. m8 D
复制代码

# a* F) {1 r0 C, j4 l# @- _6 R6 t5 d+ v% l2 j/ j% n& [

! H3 R, ^7 N8 Y8 |1 k& d
发表于 2016-4-29 16:39:54 | 显示全部楼层
杨成武 发表于 2016-4-29 15:296 T9 ]" |$ b3 K$ r! r
丹大这个是一个示意图;1 }& h/ a/ q) y/ M, w5 {3 t
做的不好希望能看的明白

- O! K. W& K- L4 u2 \  N要達到批量新增的話,如下代碼:
7 @2 O2 J( ~$ Z
4 T  j3 O* A6 t& L7 v* E6 F; d7 m
  1. Dim swApp        As SldWorks.SldWorks/ j% R+ g( K" T$ e
  2. Dim swModel      As SldWorks.ModelDoc
    7 V2 Y5 w7 L- o* ]6 x
  3. Dim sFileName    As String( B; |, D% m; v; {6 \/ w; Y
  4. Dim path         As String9 K% G: N- y5 q! ]6 i7 p* p- u
  5. Dim nErrors      As Long2 p) \( l) f1 J5 e9 T
  6. Dim nWarnings    As Long+ p; m/ N; _: L% a; {1 A
  7. Sub main()3 G" Z  p; R- S6 U# g; K$ H
  8.     Set swApp = Application.SldWorks
    0 H# i; ~5 f3 J* T" {" V; e7 b5 T
  9.     path = InputBox("Enter a folder path containing any Solidworks files (For example '' C:\test '' )", "Parts path location") '鍵入路徑* M0 o/ h! H' q/ `  J
  10.     If Right(path, 1) <> "" Then path = path & ""
    + m7 Q% ~& E: w/ t- y$ T( B
  11.     sFileName = Dir(path & "*.sldprt") '可以換成 *.sldasm or *.slddrw) {, T6 a8 D/ o7 i
  12. Do Until sFileName = ""
    $ ], t# q/ M2 Z
  13.   
    9 p/ K. x0 `0 I
  14.     Set swModel = swApp.OpenDoc6(path + sFileName, swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings) '可以換成 swDocASSEMBLY or swDocDRAWING
    : G: \: }2 Y0 w) B  w  a
  15.     Set swModel = swApp.ActiveDoc
    1 {) w# v& }- w! Q" O
  16.     3 S: A4 N: r( M
  17.     retva6 = swModel.DeleteCustomInfo("Number")* |2 A, u' g" D/ y. _6 f3 q, Z
  18.     retva6 = swModel.AddCustomInfo3("", "Number", swCustomInfoText, Left(sFileName, 10))+ C( K0 f$ }  j
  19.     retva6 = swModel.DeleteCustomInfo("Name"): ~3 g5 {3 c: x* ^/ U
  20.     retva6 = swModel.AddCustomInfo3("", "Name", swCustomInfoText, Right(sFileName, Len(sFileName) - 10))1 C9 a1 U% T2 f- z( X% N
  21.    
    9 U8 e/ O: y, x) q
  22.     swModel.Save, \/ I" Z$ E; [+ E( Q, L& E
  23.     swApp.CloseDoc (sFileName)
    0 [- R- h5 r0 d7 d9 o5 `! m
  24.     sFileName = Dir
    , M9 e. w; @: X+ i  |  C8 d
  25. Loop9 X4 o3 b9 n# B  \& g1 X5 N: W
  26. MsgBox "DONE!"
    # g& j6 B$ W% E4 R# C5 s: \3 P
  27. End Sub6 ]2 e; d+ ~2 m
复制代码
$ a0 g" \. Q, h# z$ F7 a  q

. o9 C0 g: U% z, i- b% ]: m. O; {
3 T7 I+ o' c' O% {
发表于 2016-4-29 18:36:36 | 显示全部楼层
gt.adan 发表于 2016-4-29 16:39
1 M$ F! L! u) Y! }6 S/ h要達到批量新增的話,如下代碼:
! a7 l7 U+ ]% S5 T3 F0 r
丹大,不好意思再次麻烦你,我对宏引用不熟悉,你能给我演示一下吗,做一个小视屏不好意思了。
发表于 2016-4-29 23:54:35 | 显示全部楼层
杨成武 发表于 2016-4-29 18:36+ B; P5 M, C: C* C. l4 H/ Z9 e
丹大,不好意思再次麻烦你,我对宏引用不熟悉,你能给我演示一下吗,做一个小视屏不好意思了。
7 S2 h+ W- M4 y6 S; v. a
1. 工具--宏--新增
+ J: L0 @# k( A3 h2. 命名後確認,進入編輯視窗,不要關閉。
! ~" W, v7 ?" Z& M  ?% ^3. 將#18的代碼複製下來(該樓層下方有一個複製的連結)0 E, R8 |( V0 I1 [8 U7 N
4. 回到編輯視窗,將方才的代碼貼上,儲存後關閉。
6 j' Y0 l- p) N5 x7 j" M5. 打開要加入屬性的零件,工具--宏--執行,目的選擇剛才新建立的宏。# v* E) s% v7 w# e* N. f
6. 完成。) ?6 R: O1 j+ \; `
发表于 2016-4-30 19:34:08 | 显示全部楼层
gt.adan 发表于 2016-4-29 23:54
' {$ h% h9 x, u# k1. 工具--宏--新增
2 z( {2 c; I# \( r/ E% N( R' E0 T2. 命名後確認,進入編輯視窗,不要關閉。2 G, ]/ |" `, {8 W
3. 將#18的代碼複製下來(該樓層下方有一 ...

, {0 n0 F- Y* L5 [  ^+ l0 Q不好意思麻烦丹大看看问题出在哪里% X/ O  O" ]% e8 e- U

打开来报警

打开来报警
2 w3 x8 E; o6 z4 Q9 Y8 K
2 K4 e) ]. q5 L  c

出现这个

出现这个
# c( F+ H; B& x& Q- C8 N

" g  }8 V2 Y, k, s, z3 A
发表于 2016-5-2 08:01:35 | 显示全部楼层
本帖最后由 gt.adan 于 2016-5-2 08:03 编辑
0 C% H& x7 r8 }6 d& j0 q+ U; d
杨成武 发表于 2016-4-30 19:34
0 M! `! V9 Z$ ?0 v5 Z. {& {& Q不好意思麻烦丹大看看问题出在哪里
2 S+ Q8 @: D" M' [
最上方加入下兩行代碼
' ~0 ]6 R! W; o; R8 D3 T
3 u$ Y. |" V0 Z! s6 u9 w2 R
  1. Dim swApp        As SldWorks.SldWorks
    ; [+ i' b3 C5 @' a8 s' Y+ j% J5 ~
  2. Dim model      As SldWorks.ModelDoc
复制代码

. v+ j! _; {$ g$ n: B- [! [! G
& \7 L% t7 x/ {, I. j; c! Q# _6 e  G: @
+ c# `. l' O1 s- o9 C
发表于 2016-5-4 12:38:12 | 显示全部楼层
用了这个功能,版本就不要轻易换了,哈哈!
发表于 2016-5-13 13:08:49 | 显示全部楼层
这个功能要弄好看起来还很复杂
发表于 2016-5-15 23:00:44 | 显示全部楼层
要是图号和名称都不是固定长度,有解决办法吗
发表于 2016-7-13 13:49:51 | 显示全部楼层
squi111 发表于 2016-1-30 23:271 V5 R; W5 `6 s/ m4 I3 q  ~  H
能共享你所使用的宏吗,我也想要实现这个功能。麻烦你了

& m4 T8 p6 T; m3 T7 c) e现在要不要了,我有
发表于 2016-11-17 22:04:02 | 显示全部楼层
安顺 发表于 2016-7-13 13:49
7 {3 ?: I; g3 S$ e8 F/ _$ S现在要不要了,我有
8 G& c% t6 a0 U" {% H: d) H) ?7 h
能用于2016吗?能否共享 谢谢!
 楼主| 发表于 2016-11-24 16:51:15 | 显示全部楼层
可用于2016的呀
发表于 2017-12-14 16:26:17 | 显示全部楼层
论坛怎么赚流量啊
发表于 2018-1-5 15:21:41 | 显示全部楼层
学习了,好好试用下!
发表于 2018-2-2 10:03:59 | 显示全部楼层
把我的贡献出来吧。文件名编号规则“图号+空格+零件名称”,图号长度不限制。零件和装配体都适用。宏中的图号和零件名的属性链接根据自己情况修改。' P1 \9 _9 x6 X( q8 v2 z

分离文件名.zip

6.03 KB, 下载次数: 22

发表回复
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

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