找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

楼主: guobaoming

[求助]:怎样画这样的弧?

[复制链接]
发表于 2003-7-13 12:31:01 | 显示全部楼层
查看一下有关平面图形计算公式的书籍,定能找到该计算式,当然,如果离开校门较长时间,计算起来可能感到很吃力,这是实话。另外,按我的判断,作图时还需用辅助线。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-13 15:47:58 | 显示全部楼层
那个方程终于解出来了,问题解决了!我认为00001兄说的对,这个题目可能没有实用价值。我是从学VBA的角度来解决问题的。觉得很容易就能画出来的网友也请贴上你们的画法。

  1. Sub ddARC()
  2. Dim ddARC As AcadArc
  3. Dim S, L, R, a0, a1, fx, flx, c, angs, ange As Double
  4. Dim pa, pb, cen As Variant
  5. Const PI = 3.1415926535

  6. pa = ThisDrawing.Utility.GetPoint(, "请输入圆弧起点:")
  7. pb = ThisDrawing.Utility.GetPoint(pa, "请输入圆弧终点:")
  8. S = ThisDrawing.Utility.GetDistance(pa, "请输入圆弧弧长:")

  9. L = dis(pa, pb)
  10. b = ThisDrawing.Utility.AngleFromXAxis(pa, pb)

  11. If S <= L Then
  12. MsgBox "您要画的圆弧并不存在,请再执行一次程序!"
  13. End
  14. End If

  15. a0 = 2
  16. a1 = a0
  17. Do
  18. a0 = a1
  19. fx = Sin(a0 / 2) / a0 - L / (2 * S)
  20. flx = (Cos(a0 / 2) * a0 * 0.5 - Sin(a0 / 2)) / (a0 * a0)
  21. a1 = a0 - fx / flx
  22. Loop While Abs(a1 - a0) > 0.0000000001

  23. R = S / a1
  24. c = b - a1 * 0.5 + 90 * PI / 180
  25. cen = ThisDrawing.Utility.PolarPoint(pa, c, R)
  26. angs = c + PI
  27. ange = angs + a1

  28. Set ddARC = ThisDrawing.ModelSpace.AddArc(cen, R, angs, ange)
  29. End Sub

  30. Public Function dis(pa, pb As Variant) As Double
  31. dis = ((pa(0) - pb(0)) ^ 2 + (pa(1) - pb(1)) ^ 2 + (pa(2) - pb(2)) ^ 2) ^ 0.5
  32. End Function

程序使用方法见 http://www.xdcad.net/forum/showt ... number=1第15贴。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-13 19:42:03 | 显示全部楼层
有没有搞错,这样的问题也那来问,自己看一下,多试试看就可以搞定了嘛
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-13 20:09:41 | 显示全部楼层

动画教学

可能我们觉得没有研究的必要,但楼主也许有他的用处!
真的应该感谢ahlzl斑竹!!!花了那么多心血,为大家写了这个程序。在这里我帮他将这个图形的绘制演示一下。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2003-7-14 13:43:57 | 显示全部楼层
最初由 何敏 发布
[B]不是唯一的,有无数个解(注意:弧长≠弦长) [/B]

当然是弧长,答案是两个对称的弧。
请你注意我的演示里面采用的是同一个弦长,不同的弧长画的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-14 14:12:12 | 显示全部楼层
我很佩服诸位助人为乐的精神。可你注意到了吗? 你给原问附加了条件!如果没有附加条件,
只给两个端点和弧长能画出唯一的弧来?(两个),这点只是恐怕中学生都知道吧?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-14 14:35:37 | 显示全部楼层
最初由 lsjjm 发布
[B]我很佩服诸位助人为乐的精神。可你注意到了吗? 你给原问附加了条件!如果没有附加条件,
只给两个端点和弧长能画出唯一的弧来?(两个),这点只是恐怕中学生都知道吧? [/B]

我没发现附加了条件!附加了哪个条件,请指教!对了,lsjjm 兄,过0,0和2000,1000这两点,画一弧长3000的弧,请您试试。还想请您再写一VLISP程序来画这个圆弧,先谢谢了!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-7-14 14:50:02 | 显示全部楼层
最初由 lsjjm 发布
[B]我很佩服诸位助人为乐的精神。可你注意到了吗? 你给原问附加了条件!如果没有附加条件,
只给两个端点和弧长能画出唯一的弧来?(两个),这点只是恐怕中学生都知道吧? [/B]


因为在ACAD里面,弧线始终是逆时针的,因此,在交互了"起点"和"终点"后,那么这个弧的"时针方向就确定下来了,因此答案是唯一的,能通过程序绘制出来.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-14 17:19:24 | 显示全部楼层
XDsoft, ahlzl 两位斑竹:
是不是我这个人有点抬杠? 如果说明, 就像XDsoft说的 “因为在ACAD里面,  弧线始终是逆时针的“,自然结果是唯一的。这也是一般情况下的花圆弧条件。
可看看搂主的原问:“已知弧的两个端点和弧长怎么画呢“?广义的讲是画不出来的(2个)。
因为我先前就遇到此类问题:两个端点哪个是始,哪个是终,不知道。所以必须要给出方向!
比如说,机械加工中的刀具设计,把一段线段用过两段点的圆弧替代, 你们说如果不知是凸弧还是凹弧,这弧怎么画?又比如说,公路设计, 原来一段直路要变为弯路, 如果不知是向左还是右,怎么弯?这两例可都是使用AutoCAD的呀!
至于让我 “再写一VLISP程序来画这个圆弧“ 没必要了吧?ahlzl 编的不是挺好吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-14 18:00:59 | 显示全部楼层
抬杠有抬杠的好处,有些问题可能就是在抬杠中澄清的
为了技术问题而讨论,发表不同的观点,其实这也不同与生活中的“抬杠”
这里的讨论是积极的、有意义的!

其实我的观点是:图是可以画出来的,答案是2个;但是如果不知道楼主的这个问题是怎么产生的,这些讨论没有必要。也许他的问题本身可能会有其他更好的解决办法,也许这个问题根本就是不存在的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 23个

财富等级: 恭喜发财

发表于 2003-7-14 18:07:50 | 显示全部楼层
怎么会是唯一的呢?
空间中过此两点且定弧长的是一个曲面啊
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-14 18:34:10 | 显示全部楼层
to lsjjm:我理解您的意思了!这两点要事先确定哪个是起点,哪个是终点,而且还要确定方向(起点切向),这样圆弧就是唯一的了!(当然,还要再加一条件,圆弧还应在当前XOY平面上)我理解对吗?当然,不增加这些条件,圆弧不会是无穷多解的。这不是抬杠,这是讨论,好!
to e2002:您说的对,但一般来说,贴主的意思应在当前XOY平面上画圆弧。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-7-14 18:49:36 | 显示全部楼层
最初由 e2002 发布
[B]怎么会是唯一的呢?
空间中过此两点且定弧长的是一个曲面啊 [/B]


这就有点抬杠的意味了

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

使用道具 举报

发表于 2003-7-14 20:55:13 | 显示全部楼层
回避以上争论,只说XOY平面的解:我是用EXCEL将四个参数(弦长、半径、圆心角及弧长)建立出数学关系,经CAD验证后再在EXCEL中进行规划求解。试过几个选定的值,还可以,误差大约是百万分之几。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-11-13 20:17 , Processed in 0.437873 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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