明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2395|回复: 14

[求助]如何划圆弧

  [复制链接]
发表于 2003-10-23 13:39:00 | 显示全部楼层 |阅读模式
请各位帮帮忙,兄弟有一个小问题。过已知点如何画一条于已知圆或圆弧相切的圆弧?我现在的做法是过已知点画一个圆,然后再以已知圆的圆心画另一相应的圆,这样的两个交点就是所求圆弧的圆心,再用修剪命令。这样的做法很烦,还有更简单的方法吗?
发表于 2003-10-23 13:47:00 | 显示全部楼层
少一个条件。
发表于 2003-10-23 13:49:00 | 显示全部楼层
好象没有直接的方法
发表于 2003-10-23 16:10:00 | 显示全部楼层
不明白,说详细一点,传个图上来好吗?
发表于 2003-10-23 16:12:00 | 显示全部楼层
在LISP版块有meflying版主的相关程序,能快速的画出来
 楼主| 发表于 2003-10-24 15:52:00 | 显示全部楼层
过A如何作一R为60的圆弧?

本帖子中包含更多资源

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

x
发表于 2003-10-24 16:21:00 | 显示全部楼层
唉,不是跟你说了去论坛收索吗?害得我给你找了这么久!
以下是MEFLYING版主曾经写的:
(defun GetInterPoint (ent1 ent2 / ax_ent_1 ax_ent_2 intpoints points i)
  (setq ax_ent_1 (vlax-ename->vla-object ent1)
        ax_ent_2 (vlax-ename->vla-object ent2)
  )
  (setq intpoints (vla-intersectwith ax_ent_1 ax_ent_2 acextendnone))
  (setq intpoints (vlax-variant-value intpoints))
  (setq i 0)
  (if (> (vlax-safearray-get-u-bound intpoints 1) 0)
    (repeat (/ (+ 1
              (- (vlax-safearray-get-u-bound intpoints 1)
                 (vlax-safearray-get-l-bound intpoints 1)
              )
           )
           3
        )
      (setq points (append points (list (list
        (vlax-safearray-get-element intpoints i)
        (vlax-safearray-get-element intpoints (+ i 1))
        (vlax-safearray-get-element intpoints (+ i 2))
      )))
      )
      (setq i (+ 3 i))
    )
  )
  points
)

(defun c:DrawCircle( / ent pt r entc entl pts i)
  (setq ent (car (entsel "\n选择直线或圆弧...")))
  (setq pt (getpoint "\n输入通过点:"))
  (setq r (getreal "\n输入半径:"))
  (setvar "cmdecho" 0)
  (command "_.circle" pt r)
  (setq entc (entlast))
  (command "_.offset" r ent pt "")
  (setq entl (entlast))
  (setq pts (GetInterpoint entc entl))
  (entdel entc)
  (entdel entl)
  (setq i 0)
  (repeat (length pts)
    (setq pt (nth i pts))
    (command "_.circle" pt r)
    (setq entc (entlast))
    (if (= (length (GetInterpoint entc ent)) 0) (entdel entc))
    (setq i (1+ i))
  )
  (princ)
)
发表于 2003-10-24 16:57:00 | 显示全部楼层
我这有个相对简单的方法,把已知圆的圆心和已知点通过直线相连接,然后在圆的命令行选择2P,直径第一点指定直线与已知圆的交点,第二点选择已知点,这样就可以做一个过已知点与已知圆现切的圆。
发表于 2003-10-24 17:38:00 | 显示全部楼层
聪明,你利用的是连心线长度为两半径之和原理,看来你的几何学得不错呵!
发表于 2003-10-24 18:07:00 | 显示全部楼层
过奖过奖!!:)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-25 13:01 , Processed in 0.166777 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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