我的代码出错,更改tex
你好我有我的代码,它工作良好,直到我有一个在我的绘图层,其中没有文字实体的。如果是这种情况,我得到以下错误;
“命令:;错误:错误参数类型:lselsetp nil”
我试图在变量L14上添加If语句nil,但这并没有解决问题。
所以要澄清的是:我相信问题的出现是因为我有一个图层,但在特定图形的特定图层中没有“文本”。在其他图纸中,如果有文本,则需要使用代码。
谁能帮我用正确的if语句来解决这个问题。
(setq L14 (tblsearch "layer" "E_B_KV23_KABEL_LABEL_VB"))
(if (/= L14 nil)
(progn
(setq cnt 0 sset (ssget "x" '((8 . "E_B_KV23_KABEL_LABEL_VB"))))(setq len(sslength sset))(setq valid 0 erms "")
(setq cnt 0)
(while (> len 0)
(setq en (ssname sset 0))
(if (= (cdr (assoc 0 (entget en))) "TEXT")
(progn(command "change" en "" "" "" "isocp2_08" "" "" )(setq cnt(+ cnt 1))
)
)
(setq sset (ssdel en sset))(setq len(- len 1))
)
)
)
(if (= L14 nil)
(setq L14 nil)
)
提前感谢,
上下快速移动 这条线
(setq len(sslength sset))和之后的其余部分将运行,而不管(setq cnt 0 sset(ssget“x”'((8。“E\u B\u KV23\u KABEL\u LABEL\u VB”))的结果是否为零
因此,请尝试将其更改为:
(if (and(/= L14 nil)
(setq cnt 0 sset (ssget "x" '((8 . "E_B_KV23_KABEL_LABEL_VB")))))
(progn
(setq len(sslength sset))(setq valid 0 erms "")......
非常感谢pBe。
这很好地解决了问题。
上下快速移动
页:
[1]