0 Members and 1 Guest are viewing this topic.
;;..............................;; (rcmd-setLayer <string> <int> <string> <t or nil>)(defun rcmd-setLayer (layer_name lcolor ltype plot / vla_layer) ;; layer name exist? (if (not (vl-catch-all-error-p (setq vla_layer (vl-catch-all-apply 'vla-item (list (vla-get-layers (rcmd-thisDwg)) layer_name))))) (progn ;; thaw (if (/= :vlax-false (vla-get-freeze vla_layer)) (vla-put-freeze vla_layer :vlax-false)) ;; unlock (if (= :vlax-true (vla-get-lock vla_layer)) (vla-put-lock vla_layer :vlax-false)) ;; turn on (if (/= :vlax-true (vla-get-layerOn vla_layer)) (vla-put-layerOn vla_layer :vlax-true)) (vla-put-color vla_layer lcolor) ;; load the linetype (if (not (vl-catch-all-error-p (setq vla_ltype (vl-catch-all-apply 'vla-item (list (vla-get-lineTypes (rcmd-thisDwg)) ltype))))) (vla-put-lineType vla_layer (vla-get-name vla_ltype)) (progn (vla-load (vla-get-lineTypes (rcmd-thisDwg)) ltype "acad.lin") (vla-put-lineType vla_layer ltype))) ;; t = non-plottable (if plot (vla-put-plottable vla_layer :vlax-false)) ;; set active (vla-put-activeLayer (rcmd-thisDwg) vla_layer)) ;; make the layer (if (not (vl-catch-all-error-p (setq vla_layer (vl-catch-all-apply 'vla-add (list (vla-get-layers (rcmd-thisDwg)) layer_name))))) (progn (vla-put-color vla_layer lcolor) ;; load the linetype (if (not (vl-catch-all-error-p (setq vla_ltype (vl-catch-all-apply 'vla-item (list (vla-get-lineTypes (rcmd-thisDwg)) ltype))))) (vla-put-lineType vla_layer (vla-get-name vla_ltype)) (progn (vla-load (vla-get-lineTypes (rcmd-thisDwg)) ltype "acad.lin") (vla-put-lineType vla_layer ltype))) (if plot (vla-put-plottable vla_layer :vlax-false)) ;; set active (vla-put-activeLayer (rcmd-thisDwg) vla_layer)))));;..............................(defun rcmd-delete-layerState (lman_obj state_name) (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-delete (list lman_obj state_name))) nil T));;..............................(defun rcmd-save-layerState (lman_obj state_name layer_property) (if (vl-catch-all-error-p (vl-catch-all-apply 'vla-save (list lman_obj state_name layer_property))) nil T))(defun rcmd-LayerGetObject (ProgId / Result) (setq result (vla-getinterfaceobject (vlax-get-acad-object) (strcat ProgId "." (substr (getvar "acadver") 1 2)))) (if (not result) (setq result (vla-getinterfaceobject (vlax-get-acad-object) progid))) result);;..............................;;; "AutoCAD.AcadLayerStateManager.16"(defun rcmd-set-layerState (layer_state_name) ;; ajuste para A2004;;; (setq :rcm_layer_state_manager;;; (vla-getInterfaceObject;;; (vlax-get-acad-object);;; (strcat "AutoCAD.AcadLayerStateManager";;; (cond;;; ;; A2000i o' A2002;;; ((or (eq (getvar "acadver") "15.05");;; (eq (getvar "acadver") "15.06"));;; "");;; ;; A2004;;; ((eq (getvar "acadver") "16.0") ".16"))))) (setq :rcm_layer_state_manager (rcmd-LayerGetObject "AutoCAD.AcadLayerStateManager")) (vla-setDataBase :rcm_layer_state_manager (vla-get-dataBase (rcmd-thisDwg))) (rcmd-delete-layerState :rcm_layer_state_manager layer_state_name) (rcmd-save-layerState :rcm_layer_state_manager layer_state_name aclsall));;..............................(defun rcmd-get-state-names (/ names dict obj) (setq dict (vla-getExtensionDictionary (vla-get-layers (rcmd-thisDwg)))) (if (not (vl-catch-all-error-p (setq obj (vl-catch-all-apply (function (lambda () (vla-item dict "ACAD_LAYERSTATES"))))))) (vlax-for n obj (setq names (cons (strcase (vla-get-name n)) names)))) (if names (acad_strLsort names)));;..............................(defun rcmd-restore-layerState (layer_state_name) (if (and :rcm_layer_state_manager (vl-position (strcase layer_state_name) (rcmd-get-state-names))) (progn (vla-restore :rcm_layer_state_manager layer_state_name) (rcmd-delete-layerState :rcm_layer_state_manager layer_state_name) (vlax-release-object :rcm_layer_state_manager) (setq :rcm_layer_state_manager nil))))
;;..............................(defun rcmd-thaw-unLock-turnOn (layer_name / vla_layer) (if (not (vl-catch-all-error-p (setq vla_layer (vl-catch-all-apply 'vla-item (list (vla-get-layers (rcmd-thisDwg)) layer_name))))) (progn ;; thaw (if (/= :vlax-false (vla-get-freeze vla_layer)) (vla-put-freeze vla_layer :vlax-false)) ;; unlock (if (= :vlax-true (vla-get-lock vla_layer)) (vla-put-lock vla_layer :vlax-false)) ;; turn on (if (/= :vlax-true (vla-get-layerOn vla_layer)) (vla-put-layerOn vla_layer :vlax-true)))));;..............................(defun rcmd-thaw-unLock-turnOn-all () (vlax-for vlaLayer (vla-get-layers (rcmd-thisDwg)) ;; thaw (if (/= :vlax-false (vla-get-freeze vlaLayer)) (vla-put-freeze vlaLayer :vlax-false)) ;; unlock (if (= :vlax-true (vla-get-lock vlaLayer)) (vla-put-lock vlaLayer :vlax-false)) ;; turn on (if (/= :vlax-true (vla-get-layerOn vlaLayer)) (vla-put-layerOn vlaLayer :vlax-true))));;..............................(defun rcmd-unLock-all () (vlax-for vlaLayer (vla-get-layers (rcmd-thisDwg)) ;; unlock (if (= :vlax-true (vla-get-lock vlaLayer)) (vla-put-lock vlaLayer :vlax-false))));;..............................(defun rcmd-thaw-all () (vlax-for vlaLayer (vla-get-layers (rcmd-thisDwg)) ;; thaw (if (/= :vlax-false (vla-get-freeze vlaLayer)) (vla-put-freeze vlaLayer :vlax-false))));;..............................(defun rcmd-turnOn-all () (vlax-for vlaLayer (vla-get-layers (rcmd-thisDwg)) ;; turn on (if (/= :vlax-true (vla-get-layerOn vlaLayer)) (vla-put-layerOn vlaLayer :vlax-true))))
(defun c:layerschtuff (/) (vlax-map-collection (vla-get-layers (vla-get-activedocument (vlax-get-acad-object)) ) '(lambda (x) (if (or (= (vla-get-layeron x) :vlax-false) (= (vla-get-freeze x) :vlax-true) (= (vla-get-plottable x) :vlax-false) ) (progn (vl-catch-all-error-p (vl-catch-all-apply 'vla-put-freeze (list x :vlax-true)) ) (vla-put-layeron x :vlax-false) (vla-put-lock x :vlax-true) (vla-put-plottable x :vlax-false) (vla-put-color x 4) ) ) ) ) (princ))