軟件小白一枚,因為公司需要統一零件模板,并且和我們搭建的PDM關聯,需要將文件屬性寫入配置待定里面。之前用圖號分離宏只能把屬性寫入自定義信息中,配置待定中只有空的標題,分離后的內容不能讀取。, q& s% S2 z7 n0 J/ d7 l& Q5 i
下面是我在網上找的說是可以將圖號分離后屬性寫到配置待定的代碼,實際調試有錯誤,見紅色代碼。5 H0 g6 K; ^$ H3 R; n; r
---$ _$ X& A, Y, ~- G4 f& G0 \- G
Dim a As Integer
. g$ u" \6 m. ]7 H1 \- A9 {2 f: G" x4 G, ?/ O7 l9 g2 B
Dim b As String
0 @, Y j7 k: X# U4 `! D8 \4 G
4 F3 ]. `% a8 K& |: pDim m As String; j) g0 L9 g$ T* D
: D9 a; o$ y( s+ MDim e As String3 @: I. J5 g6 a5 X0 E m
8 H r9 F1 R$ l7 F. v; U* R* [Dim k As String
5 N( [( I5 x) [: B6 w9 e4 Y0 z. J: j' R5 }* J
Dim t As String
4 N1 Y+ a+ @1 _& h7 r: v1 k0 R# D( n; s0 P, w r( v1 s
Dim c As String$ }8 D8 c% q9 G. @4 V0 F/ N* s# V
5 y" {. e2 ?9 I; X6 K4 s* O" |( MDim j As Integer
: l: k4 J# `: ]/ e" \! q' R# O& D- c/ e8 k: @* O1 U
Dim strmat As String0 I8 G( Z. g2 o" o
: G! l+ l% e; O" C: E
Dim tempvalue As String
, c" g. x6 q" n; a5 `9 e ?; d* |/ p4 p, J! W& h0 M2 J
Dim Part As Object
8 ~1 S$ T$ H C. f; o0 A' Q, K% D/ ?, g
Dim swApp As SldWorks.SldWorks
" y( n' t2 H& l" | x$ E! e
# _4 V, t4 ?" w3 n7 ]- {Dim swModelDoc As SldWorks.ModelDoc26 T$ m, j# l3 s% P
Z" O7 Q9 Z {$ _: R: o
Dim swConfig As SldWorks.Configuration
7 @4 i a& p- Y, [, ~* R& ]$ V2 V3 t
Dim swModel As SldWorks.ModelDoc2
5 }/ H% z5 j7 R
3 R" `0 q1 i5 z; U* d$ ?' BSub main()7 b0 P" n( j6 j1 Q2 T
8 ^* k$ K! n& E' D! I4 L9 Q& qSet swApp = Application.SldWorks A) U2 M* T. I! t& q8 m
1 P! T! n8 s) XSet swModelDoc = swApp.ActiveDoc! L. n) p( ~) \) d8 i3 n1 h0 `
; i4 \# N; T# [, M, W, j8 ZSet swConfig = swModelDoc.ConfigurationManager.ActiveConfiguration3 v" l3 l% L X
0 j4 c" T# P/ ?7 L1 c6 N' q. USet swModel = swApp.ActiveDoc
! g+ H# s5 {# i* B
L5 ~: k! B1 }Set CustPropMgr = swModel.Extension.CustomPropertyManager(swModel.ConfigurationManager.ActiveConfiguratio.Name) '配置特定延伸- C4 a+ g. L! u% X# J' D2 I# B- x7 l
6 {; y: p0 S- K/ y
'設定變量
3 m# L% q, T2 W% }3 T, |7 g {/ O+ z
c = swApp.ActiveDoc.GetTitle() '零件名
! l- o5 k7 ?) b4 _* a. O' B4 ?/ {. @* @! ~
strmat = Chr(34) + Trim("SW-Material" + "@") + c + Chr(34)
2 p; e' D# s3 |- |, u3 @3 _
, h- D9 D" q3 K3 n, m4 q" s Ca = InStr(c, " ") - 1 '重點:分隔標識符,這里是一個空格,也可換成其他符號, x6 E7 ]/ o% [' H& Z
6 d2 [: r5 N2 ?) S5 j
If a > 0 Then
7 j8 `! y0 c+ L4 Z. N+ [& ?6 l6 {' j! U* w8 R
k = Left(c, a)2 `4 W' }" u* Q8 n7 O3 S; C7 ]
) K6 c& N; @: d) |( It = Left(LTrim(e), 3)1 p- D9 F9 K2 K/ X
" S, \: t9 K1 _6 Y4 d l2 `
If t = "GBT" Then7 m7 T6 S% q3 l; d" h; x
& P% g0 N" z1 h& _e = "GB/T" + Mid(k, 4)$ J/ b% `( f/ }! u' u, v
" n) }1 X: L7 a7 W2 x5 }Else
% k: {; @! R, w, i) x
/ A; {6 d0 J$ ^6 l1 w5 d+ Oe = k
: N8 G+ U% Q$ I2 [5 T; [) [$ y4 V2 E3 n) |9 W7 n+ y" S8 k1 h9 V. J
End If
) J% W3 n! @2 T" N2 p5 w J: s5 ^
b = Mid(c, a + 2)3 G9 E3 ~0 F/ D
" \1 _) N" q! [* ?5 Y: r5 It = Right(c, 7), h- l$ I3 ]( F
$ n5 h8 [, ^" U0 A
If t = ".SLDPRT" Or t = ".SLDASM" Or t = ".sldprt" Or t = ".sldasm" Then
# p) _0 U0 M% @. G
% a, C$ J( p, ?' xj = Len(b) - 7 '消除后綴(區分大小寫,即含4種), N% T; n J( K, ~8 ^, T+ \/ @. {
' R u2 V3 z+ bElse
( F5 j$ N' V" x: g7 R" d, u* H! r" O' o8 v, {
j = Len(b): g! F: |8 W* f* F* C7 P
' j2 g1 W' D, p( M+ Z# q
End If
8 s/ f. ]) ?) m; z) _$ C
' g+ @5 }9 v0 d( D9 q8 W4 im = Left(b, j)
: }8 J/ h2 h" y+ A7 D! P5 f0 }9 s( |, [. {: T, B; D" m
End If
7 U- ~, g/ w; r' S! g0 u; e, f; s
2 b; L; C; Y h5 K; q'刪除欄, ?9 S' H% g! ^9 e5 X8 ]6 o
: |: \1 I! X: `CustPropMgr.Delete ("圖樣代號") \. b! f" n9 j; F. I! X
: T7 F* `; Z/ Z8 Q. y
CustPropMgr.Delete ("圖樣名稱")! s1 H) d* s- ?( R
! Q! W8 z$ ^( [. ^ p, z) I
CustPropMgr.Delete ("材料")- C! C( l& `* Y6 o4 S
* w1 Q: }/ P1 B( C8 _ i'新增
7 G/ T0 M+ Q$ @& V: s2 c
( }( z* G1 d6 C* i: tCustPropMgr.Add2 "圖樣代號", swCustomInfoText, e
6 p3 A- h, K4 L/ X8 y. x0 p( P
9 z) R- A" F3 }6 {CustPropMgr.Add2 "圖樣名稱", swCustomInfoText, m
7 t% w$ C; O# ^+ f
. ]. h& P: t6 u% l3 iCustPropMgr.Add2 "數量", swCustomInfoText, ""' e4 H! p) `, w
( s9 r% D* g; N! H6 fCustPropMgr.Add2 "材料", swCustomInfoText, strmat
5 S. j: c' f6 e+ ~; v
! U7 K0 X3 ?% G$ F5 cCustPropMgr.Add2 "單重", swCustomInfoText, ""1 t/ `8 C: J4 f" G% f, g& q5 w3 w2 E e
% ^5 d7 T0 L/ @# w" {CustPropMgr.Add2 "總重", swCustomInfoText, ""2 ?* i/ p! U# S8 I) L2 E) t: N" h
3 X5 e3 c) W" N- H K- t8 P: D# C
CustPropMgr.Add2 "備注", swCustomInfoText, ""
4 w$ n- {2 l6 E3 v! E! ~1 Q5 ]2 a' z: x: Z7 \
End Sub% \( s5 Z- x7 e& h
---
% }" s; r( ]( X3 H/ Y想請教下大拿們,這個代碼要怎么修改才能管用。之前的圖號分離宏,可以讓所有屬性出現在自定義里?;蛘哂袥]有辦法加一段自動復制自定義里面屬性到配置待定里去的代碼?
) Q6 p H3 H) d5 d" u& n0 f5 p* j4 V# K$ g# C" _% z5 ]) d9 G
在線等大神解惑8 `; ^; N. J' n0 {8 P, y
- n( p" e! a) A$ T2 l9 L8 L ]2 _
: L9 P, W9 N( n1 V- S+ V: X |