这不是我的子功能;它是AutoCAD的,在Acad20##Doc中定义。lsp
不,您对TBLSEARCH的调用返回非Nil,因此IF语句的测试表达式很好-鉴于您想要操作在所述层上找到的实体,因此没有必要,只需调用SSGET,而不是测试所述层上的有效实体选择集(如果实体被分配到该层,则隐式存在)。
在快速测试中,这些也可以很好地工作:
- (defun c:SendLayerToBack2 (/ ss)
- (if (setq ss (ssget "_x" '((8 . "L1"))))
- (command "._draworder" ss "" "_b")
- (prompt "\n** Layer not found ** ")
- )
- (princ)
- )
- (defun c:BringLayerToFront2 (/ ss)
- (if (setq ss (ssget "_x" '((8 . "L1"))))
- (command "._draworder" ss "" "_f")
- (prompt "\n** Layer not found ** ")
- )
- (princ)
- )
... 主要区别在于我的函数提供了“b”和“f”本地化选项,而上面的原始代码没有。在一个测试中,添加这个本地化选项可以“修复”代码。
HTH公司 |