明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1761|回复: 4

[LISP]几何方式画出两任意曲线的之间的公切线

[复制链接]
发表于 2005-3-24 18:36 | 显示全部楼层 |阅读模式
很多朋友说用LINE指令和 TAN(相切点)对象锁点画出两圆的公切线,我试了一下发现作出来不是公切线,因为将作出来的线延长会与圆相交,该线与两圆共有3个交点。 所以我找到以下程序,可以画出任意两曲线之间的公切线。 ; 绘制两曲线之间的公切线
(defun c:t2c ()
(setq oldmode (getvar "osmode") ;存储原有的对象锁点与指令响应模式
oldecho (getvar "cmdecho")
)
(setvar "osmode" 0) ;关闭对象锁点与指令响应
(setvar "cmdecho" 0) (setq p1 (getpoint "\nPick on the first curve: ")) ;在第一个切点附近点选一点
(setq p2 (getpoint p1 "\nPick on the second curve: ")) ;在第二个切点附近点选一点

(repeat 7
; 从 p1 画一条临时线到 p2 附近的曲线切点,取得新切点,然后删除临时线
(command ".line" p1 (setq p3 (osnap p2 "tan")) "")
(command ".erase" "L" "")
(setq p2 p3) ; 从 p2 画一条临时线到 p1 附近的曲线切点,取得新切点,然后删除临时线
(command ".line" p2 (setq p3 (osnap p1 "tan")) "")
(command ".erase" "L" "")
(setq p1 p3)
)

(command ".line" p1 p2 "") ;画出公切线 (setvar "osmode" oldmode)
(setvar "cmdecho" oldecho)
(princ)
) 请大家试试^_^
发表于 2005-3-24 19:47 | 显示全部楼层
思路比较特别,值得参考。
发表于 2005-3-24 20:50 | 显示全部楼层
TAN?


我不喜欢它,程序和画图里的情况有所不同。
发表于 2005-3-24 21:00 | 显示全部楼层
应该说基本上达到相切的程度,这种思路是一种无限逼近法,当循环次越多越接近理论上的公切线。楼主提供的程序中重复7次也差不多了,应该还是比较理想的。
发表于 2005-4-21 10:59 | 显示全部楼层
学无止境
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 06:11 , Processed in 0.146632 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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