ARKLisp : [post n° 70919]

manipolazione livelli con autolisp

Per chi smanetta con autolisp...
ho trovato in rete la seguente macro, trattasi di un programma che individua un livello contennete all'interno del suo nome il valore 8, e se attivo lo congela.
Ovviamente con qualche modifica la macro si può adattare...

(defun c:op ()
(if optog
(setq optog "ON")
(setq optog "OFF")
);if
(command "'.LAYER" optog "*8*" "")
(if(eq optog "ON")
(setq optog nil)
);if
)


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
P.S. la macro in oggetto può essere salvata in un file con estensione LSP, caricata con _APPLOAD all'interno di AutoCAD ed infine utilizzata digitando ida tastiera il comando OP.
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

ARKLisp
http://webspace.omniway.sm/fbattistini/arklisp

ARKLisp :
nota: nelle versioni italiane di AutoCAD è
indispensabile inserire l'underscore davanti al comando LAYER:
(command "'._LAYER" optog "*8*" "")

arri :
a un pulsante associ questa macro

^C^C_-LAYER;OFF;*8* ;
joseph :
E' più corretto (nella 3^ riga) ...se attivo lo disattiva. che...se attivo lo congela.
Non è appunto per chi scrive, che sono sicuro conosce la differenza, ma per chi legge perchè non intenda una cosa per l'altra.
Scusa l'intromissione e complimenti per la tenacia e la competenza nel portare avanti il tuo lavoro.
Joseph


Ronin :
la macro (chiamarla programma mi pare eccessivo) rispetto al tuo menù ha il vantaggio che se usata una seconda volta riaccende quello che aveva spento.
delli :
scusate... per noi che non mastichiamo le macro o le lisp... a che serve?... o meglio: se faccio come dice ARK, carico la lisp e digito "op"... che mi fa? mi attiva tutti i layer spenti? o viceversa? o nulla di tutto ciò?
thanks
bye bye
Ronin :
tutti i layer che contengono 8 nel nome (es se ci sono 3 layer, che si chiamano ottagono, ottantotto e quanrant8asinocotto, spegne l'ultimo di questi; se riesegui la macro, riaccende quelli che aveva spento).
Un sist del genere può essere utile se, per esempio, chiamo tutti i layer quota *-Q, o tutti i layer che contengono hatch *-H: così posso spegnerli/accenderli tutti insieme.
delli :
ok... grazie... chiarissimo!
ma potrei ottenere la stessa cosa se, anzichè "on"/"off" metto il comando "freeze" nella terza e settima riga? (non conosco l'equivalente di off per freeze... da mettere nella quarta riga)
bye bye
Ronin :
di ON metti _T al posto di off metti _F (abbreviazioni internazionalizzate)
delli :
ma... con l'underscore davanti?
Ronin :
l'underscore è il carattere di internazionalizzazione; le opzioni/comandi della versione inglese con davanti _ funzionano su tutte le versioni (anche in ita).
Per esempio il comando copia in inglese è copy, se scrivi _copy funziona anche sulla versione italiana (oltre che su quella inglese o di qs altra lingua)
delli :
ok... ma se ho la versione inglese... non mi serve giusto?
altra domanda: mi basta mettere le iniziali del comando (T e F)? oppure devo scrivere "freeze" intero e T?? (che non so) intero?
abbi pazienza ronin... :P
bye bye
Ronin :
_ non serve se hai l'inglese (però io che ne sapevo?), e sì, basta l'iniziale (nota che non è l'iniziale, ma la/le lettere maiuscole che ti mostra autocad nella riga di comando; di solito è l'iniziale, ma non sempre).
per finire, il contrario di freeze è thaw
delli :
grazie grazie... ho la versione ita ma la mia era una curiosità e conferma sulle mie conoscenze...
se vuoi puoi anche spedirmi la fattura per la tua consulenza ;) però ti faccio pagamento 360 gg eheheheh
bye bye
Ronin :
meno di 1 anno? ho visto ben di peggio...
Avvisami quando qualcuno risponde
Non mandarmi più avvisi

Se vuoi essere avvisato quando qualcuno interviene in questa discussione, indica un nome e il tuo indirizzo e-mail.