|
本帖最后由 ryouss 于 2017-3-4 14:42 編輯
( a$ t; c: m9 y* m) I8 _" n3 h+ P
用 Select Case 做篩選循環,5 T: y, Y9 g# M# r& \
不過如下宏只是做零件,裝配件及工程圖的叫出再關閉,沒實質意義.3 e% ]) [& h! O+ @6 h* e' T
5 d3 a2 {+ F7 c' i* v& |3 c* o; R2 Q
- |" w4 v1 V, p0 X3 u" r/ j
; a+ [1 G/ M9 I4 O3 t! w2 L) U- '
0 f+ U/ M+ i) Z _$ B' k9 Q - ' 在某文件路徑下批量開零件,裝配件及工程圖' R6 s7 R: q3 w) T! F5 T
- ' sc liang 2017/3/4
3 q$ c+ d7 |/ b - ' 測試版 2012 sp4( I2 C$ S8 J, a7 h2 \% ^
- '
/ J- t1 y/ x: B" l9 H - Dim nErrors As Long
t+ l, J( t8 ]8 n; F0 K% m6 K - Dim nWarnings As Long0 F) Z% e+ T" y2 p) s
% F: J! M5 A( }" P, U- Sub Test()) _% \& x2 Z3 p! t; I( a
- Set swApp = Application.SldWorks1 M; \" _" e6 z# n
- Set swModel = swApp.ActiveDoc
C* e2 w0 h& r4 r - path = "D:\Project" '存檔路徑2 Q/ r7 N) u/ v4 l' t3 m/ T7 B
- sFileName = Dir(path & "*.sld*") '取出SW文件
! b5 ?) Q: t( h - '循環開檔" X" ]' ~+ g9 }( n3 z1 y
- Do Until sFileName = "") X* H9 V$ s1 |* V* {5 P
- Type_ = Right(sFileName, 3) '取得SW文件擴展名後三位. ?4 ~, W6 Z1 G |
- Select Case Type_ '判定SW文件型式
3 p9 k- S4 i# n - '開零件檔並存檔
, g; P. A+ q( E: P0 q: S0 {5 i - Case "PRT"( Y, \* o* Y4 B
- Set swModel = swApp.OpenDoc6(path + sFileName, swDocPART, swOpenDocOptions_Silent, "", nErrors, nWarnings)5 [2 ]. `) t: { m; s
- Set Part = swApp.ActiveDoc
@ L7 G) K+ @6 m& D$ i3 H- l - Part.Save5 t$ d! V7 h5 \, ~4 A R! J
- '開組件檔
0 h9 c- l- y* z6 F7 { - Case "ASM"6 R L @, @: p
- Set swModel = swApp.OpenDoc6(path + sFileName, swDocASSEMBLY, swOpenDocOptions_Silent, "", nErrors, nWarnings)
5 O$ O! \$ m$ T$ `$ Y, |" X - '開工程圖 3 c: }' R! V' ~+ |. O3 J) @% R
- Case "DRW"
6 l4 }( @6 u* e - Set swModel = swApp.OpenDoc6(path + sFileName, swDocDRAWING, swOpenDocOptions_Silent, "", nErrors, nWarnings)6 j$ |4 n, A% g. ~" i! x
-
# t, r9 w) A$ i+ U - End Select& e7 `- ^& N! `' ~3 C7 o7 A
- Set swModel = Nothing4 e; \" U: d$ f* w' w3 L5 s
- swApp.CloseDoc (sFileName)
4 w7 p, a# A7 T - sFileName = Dir '同路徑取出下個SW文件檔名
/ ~$ q: k9 }. i% v1 r3 i - Loop
- A3 Q) u+ v2 h5 }( ^1 v - End Sub
復制代碼 |
|