找回密码
 注册会员

QQ登录

只需一步,快速开始

搜索
查看: 3823|回复: 0

宏-草圖圓周複製後拉伸

[复制链接]
发表于 2018-5-14 14:40:18 | 显示全部楼层 |阅读模式
分享在他網的回題小程式,適合想學sw API的初學者參考!
5 k7 R% g& L2 b! l+ B- N
  1. ' ******************************************************************************
    ! i3 z& Y# n& Z) R5 v
  2. ' macro recorded on 05/12/18 by scliang
    7 V8 H4 T) D/ M1 u: |3 q/ w
  3. ' 功能:草圖圓周複製後拉伸* T' ]- h5 G% o5 j4 }% Q
  4. ' 操作: 開新零件,執行 main
    7 S7 g2 [! d4 A, ^" F5 S/ K
  5. '
    ) ^6 u2 N5 q$ Q+ j/ v7 x
  6. ' ******************************************************************************
    / a* g5 b; u% O
  7. Option Explicit' n& O! P* z# [0 U0 W

  8.   J0 N. u* `* W. z
  9. Dim swApp As SldWorks.SldWorks. D1 _" B8 Y. `0 R; I0 Q
  10. Dim swModel As SldWorks.ModelDoc28 S4 e. b3 v6 Z) ~
  11. Dim swSketchMgr As SldWorks.SketchManager
    . n; H, {  h! v# W
  12. Dim swSketchSegment As SldWorks.SketchSegment
    7 Q* V8 \3 P" c5 O
  13. Dim boolstatus As Boolean3 s* j' R% {! v/ \9 q
  14. Dim Part As Object
    + u0 s0 B. K, N1 n& _" d$ N0 ~& W
  15. Dim myFeature As Object
    6 }  }" A( [, l5 I
  16. Dim pi, ArcRadius, ArcAngle, PatternSpacing As Double
    " Y2 g5 d/ ?" C# l
  17. Dim n As Integer* q6 y. I7 l, V# H
  18. ; g8 J% H" C3 v. `4 c
  19. Sub main()+ Y7 Q4 A5 ]' ?+ g0 W  v1 ]7 A
  20. + c& G' F: W, _/ X8 z( b" [: z
  21.     Set swApp = Application.SldWorks
    " J6 H5 s# {9 b
  22.     Set Part = swApp.ActiveDoc
    2 U& O$ H  M* o+ s0 Z1 x
  23. ' Create part document
    ; f& o5 @- `" c& ]. S! S
  24.     Set swModel = swApp.ActiveDoc
    . l0 R% F# `$ O! z0 g
  25.     Set swSketchMgr = swModel.SketchManager
    + J  W8 T8 ]" E
  26.     pi = Atn(1) * 4 '圓周率- v2 q5 q, S) Z( d9 J: }2 y# }* ]
  27.     ArcRadius = 0.05 '圓弧半徑3 D" ~8 f$ J6 ^, x$ B0 q' m6 G
  28.     ArcAngle = 300 * pi / 180 '圓周中心之圓弧角
    # B4 B9 ]1 @2 k# E, Q4 {
  29.     n = 5 '複製數
    5 a: j/ v, h5 R. n3 o
  30.     PatternSpacing = 40 * pi / 180 '複製之間隔弧度
    0 P) t4 D1 T3 n) u0 \$ _( d# t
  31. ' Sketch a circle
    3 ~+ f) `- s( L5 n% V. f- v# U
  32. 'boolstatus = Part.Extension.SelectByID2("前基準面", "PLANE", 0, 0, 0, False, 0, Nothing, 0)
    4 Z. @% c$ n! t3 I
  33.     swModel.ShowNamedView2 "*Front", 1
    . C5 A# W+ _7 S- p& n
  34.     Set swSketchSegment = swSketchMgr.CreateCircle(0.01, 0.06, 0#, 0.01, 0.07, 0#) '畫圓
    & Q0 ?1 m. b5 J& I- e/ O% `" r
  35. 'value = instance.CreateCircularSketchStepAndRepeat(ArcRadius, ArcAngle, PatternNum, PatternSpacing, PatternRotate, _/ b, }  @  K$ O$ ^6 M0 v- p
  36. DeleteInstances)圓弧半徑、圓弧角、複製數、複製間距(+ 間隔弧度正轉,- 間隔弧度逆轉)、圖案旋轉、刪除實例
    7 c1 _* e) `# R3 r+ c+ ]
  37.     boolstatus = swSketchMgr.CreateCircularSketchStepAndRepeat(ArcRadius, ArcAngle, n, PatternSpacing, False, True, True, True, True) '圓周複製3 M1 I4 l. f! |% `  B
  38. 'instance.FeatureExtrusion2(Sd, Flip, Dir(反轉方向), T1, T2, D1, D2, Dchk1, Dchk2, Ddir1, Ddir2, Dang1, Dang2, OffsetReverse1, OffsetReverse2, Merge)
    3 M) n6 d, B' B
  39.     Set myFeature = Part.FeatureManager.FeatureExtrusion2(True, False, False, 0, 0, 0.03, 0, False, False, False, False, _! r% D( f- Q6 j+ P% |
  40.     0, 0, False, False, False, False, True, True, True, 0, 0, False) '拉伸 30mm
    " m4 N' P. \/ U6 J

  41. ; g3 I7 P. K9 J9 m( [/ s) R
  42. End Sub
    : E, V7 ^( W7 A0 `
复制代码
9 |3 `, O8 ^5 w% _2 ?
% F1 S9 a/ C" s0 v( z" Y
/ A- S2 _$ m/ Z6 U$ v

& e6 j% m( i: G5 T) T2 Q4 j1 s5 [1 b3 b/ \# D8 o

( o9 x# X- }/ r5 ^, r  E1 J

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×

评分

参与人数 1威望 +50 收起 理由
吉吉几几 + 50

查看全部评分

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Archiver|手机版|小黑屋|机械社区 ( 京ICP备10217105号-1,京ICP证050210号,浙公网安备33038202004372号 )

GMT+8, 2025-10-24 06:56 , Processed in 0.081330 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.5 Licensed

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表