標題: 公差標注移層設色成功,為何還報錯? [打印本頁] 作者: arter_2006 時間: 2022-8-11 13:36 標題: 公差標注移層設色成功,為何還報錯? Set swgtol = swgtol.GetNext 1 s/ p2 n2 ~& O1 p5 H ) a* m' a" i5 N1 j& g- g m. M如下所示代碼,能執行成功,但老是上面這句報錯,請大俠指點,謝謝 % y$ F8 X# {( [9 h; y, B9 r, J # \) {$ s! y) ]( E% Z ; X* o+ P% W0 C' V. ] N$ ^ ; g/ @, P! Z- c5 y 6 @+ X# Z) r, K' O; c; j5 kConst toLayer4 As String = "符號" 2 F& W( p; T! g% f% U- a( h8 I6 a7 j
: V. K ?7 _$ F8 ~( a- q6 e0 j& pSub main() N+ p7 v* ?$ a9 W: k
Dim swApp As SldWorks.SldWorks3 O- m1 w3 f3 U. F3 m" ~
Dim swModel As SldWorks.ModelDoc2 2 q1 w2 H8 N k9 Y& R Dim LyrMgr As LayerMgr: f- ^. ^5 [& O
Dim Layer As Variant* Q1 X! l: x1 V0 [; H
Dim swDraw As SldWorks.DrawingDoc . a/ N; w. U4 \- a Dim swView As SldWorks.View 9 X5 z$ f& a1 \5 g) G" V, j9 w c Dim swAnn As SldWorks.Annotation # a, T6 l8 V/ [! \: }' r. O4 @0 M1 n! `% ^, ]- {8 k4 Y
Dim swgtol As SldWorks.gtol ! ^# Q0 k7 s0 Z, Z' P9 w+ r! I1 ?% D3 i8 O
" d0 d7 ^% t0 _" x+ ?% ] - f' Q8 ?7 a, S
8 N* A! l% K; e! e" N4 B) b0 b Dim numshts As Long* x; f4 |. q. T. F# l+ x- F; d) t
Dim i As Long 0 f2 `3 W: p# E, Y% _ Dim SheetName() As String3 y4 b, }0 H5 c8 G
Set swApp = CreateObject("sldworks.Application") 5 l$ ^- w. l4 i- \7 u! L" J m Set swModel = swApp.ActiveDoc 0 a* b, M6 s4 N- N. U5 A4 x1 o, h Set LyrMgr = swModel.GetLayerManager8 q$ B. h; d1 N% B6 n8 A( }
Set swDraw = swModel " \! T- ^$ ]; S. R) r; S; b # q+ Z9 ~" M3 f% G2 A( F
LyrMgr.DeleteLayer ("符號")9 U2 @3 m8 ]( F I6 q' Q( b
Layer = LyrMgr.AddLayer("符號", "符號", RGB(0, 0, 0), 0, 0) '指定顏色 ; ]: e; e/ R% y/ ]7 j . v9 h$ ^, W7 a, s7 S
6 K5 i# y$ X* G" Y; c3 P8 A numshts = swDraw.GetSheetCount ) }( a# x T* w For i = 1 To numshts1 [( U( s' E% p8 f7 B6 |. \
swDraw.SheetPrevious1 M+ N1 ~" C1 M3 [+ M& J+ x/ C+ h
Next i : d* J7 _% }' u For i = 1 To numshts 1 b% L0 p( R3 }9 u Set swView = swDraw.GetFirstView# N5 i4 ]# D$ m# ^+ l
While Not swView Is Nothing * k. w7 v; z ?( a2 v . q8 a( ^8 C: N' F7 `
l0 g7 Y9 m; q% E" O" \) d Set swgtol = swView.GetFirstgtol% J- P- I$ W D& Q
While Not swgtol Is Nothing* \# y6 L+ Z& o( p( y
Set swAnn = swgtol.GetAnnotation 6 `, Y' T1 q& P- n- |3 P! R1 @& T swAnn.Color = -11 p0 z p, A7 ^- M5 C+ W
swAnn.Layer = toLayer3 5 X1 m6 r9 j- l( P# x* h/ l( U Set swgtol = swgtol.GetNext ! P1 x% l; _; E. r Wend 4 O" g8 Z. y$ c a& r- N0 t' u, h5 ?8 d$ D5 k; ^& ?3 J
- P5 g) x, F3 S) k; b, k - A/ J* c1 M3 z
Set swView = swView.GetNextView - S! x4 Q7 R# |+ T5 _6 T5 D Wend! `4 ~+ Z9 H0 a" _' U% J
swDraw.SheetNext1 r/ f7 x$ F6 U' D k* K
Dim swLayerMgr As Object + _7 `; N h& X/ b. u1 h Dim swLayer As Object % L8 S) r& W; u' k$ P; g Set swLayerMgr = swModel.GetLayerManager1 F x. [" W" ?% B9 Y8 D
swLayerMgr.SetCurrentLayer ("") # z' P. G$ z. D0 F* _2 e Next i + `! l6 `3 b- [/ h SheetName = swDraw.GetSheetNames ' r5 P6 n! M Q swDraw.ActivateSheet SheetName(0)+ n4 X% R, `/ P6 s8 O5 `# C; m
End Sub 1 T: Y+ I: e; }6 N# X2 ?- g : `+ G! K) z; h' f6 |3 R p* o9 s3 P! ? c. g