MikeP 发表于 2022-7-6 09:23:12

为什么这行不通?

(defun c:il (/ p ang l p1)
(if (setq p (getpoint "\n base point :"))
   (progn
   (while
       (setq Ang (getangle p "\n Next point for Angle :"))
      (setq l (getdist "\n Specify length :"))
      (entmakex (list (cons 0 "LINE")
                        (cons 10 p)
                        (cons 11 (setq p1 (polar p ang l)))
                  )
      )
      (setq p p1)
   )
   )
   (princ)
)
 
当我加载这个并输入命令“IL”时,它告诉我“未知命令”,为什么它找不到这个lisp?

David Bethel 发表于 2022-7-6 09:50:25

以下是颜色编码真正有帮助的地方:
 

(defun c:il (/ p ang l p1)
(if (setq p (getpoint "\n base point :"))
   (progn
   (while
       (setq Ang (getangle p "\n Next point for Angle :"))
      (setq l (getdist "\n Specify length :"))
      (entmakex (list (cons 0 "LINE")
                        (cons 10 p)
                        (cons 11 (setq p1 (polar p ang l)))
                  )
      )
      (setq p p1)
   )
   )
   (princ)
)

 
 
缺少右括号。
 
-大卫

David Bethel 发表于 2022-7-6 10:15:46

Lisp程序许多恼人的愚蠢括号
 
I'r尽量让它更像白痴证明:
 
 

(defun c:il (/ p ang l p1)
(initget 1)
(setq p (getpoint "\n Base point :"))
(while
    (setq ang (getangle p "\n Next point for Angle :"))
    (initget 3)
    (setq l (getdist "\n Specify length :"))
    (setq p1 (polar p ang l))
    (entmakex (list (cons 0 "LINE")
                  (cons 10 p)
                  (cons 11 p1)))
    (setq p p1))
(princ))

 
 
-大卫

MikeP 发表于 2022-7-6 10:38:51

谢谢你,真是太棒了。现在我需要它来工作
 
(defun c:il (/ p ang l p1)
(initget 1)
(setq p (getpoint "\n Base point :"))
(while
    (setq ang (getangle p "\n Next point for Angle :"))
    (initget 3)
    (setq l (getdist "\n Specify length :"))
    (setq p1 (polar p ang (* l 0.816496581)))
    (entmakex (list (cons 0 "LINE")
                  (cons 10 p)
                  (cons 11 p1)))
    (setq p p1))
(princ))
页: [1]
查看完整版本: 为什么这行不通?