Ament 发表于 2022-7-5 15:10:22

要求用户输入并使用

大家好。我希望这一次我过得很轻松:
 
我想让用户在lisp过程中输入选择集的名称,然后调用它以突出显示其中的元素。
 
不幸的是,我不太确定如何让用户输入到工作中。见以下代码:
 
(setq ct -1)
   (setq ans (getstring "Please enter name of selection set. "))
   (setq ans (read ans))
   (repeat (sslength ans)
         (setq obX (ssname ans (setq ct (1+ ct))))
         (redraw obX 3)
    )
问题是我无法将字符串从用户传输到(不确定,但我想我需要)符号。
 
有人能给我一个如何转换它的提示吗。
 
顺致敬意,
 
阿门特

rlx 发表于 2022-7-5 15:24:06

(set (read "A") 5)
 
 
 
 
注意set和setq之间的差异
 
 
(原理a)->5
 
 
其他符号函数有vl符号名和vl符号值
 
 
gr.Rlx

marko_ribar 发表于 2022-7-5 15:37:13


(setq ans (getstring "\nSpecify name of sel. set : ")) ;;; you type selsetxxx
(set (read ans) (ssget)) ;;; to select entities and store them in selsetxxx

;;; 突出显示它
(sssetfirst nil selsetxxx);;;或者最终如果ans未本地化
(sssetfirst nil (vl-symbol-value (read ans)))
HTH。,M、 R。

Ament 发表于 2022-7-5 15:43:57

我检查了一下,但若我并没有错的话,它也允许我评估第一个参数。但我认为这对我不起作用。
 
(由于我多次使用同一变量,我更新了代码以使其更容易澄清)
 
我的内存中有一个名为tbe的选择集,因此用户输入名称,我得到字符串“tbe”集作为变量ans的值
现在我想在一个新的集合hl中有相同的选择集tbe的条目。
 
(编辑)
 
或者在我的COLD中使用答案(“tbe”)而不是hl。但它出错了,因为它不需要字符串。
(编辑结束)
 
 
也许我只是看不到森林里的福利斯。。

marko_ribar 发表于 2022-7-5 15:52:00

也许 吧:
(setq hl (vl-symbol-value (read ans)))

Lee Mac 发表于 2022-7-5 16:01:15

7

Ament 发表于 2022-7-5 16:16:09

 
 
就这样。。想得不够远。。非常感谢。
页: [1]
查看完整版本: 要求用户输入并使用