当没有
我有以下代码:(setq PT1 (getpoint))
(setq PT2 (getpoint PT1))
(command "LINE" PT1 PT2)
(command)
(setq obj1 (entget (entlast)))
(setq ent (car (nentsel "\nSelect Entity: \n")))
(cond
((/= ent nil)
(setq obj2 (entget ent))
(command "chamfer" obj ent)
)
((= ent nil)
(setq PT3 (getpoint ent))
(command "LINE" PT2 PT3)
)
)
)
如果没有实体,它应该能够画一条线,直到我试图选择实体为止。然而,当我执行这段代码时,它会指出我有一个不合适的数据类型。如果某个实体在某个特定点不存在,我应该如何修改代码,以便能够从最后一个点到我尝试选择某个实体的点绘制线?
我更喜欢IF语句(您的代码使用cond)
实例
(if ent
(alert "Do chamfer")
(alert "Draw line")
) ;_ end of if
试试这个:
(defun c:test ( / pt1 pt2 obj1 ent PT3)
(setq PT1 (getpoint))
(setq PT2 (getpoint PT1))
(command "_LINE" "_non" PT1 "_non" PT2 "")
(setq obj1 (entlast))
(setq ent (entsel "\nSelect Entity: \n"))
(setq PT3 (cadr (grread T)))
(if ent
(command "_chamfer" obj1 ent)
(command "_LINE" "_non" PT2 "_non" PT3 "")
)
)
页:
[1]