chelsea1307 发表于 2022-7-6 15:23:53

t之间有什么区别

我有四个lisp文件附件。BKGD。lsp和所有层。lsp都包含一个启动命令为BKGD和Cl.lsp和Leader。lsp都有cl的开始命令。如果有人能告诉我是否有区别,那就太好了。
BKGD。lsp
所有层。lsp
Cl.LSP
领导者。lsp

Lee Mac 发表于 2022-7-6 15:46:21

仅从外观上看,前两种方法似乎做了几乎相同的事情(改变层结构),而后两种方法也做了非常相同的事情-生成一个弯曲的引线。
 
但是你自己测试一下,看看他们的表现是否有什么不同。

Lee Mac 发表于 2022-7-6 15:51:57

CL.lsp还包含一些错误,一些包含在错误处理程序中,其他则包含在其他地方,例如错误处理程序中:
 
(defun *error* (msg)
   (reset)
   (prompt (strcat "\n\n" msg ""))
   ) ;defun
 
“重置”没有功能定义

Lee Mac 发表于 2022-7-6 16:00:15

为了每个人的利益,我已经更新了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

Lee Mac 发表于 2022-7-6 16:15:37

另一个更新版本:
 

;|

   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

chelsea1307 发表于 2022-7-6 16:33:19

谢谢你的信息。我运行了它们,它们似乎做了几乎相同的事情,我只是想确保在删除一个之前,其中没有任何额外的内容。
页: [1]
查看完整版本: t之间有什么区别