Dustin11 发表于 2022-7-6 06:34:14

修剪变量?

我正在寻找一种方法,可以从我设置的变量中删除一些信息。通过从DXF列表中获取实体的层名称,我将实体的层名称设置为变量,因此它的内容如下:“(8)。”G-GENL-TEXT”),我希望将其精简为:“G-GENL-TEXT”,这样我就可以用它来设置我的当前层。
 
谢谢

MSasu 发表于 2022-7-6 06:46:30

答案是CDR函数——虚线对的行为与列表略有不同。
(cdr '(8 . "G-GENL-TEXT"))
原因是允许您通过保留其形式(原子或列表)从关联列表中提取数据:
(cdr '(10 1.0 2.0 3.0))

BlackBox 发表于 2022-7-6 07:01:44

 
考虑:

(defun c:FOO (/ eName)
(if (setq eName (car (entsel "\nSelect entity to set layer current: ")))
   (setvar 'clayer (cdr (assoc 8 (entget eName))))
)
(princ)
)

 
... 或者简单地使用LAYMCUR命令。

Dustin11 发表于 2022-7-6 07:18:32

......我简直不敢相信我竟然没有想到使用cdr功能来实现这一点。
 
Blackbox-我稍后在代码中使用了Laycur命令,但我想改用setvar,这样代码就可以更自动地提示用户进行一系列不同的选择。谢谢你的建议。

BlackBox 发表于 2022-7-6 07:30:21

 
别担心;每个人都需要不时的提醒。
 
我只在有利的情况下使用命令。。。我自己通常也更喜欢Setvar方法。
 
干杯

Lee Mac 发表于 2022-7-6 07:42:43

除了已经提供的优秀信息外,这篇文章可能也很有趣。
页: [1]
查看完整版本: 修剪变量?