CAD设计论坛

 找回密码
 立即注册
论坛新手常用操作帮助系统等待验证的用户请看获取社区币方法的说明新注册会员必读(必修)
查看: 2995|回复: 0

[开发] 已知圆心角、弧长,VBA绘圆弧

[复制链接]
发表于 2009-6-10 08:42 | 显示全部楼层 |阅读模式
Sub AddArcLength()
4 c- k! C8 m- _( [# G    ' This example creates an arc in model space.
# }% u0 l3 K4 `" i, ^0 g    ' 已知圆心角、弧长绘弧+ M& P# |5 O% K( Y& {6 F: X
    Dim arcObj As AcadArc4 X; e/ [4 @8 X
    Dim centerPoint As Variant! \8 E4 w1 `/ j! P. p' w
    Dim radius As Double; K6 v5 s) }6 o' _+ i( k& j4 U5 U# B  _
    Dim startAngleInRadian As Double
2 k4 T0 ]/ c7 x" H  n! u) i    Dim endAngleInRadian As Double2 s& i4 d- t- S8 ~
    Dim ARCLength As Double) ~$ z7 }' y6 i# C$ E7 w
    Dim lineobj As AcadLine
5 f; T4 V+ T9 z8 `) J    Dim getobj As ACADObject
) c1 K* Y9 I. X9 z+ r9 \    Dim p As Variant. v9 z, m  c$ B7 Z% Q
    , g: M* m) d2 l* V0 k) e% C% ]
    'centerPoint(0) = 0#: centerPoint(1) = 0#: centerPoint(2) = 0#
5 O6 C- ~3 D" v: f% E    centerPoint = ThisDrawing.Utility.GetPoint(, "请指定圆心:")
0 T" e6 h8 v' g8 ~/ x    ThisDrawing.Utility.GetEntity getobj, p, "选择第一条直线:"9 x, D/ ~1 Y( [) p5 g5 S
    startAngleInRadian = getobj.Angle
* R4 @/ {! o3 E+ j' K' O    ThisDrawing.Utility.GetEntity getobj, p, "选择第二条直线:"2 Y$ D2 @* R* X/ [9 Y
    endAngleInRadian = getobj.Angle% r4 w2 B8 i; M( S/ g
    ARCLength = ThisDrawing.Utility.GetString(0, vbCrLf & "所绘弧长:")
4 D+ `$ ]. k" l/ Q5 j6 Y    radius = ARCLength / (endAngleInRadian - startAngleInRadian)- R8 Z3 \1 w3 r  Q% y
    . ]! ~% U+ Z2 e
    ' Create the arc object in model space$ d% |3 n' F' S
    Set arcObj = ThisDrawing.ModelSpace.AddArc(centerPoint, radius, startAngleInRadian, endAngleInRadian)5 n! _& Z0 n" I* T
'    ZoomAll
- m( ^7 A/ [  Z4 O9 e! mEnd Sub
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于|免责|隐私|版权|广告|联系|手机版|CAD设计论坛

GMT+8, 2026-5-18 03:48

CAD设计论坛,为工程师增加动力。

© 2005-2026 askcad.com. All rights reserved.

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