|
分享在他網的回題小程式,適合想學sw API的初學者參考!( ]' x) B' M0 z2 H
- ' ******************************************************************************- ^' K6 v9 x/ A* }; P0 f7 u4 Q
- ' macro recorded on 05/12/18 by scliang
' f* b* X1 E7 @& h8 P6 g - ' 功能:草圖圓周複製後拉伸
* R ] u" X5 ~# v1 j3 { - ' 操作: 開新零件,執行 main o4 @ l2 C S% |% J
- '- b5 m% f9 A& k4 ]3 h; `" y- E
- ' ******************************************************************************
0 g# f, C* u7 D5 E - Option Explicit
" Z- e3 n7 J n# u7 Y* Q; z
( [) P5 P, P7 [, z: K8 J9 Z" j4 S- Dim swApp As SldWorks.SldWorks
' n* ^+ y% x. P8 W0 P6 t - Dim swModel As SldWorks.ModelDoc2) G- \. M5 n) T5 U" K/ I0 h0 P d
- Dim swSketchMgr As SldWorks.SketchManager8 |2 H5 e5 @6 w0 J6 w" T" j
- Dim swSketchSegment As SldWorks.SketchSegment
* _4 G& G+ p* L4 D. r( b2 [0 I - Dim boolstatus As Boolean/ ?0 h. F- K* S( X, j. B
- Dim Part As Object( F. F& b+ u$ ` j* K8 b
- Dim myFeature As Object9 R9 k4 e/ Q" P( P
- Dim pi, ArcRadius, ArcAngle, PatternSpacing As Double. o5 i3 d9 U6 e0 J" K$ H
- Dim n As Integer
, O: u2 d( @/ ]* {$ o( [8 w2 m
1 ~# O# N4 _5 H# P" C9 u- Sub main()
! }1 k' J2 Z k s& J
' u2 K7 E. a$ w4 r- d1 n$ t- Set swApp = Application.SldWorks7 n6 J5 N0 c+ R/ l: @9 K
- Set Part = swApp.ActiveDoc! [: i. x6 e# F$ r" Z* c* S4 m
- ' Create part document
+ t, H$ ?" w) y, B, z' m - Set swModel = swApp.ActiveDoc
2 H6 G6 z: R' e! I: z: m/ g7 ~ - Set swSketchMgr = swModel.SketchManager5 Z2 @" K* r9 e) x
- pi = Atn(1) * 4 '圓周率
8 b/ z' [+ \8 |3 k8 L - ArcRadius = 0.05 '圓弧半徑# N) K5 Z; E& m" W
- ArcAngle = 300 * pi / 180 '圓周中心之圓弧角
% o3 j( n" [7 C1 Q# v - n = 5 '複製數
& b- t+ A% V/ a - PatternSpacing = 40 * pi / 180 '複製之間隔弧度# B8 b/ u# s, d+ D
- ' Sketch a circle. R! W# w' f2 R2 D" m
- 'boolstatus = Part.Extension.SelectByID2("前基準面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
, p2 C4 L& q+ D& ~6 a5 c - swModel.ShowNamedView2 "*Front", 1; ~$ c: ?% M' |
- Set swSketchSegment = swSketchMgr.CreateCircle(0.01, 0.06, 0#, 0.01, 0.07, 0#) '畫圓
9 ]' R$ G; D% _# y% J! @* F - 'value = instance.CreateCircularSketchStepAndRepeat(ArcRadius, ArcAngle, PatternNum, PatternSpacing, PatternRotate, _( h; F1 y6 N/ q* Z
- DeleteInstances)圓弧半徑、圓弧角、複製數、複製間距(+ 間隔弧度正轉,- 間隔弧度逆轉)、圖案旋轉、刪除實例
- p, y) f3 x& T9 e7 ]; e - boolstatus = swSketchMgr.CreateCircularSketchStepAndRepeat(ArcRadius, ArcAngle, n, PatternSpacing, False, True, True, True, True) '圓周複製
1 n$ c4 q- J1 ~& h - 'instance.FeatureExtrusion2(Sd, Flip, Dir(反轉方向), T1, T2, D1, D2, Dchk1, Dchk2, Ddir1, Ddir2, Dang1, Dang2, OffsetReverse1, OffsetReverse2, Merge)
; `, w1 ?* _9 ?5 W - Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, 0.03, 0, False, False, False, False, _1 ~. ^* M* j1 `/ B2 r. l. i
- 0, 0, False, False, False, False, True, True, True, 0, 0, False) '拉伸 30mm$ g% r& U ~% _3 |0 z" T
; N* s2 w- ?& o A5 ]( A0 K% n- End Sub
1 N3 u7 c# F* T0 f& \
复制代码 8 x1 j6 S, O8 n# n0 @* e0 T# H5 `
. W% Q- R3 i/ g" Z
- z( n! L3 K0 U: G' E( R- i
5 y$ ?& ^; H3 b1 ^2 w; k/ I" Y( i9 o7 [5 h% M
/ j) w( [6 V; N1 S9 r8 J |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
评分
-
查看全部评分
|