yaojing38 发表于 2025-1-24 14:35:51

两点画两点间固定比例的椭圆!

本帖最后由 yaojing38 于 2025-1-24 15:10 编辑

(defun make-Ellipse (pt11 pt22 / dis pd pt0 pt33 pt44)
(if (< (abs (- (cadr pt22) (cadr pt11))) (abs (- (car pt22) (car pt11)))) (setq pd t))
(setq pt33 (polar pt11 (angle pt11 pt22)(/ (distance pt11 pt22) 2)))
(setq dis (distance pt33 pt22))
(setq pt0 (trans '(0. 0. 0.) 0 1))
(if pd (setq pt44 (polar pt0(* 0 pi) dis)) (setq pt44 (polar pt0(* 0.5 pi) dis)))
(setqpt33(trans pt33 1 0)pt44(trans pt44 1 0))
(entmake
    (list
      '(0 . "ELLIPSE")
      '(100 . "AcDbEntity")
      '(100 . "AcDbEllipse")
      (cons 10 pt33)
      (cons 11 pt44)
      (cons 40 0.375787)
      (cons 41 0.0)
      (cons 42 6.28319)
    )
)
)有时候我们只是需要一个简单的椭圆,分享下经验!有需要的可以自己研究下!

xyp1964 发表于 2025-1-25 12:09:28

(defun Make-Ellipse (p1 p2 / pc pa pb)
;(Make-Ellipse (setq p0 (getpoint"\n基点<退出>: ")) (setq p1 (getcorner p0 "\n下一点<退出>: ")))
(setq pc (mapcar '(lambda (x y) (* (+ x y) 0.5)) p1 p2)
      pa (list (car p2) (cadr pc))
      pb (list (car pc) (cadr p2))
)
(command "_ellipse" "c" "non" pc "non" pa "non" pb)
(entlast)
)

muai2010 发表于 2025-1-25 19:32:10

有空研究下
页: [1]
查看完整版本: 两点画两点间固定比例的椭圆!