Red de conocimiento informático - Computadora portátil - En el dibujo CAD, ¿cómo configurar diferentes comandos para saltar automáticamente a sus propias capas durante el dibujo?

En el dibujo CAD, ¿cómo configurar diferentes comandos para saltar automáticamente a sus propias capas durante el dibujo?

Tengo un dispositivo de desarrollo secundario que puede cambiar automáticamente a la capa DIM al realizar anotaciones: guarda este archivo en el archivo Express en el directorio de instalación de CAD, ejecuta el menú del archivo CAD "Herramientas\Cargar" y selecciona "Regresar automáticamente a DIM". Capa". Marque "lsp" en la carpeta express. Después de la carga exitosa, asegúrese de hacer clic en: iniciar grupo: contenido para seleccionar el subprograma ahora. Este subprograma se cargará automáticamente cada vez que inicie CAD.

Al dimensionar. , las dimensiones estarán dentro de la capa de dimensiones. ¿Por qué no puedo cargar el archivo cargado aquí? Vaya a la carpeta express mencionada anteriormente y busque un archivo con el sufijo.

lsp, copia lo siguiente, ábrelo, ingresa el siguiente código, guarda, cambia el nombre al que quieras y cárgalo como se muestra arriba:

[code=lisp](defun xlr-autolayer()

;? (setvar "cmdecho" 0)

;? (if (null (tblsearch "capa" "texto"))

; (establecer _ capa _ lista " texto " 3 " continuo ")

;? )

;? (if (null (tblsearch "capa" "dim "))

; (set _layer_list " dim " 3 "continuo")

; )

(vl-load-com)

; Contenido: tabla de impresión de tipo de línea de color de capa de comando

(setq * doc(vla-get-active document(vlax-get-acad-object)))

(setq * layes( vla-get-layers * doc))

(setq *laylst?

?(List(List "DIM angular" "DIM" 3 "continuous" T)

(Lista "DIM alineado" "DIM" 3 "continuo" T)

(Lista "Dimensión base" "Dimensión" 3 "continuo" T)

(Lista " DIM centro" "DIM" 3 "continuo" T)

(Lista "DIM continuar" "DIM" 3 "continuo" T)

(Lista "Diámetro diámetro" "Dimensión" 3 "continua" T)

(Lista "DIM lineal" "DIM" 3 "continua" T)

(Lista "Cotas de dimensión" "tamaño" 3 "continua" T)

(Listar "tamaño radio" "tamaño" 3 "continuo" T)

(lista "QDIM" "DIM" 3" Continuo" T)

(Lista "q líder" "DIM" 3 "continua" T)

(Lista "DTEXT" "Texto" 3 "continua" T)

(Lista "Texto multilínea " "Texto" 3 "Continuo" T)

(Lista "Texto" "Texto" 3 "Continuo" T)

; (Lista "BHATCH" "rellena" 9 "continuo " T)

; (Listar "tramados" "rellenos" 9 T "continuos")

; (Listar "Punto" "Punto" 4 T "continuos")

(Lista "XLINE" "línea auxiliar" 8 "Continua" T)

(Lista "Línea" "0" no "continua" T)

; ; (lista "XREF" "referencia" 7 "continua" T)

(lista "pline" "polilínea" 2"centro"T)

? )

)

(Establecer capa antigua Ninguna)

(setq * cmdlst(map car ' strcase(map car ' car * laylst)))

(mapcar)(lambda(x)(vlr-command-reactor nil x))

? (lista '((:vlr-commandWillStart.

xlr-start))

((:vlr-commanded.xlr-end))

((:vlr-commandCancelled.XLR-Cancelled))

? )

)

(vlr-editor-reactor

Ninguno

((:vlr-commandwillstart.xlr-edit) )

)

)

;;-;;;

(defun xlr-edit (CALL CALLBACK /)

p >

(foreach N *laylst

(if (= (strcase (car callback))(strcase (car N)))

; Si es igual que el set comando, Entonces el comando reactor devuelve información

? (progn crea una capa

(apply 'xsetlays (cdr N))

; (set var "CLAYER" (cadr N));

)

)

)

)

; ;;-;;;

(defun xlr-start(call-reactor xlr-startInfo /)

(foreach N *laylst

( if(= (strcase(car XLR-startInfo))(strcase(car N)))

;Si es el mismo que el comando set, el comando reactor devuelve información.

progncrea una capa

(apply 'xsetlays (cdr N))

; (establezca var "CLAYER" (cadr N));

? )

)

)

)

;;-;;;

(defun xlr- end (llamar al reactor xlr-endInfo/cmd)

(establecer comando (car xlr-endInfo))

(if (miembro cmd *cmdlst)

(si (/= la capa antigua es cero)

(progn?

(setvar "CLAYER" capa antigua)

(establecer capa antigua es ninguna)

p>

)

)

)

)

;;;-;;;;

(defun xlr-cancel(call reactor xlr-cancelInfo/cmd)

(set command(autoXLR-cancelinfo))

(if (miembro cmd *cmdlst)

(if (/= capa antigua es cero)

(progn?

(setvar "CLAYER" capa antigua)

(set Old capa ninguna)

)

)

)

)

;;;-;;; /p>

;;;-;;;?

(defun xset lays(LAY-NAM COLOR LTYPE plotk/LAY obj LTYPESOBJ)

(if (tblobjname "capa" LAY-NAM)

(programa

? (si (/= (strcase (getvar "CLAYER)))

?(strcase LAY-NAM)

?)

(setq OldLayer (getvar "CLAYER "))

(Programa

? (if (= capa antigua Ninguna)

(setq OldLayer LAY-NAM )

? )

? )

? >

)

(prognAgregar una capa.

?(VL-catch-all-apply' vla-add(lista * layes LAY-NAM))

? )

? (setq LAY obj(vla-item * lays) LAY-NAM))

? (if(not(tblobjname " LTYPE " LTYPE));Agregar estilo de línea.

(Program

?(setq LTYPESOBJ (vla-get-linetype*doc))

? (vla-load LTYPESOBJ LTYPE(findfile " acad . Lin "))

; multiple *.

? (vlax-release-object LTYPESOBJ)

)

); descongelar (como congelar), establecer la capa como capa actual, establecer color de capa y funciones de impresión.

? (vla-put-layer en layobj: vlax-true)

? (vla-put-lock layobj: vlax-false)

? (if(=(strcase(getvar " CLAYER))(strcase lay-Nam)); Descongelar.

(vla-put-freeze lay obj: vlax-false)

? )

? (vla-put-color layobj color)

? (vla-put-linetype layobj LTYPE)

/p>

layobj

(si trama

?:vlax-true

?:vlax-false

)

? )

)

)

)

(XLR-autolayer! "\n -Reactor de capa de comando cargado-")

[/code]