[讨论]关于画切线的问题?
像这样的两个圆,要画这两个圆的切线,有没有什么更好的方法!说来看看。 ;by BDYCAD<BR>; 2004-07-04<BR>(defun c:tt (/ d1 d2 d1c d2c d1r d2r )<BR> (setq d1 (entsel "\n请选择 d :"))<BR> (setq d2 (entsel "\n请选择 D :"))<BR> (setq d1c (cdr (assoc 10 (entget (car d1)))))<BR> (setq d2c (cdr (assoc 10 (entget (car d2)))))<BR> (setq d1r (cdr (assoc 40 (entget (car d1)))))<BR> (setq d2r (cdr (assoc 40 (entget (car d2)))))<BR> (vl-cmdf "line" "_tan" (polar d1c (/ pi 2.0) d1r) "_tan"(polar d2c (/ pi 2.0) d2r)"")<BR> (setq sl(entlast))<BR> (vl-cmdf ".mirror" sl "" d1c d2c "n")<BR> (princ)) 怎么图片传不上来呀? 怎么回事呀 阳春白雪发表于2004-7-4 14:27:00static/image/common/back.gif怎么图片传不上来呀?
<BR>可能是你的文件太大,或者是格式不对。 哦,谢谢提醒,
是太大了,现在我传上来,大家看一下,怎么画这两个圆的切线,(简单一点的办法哦)
还有相交叉的一组切线没画哟
本帖最后由 作者 于 2004-7-4 16:53:37 编辑 <br /><br /> 楼上的, 搞掂了
(defun c:tt (/ d1 d2 d1c d2c d1r d2r )<BR> (setq d1 (entsel "\n请选择 d :"))<BR> (setq d2 (entsel "\n请选择 D :"))<BR> (setq d1c (cdr (assoc 10 (entget (car d1)))))<BR> (setq d2c (cdr (assoc 10 (entget (car d2)))))<BR> (setq d1r (cdr (assoc 40 (entget (car d1)))))<BR> (setq d2r (cdr (assoc 40 (entget (car d2)))))<BR> (vl-cmdf "line" "_tan" (polar d1c (/ pi 2.0) d1r) "_tan"(polar d2c (/ pi 2.0) d2r)"")<BR> (setq sl1(entlast))<BR> (IF (> (DISTANCE D1C D2C) (+ D1R D2R))<BR> (progn<BR> (setq tp1 (polar d1c (+ (angle d1c d2c) (/ pi 10)) d1r))<BR> (setq tp2 (polar d2c (- (angle d2c d1c) (/ pi 10)) d2r))<BR> (vl-cmdf "line" "_tan" tp1 "_tan"tp2"")<BR> (setq sl2 (entlast))<BR> (vl-cmdf ".mirror" sl1 sl2 "" d1c d2c "n"))<BR> (vl-cmdf ".mirror" sl1 "" d1c d2c "n"))<BR> (princ)) 捕捉就行了! 画这两个圆的切线好像不用像8楼那么复杂吧!对象捕捉不是有个“切点”吗。
页:
[1]
2