|
分享在他網的回題小程式,適合想學sw API的初學者參考!# h( U% B4 U+ x: b4 c' e4 f) G A9 L3 `
- ' ******************************************************************************. r/ G k# U$ R, V3 d1 `
- ' macro recorded on 05/12/18 by scliang
/ r0 j+ `3 a! ]* x8 S1 P7 f - ' 功能:草圖圓周複製後拉伸) H6 w% P4 W, f
- ' 操作: 開新零件,執行 main
/ A$ T- ]. a: {0 c% D5 {; M - '
* ?, b6 `' Z( x! U+ U4 y* P - ' ******************************************************************************
; b7 q0 n. \. d+ H! Q - Option Explicit
8 i+ T8 C$ R4 T4 l; O! p
. p7 R7 ^6 x$ m4 H+ ]- Dim swApp As SldWorks.SldWorks
/ H4 w7 O! ^" t4 M - Dim swModel As SldWorks.ModelDoc24 n T) ]( G/ g1 N; }3 r
- Dim swSketchMgr As SldWorks.SketchManager: |! p& Z% j7 ]$ M+ M5 N [
- Dim swSketchSegment As SldWorks.SketchSegment
: ^4 [+ Q- `2 ^7 ^! c$ W* ^+ g - Dim boolstatus As Boolean B1 s5 l0 `' S: e4 Q' n
- Dim Part As Object
/ C5 a" D. o% d+ s6 a/ l. a% G0 } - Dim myFeature As Object7 S- B0 U/ x; |# @
- Dim pi, ArcRadius, ArcAngle, PatternSpacing As Double! k3 |8 {. n) z; Z' ?2 n
- Dim n As Integer
! c6 _4 e* D! W3 g. ?; z5 x
, @* t' c! [* L3 P! y( ? d9 @- Sub main()1 _0 r' h+ z' `$ `0 B" E; U" d% Z
- ! E% O/ k- y+ X8 b+ \
- Set swApp = Application.SldWorks" d C1 h0 H' B2 v' N* Q" p7 u
- Set Part = swApp.ActiveDoc
# i4 f% f# W' j7 a4 K - ' Create part document
# L/ ? }' Z( z$ Z - Set swModel = swApp.ActiveDoc+ S8 O" O# g, I% r8 l8 y8 z1 Y
- Set swSketchMgr = swModel.SketchManager- p( o7 U( Y. D- F/ \* m) L% m+ C; }
- pi = Atn(1) * 4 '圓周率
5 \( w$ i; q) l - ArcRadius = 0.05 '圓弧半徑
3 g' L( k) {" u8 \. e - ArcAngle = 300 * pi / 180 '圓周中心之圓弧角
/ E6 b* t! I h0 ^ - n = 5 '複製數
. S0 |" C/ P% X" W* W% b8 ? - PatternSpacing = 40 * pi / 180 '複製之間隔弧度0 e8 U4 B I5 _, g& n$ f3 Y
- ' Sketch a circle
8 P5 x( F/ F6 o2 M, i - 'boolstatus = Part.Extension.SelectByID2("前基準面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
0 X3 Y! T) [: K( f - swModel.ShowNamedView2 "*Front", 1
( A1 {$ O6 w: N9 \& l - Set swSketchSegment = swSketchMgr.CreateCircle(0.01, 0.06, 0#, 0.01, 0.07, 0#) '畫圓
% `2 h$ E" ^# p3 \2 Y5 y9 ]* n: G - 'value = instance.CreateCircularSketchStepAndRepeat(ArcRadius, ArcAngle, PatternNum, PatternSpacing, PatternRotate, _
" Z0 S3 j; M* o ^2 S( O( H9 n - DeleteInstances)圓弧半徑、圓弧角、複製數、複製間距(+ 間隔弧度正轉,- 間隔弧度逆轉)、圖案旋轉、刪除實例
; c: q# x( O+ E5 B# e! h - boolstatus = swSketchMgr.CreateCircularSketchStepAndRepeat(ArcRadius, ArcAngle, n, PatternSpacing, False, True, True, True, True) '圓周複製
% J$ j! |! }4 h, b; c0 C - 'instance.FeatureExtrusion2(Sd, Flip, Dir(反轉方向), T1, T2, D1, D2, Dchk1, Dchk2, Ddir1, Ddir2, Dang1, Dang2, OffsetReverse1, OffsetReverse2, Merge)
$ ]% P8 H8 W3 H( s/ e$ } - Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, 0.03, 0, False, False, False, False, _1 M+ q. ^9 ]( f: N0 u
- 0, 0, False, False, False, False, True, True, True, 0, 0, False) '拉伸 30mm! S8 C5 A% I6 \ \6 A g, D
& Q# S8 l- `0 \* c- End Sub
) d4 |; s$ M" u$ Y3 l, L
复制代码 0 w% r- L) c. h
! Q% f& W# y, I+ X _% g8 `# }& K, A: e% P5 _# O: t' X
2 ]% k# W& U2 z3 U* {- }' z( n
6 }3 S% ~/ l7 l% [) a* X/ Y) o, r! |0 D8 n- q5 C* s, t& _$ [0 l
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?注册会员
×
评分
-
查看全部评分
|