SOLIDWORKS Task Schedular我试了,根本动不了,自己也倒腾了个宏,功能是工程图转换成PDF和DWG文件,操作是,工具---》宏----》新建----》把下面的代码复制进去----》存到硬盘某个位置----》,调用的时候是,工具----》宏---》运行,当然也可以自定义到SW的工具栏上,宏文件源代码如下需要的拿去,:
* U6 J: E" Q& e( y+ WDim swApp As Object4 m" I' S: m9 T* V" K9 c, p9 i
Dim Part As Object
. V8 a2 c+ I6 O, Y' H9 ?: HDim boolstatus As Boolean
% b1 l5 n! ?& d7 l1 |Dim longstatus As Long, longwarnings As Long
& y! y+ Q+ w6 _+ h8 O/ }9 fDim PathStr As String( i. A( H/ R, C! Q
Dim FName(500) As String, FNum As Long' o7 v0 R6 J7 Q1 w4 g0 Q7 a
9 S" m$ q3 U/ i( X# H) BSub main()5 P6 H7 s2 }* o" u
Dim i As Long
7 K$ a) ~- E+ h8 O+ }' hDim PathStr0 As String, PathStr1 As String/ T* K. h: r, l
Dim PathStr2 As String, PathStr3 As String, PathStr4 As String, PahtStr5 As String
' k; G( i, z8 m/ RDim L As Long, L1 As Long
; D" {! c6 R" d, l% IPathStr = InputBox("请输入需要转的工程图所在位置")
2 P! }: x' z; z3 C6 M2 s$ y% u0 RCall Showfilelist(PathStr)6 \9 V1 S( ?$ T, b' A
Set swApp = Application.SldWorks
" L1 { {2 W+ ? c8 T# d; a+ F) x) ]6 R
For i = 0 To FNum - 1
3 V6 a% N; g0 V0 y PathStr0 = PathStr & "\" & FName(i)
. L' U6 x. {* z/ T Set Part = swApp.OpenDoc6(PathStr0, 3, 0, "", longstatus, longwarnings)
) T7 V& K- r; q' T; x; ^3 B( { L = Len(PathStr0)
7 r: [# Q' \) T- ^7 r PathStr1 = Left(PathStr0, L - 7) & ".DWG"/ \9 R7 F/ E$ I a
PathStr2 = Left(PathStr0, L - 7) & ".PDF"# U7 j1 i+ O4 n4 R
longstatus = Part.SaveAs3(PathStr1, 0, 0)
$ Z0 i* D$ Y, X+ f longstatus = Part.SaveAs3(PathStr2, 0, 0)* |5 x) q9 L" V. z
% b! N8 F* x4 ~0 J- Y0 A( j% C
Set Part = Nothing+ y5 a* y" l4 D
/ [4 C7 R3 I Z) _
L1 = Len(FName(i))- x) P* \3 W% j1 @) ?5 B+ I
PathStr3 = Left(FName(i), L1 - 7) & " - 图纸1"- S" l) x5 d7 i0 c) ?* O! G+ P
PathStr4 = Left(FName(i), L1 - 7) & " - 图纸2"0 V( G1 Q9 G4 L. {/ c0 ^
PathStr5 = Left(FName(i), L1 - 7) & " - 图纸3"" [" ^0 ?6 D6 e6 n, _1 Y
6 ~7 o: V. V& d: E& x- k
swApp.CloseDoc PathStr3" x; G' t+ H0 S3 t7 u9 t% }
swApp.CloseDoc PathStr4
# N. d9 R; J. o) E. P/ j swApp.CloseDoc PathStr5& k. g5 |3 D K* {# c
/ z9 ^& t$ ^& z: l8 @
Next i, D4 s6 t7 u k
6 f8 p6 G" G) M2 o2 p+ V
End Sub- s5 h! V4 @# b7 }, g
# T! \. i! n3 {& Y5 Q
Private Sub Showfilelist(folderspec As String), m0 D, C+ r2 V& A0 }
Dim fs, f, f1, fc, s
8 q- @, s) N- d- Q Set fs = CreateObject("Scripting.FileSystemObject")
6 R/ {1 `" K5 S6 Q Set f = fs.GetFolder(folderspec)
. K' l* m" e/ V" a1 D/ ^ Set fc = f.Files- B& T# ]8 i( r1 p+ }" U
FNum = 0 '清零
* ^" }$ E- A0 o3 S$ E) m- _! p For Each f1 In fc; {9 R4 T" D% Q8 `
If InStr(f1.Name, "SLDDRW") > 0 Then
9 O& |: _: P, C: L FName(FNum) = f1.Name( H# M1 W3 T' ?' f5 k
FNum = FNum + 1
; W9 X$ A F8 c& ~, p End If
# t- H! I" `4 C Next
; C% N% }: @( U: M' A. I( u' KEnd Sub
1 J3 [5 ?% }, M8 w0 A) S" q |