对于绘图细节,我还创建了 #'d lisps,可以在 #'d 图层中绘制一条线,或者将所选对象更改为该图层。当然,您可以使用任何图层名称,但它使事情变得简单。(是的,有超过4个权重,我只是从不使用5和6)
- (defun c:1 (/ p1) (XYZ_laycmnd "001") (princ))
- (defun c:2 (/ p1) (XYZ_laycmnd "002") (princ))
- (defun c:3 (/ p1) (XYZ_laycmnd "003") (princ))
- (defun c:4 (/ p1) (XYZ_laycmnd "004") (princ))
- (defun c:5 (/ p1) (XYZ_laycmnd "005") (princ))
- (defun c:6 (/ p1) (XYZ_laycmnd "006") (princ))
- (defun c:0 (/ p1) (XYZ_laycmnd "0") (princ))
- ;;; either change current selection to current layer or start drawing line on current layer
- (defun XYZ_laycmnd ( lyr / ss1 p1 idx)
- (if (and (tblsearch "LAYER" lyr)
- (setq ss1 (ssget "_I"))
- )
- ;; if selection, change to layer
- (repeat (setq idx (sslength ss1))
- (vla-put-layer
- (vlax-ename->vla-object (ssname ss1 (setq idx (1- idx))))
- lyr
- )
- )
- ;; if no selection, start drawing line on layer
- (progn
- (command "layer" "set" lyr "on" lyr "")
- (if (setq p1 (getpoint "LINE From point: "))
- (command "line" p1)
- ) ;if
- ) ;progn
- ) ;if
- )
|