CAD中怎样把一个图层绘制的东西置于其他图层之下

2024-11-29 10:36:57
推荐回答(3个)
回答1:

这个有两种方法,你可以将你需要显示的放在一个图层里,将其它的再放到一个图层里,然后调成你所需要显示的那个图层就可以了。图层里有图层显示开关。第二种就是不使用图层,也可以,CAD中有命令:前置、置于对象之上等命令。用此命令也是可行的。

回答2:

  1. 用快速选择的方法,选择这个图层的所有对象,右键,绘图次序,【后置】

  2. 由于块里面的对象无法快速选择,这个用程序就简单了很多。

  3. (defun C:tes ( / blockdef dict doc lst obj sortents &tc1)
     (setvar "cmdecho" 0)
     (setvar "blipmode" 0)
     (vl-load-com)
     (if (setq &tc1 (entsel "\n请选择要把图层放在最上面的参考图层"))
      (progn
       (setq &tc1 (cdr (assoc 8 (entget (car &tc1)))))
       (setq  doc (vla-get-ActiveDocument (vlax-get-acad-object)))
       (vlax-for blockdef (vla-get-blocks doc)
        (cond
         ((not (VL-CATCH-ALL-ERROR-P (setq sortents (VL-CATCH-ALL-APPLY 'vla-item (list (setq dict (vla-GetExtensionDictionary blockdef)) "ACAD_SORTENTS"))))))
         ((setq sortents (VL-CATCH-ALL-APPLY 'vla-AddObject (list dict "ACAD_SORTENTS" "AcDbSortentsTable"))))
        )
        (setq lst nil)
        (vlax-for obj blockdef (if (= &tc1 (vla-get-layer obj)) (setq lst (cons obj lst))))
        (if lst (progn (vla-MoveToBottom sortents (vlax-make-variant (vlax-safearray-fill (vlax-make-safearray vlax-vbobject (cons 0 (1- (length lst)))) lst)))));vla-MoveTotop为图层前置,vla-MoveToBottom为图层后置
       )
       (vla-regen doc :vlax-true)
      )
     )
     (princ)
    );复制到记事本,以【.lsp】为后缀命名,打开CAD加载了,命令【TES】,选择参考图层,那么这个图层的所有对象就置于最下层,包括块里面的对象也同时后置了。这个是我以前写过图层前置的程序,要后置的话,修改一个函数就可以使用了。

回答3:

调出“绘图次序”,点击“前置”,选择你的管道,回车。