明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1944|回复: 5

AUTOCAD作图求助

[复制链接]
发表于 2011-3-18 22:43:58 | 显示全部楼层 |阅读模式
现有一个问题,想用CAD作图求出来,可是本人水平太差,想不出来,在这请教各位大侠了!问题如下,已知弦的长度和弦所对圆弧的长度,如何在CAD里面通过作图求出圆的直径?见附件,直线长度知道,弧长知道,求半径。补充一点,条件是我们只知道直线长度和弧长。附件图形只是示意,不代表直线和圆弧已经连接到一块了,如果是那样的话,就太简单了,岂不是直接捕捉圆心也就出来了

本帖子中包含更多资源

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

x
发表于 2011-3-19 03:38:29 | 显示全部楼层
此问题没有精确的计算公式.但是若弦长和弧长相差不大时,有个近似的公式:
d=√(c^3/(c-a)/6),
(其中d是圆的直径,c是弧长,a是弦长)
若要较精确的数值,请给出具体数值来吧,我可以帮你算算.
发表于 2011-3-19 13:27:24 | 显示全部楼层
设m为弦长、n为弧长,R为半径(待求);
设圆心角为α,那么n=αR,即α=n/R;
又m=2R.sin(α/2)
即m=2R.sin(n/(2R))
用叠代法就可以求出R的数值解。
建议在excel中求。
发表于 2011-3-19 16:36:06 | 显示全部楼层
本帖最后由 qjchen 于 2011-3-19 16:38 编辑

:) 此题确实是得用数值解法了

根据chenjun兄的解法,采用以前的二分法lisp编了一段LISP,不过最后是画出圆而没有画出弧

  1. ;;; By qjchen@gmail.com
  2. ;;; The main code mainly from the MIT book "Structure and interpretaion of computer programs"
  3. ;;; judge whether the initial range is suitable
  4. (defun halfsolve (f a b / a-value b-value)
  5.   (setq        a-value        ((eval f) a)
  6.         b-value        ((eval f) b)
  7.   )
  8.   
  9.   (cond
  10.     ((and (< a-value 0) (> b-value 0)) (searchhalf f a b))
  11.     ((and (> a-value 0) (< b-value 0)) (searchhalf f b a))
  12.     ((= a-value 0) a)
  13.     ((= b-value 0) b)
  14.     (T (prompt "The Values maybe not between a and b"))
  15.   )
  16. )

  17. ;;core code of dichotomy
  18. (defun searchhalf (f neg-point pos-point / test-value midpoint)
  19.   (setq midpoint (/ (+ neg-point pos-point) 2))
  20.   (cond
  21.     ((close-enough? neg-point pos-point) midpoint)
  22.     (T
  23.      (setq test-value ((eval f) midpoint))
  24.      (cond
  25.        ((> test-value 0) (searchhalf f neg-point midpoint))
  26.        ((< test-value 0) (searchhalf f midpoint pos-point))
  27.        (T midpoint)
  28.      )
  29.     )
  30.   )
  31. )

  32. ;;judge small enough
  33. (defun close-enough? (x y)
  34.   (< (abs (- x y)) 1e-10)
  35. )

  36. ;; The equation to be solve, -x^3+2x+3=0
  37. ;;  2*x*sin(arcl/2/x)-linel
  38. (defun myfuntosolve (x)
  39.   (- (* x 2.0 (sin (/ arclength 2. x))) linelength)
  40. )

  41. ;;Main function by qjchen@gmail.com
  42. (defun c:t( / a ang arclength d linelength p1 r)
  43.   (setq a (vlax-ename->vla-object (car (entsel "\n Please select a line"))) arclength (getreal "\n Arc Length"))
  44.   (setq linelength (Vlax-get  a 'length))
  45.   (if (> arclength linelength)
  46.     (progn (princ (rtos (setq r (halfsolve myfuntosolve (/ linelength 2.0) (/ linelength 0.01))) 2 14))
  47.            (setq P1 (Vlax-get  a 'StartPoint)
  48.                  ang (Vlax-get  a 'Angle)
  49.                  d (sqrt (- (* r r) (* linelength linelength 0.25))))
  50.            (command "circle" (polar (polar P1 ang (* 0.5 linelength)) (+ ang (* 0.5 pi)) d) r)
  51.            (command "circle" (polar (polar P1 ang (* 0.5 linelength)) (+ ang (* 0.5 pi)) (- d)) r)
  52.     )
  53.     (princ "the Arc length is too small")
  54.   )
  55.   (princ)
  56. )
 楼主| 发表于 2011-3-19 19:19:44 | 显示全部楼层
这里真是高手如云!在一次计算盘梯的时候,最后归纳为这样一个问题!
在此非常感谢楼上各位不仅给出了思路,还给出了程序!非常感谢!
发表于 2011-3-31 15:50:24 | 显示全部楼层
很诧异,就在原弧线上再任意画两条弦,然后分别做出中垂线,得到两垂线交点便是圆心了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 04:10 , Processed in 0.137979 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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