Comando che selezionando un oggetto congeli tutti i layer ad eccezione di quello appartenente all'oggetto stesso e di un layer denominato

lattu

Moderatore Autocad
Membro dello Staff
Professione: Libero professionista
Software: Autocad - 3ds Max - Inventor - Blender - Fusion 360
Regione: Lombardia - BG
ciao a tutti, ho bisogno di aiuto dagli esperti.
avrei la necessità di creare un comando che selezionando un oggetto mi congeli tutti i layer ad eccezione di quello appartenente all'oggetto stesso e del layer denominato carpenteria
è una cosa simile all'isola layer che però nel mio caso non funziona correttamente. si può fare?
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: autocad 2013; solidworks 2014 e 2019
Regione: Friuli Venezia Giulia
C'è il comando apposito sia per congelare che per bloccare i layer.
 

lattu

Moderatore Autocad
Membro dello Staff
Professione: Libero professionista
Software: Autocad - 3ds Max - Inventor - Blender - Fusion 360
Regione: Lombardia - BG
grazie, ma mi serve congelarli
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: autocad 2013; solidworks 2014 e 2019
Regione: Friuli Venezia Giulia
scusa, ero con il cellulare e non sono riuscito a mettere entrambi i link
 

lattu

Moderatore Autocad
Membro dello Staff
Professione: Libero professionista
Software: Autocad - 3ds Max - Inventor - Blender - Fusion 360
Regione: Lombardia - BG
hai letto troppo velocemente, mi serve un comando che non esiste, tipo isola layer ma con il congelamento di tutti gli altri layer ad eccezione di 1 con un nome ben definito
 

MassiVonWeizen

Utente Senior
Professione: disegnatore
Software: autocad 2013; solidworks 2014 e 2019
Regione: Friuli Venezia Giulia
praticamente l'inverso di quello che fa il comando da me indicato. che mona che sono. scusami ancora.
hai provato il comando PERCORRLAY?
 

lattu

Moderatore Autocad
Membro dello Staff
Professione: Libero professionista
Software: Autocad - 3ds Max - Inventor - Blender - Fusion 360
Regione: Lombardia - BG
percorlay lascia visibile 1 layer alla volta, non fa quello che mi serve
 

lattu

Moderatore Autocad
Membro dello Staff
Professione: Libero professionista
Software: Autocad - 3ds Max - Inventor - Blender - Fusion 360
Regione: Lombardia - BG
oppure, mi suggerite come estrarre il codice dal comando isola layer?
 

dieva

Utente Standard
Professione: CAD Manager - AutoCAD sw developer
Software: AutoCAD | BricsCAD | 3DSMax | Revit
Regione: puglia
molto rozzo ma funziona....
(defun c:ii () (command"_undo" "_gr" "_isolay" pause "")
(command"_layer" "_t" "carpenteria" "_on" "carpenteria" "" "_undo" "_end")
)
 

lattu

Moderatore Autocad
Membro dello Staff
Professione: Libero professionista
Software: Autocad - 3ds Max - Inventor - Blender - Fusion 360
Regione: Lombardia - BG
grazie, lo testo in serata.
ma così spegne o congela?
 

dieva

Utente Standard
Professione: CAD Manager - AutoCAD sw developer
Software: AutoCAD | BricsCAD | 3DSMax | Revit
Regione: puglia
quando richiami ISOLAY da solo c'è l'opzione Impostazioni sulla riga di comando , puoi scegliere se mettere i layer in OFF o congelarli.

qui help di AutocAD
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
Codice:
(defun c:SetLayerFreeze(/ sel Piano)
    (while (not (setq sel (entsel "\nSeleziona entità: "))))   
  (setq Piano (cdr (assoc 8 (entget (car sel)))))
    (command "_layer" "_M" "carpenteria" "")
    (command "_layer" "_FREEZE" "*" "")
    (command "_layer" "_THAW" Piano "")
)
(defun c:SetLayerStd()
    (command "_layer" "_THAW" "*" "")
)
SetLayerFreeze: selezioni entità, tutto congelato ad eccezione di CARPENTERIA e piano entità.
SetLayerStd: scongela tutti i piani.
 

lattu

Moderatore Autocad
Membro dello Staff
Professione: Libero professionista
Software: Autocad - 3ds Max - Inventor - Blender - Fusion 360
Regione: Lombardia - BG
ok, grazie, non sono ancora riuscito a testarli ma dovrebbero andar bene
 

lattu

Moderatore Autocad
Membro dello Staff
Professione: Libero professionista
Software: Autocad - 3ds Max - Inventor - Blender - Fusion 360
Regione: Lombardia - BG
scusate la latitanza ma ci sono state altre priorità.
il lisp di rpor66 funziona (come sempre).
se ora volessi aggiungere dei layer che restino scongelati oltre a carpenteria, come posso modificare il codice?
grazie
 

rpor66

Utente Standard
Professione: Programmatore
Software: AutoCad, GstarCAD, CadWorx, Excel, Lisp, VBA
Regione: Sicilia
aggiungi dopo la linea che contiene (command "_layer" "_THAW" Piano "")
altri command:
(command "_layer" "_THAW" "MioPiano1" "")
(command "_layer" "_THAW" "MioPiano2" "")
etc.