第一步:将后缀为“.slddrt”的图纸格式文件放入此文件夹内,此图纸格式文件是自己需要的新图框。
+ _2 u8 x5 W }: E第二步:将要替换模板的文件放入一个文件夹,将文件夹地址粘贴到相应的地方(程序中有备注)
3 C; N" g6 E p第三步:用宏命令运行程序:
- ^- P2 j5 s, p( s7 z6 l: R& \/ h: O) i o5 G
第一步的附图:6 I z0 x6 g8 Q- B$ h3 o8 v
# h1 K. u7 l1 @
程序:0 e: _% ?0 \" B3 H( i' X
' ******************************************************************************
* O6 B, ]! b7 ^) }+ R$ C3 G/ V' C:\Users\Administrator\AppData\Local\Temp\swx8592\Macro1.swb - macro recorded on 06/26/19 by Administrator0 B7 n7 C" v. G8 I1 e M, Z0 ^) W
' ******************************************************************************! Q, s# ]5 a U# L
Dim swApp As Object
& P( S& |9 T @. f7 n
7 k0 t& z0 U' u* q0 MDim Part As Object# N+ V5 C0 W9 u: ^2 U! `
Dim boolstatus As Boolean, R. o( N; D0 ]2 Z! A
" e+ x3 v7 i- E4 Y% B# P
( n7 p7 d5 D* _% w
I& G5 g! J @; y1 K9 z4 \' L5 l6 w1 K, m7 A; M' ~7 P3 k
4 b% B0 W& O% T$ N6 i$ L
Dim longstatus As Long, longwarnings As Long, myPath$, myFile$, a& }# A( }9 R4 E$ r( u
Dim i As Integer
w" O% g ?8 U
& h' |; ]: c: _# B* a* q7 fSub Main(), K5 E4 z: j0 p% d5 N
1 A# l( E' ^8 R8 n6 N1 [
* S5 |. w3 y3 V
$ @/ `( ~* W6 n0 ?+ @7 r! l
Set swApp = _; s+ T- U# e; e" F
Application.SldWorks5 f/ v p" F# c" k8 b" x2 L7 v
myPath = "C:\Users\Administrator\Desktop\新建文件夹 (2)\" '把文件路径定义给变量,第二步中的路径填到此处。
f2 V* P2 Q1 DmyFile = Dir(myPath & "*.slddrw") '依次找寻指定路径中的*.文件# \) h3 X5 }& s4 b& I. O* K4 ^) G
i = 0
3 u# e* {5 Z0 j2 ZDo While myFile <> ""
& t: b/ | d* o! w9 |Set Part = swApp.OpenDoc6(myPath & myFile, 3, 0, "", longstatus, longwarnings)
' N v) c. d8 n# l: C e) K* O$ r
Set Drawing = swApp.ActiveDoc
6 ~1 l* N9 E7 f2 ~0 HIf Drawing.GetType <> 3 Then Exit Sub
% [7 ?6 z( C1 d3 b7 X4 u, DRetoreSheetName = Drawing.GetCurrentSheet.GetName t8 B1 ^3 p; V% Y4 w
SheetName = Drawing.GetSheetNames
; e( S" Z) @. Y- ESheetCount = Drawing.GetSheetCount! g5 r8 g4 h: Y, M6 D. m7 y
For i = 0 To SheetCount - 10 _2 ^7 ~3 Q7 {1 d3 K4 |
Drawing.ActivateSheet SheetName(i). H. p v5 G+ ^; d. B
swTemplate = Drawing.GetCurrentSheet.GetTemplateName
9 h9 j; h' b4 _! v: H% {# D swTemplatePath = Split(swTemplate, "")
# o% S2 J* m$ w4 k2 v swTemplate = swTemplatePath(UBound(swTemplatePath))
# \$ ^7 f6 A( R vSheetProps = Drawing.GetCurrentSheet.GetProperties()$ K/ N1 m9 Z+ c" I$ g: g) z2 z
Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 0, 0, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", 1, 1, "", C0 N6 M$ E0 i6 H; M
Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""1 T" n/ S7 d0 r; l& L. l
vSheetProps = Drawing.GetCurrentSheet.GetProperties()
6 K, i( ~6 S* n& \" nNext( p8 R1 N# [% l1 |6 g' | w
Drawing.ActivateSheet RetoreSheetName ?% Q' ~! m% n% A1 o$ I0 ?" g& a( ]
6 |) C( U+ W) w1 k0 D8 L! k5 y5 CPart.Save/ y+ W1 b: a7 @8 P
swApp.CloseDoc myPath & myFile
7 `" l5 t" ~5 E j% M" x, T4 [
* u0 B$ z6 L: }myFile = Dir '找寻下一个*.文件
4 L$ ]( k1 J3 d. k7 e% p' o0 b. C. e8 Y) Y
Loop
0 `0 ^* A) F' x' x! I' q6 ^
, [5 |7 e1 e' o, O& k lEnd Sub |