Newsgroup: it.comp.software.cad
Titolo: Stampa nome layer.

Come posso stampare l'elenco dei layer che compongono un disegno in
Autocad2000 ?
Grazie.
Andrea

...

Cosi? Buon Lavoro.
Mario scavroni
----------------------------------------------------------------------------
--------
(defun c:layer_elenco (/ fla dat lay ss ddb)
(setvar "cmdecho" 0)
	(prompt "\nScrittura elenco layer del disegno.") 
	(setq nome (getvar "dwgname"))
	(setq fil (open (strcat nome ".lay") "a"))  
       	(write-line "Elenco piani del disegno" fil) 
            (close fil)
 
	(setq fla T)
	(while 	
		(setq dat (tblnext "layer" fla))
		(setq lay (cdr (assoc 2 dat )))
		(setq fil (open (strcat nome ".lay") "a"))  
       		(write-line lay fil) 
        	(close fil)
	(setq fla nil)
 	)
(princ)
)
----------------------------------------------------------------------------
------

 un disegno in Autocad2000 ?
Tu lispi? Se si prenditi le procedure che ho passato a Mario.
Mario e troppo buono, te li ha archiviati in un file, io mi
sarei limitato a visualizzarteli a schermo e t'arrangiavi. :-)
Nel senso:
- se vuoi "stamparli" su un file       --> Mario
- se vuoi "stamparli" al command: --> Giovanni
- se vuoi "stamparli" "stamparli"    --> boh?
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---
(defun LAY-ALL ( / £la nl)
(setq £la (list (cdr (assoc 2 (tblnext "LAYER" T)))))
(while (setq nl (cdr (assoc 2 (tblnext "LAYER"))))
          (setq £la (append £la (list nl)))) £la)
(defun c:LL () ;che sta per lista layer
(princ "\n----------------")
(foreach la (LAY-ALL) (print la))
(princ "\n----------------"))
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---
--
ciao Giovanni

