Silvercloak 发表于 2022-7-5 19:51:15

这有什么问题吗

很久以来,我一直在复习AutoLISP教程,以摆脱一些锈迹。
 
我一直在努力使这个练习有效,我从(http://www.jefferypsanders.com/autolispintr_sele.html)它拒绝工作。我倾向于使用条件,而不是IF语句,但仍然。。。很高兴知道为什么它一直跳转到警报。
 
(defun C:myProg2()

(if (setq mySet(ssget "X" (list (cons 8 "STR")(cons 0 "CIRCLE")))) ;get set

(progn                               ;going to have multiple statements

   (setq pt1(getpoint "\n Base Point: "))            ;store base point

   (setq pt2(getpoint "\n Displacement Point: "))   ;store displacement pt

   (command "move" mySet "" pt1 pt2)   ;move all entities

)                                     ;close the progn

(alert "No entites Match Criteria!") ;else alert the user of an error

)                                    ;close the if statement

(princ)                               ;clean exit (supresses echo)

)                                       ;close the program
 
编辑:我刚刚意识到-这个代码只有在图层STR上有一个圆圈的时候才有效。天啊,我生锈了。。。没有关系。我不能删除这个该死的帖子。

BlackBox 发表于 2022-7-5 21:34:43

无论如何,FWIW。。。。
 

(defun c:FOO (/ ss startPoint endPoint)
(if
   (and
   (setq ss (ssget "_x"
                     (list '(0 . "CIRCLE")
                           '(8 . "STR")
                           (cons 410 (getvar 'ctab))
                     )
            )
   )
   (setq startPoint (getpoint "\nSpecify start point: "))
   (not (initget 32))
   (setq endPoint (getpoint startPoint "\nSpecify end point: "))
   )
(command "._move" ss "" startPoint endPoint)
   (prompt
   (strcat
       (if ss
         "\n** Invalid point ** "
         "\n** Nothing selected ** "
         )
       )
   )
)
(princ)
)
页: [1]
查看完整版本: 这有什么问题吗