Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Giorgio

Comando Isola Layer

Recommended Posts

Salve a tutti, in autocad 2007 c'è un comando che secondo me è comodissimo che isola il layer selezionato, facendo scomparire gli altri layer (isola layer - layiso).

In autocad 2008 lo stesso comando funziona in modo differente, inquanto non spegne più i layer non isolati, ma li blocca solamente.

Sapete se c'è una maniera per avere lo stesso funzionamento della versione 2007 nella versione 2008?

Grazie a tutti.

Share this post


Link to post
Share on other sites

prova questo lisp (non ho il 2007 nè il 2008)

(defun C:CHL (/ s1 s2 lname)

(princ "selezionare un oggetto da spostare layer...\n")

(setq s1 (ssget))

(princ "selezionare un oggetto nel layer desiderato...\n")

(setq s2 (ssget))

(setq lname (cdr (assoc 8 (entget (ssname s2 0)))))

(command "_CHANGE" s1 "" "PROP" "LAYER" lname "")

)

;

(defun C:LSET ( / ent slayr echo)

(setq echo (getvar "CMDECHO"))

(setvar "CMDECHO" 0)

(setq ent (entsel

"\nSelect an entity on the layer you want to Set as current: "

) )

(if (NULL ent); Make sure an object was selected

(while (NULL ent)

(princ "\nTry again or press ^C to quit: ")

(setq ent (entsel))

); While

): If

(setq ent (entget (car ent)))

(setq slayr (cdr (assoc 8 ent)))

(COMMAND "LAYER" "_S" slayr "")

(setvar "CMDECHO" echo)

(princ)

); Defun LSET

;

(defun c:CHC ()

(setq en (car (entsel "\nPick entity to change: ")))

(setq el (entget en))

(setq cl (getint "\nEnter the new color number: "))

(setq ocl (assoc 62 el)) ;old color

(if ocl

(setq el (subst (cons 62 cl) ocl el)) ;if color is present

(setq el (cons (cons 62 cl) el)) ;if color is absent

)

(entmod el)

)

;

(defun C:ISOLATE (/ ent mlayer echo)

(setq echo (getvar "CMDECHO"))

(setvar "CMDECHO" 0)

(setq ent (entsel "\nSeleziona layer entita' da isolare: "))

(if (NULL ent); Make sure an object was selected

(while (NULL ent)

(princ "\nTry again or press ^C to quit: ")

(setq ent (entsel))

); While

): If

(setq ent (entget (car ent)))

(setq mlayer (cdr (assoc 8 ent)))

(COMMAND "_LAYER" "_S" MLAYER "_F" "*" "")

(setvar "CMDECHO" echo)

(princ)

); Defun ISOLATE

;

(defun C:LOFF ( / echo ent lyroff clyr)

(setq echo (getvar "CMDECHO"))

(setvar "CMDECHO" 0)

(setq ent (entsel "\nSelect an entity on the layer to turn OFF: "))

(if (NULL ent); Make sure an object was selected

(while (NULL ent)

(princ "\nTry again or press ^C to quit: ")

(setq ent (entsel))

); While

): If

(setq ent (entget (car ent)))

(setq lyroff (cdr (assoc 8 ent)))

(setq clyr (getvar "CLAYER"))

(if (/= clyr lyroff); Don't attempt to turn off the current layer

(COMMAND "LAYER" "_OFF" lyroff "")

(princ "\nLAYR-OFF will not turn off the current layer.\n")

); IF

(setvar "CMDECHO" echo)

(princ)

); Defun LAYR-OFF

;

(defun C:lv ()

(COMMAND "LAYER" "_S" _MLAYER "_on" "*" "")

)

(defun C:lfv ()

(COMMAND "LAYER" "_S" _MLAYER "_T" "*" "")

)

(princ "\nC:lw loaded - type - lset - loff - chc - chl - isolate - lv - lfv - to use.")

(princ)

lset= seleziona oggetto e rende corrente il layer di appartenenza

loff= seleziona oggetto e spegne il layer di appartenenza

chc= cambia il colore selezioando l'oggetto del colore desiderato

chl= cambia piano selezionando l'oggetto di un layer e l'oggetto nel layer desiderato

isolate=isola il piano desiderato congelando i rimanenti

lv=accende i layer spenti

lfv= accende e scongela tutti i layer


Edited by leone

Share this post


Link to post
Share on other sites

alternativa

ti crei in pulsante e ci inserisci questa macro

^P(SETVAR "CLAYER"(CDR(ASSOC 8(ENTGET(CAR(ENTSEL(STRCAT "Seleziona l'entita' per isolare il LAYER "))))))) \-LAYER off * ;;

Share this post


Link to post
Share on other sites
alternativa

ti crei in pulsante e ci inserisci questa macro

^P(SETVAR "CLAYER"(CDR(ASSOC 8(ENTGET(CAR(ENTSEL(STRCAT "Seleziona l'entita' per isolare il LAYER "))))))) \-LAYER off * ;;

Proverò come mi hai detto, senti, per far ricomparire i layer hai per caso un altra macro da apllicare al pulsante? :rolleyes:

Share this post


Link to post
Share on other sites
Proverò come mi hai detto, senti, per far ricomparire i layer hai per caso un altra macro da apllicare al pulsante? :rolleyes:

usa il pulsante per le impostazioni precedenti layer

Comando: _LayerP


Edited by arri

Share this post


Link to post
Share on other sites

Finelmente ho risolto, bastava leggere nella riga di comando...... :rolleyes:

Praticamente quando si seleziona il somando isola layer nella riga di comando c'è tra parentesi quadra [iMpostazioni]

si scrive IM e poi si può scegliere se far si che i layer non isolati spariscano (digitando O per Off) oppure facendoli restare visibili ma bloccati (digitando B per Blocca e sfuma).

Spero di essere stato abbastanza chiaro e grazie a tutti coloro che mi hanno aiutato, ciao e buon lavoro.

Share this post


Link to post
Share on other sites
Finelmente ho risolto, bastava leggere nella riga di comando...... :rolleyes:

Praticamente quando si seleziona il somando isola layer nella riga di comando c'è tra parentesi quadra [iMpostazioni]

si scrive IM e poi si può scegliere se far si che i layer non isolati spariscano (digitando O per Off) oppure facendoli restare visibili ma bloccati (digitando B per Blocca e sfuma).

Spero di essere stato abbastanza chiaro e grazie a tutti coloro che mi hanno aiutato, ciao e buon lavoro.

M'hai fatto venire un colpo.


Edited by ruezzana

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...
Aspetta! x