Ciao Mario,
ti va di mettere un tag [LISP], quando c'e' del codice?
senno' me perdo il meglio!...
... e non mi viene il messaggio colorato di BLU in automatico.
In cambio ti/vi regalo due procedure in argomento:
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---
----------------------------------------------------------------------------
;(LAY-SEL-§ §tofind #offset)
; lista i layer del DWG contenenti la § a partire da #
----------------------------------------------------------------------------
(defun LAY-SEL-§ (§s #p / £ls nl)
 (setq nl (cdr (assoc 2 (tblnext "LAYER" T))))
 (while nl
  (if (= (substr nl #p (strlen §p)) §p) (setq £ls (append £ls (list nl))))
  (setq nl (cdr (assoc 2 (tblnext "LAYER"))))) £ls)
----------------------------------------------------------------------------
;(LAY-ALL)
; lista tutti i layer del DWG
----------------------------------------------------------------------------
(defun LAY-ALL ( / £la nl)
(setq £la (list (cdr (assoc 2 (tblnext "LAYER" T)))))
(while (setq nl (cdr (assoc 2 (tblnext "LAYER"))))
       (setq £la (append £la (list nl)))) £la)
----------------------------------------------------------------------------
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---

 [CUT]
Come si fa a lanciare queste procudure?
Mi spigo meglio: mancando la chiama del comando es. dufun c: LAY-ALL
come faccio?
So che mi risponderai. Grazie a Ciao.

 So che mi risponderai. Grazie a Ciao.
e a te chi te lo ha detto?  :-)
giusto perche' ti sei "spigato", senno' non ti "spigavo" un bel nulla. :-)
... Come ti ho detto, non sapevo di parlare con chi mi tese una mano
mentre affogavo in un bicchier d'acqua.
--
Ciao Giovanni Anzani

 mentre affogavo in un bicchier
d'acqua.
Capita!

 La fatina dei sogni o la mia barista, ora non ricordo.
Facile, oggi pomeriggio tra le 14.21 e le 15.19 che facevi?
Pisolavi sul divano dopo pranzo o ti facevi un cicchetto al bar?
Spero di essere riuscito a farmi capire, senno' scrivimi pure in privato,
e ti do il telefono, mi chiami computer davanti e te lo spiego.
Se non e' troppo disturbo, potresti settare il tuo Microsoft Outlook Express
con qualche carattere in piu':
Strumenti\opzioni\Invio\Formato invio news\Imposta testo normale\
\Ritorno a capo automatico dopo
mettici, qualcosa tipo 70-80 direi 76, tu dovresti avere tipo 40.
in tal modo non risponderesti in stile poesiola, e daresti
modo a chi vuole risponderti di quotarti agevolmente, cioe' di
mettere i ">" alle tue frasi.
--
Ciao Giovanni

Ciao Giovanni Anzani, ciao Massimo.
Ma che spiritosoni, (si, sono d'accordo con il mettere [LISP] quando
"messaggiamo" codice.
Sono un pò di corsa (come del resto in buona parte della mia vita),
comunque nel CD della 2000 ci sono n. 4 file PDF per acrobat (in inglese)
che sono i manuali di autolisp, ambiente visual lisp, tutorial visualisp, e
VBA.
Un pò per volta me li stampo (sono un mucchio di pagine) me credo che non
esista una versione in italiano.
Saluti e ciottini a tutti :)
Mario Scavroni

esista una versione in italiano.
No, i fiel PDF sono in inglese anche nella versione italiana, sarebbe
stato troppo chiedere la trduzione di una guida di programmazione,
manco la MicroSoft lo fa!
Aniello Annunziata
Webmaster di CADLandia
aniello.a...@cadlandia.com
www.cadlandia.com

 Se non e' troppo disturbo, potresti settare ........[cut]
D'accordo. (proprio 40 erano)
--------
Massimo Ghio

 D'accordo. (proprio 40 erano)
Che occhio che ho!
le avevo contate le battute che facevi prima di andare a capo :-)
Adesso va molto meglio grazie.
Tornando a "ssget" e all'uso del "filter-list", diciamo ad esempio
usando il "sel-method" "x" (che fa tutto lui e mi piace tanto).
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---
;===================================================
;PROCEDURE  (ssget "x")
;===================================================
(defun SELEZOBJ (ogg lay Łatt / Łsel)
(setq Łsel (list (cons 0 ogg)(cons 8 lay)))
(foreach att Łatt
  (setq Łsel (append Łsel (list (cons (nth 0 att) (nth 1 att))))))
(ssget "x" Łsel))
;---
(defun CONTAOBJ (ogg lay  Łatt / ss)
(if (setq ss (SELEZOBJ ogg lay Łatt)) (sslength ss) 0))
;===================================================
;ESEMPI di imput (solo con SELEZOBJ, per CONTAOBJ e' uguale)
;===================================================
;dammi tutte le polilinee2D in quota sul layer corrente
(SELEZOBJ "LWPOLYLINE" (getvar "clayer")
  '((-4 "/=") (38 0)))
;dammi tutte le linee con almeno un vertice in quota sul layer corrente
(SELEZOBJ "LINE" (getvar "clayer")
   '((-4 "<OR") (-4 "*,*,/=")(10 (0 0 0)) (-4 "*,*,/=")(11 (0 0 0))(-4
"OR>")))
;dammi tutte le polilinee2D in quota aperte sul layer corrente
(SELEZOBJ "LWPOLYLINE" (getvar "clayer")
 '((-4 "/=") (38 0) (-4 "<OR")(70 0)(70 128)(-4 "OR>")))
;===================================================
---cut---cut---cut---cut---cut---cut---cut---cut---cut---cut---

 Saluti e ciottini a tutti :)
Che so' 'sti ciottini, forse e' la golosita' innata,
ma li penso cose buone da mangiare.
--
Ciao Giovanni

 NG! Per dire a tutti quali sono i significati dei TAG.
Volentieri!
Ecco una bozza (ma bozza bozza), per la FAQ sui tag.
La lista dei TAG e' da farsi tutti insieme, ne metto solo qualcuno.
Introduzione.
 Cos'e' un tag.
-- Un pezzo di titolo fra parentesi quadre.
- A cosa serve un tag.
-- Ad un facile riconoscimento per chi scarica solo le intestazioni del
contenuto del mess.
-- Al riconoscimento automatico da parte del programma di lettura delle news
del contenuto del mess.
-- Al trattamento in automatico da parte del programma di lettura delle news
del mess.
tramite opportune regole, ad es. a scaricarne il corpo del messaggio oppure
no, a colorarlo di un colore particolare.
Lista dei tag per it.comp.software.cad:
- [LISP] Messaggi che parlano di programmazione in autolisp
- [LISP+C] Messaggi che parlano di programmazione in autolisp contennti
codice
- [] fare gli altri tag per gli altri linguaggi di programmmazione, se
servono.
- [ACAD] Messaggi che parlano di Autocad qualsiasi rel.,
- [] fare gli altri tag per gli altri programmi.
- [SPAM] Messaggi di spam. chissa' magari ci cascherebbe qualcuno! :-)
- [HARD] Quale scheda video, monitor, plotter ecc...
- [SOFT] Quale programma potrei usare...
Mi sembra utile il TAG indicante il programma perche' spesso chi scrive
(spesso utente autodesk) da' per scontato che si sappia cosa usa.
--
Ciao Giovanni Anzani

 ma li penso cose buone da mangiare.
No voleva essere "Cicciottini" che è come chiamo i miei gatti. ) con
varianti tipo Pucciottini, Gnogottini, Birillini, ecc. va bene tutto quello
che finisce per "ottini")
Ciao Mario Scavroni 

 ;===================================================
Begli esempi (che ho già archiviato) di solito non mi capita di
utilizzarli, ma credo che dovro rivedere qualche programmuccio.
Ciao Mario Scavroni

 Lista dei tag per it.comp.software.cad:
[cut]
E vada per questi TAG. Sono d'accordo.
----------------
Massimo Ghio

 Se cosi' fosse, fammelo sapere perfavore.
Ho preparato un file PDF con la scansione delle pagine riferite alla
funzione SSGET (197k) se vuoi posso mandartelo. Non so dirti se č
approfondita la spiegazione, a me pare di sě. Ripeto non sono un esperto.

 approfondita la spiegazione, a me pare di sì. Ripeto non sono un esperto.
Molto gentile! Sia per avermele preparate, sia per avermi chiesto il
permesso per postarmele. Si mandamele pure e mandami pure cio'
che vuoi senza chiedere, se l'argomento e' l'autolisp o qualcosa
di attinente.
--
Ciao Giovanni

 Ciao Mario Scavroni
hehehe! hai vist? putente nhe?
--
Ciao Giovanni