CadFrank 发表于 2022-7-5 17:28:51

把事情搞混了

你好
 
我有一个特殊的要求,我需要指导。
 
这是我的代码:
(if (= *esp* nil)
   (if (= (getvar 'LUNITS) 2)
                (setq *esp* 400)
                (setq *esp* 16)
                )
)   

(setq *esp*
(cond
   (
      (getint
          (strcat "\nModify span<" (itoa *esp*) ">: ")
      ) ;_ Fin de getkword
   )
   (itoa *esp*)
) ;_ Fin de cond
) ;_ Fin de setq
   
(initget 1)
(setq pt1 (getpoint "\nPick a starting point : "))
(initget 1)
(setq pt2 (getpoint pt1 "\nPick an end point : "))

我想把它们混合在一起,这样我就可以选择更改getint。只要我输入一个键。
 
比如使用getKword之类的。
 
谢谢

Stefan BMR 发表于 2022-7-5 18:03:48

嗨,弗兰克
 
首先,在cond表达式中尝试((itoa*esp*)。
注意双括号。
 
我有类似的东西,如果我能找到的话,我会贴在这里。

Stefan BMR 发表于 2022-7-5 18:13:32

这将允许您选择第一个点或更改*esp*值。
(if
(and
   (progn
   (while
       (progn
         (initget 128)
         (setq pt1
         (getpoint
             (strcat
               "\nPick start point or specify span <"
               (itoa *esp*)
               ">: "
             )
         )
         )
         (cond
         ( (and
               (eq (type pt1) 'STR)
               (= (atoi pt1) (distof pt1))
             )
             (setq *esp* (atoi pt1))
         )
         ( (eq (type pt1) 'STR)
             (princ "\nInvalid number.")
         )
         )
       )
   )
   pt1
   )
   (setq pt2 (getpoint pt1 "\nPick an end point : "))
)
(progn
   ;do you stuff
   (print (list pt1 pt2))
)
)

CadFrank 发表于 2022-7-5 18:38:06

非常感谢!
 
干杯和啤酒!
页: [1]
查看完整版本: 把事情搞混了