如何编程实现选取一线段两端各伸长一定长度?
首先想到使用stretch命令,但是要crossing-window选取才行,有什么别的方案?取中点为基点scale
摘录的一程序:
(defun C:ys(/ ent l el ps pe ps_new pe_new)(setq ent (car (entsel "\n请选择实体:")));;未做保护,要确保选择的是直线段
(if ent
(progn
(setq l (getdist "\n请输入延伸长度:"))
(if l
(progn
(setq el (entget ent))
(setq ps (cdr (assoc 10 el)))
(setq pe (cdr (assoc 11 el)))
(setq ps_new (polar ps (angle pe ps) l))
(setq pe_new (polar pe (angle ps pe) l))
(setq el (subst (cons 10 ps_new) (assoc 10 el) el))
(setq el (subst (cons 11 pe_new) (assoc 11 el) el))
(entmod el)
))
))
(princ)
)
页:
[1]