En el dibujo CAD, ¿cómo configurar diferentes comandos para saltar automáticamente a sus propias capas durante el dibujo?
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) p>
(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) p>
(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") p>
(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))) p>
(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) p>
(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]