明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 10695|回复: 60

[求助]这个LISP程序如何编写?

  [复制链接]
发表于 2003-10-15 18:10:00 | 显示全部楼层 |阅读模式
各位,我一直想编这样一个程序,就是通过任意一点,与一直线或是圆弧相切,画一个圆,圆的半径已知!请问这个程序如何编写,按照尺规作图法可以作来了,现在想用一个程序来简便一下!请大家提供一些编写思路,谢谢!
"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2003-10-15 18:26:00 | 显示全部楼层
我认为程序的编写也是根据的的尺规作图方法来决定的。数据模型应该是相同的。都是根据直线或者圆弧的方程来决定程序走向。
 楼主| 发表于 2003-10-15 23:06:00 | 显示全部楼层
这种思路我也想,但是这两个方程求解很麻烦!有没有更好方法!
发表于 2003-10-16 08:13:00 | 显示全部楼层
我個功能叫做過點加切畫圓. 在Master CAM軟件最常用到. 我也花了不少心思去試但還沒有成功. 這是個蠻好的功能.





-----------------------------------------------------------------------
我愛CAD. 共同學習. 共同進步.
发表于 2003-10-16 08:30:00 | 显示全部楼层
圆半径已知,点又确定了,那这个圆还有什么好讨论的呢?

如果你的意思是想说圆心不确定,那这样的圆有无数个,不知道你的尺规作图怎么作的
发表于 2003-10-16 08:51:00 | 显示全部楼层
我写了一个通过任意点作已知直线或圆弧相切的最小半径的圆

  1. (vl-load-com)
  2. (defun c:DrawCircle( / ent pt pte prCenter r ptr)
  3.   (setq ent (car (entsel "选择直线或圆弧...")))
  4.   (setq ent (vlax-ename->vla-object ent))
  5.   (setq pt (getpoint "选择圆心:"))
  6.   (setq ptr (vlax-curve-getClosestPointTo ent pt))
  7.   (setq pte (vlax-curve-getEndPoint ent))
  8.   (setq pts (vlax-curve-getStartPoint ent))
  9.   (if (or (equal ptr pte) (equal ptr pts))
  10.     (progn
  11.       (setq ptCenter (vlax-safearray->list (vlax-variant-value  (vla-get-center ent))))
  12.       (setq r (vla-get-radius ent))
  13.       (setq ptr (polar pt (angle pt ptCenter) (+ r (distance pt ptCenter))))
  14.     )
  15.   )
  16.   (command "_.circle" pt (distance pt ptr))
  17.   (princ)
  18. )
发表于 2003-10-16 09:20:00 | 显示全部楼层
按楼主的意思是要画的圆通过已知点,而不是圆心,所以meflying兄的程序还要改一下,你的程序类似于作已知点到直线的垂线。
发表于 2003-10-16 09:31:00 | 显示全部楼层
理解出错了,我的程序不只是做垂线,还有圆弧也可以的。
等我考虑一下
发表于 2003-10-16 09:44:00 | 显示全部楼层
程序本意是以知一條圓弧邊上的一個點+圓弧的半麼并要和一個圖元相切畫一圓弧或圓. 但我個人認可能性一般有兩種.




-------------------------------------------------------
我愛CAD. 共同學習. 共同進步.
发表于 2003-10-16 09:47:00 | 显示全部楼层
本帖最后由 作者 于 2003-10-16 11:14:47 编辑

那两种可能性BDYCAD兄能具体谈一下吗?
  是不是点的一边一个呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-27 05:31 , Processed in 0.176660 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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