(defun c:POLYJOIN (/ en ed ln s1 s2) (princ "\n- Polyline Join -")(terpri) (lisp_set) (setq undoit t) (princ "\nSelect Lines to Join: ") (setq s1 (ssget '((-4 . "")))) (while s1 (setq en (ssname s1 0) ed (entget en) ln (CDR (assoc 0 ed)) ) ;end setq (if (or (= ln "POLYLINE") (= ln "LWPOLYLINE")) (command "._pedit" en "j" s1 "" "x") (command "._pedit" en "y" "j" s1 "" "x") ) (setq s1 (ssget "p")) ) ;end while (lisp_unset) (princ) ) ;******** Embedded Functions ******** ; -- error handling -- (defun my_error (s) (if (not (member s '("Function cancelled" "console break" "quit / exit abort"))) (princ (strcat "\nFunction error: " s)) ) (lisp_unset) ) ;end defun my_error ; -- begin clean -- (defun lisp_set () (if (or (wcmatch (getvar "ACADVER") "13*") (wcmatch (getvar "ACADVER") "14*")) (command "_.undo" "_begin") (command "_.undo" "_group") ) ; end if (setq sysvars (mapcar '(lambda (a b) (setq var (getvar a)) (setvar a b) (list a var)) '("cmdecho") '(0) ) ) (setq old_error *error* *error* my_error) ) ;end defun lisp_set ; -- finish clean -- (defun lisp_unset() (if sysvars (foreach var sysvars (apply 'setvar var) ) ) (if old_error (setq *error* old_error) ) (if dcl_file (unload_dialog dcl_file)) (command "_.undo" "_end") (setq my_error nil old_error nil sysvars nil) ) ;end defun lisp_unset