第一步:將后綴為“.slddrt”的圖紙格式文件放入此文件夾內,此圖紙格式文件是自己需要的新圖框。
* j( v' J: A2 A; q. f' `( V- v第二步:將要替換模板的文件放入一個文件夾,將文件夾地址粘貼到相應的地方(程序中有備注)
% Z' s! J" Q0 f% B# i; ]" u0 f第三步:用宏命令運行程序:
( f: I7 g+ H a i r
& I- O( w R, N4 ]7 U第一步的附圖:) _$ `7 F0 q3 j. r7 R- J/ y
- z" ]+ H6 K; L- T- ?2 v
程序:
2 x5 @5 e o5 k1 ?+ P- E: w5 Z' ******************************************************************************
2 N9 G) F7 V2 N" m4 ^! |& Y9 c' C:\Users\Administrator\AppData\Local\Temp\swx8592\Macro1.swb - macro recorded on 06/26/19 by Administrator- c% K7 r% H) a
' ******************************************************************************
0 C0 u4 k+ e# I: n! lDim swApp As Object
) y& R& F2 j5 h3 }' f0 K c3 s M3 t
Dim Part As Object2 {1 _ w: ~+ ]( {! {# I/ U
Dim boolstatus As Boolean2 M! f3 e5 ^8 T+ S; w) _
! D' _' ?1 N% v' p6 I/ U# f
, d! F4 \7 n, R; V. n: ~7 I2 a; ?- u
4 b$ x5 B- z# z
# ~! \# p$ P; k* ?
& ], H7 N+ Y% ?+ l% ?0 ?
Dim longstatus As Long, longwarnings As Long, myPath$, myFile$5 p% }6 H* D0 a2 t& ] j! o1 d3 Z
Dim i As Integer# G7 m: b* ~; L: b$ E* ~
; r! x- c( p& R7 g/ g( OSub Main() w; h! F8 L2 \' z# D3 d; D4 v
* g: W! P2 s/ \6 X
3 v. A; x+ u8 d
9 S- Q4 O" }8 ]' u' Y
Set swApp = _
0 Z! a: z: u' z, i, hApplication.SldWorks$ @' q' u; M2 W p! P6 ?
myPath = "C:\Users\Administrator\Desktop\新建文件夾 (2)\" '把文件路徑定義給變量,第二步中的路徑填到此處。5 b2 x( ^. o% j; L. _4 l+ g
myFile = Dir(myPath & "*.slddrw") '依次找尋指定路徑中的*.文件
' G6 B$ C9 h4 f$ ei = 04 P% d! \4 r0 B9 |$ l3 P
Do While myFile <> ""/ |: Q. ?% W1 u T: e, {
Set Part = swApp.OpenDoc6(myPath & myFile, 3, 0, "", longstatus, longwarnings)
4 Z( b0 _: \' G4 y6 z' i: `+ M3 K. s* @1 A- R1 c" A
Set Drawing = swApp.ActiveDoc
9 i" q' \. L c2 y; GIf Drawing.GetType <> 3 Then Exit Sub
' A D/ P% f' u# p+ g8 {RetoreSheetName = Drawing.GetCurrentSheet.GetName
. i1 i5 B5 U) |; T6 v0 i0 CSheetName = Drawing.GetSheetNames: O" g, y$ E. @# U' e6 y+ @
SheetCount = Drawing.GetSheetCount
: ~+ F' V; h0 D% eFor i = 0 To SheetCount - 1
# Z; p7 h& \. c" M& `# W Drawing.ActivateSheet SheetName(i)2 |6 `- ? f1 ` x
swTemplate = Drawing.GetCurrentSheet.GetTemplateName
) b3 b) ~% D% E3 P) ^4 a) f swTemplatePath = Split(swTemplate, "")
W2 E2 j5 W0 x! ~ swTemplate = swTemplatePath(UBound(swTemplatePath))5 g; I! R+ C4 y& V5 P: t( v' E
vSheetProps = Drawing.GetCurrentSheet.GetProperties()6 T+ k1 @+ @( j# A
Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 0, 0, vSheetProps(2), vSheetProps(3), vSheetProps(4), "", 1, 1, ""
+ o( J4 a7 \) d7 E Drawing.SetupSheet4 Drawing.GetCurrentSheet.GetName, 12, 12, vSheetProps(2), vSheetProps(3), vSheetProps(4), swTemplate, 0, 0, ""# ^+ g! ]/ N( B4 M# j, q
vSheetProps = Drawing.GetCurrentSheet.GetProperties()5 Q% G+ h+ p% q: h; i9 o0 `
Next1 p7 t6 d ~, {2 N& p5 d
Drawing.ActivateSheet RetoreSheetName5 R6 f- _7 W5 h& I F& U. e7 \, x
% Z9 W% w' `& M9 X! Z- m! o
Part.Save" f F, A. l9 a& G" @
swApp.CloseDoc myPath & myFile7 n6 T8 Q& f; b
! ]$ x5 Y$ P5 k; m( D" NmyFile = Dir '找尋下一個*.文件
A1 V, m' G: m8 W* |" \ a0 W/ c# w$ g$ n6 o, r$ P; E
Loop, ~$ U7 c2 I. `5 Y+ \" u1 W
2 ]6 e3 f1 x* l, _$ o8 e' REnd Sub |