第一步:将后缀为“.slddrt”的图纸格式文件放入此文件夹内,此图纸格式文件是自己需要的新图框。, W. x; n p% T7 }+ l
第二步:将要替换模板的文件放入一个文件夹,将文件夹地址粘贴到相应的地方(程序中有备注)
! x! S" s" j% l8 d0 v第三步:用宏命令运行程序:
, w" @/ f8 C2 I, x
. B8 I! k, N) B第一步的附图:2 d4 P7 w2 ]/ R; f
: D7 c4 X3 T+ U6 a2 {) n* r
程序:" L- W: ?" R H. g, l2 M* x! j% V
' ******************************************************************************2 w5 E* J6 i# E% N5 w. c1 j, Z
' C:\Users\Administrator\AppData\Local\Temp\swx8592\Macro1.swb - macro recorded on 06/26/19 by Administrator0 a# {2 m. N) |$ K
' ******************************************************************************3 \7 u: w# d$ z6 S' ~- m
Dim swApp As Object1 ?) X8 N5 |3 B' i
! K7 k. r. r L6 d, w- @3 GDim Part As Object" v& ^" H6 x, X9 G4 K5 d# O
Dim boolstatus As Boolean9 s2 W, F3 Q, n
2 S+ J5 F2 O1 h( v1 v5 ]0 p1 l! X" O7 f. T% K5 l( a* o
- b( p' s6 ~; E- ` G$ {- I8 R$ x& |3 O
! x* h5 f. o4 O6 B# F0 B8 x4 W% Q2 C
% A* q4 B9 Y) h' c. @Dim longstatus As Long, longwarnings As Long, myPath$, myFile$
. a6 |/ T j, ]2 n" ?' iDim i As Integer; S5 p4 Z/ D! E* W1 Z; d
; v6 B7 n7 ^: o$ s2 W) [
Sub Main()1 n% H9 m9 G6 \/ O
4 a2 C, K( S, o6 I" E! h u
- q! f6 y, n9 T% a1 C* l' H; C& p5 S2 Q: ?) d
Set swApp = _' j& Q/ \2 j$ A
Application.SldWorks
0 |; c* n% v! c4 L8 F% E- pmyPath = "C:\Users\Administrator\Desktop\新建文件夹 (2)\" '把文件路径定义给变量,第二步中的路径填到此处。
: W( }& I5 I: KmyFile = Dir(myPath & "*.slddrw") '依次找寻指定路径中的*.文件
0 b; n* }" D/ u+ x( L$ qi = 0
, {. @0 X' s2 k0 {, r4 d0 fDo While myFile <> ""% L: U# `$ g# ~; X. C* T5 r
Set Part = swApp.OpenDoc6(myPath & myFile, 3, 0, "", longstatus, longwarnings)" O5 z) k ~# o* q' ?
4 l3 p9 O s. o }4 ~4 \Set Drawing = swApp.ActiveDoc/ }1 q. ~1 k$ E9 g3 x; K( Y
If Drawing.GetType <> 3 Then Exit Sub8 n. }' W3 O8 |( Z8 {' Q* p7 _
RetoreSheetName = Drawing.GetCurrentSheet.GetName
. y, @6 {; v( ISheetName = Drawing.GetSheetNames
( ^% ?3 b+ b' _( Z+ d# ISheetCount = Drawing.GetSheetCount
6 T0 c- n; {2 ?% |2 n! ^3 EFor i = 0 To SheetCount - 1
. p3 f) S! x8 P# B; w Drawing.ActivateSheet SheetName(i)1 l5 W, H9 v# m. p% ]' e( K" D
swTemplate = Drawing.GetCurrentSheet.GetTemplateName: x. Z% o) [2 _: _5 M4 X
swTemplatePath = Split(swTemplate, "")
6 k' Y0 l& o9 I' g) t5 v3 K swTemplate = swTemplatePath(UBound(swTemplatePath))1 r; M c7 K/ D# Z" x
vSheetProps = Drawing.GetCurrentSheet.GetProperties()
" r* F5 c. {3 I8 y7 N8 h- L0 d+ P Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 0, 0, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", 1, 1, ""+ [+ o& d5 [* g
Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""
$ v7 J% J6 L0 ^) H( b D5 G vSheetProps = Drawing.GetCurrentSheet.GetProperties()9 y) P F: T. B8 F( H
Next1 V3 I; H; O- A( {
Drawing.ActivateSheet RetoreSheetName
?$ K0 X2 e8 L* n, k/ D
# q4 b5 s2 b4 S. M1 ^, APart.Save
% F4 O, W/ D! T) k% o7 QswApp.CloseDoc myPath & myFile
5 S( B0 N3 i0 l5 J2 v
; q5 O" b0 J( h7 t/ g+ A5 w( smyFile = Dir '找寻下一个*.文件8 U5 v' X: p- [" Z
2 q. q+ W5 }) b% g; f' I; \0 |
Loop
: s- i. {( s9 k7 V6 o) L2 ^, j* c5 {/ A# i
End Sub |