乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 17|回复: 0

已知圆弧两点和圆弧角-画弧!

[复制链接]

120

主题

326

帖子

7

银币

中流砥柱

Rank: 25

铜币
806
发表于 2008-9-9 10:34:00 | 显示全部楼层 |阅读模式
这是的问题
根据已知条件我可以得到如下条件 圆弧的两点,起始角和终止角
条件是圆弧上两点x1,y1  x2,y2 ,alfa1,alfa2  
求 圆心坐标xc,yc和半径的算法比较麻烦.
变通方法
Sub msl()
'tt = "(command " & Chr(34) & "arc" & Chr(34) & " pp " & Chr(34) & "e" & Chr(34) & " ppp " & Chr(34) & "a" & Chr(34) & " 152) "
tt = "(command " & Chr(34) & "arc" & Chr(34) & "(list -9.24 14.04 0)" & Chr(34) & "e" & Chr(34) & "(list -4.62 14.04 0)  " & Chr(34) & "a" & Chr(34) & " " & 1.967808816 * 180 / 3.1415926 & ") "
ThisDrawing.SendCommand tt
End Sub
下面程序各位大侠拿去用,比较实用.
  1. Sub DrawingArc()
  2.   nn = ThisDrawing.ModelSpace.Count - 1
  3.   Dim objArc As AcadArc, objLine As AcadLine
  4.   With ThisDrawing.ModelSpace
  5.     For ii = 0 To nn
  6.       'Debug.Print .Item(ii).ObjectName
  7.       Select Case .Item(ii).ObjectName
  8.         Case "AcDbLine"
  9.          
  10.         Case "AcDbArc"
  11.           Set objArc = .Item(ii)
  12.             tt = "(command " & Chr(34) & "arc" & Chr(34) & "(list"
  13.             For jj = 0 To 2
  14.               tt = tt & " " & Round(objArc.StartPoint(jj), 2)
  15.             Next jj
  16.             tt = tt & ")" & Chr(34) & "e" & Chr(34) & "(list"
  17.             For jj = 0 To 2
  18.               tt = tt & " " & Round(objArc.EndPoint(jj), 2)
  19.             Next jj
  20.             tt = tt & ") " & Chr(34) & "a" & Chr(34) & " " & objArc.TotalAngle * 180 / 3.1415926 & ") "
  21.             Debug.Print tt
  22.             ThisDrawing.SendCommand tt
  23.        End Select
  24.     Next ii
  25.   End With
  26. End Sub
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-7-4 01:33 , Processed in 0.646300 second(s), 54 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表