(defun c:RCUT (/ pt1 pt2 ent mid oldlay rcut_error olcmdecho oldlay olosmode) ;; original name RodEnd.lsp ;; ;; angepasst an Internationale Version ;; durch www.black-cad.de, 2006 ;; (defun rcut_error (msg) (if (or (= msg "Function cancelled") (/= msg "quit / exit abort")) (princ (strcat "Error: " msg)) ) (command "._undo" "_e" "_undo" "") (setvar "CMDECHO" olcmdecho) (setvar "OSMODE" olosmode) (setvar "CLAYER" oldlay) (setq *error* old_err old_err nil ) (princ) ) (setq old_err *error* *error* rcut_error ) (setq olosmode (getvar "OSMODE") olcmdecho (getvar "CMDECHO") oldlay (getvar "clayer") ) (setvar "cmdecho" 0) (command "._undo" "_be") (prompt "\n RCUT - draws a cylindrical break mark") (initget 1) (setq pt1 (getpoint "\nPick right endpoint: ")) (initget 1) (setq pt2 (getpoint pt1 "\nPick left endpoint: ")) (setq ent (ssget pt1)) (if ent (setvar "clayer" (cdr (assoc 8 (entget (ssname ent 0))))) ) (setq mid (polar pt1 (angle pt1 pt2) (/ (distance pt1 pt2) 2.0))) (setvar "osmode" 0) (command "._arc" pt1 "_e" mid "_a" 90.0 "._arc" "" pt2 "._arc" mid "_e" pt2 "_a" 90.0) (command "._undo" "_e") (setvar "CLAYER" oldlay) (setvar "OSMODE" olosmode) (setvar "CMDECHO" olcmdecho) (setq *error* old_err) (princ) ) (princ)