guosheyang 发表于 2022-12-27 14:30:45

画两个相离圆的相切线

本帖最后由 guosheyang 于 2022-12-28 12:19 编辑

给大家分享个画两相离圆的公切线代码,请大家测试反馈,谢谢!

; Function: Draw the common tangent of two separated circles
; yangguoshe(ygs-羊羊羊)2022.12.27
(defun c:tt(/ A1 A2 A22 B BB C C1 C2 CIR1 CIR2 D DD R1 R2)
(setqcir1(car(entsel "\n Click the first circle"))
**** Hidden Message *****



      



llsheng_73 发表于 2022-12-29 17:06:49

(defun acos(a);;;-1<=a<=1
(angle'(0 0)(list a(sqrt(- 1(* a a)))))
   )
(defun makeline(p1 p2)
(entmakex(list'(0 . "line")(cons 10 p1)(cons 11 p2))))
(defun tt(e1 e2 / a c b r);;圆外公切线
(setq a(vl-sort(mapcar'(lambda(x)(mapcar'(lambda(y)(cdr(assoc y x)))'(40 10)))
                       (mapcar'entget(list e1 e2)))
                  (function(lambda(a b)(<(car a)(car b)))))
        r(mapcar'car a)
        c(mapcar'cadr a)
        b(apply'angle c)
        a(acos(/(*(car r)(apply'- r))(*(car r)(apply'distance c)))))
(mapcar(function(lambda(x)(apply'makeline(mapcar(function(lambda(y z)(polar y(+(* a x)b)z)))c r))))'(1 -1))
)
很多年前推算外公切线的,没推导内公切线
(defun c:tt( / e1 e2)
(while(and(setq e1(ssget":E:S"'((0 . "CIRCLE"))))
          (setq e1(ssname e1 0))
          (setq e2(ssget":E:S"'((0 . "CIRCLE"))))
          (setq e2(ssname e2 0))
          (tt e1 e2))))

)

liunian0524 发表于 2022-12-27 20:00:52

本帖最后由 liunian0524 于 2022-12-27 20:03 编辑

查看隐藏内容,我一直在用的:
(defun c:1c()(princ"直线相切于圆/圆弧")(setvar "cmdecho" 0) (command "line" "tan" pause "tan" pause "")(princ))

(defun c:2c()(princ"快速圆三相切")(setvar "cmdecho" 0)(command "circle" "3p" "tan" pause "tan" pause "tan" pause)(princ))

晨曦CAD 发表于 2022-12-27 14:51:22

为什么你的最后登录时间是 1970-1-1?

tigcat 发表于 2022-12-27 14:58:02

本帖最后由 tigcat 于 2022-12-27 15:14 编辑

看看楼主的办法
公切线有4条,两条外公切线,两条内公切线。
(command "line" "_tan" pause "_tan" pause "")

技术工作室 发表于 2022-12-27 15:08:16

支持一下,学习学习

guosheyang 发表于 2022-12-27 15:19:09

晨曦CAD 发表于 2022-12-27 14:51
为什么你的最后登录时间是 1970-1-1?

我也不知道   系统自动设置的

liuhe 发表于 2022-12-27 16:14:52

666666666666666

kkq0305 发表于 2022-12-27 17:51:59

看看{:1_1:}

zm880928 发表于 2022-12-27 19:15:54

神啊,终于让我找到了!

逍遥无声 发表于 2022-12-28 04:24:24

:handshake:handshake:handshake:handshake:handshake
页: [1] 2 3 4 5
查看完整版本: 画两个相离圆的相切线