明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2216|回复: 3

已知圆弧起点终点半径,用VBA怎么画圆弧

[复制链接]
发表于 2010-9-4 17:26:00 | 显示全部楼层 |阅读模式

在算圆心和起始终止弧度的时候老是出现问题,有的圆弧能画有的圆弧不能画,请问有什么方法计算起来简单点

发表于 2010-9-5 18:54:00 | 显示全部楼层
  1. Sub A()
  2. Dim StartPoint As Variant, EndPoint As Variant, Radius As Double
  3. Dim Circle1 As AcadCircle, Circle2 As AcadCircle, V As Variant, Center(2) As Double
  4. Dim ActiveSpace As AcadBlock
  5. On Error GoTo 10
  6. With ThisDrawing
  7. StartPoint = .Utility.GetPoint(, vbCrLf & "指定圆弧起点:")
  8. EndPoint = .Utility.GetPoint(StartPoint, "指定圆弧端点:")
  9. Radius = .Utility.GetDistance(EndPoint, "指定圆弧半径:")
  10. Set Circle1 = .ModelSpace.AddCircle(StartPoint, Radius)
  11. Set Circle2 = .ModelSpace.AddCircle(EndPoint, Radius)
  12. V = Circle1.IntersectWith(Circle2, acExtendNone)
  13. Circle1.Delete
  14. Circle2.Delete
  15. If UBound(V) = -1 Then
  16. .Utility.Prompt "圆弧半径太小,无效!"
  17. Else
  18. Center(0) = V(0): Center(1) = V(1): Center(2) = V(2)
  19. If .ActiveSpace = acModelSpace Then
  20. Set ActiveSpace = .ModelSpace
  21. Else
  22. Set ActiveSpace = .PaperSpace
  23. End If
  24. ActiveSpace.AddArc Center, Radius, .Utility.AngleFromXAxis(Center, StartPoint), .Utility.AngleFromXAxis(Center, EndPoint)
  25. End If
  26. End With
  27. 10: End Sub
发表于 2010-9-7 22:56:00 | 显示全部楼层
另一种思路:判断Start point 与radius 和 end point 与radius 的距离是否相等,相等就addarc 否则提示弧不存在。
发表于 2010-10-9 20:39:00 | 显示全部楼层
把圆心的坐标解出来就可以了哇
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 21:32 , Processed in 0.155633 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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