57
351
294
后起之秀
使用道具 举报
114
1万
中流砥柱
(defun *error* (msg) (reset) (prompt (strcat "\n\n" msg " ")) ) ;defun
;| Curved Leader By Lee McDonnell 31.12.2008|;(defun c:cl () (c:CurvedLeader)) ; Program Shortcut(defun c:CurvedLeader (/ *error* varlist oldvars pl vlist stpt enpt ang pt ltxt) ;; --- Error Trap --- (defun *error* (msg) (mapcar 'setvar varlist oldvars) (if (= msg "") (princ "\nLeader Constructed.") (princ (strcat "\n" (strcase msg))) ) ;_ end if (princ) ) ; end of *error* (setq varlist (list "CMDECHO" "CLAYER" "PLINEWID") oldvars (mapcar 'getvar varlist) ) ; end setq ;; --- Error Trap --- (defun makelay (x y) (if (not (tblsearch "Layer" x)) (command "-layer" "m" x "c" y x "") ) ;_ end if ) ;_ end defun (defun polyvert (z) (mapcar 'cdr (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget z))) ) ;_ end defun (setvar "cmdecho" 0) (vl-load-com) (mapcar 'makelay '("LEADER" "LEADER-TEXT") '("2" "2")) (setvar "clayer" "LEADER") (prompt "\nConstruct Leader... ") (setvar "PLINEWID" 0.0) (command "_pline") (while (> (getvar "cmdactive") 0) (command pause)) (setq pl (entlast)) (setq vlist (polyvert pl)) (command "_pedit" pl "S" "") (setq stpt (car vlist) enpt (last vlist) ang (angle stpt (cadr vlist)) ) ;_ end setq (command "_pline" stpt "W" "0.0" "2.0" (polar stpt ang 4.0) "" ) ;_ end command (setq pt (polar enpt 0 2.5)) (if (/= (setq ltxt (getstring t "\nSpecify Text for Leader: ")) "") (entmake (list '(0 . "TEXT") '(8 . "LEADER-TEXT") (cons 10 pt) (cons 40 2.5) (cons 1 ltxt) '(50 . 0.0) '(7 . "STANDARD") '(71 . 0) '(72 . 0) '(73 . 2) (cons 11 pt) ) ; end list ) ; end entmake (alert "Blank Leader Created.") ) ;_ end if (*error* "") (princ)) ;_ end defun
;| Curved Leader By Lee McDonnell 31.12.2008|; ; Version 2 ~ Added Variable Menu.(defun c:cl () (c:CurvedLeader)) ; Program Shortcut(defun c:CurvedLeader (/ *error* varlist oldvars pl vlist stpt enpt ang pt ltxt) ;; --- Error Trap --- (defun *error* (msg) (mapcar 'setvar varlist oldvars) (if (= msg "") (princ "\nLeader Constructed.") (princ (strcat "\n" (strcase msg))) ) ;_ end if (princ) ) ; end of *error* (setq varlist (list "CMDECHO" "CLAYER" "PLINEWID") oldvars (mapcar 'getvar varlist) ) ; end setq ;; --- Error Trap --- (or (getenv "CL:ARROWW") (setenv "CL:ARROWW" "2.0")) (or (getenv "CL:ARROWL") (setenv "CL:ARROWL" "4.0")) (or (getenv "CL:TEXTH") (setenv "CL:TEXTH" "2.5")) (or (getenv "CL:TEXTO") (setenv "CL:TEXTO" "2.5")) (alert (strcat "Type "CLSET" to Alter Base Variables. \nCurrent Settings: \n\nArrow Width: " (getenv "CL:ARROWW") "\nArrow Length: " (getenv "CL:ARROWL") "\nText Height: " (getenv "CL:TEXTH") "\nText Offset: " (getenv "CL:TEXTO") ) ;_ end strcat ) ;_ end alert (defun makelay (x y) (if (not (tblsearch "Layer" x)) (command "-layer" "m" x "c" y x "") ) ;_ end if ) ;_ end defun (defun polyvert (z) (mapcar 'cdr (vl-remove-if '(lambda (x) (/= 10 (car x))) (entget z))) ) ;_ end defun (setvar "cmdecho" 0) (vl-load-com) (mapcar 'makelay '("LEADER" "LEADER-TEXT") '("2" "2")) (setvar "clayer" "LEADER") (prompt "\nConstruct Leader... ") (setvar "PLINEWID" 0.0) (command "_pline") (while (> (getvar "cmdactive") 0) (command pause)) (setq pl (entlast)) (setq vlist (polyvert pl)) (command "_pedit" pl "S" "") (setq stpt (car vlist) enpt (last vlist) ang (angle stpt (cadr vlist)) ) ;_ end setq (command "_pline" stpt "W" "0.0" "2.0" (polar stpt ang 4.0) "" ) ;_ end command (setq pt (polar enpt 0 2.5)) (if (/= (setq ltxt (getstring t "\nSpecify Text for Leader: ")) "") (entmake (list '(0 . "TEXT") '(8 . "LEADER-TEXT") (cons 10 pt) (cons 40 2.5) (cons 1 ltxt) '(50 . 0.0) '(7 . "STANDARD") '(71 . 0) '(72 . 0) '(73 . 2) (cons 11 pt) ) ; end list ) ; end entmake (alert "Blank Leader Created.") ) ;_ end if (*error* "") (princ)) ;_ end defun(princ "\nCurved Leader by Lee McDonnell Loaded. Type "CL" to Invoke.")(defun c:clset (/ arw arl txth txto) (or (getenv "CL:ARROWW") (setenv "CL:ARROWW" "2.0")) (or (getenv "CL:ARROWL") (setenv "CL:ARROWL" "4.0")) (or (getenv "CL:TEXTH") (setenv "CL:TEXTH" "2.5")) (or (getenv "CL:TEXTO") (setenv "CL:TEXTO" "2.5")) (alert (strcat "Current Settings: \n\nArrow Width: " (getenv "CL:ARROWW") "\nArrow Length: " (getenv "CL:ARROWL")