t之间有什么区别
我有四个lisp文件附件。BKGD。lsp和所有层。lsp都包含一个启动命令为BKGD和Cl.lsp和Leader。lsp都有cl的开始命令。如果有人能告诉我是否有区别,那就太好了。BKGD。lsp
所有层。lsp
Cl.LSP
领导者。lsp 仅从外观上看,前两种方法似乎做了几乎相同的事情(改变层结构),而后两种方法也做了非常相同的事情-生成一个弯曲的引线。
但是你自己测试一下,看看他们的表现是否有什么不同。 CL.lsp还包含一些错误,一些包含在错误处理程序中,其他则包含在其他地方,例如错误处理程序中:
(defun *error* (msg)
(reset)
(prompt (strcat "\n\n" msg ""))
) ;defun
“重置”没有功能定义 为了每个人的利益,我已经更新了CL.lsp文件:
;|
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")
"\nText Height: "
(getenv "CL:TEXTH")
"\nText Offset: "
(getenv "CL:TEXTO")
) ;_end strcat
) ;_end alert
(if (setq arw (getreal (strcat "Specify Arrow Width <"
(getenv "CL:ARROWW")
"> : "
) ;_end strcat
) ;_end getreal
) ;_end setq
(setenv "CL:ARROWW" (rtos arw))
) ;_end if
(if (setq arl (getreal (strcat "Specify Arrow Length <"
(getenv "CL:ARROWL")
"> : "
) ;_end strcat
) ;_end getreal
) ;_end setq
(setenv "CL:ARROWL" (rtos arl))
) ;_end if
(if (setq txth (getreal (strcat "Specify Text Height <"
(getenv "CL:TEXTH")
"> : "
) ;_end strcat
) ;_end getreal
) ;_end setq
(setenv "CL:TEXTH" (rtos txth))
) ;_end if
(if (setq txto (getreal (strcat "Specify Text Offset <"
(getenv "CL:TEXTO")
"> : "
) ;_end strcat
) ;_end getreal
) ;_end setq
(setenv "CL:TEXTO" (rtos txto))
) ;_end if
(princ "\nBase Variables Set.")
(princ)
) ;_end defun
谢谢你的信息。我运行了它们,它们似乎做了几乎相同的事情,我只是想确保在删除一个之前,其中没有任何额外的内容。
页:
[1]