;;;Elise Moss ;;;www.mossdesigns.com ;;;August 2005 ;;;;;;this routine switches the start and endpoints of a line ;;;;;; (defun c:swline () ;;; get the line (setq ent (car (entsel "\nSelect a line to swap endpoints: "))) ;;get entity data (setq ent-data (entget ent)) ;;verify a line was selected (setq ent-type (cdr (assoc 0 ent-data))) (while (/= ent-type "LINE") (alert "A line was not selected - Try again.") ;;;get the line (setq ent (car (entsel "\nSelect a line to swap endpoints: "))) ;;get entity data (setq ent-data (entget ent)) ;;verify a line was selected (setq ent-type (cdr (assoc 0 ent-data))) ) ;end while ;;now a line has been selected and verified ;;;get the start point and end point (setq start-point (cdr (assoc 10 ent-data))) (setq end-point (cdr (assoc 11 ent-data))) ;;;swap the endpoints (setq ent-data (subst (cons 10 end-point) (assoc 10 ent-data) ent-data)) (setq ent-data (subst (cons 11 start-point) (assoc 11 ent-data) ent-data)) (entmod ent-data) (alert "Line endpoints have been swapped!") ) ;;;end defun