找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 691|回复: 10

[求助]:用VB编程开发Autocad,如何用三点确定一个圆弧?

[复制链接]
发表于 2003-1-23 16:20:16 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

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

×
用VB编程开发Autocad,如何用三点确定一个圆弧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-1-23 17:28:41 | 显示全部楼层
思路是这样:
假定圆弧的起点为P1,终点为P2,圆弧上的任意一点为P3。首先,求出P1P3的中点MP1和P3P2的中点MP2。第二步,过MP1作P1P3的垂线XL1和过MP2作P3P2的垂线XL2。第三步,求出XL1和XL2的交点,这一点即为圆弧的圆心CP1。最后,求出CP1和P1与X轴的角度即为起始角度,求出CP1和P2的角度即为终止角度,求出CP1和P1(或者P2、P3)的长度即为圆弧的半径。
以上四个参数都满足了,只要用AddArc即可做出圆弧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-1-23 22:54:46 | 显示全部楼层
这是个一般的解析几何问题,有没有其它简单一点的办法?按上面的思路写下来,源代码也是很复杂的!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 181个

财富等级: 日进斗金

发表于 2003-1-24 10:17:20 | 显示全部楼层
简单一点的就是直接调用ARC命令来绘制圆周弧。
如:

  1.   [FONT=courier new]
  2.     sPtStr = sPt(0) & "," sPt(1) & "," & sPt(2)
  3.     mPtStr = mPt(0) & "," mPt(1) & "," & mPt(2)
  4.     ePtStr = ePt(0) & "," ePt(1) & "," & ePt(2)
  5.     arcStr =  "-Arc" & VbCr & sPtStr & VbCr & mPtStr & VbCr & ePtStr & VbCr
  6.     ThisDrawing.SendCommand   arcStr
  7.   [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-8-28 13:07:24 | 显示全部楼层
直接写数学方程的方法应该也不会麻烦
两个线段都求出垂线方程,然后解方程,不算麻烦,请试试
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-9-28 18:26:09 | 显示全部楼层
用解析几何的方法,算一算
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-11 10:24:45 | 显示全部楼层
ARC命令就可以实现
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-14 15:53:38 | 显示全部楼层
我这有三点画弧函数,见附件,可要付费
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-15 14:35:18 | 显示全部楼层
Public Sub GetPoints()
  Dim objUtil As AcadUtility
  Dim varPnt1 As Variant
  Dim varPnt2 As Variant
  Dim varPnt3 As Variant
  Dim strPrmt As String
  On Error GoTo Err_Control
  Set objUtil = ThisDrawing.Utility
  strPrmt = vbCr & "圆弧的起点: "
  varPnt1 = objUtil.GetPoint(Prompt:=strPrmt)
  strPrmt = vbCr & "圆弧的第二点: "
  '使用位码32显示橡皮线
  objUtil.InitializeUserInput 32
  varPnt2 = objUtil.GetPoint(varPnt1, strPrmt)
  strPrmt = vbCr & "圆弧的终点: "
  objUtil.InitializeUserInput 32
  varPnt3 = objUtil.GetPoint(varPnt2, strPrmt)
  Call ThreePntArc(varPnt1, varPnt2, varPnt3)
Exit_Here:
  Exit Sub
Err_Control:
  MsgBox Err.Description
  Resume Exit_Here
End Sub
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-15 17:12:48 | 显示全部楼层
vb需求解出弧心,半径参数,才能画弧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-16 12:00:23 | 显示全部楼层
最初由 zcmjw 发布
[B]vb需求解出弧心,半径参数,才能画弧。 [/B]

  1.   [FONT=courier new]
  2. arc1_ange = ThisDrawing.Utility.AngleFromXAxis(cenPt1, p4)'有误
  3. arc1_ange = ThisDrawing.Utility.AngleFromXAxis(cenPt1, p3)'正确
  4.   [/FONT]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-9-28 23:31 , Processed in 0.390244 second(s), 52 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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