hgcwh 发表于 2022-7-6 07:52:52

最后一个问题

你好
我插入一个文本块,然后分解它,然后我想替换一些文本
这是我的lsp:
(命令“-Insert”pause pause“1”“1”“0”)
(setq BA_O(entlast))
(命令“explode”BA_O)
(setq BA(entlast))
(setq BA_数据(entget(car BA)))
…….
似乎我无法使用“(setq BA(entlast))”获得分解的文本对象。
它给了我“错误:错误的参数类型:consp”请告诉我如何将分解文本对象分配给变量BA。
非常感谢
杰伊

BlackBox 发表于 2022-7-6 08:21:37

您应该做的是在插入/分解块之前存储(entlast)。然后使用(entnext)获取正在进行的实体(在之前存储的(entlast)之后的实体),直到到达要处理的文本/多行文字实体。

Tharwat 发表于 2022-7-6 08:32:05

也许有了这个。。。。。
 

(setq ss (ssget "_p"))

hgcwh 发表于 2022-7-6 08:48:13

你好,RenderMan谢谢你的帮助。我按照您的建议修改了代码(见下文),BA_O用于保存最后一个对象。(entnext BA_O)就是得到被分解的东西。
但我仍然收到警告错误:
错误的函数:。
请告知。谢谢
杰伊

(命令“-Insert”pause pause“1”“1”“0”)
(setq BA_O(entlast))
(命令“explode”BA_O)
(setq BA(entnext BA_O))
(setq BA_数据(entget(car BA)))

Lee Mac 发表于 2022-7-6 08:59:17

变量“BA”不是一个列表,而是一个实体名称-您试图在此变量上使用car函数,导致了一个错误。
 
可能使用星号(*)插入已分解的块:
 
然后,“lst”是组成块的实体的实体名称列表-记住在程序中定位该变量,否则它将在每次运行中重复。
 
或者,更多错误捕捉:
 
2
页: [1]
查看完整版本: 最后一个问题