SOLIDWORKS Task Schedular我試了,根本動不了,自己也倒騰了個宏,功能是工程圖轉換成PDF和DWG文件,操作是,工具---》宏----》新建----》把下面的代碼復制進去----》存到硬盤某個位置----》,調用的時候是,工具----》宏---》運行,當然也可以自定義到SW的工具欄上,宏文件源代碼如下需要的拿去,:# s* P3 `) _* B% E0 ]+ u2 { U
Dim swApp As Object) M7 {! y" s7 t# v" ]* k# X
Dim Part As Object
2 A* U' C2 U- |) M" R$ P0 e; ~Dim boolstatus As Boolean
" x6 p* [7 U" Q \Dim longstatus As Long, longwarnings As Long& d- w$ F8 a# i0 Q4 u) l1 P
Dim PathStr As String
, ~# o9 Q6 H' F+ pDim FName(500) As String, FNum As Long
" j, \. }& s# a) |7 \/ v! P P' M# x' A) {" n
Sub main()+ w$ B8 e% s: U3 s2 c, U" V
Dim i As Long3 i7 w, E$ V$ M, z; K y/ f
Dim PathStr0 As String, PathStr1 As String
" r. |. I5 Y0 Q7 r: \ pDim PathStr2 As String, PathStr3 As String, PathStr4 As String, PahtStr5 As String
8 p/ f- P- s/ t4 {0 RDim L As Long, L1 As Long8 B5 W0 `! ?* i/ F, }' A
PathStr = InputBox("請輸入需要轉的工程圖所在位置")
! g( W$ A3 Y; s4 e- s5 K* I% ]Call Showfilelist(PathStr)9 B6 \/ l8 T1 l! O! G
Set swApp = Application.SldWorks
/ z( w7 _, h: @3 ?& k9 {* q4 l. K! P% q, f
For i = 0 To FNum - 1
1 D9 ~6 Y7 c4 [# ?% Y PathStr0 = PathStr & "\" & FName(i). N5 o J; i$ F
Set Part = swApp.OpenDoc6(PathStr0, 3, 0, "", longstatus, longwarnings)
$ N1 ~+ k D p! } L = Len(PathStr0)& i8 `/ c! }, [; B$ S
PathStr1 = Left(PathStr0, L - 7) & ".DWG"
7 `4 `4 D5 g0 b7 { PathStr2 = Left(PathStr0, L - 7) & ".PDF"
- _7 o1 b7 T' c# d6 T longstatus = Part.SaveAs3(PathStr1, 0, 0)
! n O9 d) q8 T" {" c longstatus = Part.SaveAs3(PathStr2, 0, 0)
' r* o. ]: s# q; C 4 g( f* `0 q$ C( c/ z# N% ^- @
Set Part = Nothing
. n& G! ~0 |8 a % j4 I. |0 J9 t
L1 = Len(FName(i))
/ ?" t; ~! N5 V: u# j PathStr3 = Left(FName(i), L1 - 7) & " - 圖紙1") i( e M' M( I5 K5 w3 {) b
PathStr4 = Left(FName(i), L1 - 7) & " - 圖紙2"2 g6 b3 x) W- z2 e
PathStr5 = Left(FName(i), L1 - 7) & " - 圖紙3"
% o2 T9 j9 L, m& F5 z& l* ~ 3 O2 \. B( y( W+ D* _1 r
swApp.CloseDoc PathStr3
. D E* J, k$ l* X& `" n5 b% M7 Q swApp.CloseDoc PathStr4
4 T* a; \2 s- g* l swApp.CloseDoc PathStr59 E3 W( |* E! T6 l, } K
1 Z q: Z6 V# G% xNext i, y. \" a! @4 ?% k: V+ v7 {/ n
1 c" i4 S! {. G1 W: u! f! jEnd Sub
; ^) n7 {- c% n8 S# k% C6 `
1 D' ]: M, g& j1 JPrivate Sub Showfilelist(folderspec As String)
: L8 V6 h. ?" p! B3 M& w8 i/ M Dim fs, f, f1, fc, s) C, |, Y2 k5 B1 b9 B
Set fs = CreateObject("Scripting.FileSystemObject")
. U% ` s; I% S$ U; L8 l Set f = fs.GetFolder(folderspec)
8 _ C1 `9 q! k Set fc = f.Files
1 W/ E+ E5 ]8 B* a: f. S FNum = 0 '清零
4 l; G9 [2 y9 x$ X, O# ~1 _4 Q For Each f1 In fc
& w9 S" k0 b% r7 Y/ k6 @6 Y If InStr(f1.Name, "SLDDRW") > 0 Then
' p6 u" o; W# O' u; R6 E0 C FName(FNum) = f1.Name
# a+ Z( M5 [ J, O7 L FNum = FNum + 1/ v1 o+ u. c( Z7 d1 i
End If! @# @# W% S1 Z
Next
# M/ S5 q; }" A; n, \5 J/ pEnd Sub- w! H- C" a7 E+ y
|