带有列表和cons const的Ssget
当我使用list和cons时,我有一个关于如何正确格式化ssget的问题(我正在使用Lee的特殊LM:ssget函数,这样我就可以添加文本)。我已经看过afralisp的教程,并尝试应用它,但它不能正常工作。我的代码是(setq ss
(LM:ssget "\nSelect destination object(s): "
'(((list (cons 0 ent0))))
)
)其中ent0为:
(setq ent0 (assoc 0 (entget (car ent)))) 李的函数可以在这里找到:http://www.cadtutor.net/forum/showthread.php?94586-ssget函数的包装器。 野马队,
耳鼻喉的价值是什么?
如果是ENAME,则应使用:
(setq ent0 (assoc 0 (entget ent)))
根据上述公式,ent0的值将为:(0。“typeofentity”)
意味着你不需要做一个错误
因此,使用包装器:
(setq ss(LM:ssget "\nSelect destination object(s): "(list (list ent0))))
啊,这很有道理。谢谢,我现在可以选择的东西,现在它只是调试其余的代码哈哈。 Broncos15,
不客气!!
我建议您保留像ent0或ent这样的变量名来表示ENAME。
在您的情况下,filter或flt可能是更好的名称选择。
ymg公司 谢谢ymg3,我将开始将这种编码实践融入我的LISPs。我有一个快速的问题,为什么我必须使用2个不同的列表函数。我理解为什么我需要使用第一个,但我不明白为什么我需要第二个。 野马队,
对于您的问题,您需要它,因为报价列表中没有任何内容得到评估
例如:
'((list ent0)) will return((LIST ENT0))
因此,用您得到的列表替换报价:
(list (list ent0)) ---> (((0 . "ELLIPSE")))
包装函数需要一个列表列表作为参数。
该列表中的第一项可以是搜索范围,例如“_X”
然后是筛选子句。但过滤器必须是列表的列表。
所以你最终会得到这样的结果:
(lm:ssget "\n Your message: " (list "_X" (list ent0)))
ymg公司 谢谢ymg!这非常有用。我一直在努力学习更多关于LISP编程的知识,所以我真的很感谢你的解释。
页:
[1]