(defun c:ts3 (/ *error* +- a ang ang0 angle0 angle1 angle2 angle3 b cen dis dis1 dis2 dxf e en ent ent2 epar gpt gpt1 grr i ind maj mpar n oor oos p1 p2 par per-pt point pt pt0 pt1 pt2 ptmid ptn ptold r1 r2 rad rat spar times tpar vlapto)
(vl-load-com)
(setvar "cmdecho" 0)
(defun *error* (msg)
(if oos
(setvar "osmode" oos)
)
(if oor
(setvar "orthomode" oor)
)
)
(setq oor (getvar "orthomode")
oos (getvar "osmode")
)
(setvar "orthomode" 0)
(setvar "osmode" 0)
(while (setq en (entsel "\n选择要修改的对象:"))
(if (= "LINE" (cdr (assoc 0 (entget (car en)))))
(progn
(prompt (strcat "\n指定新端点:"))
(setq point (osnap (cadr en) "nea"))
(setq ent (car en))
(setq dxf (entget ent))
(setq p1 (cdr (assoc 10 dxf))
p1 (trans p1 0 1)
p2 (cdr (assoc 11 dxf))
p2 (trans p2 0 1)
)
(setq dis1 (distance p1 point)
dis2 (distance p2 point)
)
(while (and (setq n (grread t 4 3)) (= (car n) 5))