(defun c:createlayer(/ ACADDOC ACOLOR ALAYER ALINETYPE LAYERNAME LAYEROBJ TXTENT TXTOBJ) (vl-load-com) (setq Acaddoc (vla-get-activedocument (vlax-get-acad-object))) (if (setq Txtent (entsel "\n选择文字")) (progn (setq Txtobj (vlax-ename->vla-object (car txtent)) LayerName (vla-get-textstring Txtobj) Alayer (vla-get-activelayer acaddoc) Acolor (getvar "CECOLOR") Alinetype (vla-get-name (vla-get-activelinetype acaddoc)) ) (if (tblsearch "LAYER" LayerName) (alert (strcat "\n图层" LayerName "已经存在!")) (progn (setq Layerobj (vla-add (vla-get-layers acaddoc) LayerName)) (if (or (= Acolor "BYLAYER")(= Acolor "BYBLOCK")) (vla-put-color Layerobj (vla-get-color Alayer)) (vla-put-color Layerobj Acolor) ) (if (or (= Alinetype "BYLAYER")(= Acolor "BYBLOCK")) (vla-put-linetype Layerobj (vla-get-linetype Alayer)) (vla-put-linetype Layerobj Alinetype) ) (vla-put-activelayer acaddoc Layerobj) ) ) ) ) (princ) ) |