Newsgroup: it.discussioni.geometri
Titolo: Espostare la lunghezza di linee da autocad

Sono disperato! Ho diverse tavole dwg con la stessa esigenza/problema:
ho disegnato gli argini di un fiume digitalizzando una mappa catastale
ed ora devo fare delle analisi su delle sezioni che ho tracciato ogni
tot metri. Sarebbe bello poter esportare in un qualsiasi file di testo,
word, excel... anche mal formattato, 2 informazioni: ID della linea (o
polyline) e SOPRATTUTTO lunghezza!
Sembra impossibile non riuscirci (e non col comando list che esporta
linee con un ordine casuale) visto che autocad calcola già la
lunghezza delle singole polyline (vedi proprietà dell'entità).
Ho provato ad importare le entità da un'altro programma (ma preferivo
fare tutto in autocad) e le mie linee me le considera come blocchi!
Bene così tutti gli attributi delle singole linee sono esportabili
come tabella: oro MA come faccio se voglio farlo direttamente in mondo
Autocad... se io trasformo una linea in blocco mi perde l'informazione
della lunghezza e non posso più associare questa info al tag chiamato
da me lunghezza...
Insomma sono disperato
Qualcuno mi aiuti, please

roberto ha scritto:

Se NON usi la versione LT è possibile fare il tutto con un piccolo lisp.
Senza nulla togliere ai colleghi, che ovviamente sono esperti in tutto 
;-)))))
ti conviene però spostarti su
it.comp.software.cad, dove probabilmente troverai anche chi ti scrive 2 
righe di codice
Ciao
Maci

Ho provato ma non son riuscito a scrivere un codice che giri a puntino
(sono imbranato in programmazione).
Non sono un utente tiscali e non mi lasciano iscrivermi!
Tu non avresti due dritte per utilizzare lisp in ambiente cad
grazie molte comunque 
roberto

 Qualcuno mi aiuti, please
'scolta qua:
1) passavo di qua per caso...
2) ho MOLTO sonno...
3) non ho tempo/voglia di fare modifiche....
4) non credo di aver comrpeso "tutto" ciò che hai scritto
BTW (by the way)....
5) lo posto ugualmente, perchè potrebbe essere utile anche ad altri amici
:-)
Quindi, acchiappati questo:
;------------
(defun dxf (cc ll) (cdr (assoc cc ll)))
(defun c:VAI ( / cmde selezione quantita conta entita pt1 pt2 distanza
somma)
 (prompt "\nSeleziona le linee a cui prendere le misure: ")
 (setq  selezione (ssget)
  cmde (getvar "cmdecho")
 );setq
 (if selezione
  (progn
   (setq  conta 0
    quantita (sslength selezione)
    somma 0.0
   );setq
          (while (< conta quantita)
    (setq  entita (entget (ssname selezione conta)))
    (if (not (equal (dxf 0 entita) "LINE"))
     (prompt "\nHo trovato una entità che non è una LINEA - scartata...")
     (progn
      (setq  pt1 (dxf 10 entita)
       pt2 (dxf 11 entita)
       distanza (abs (distance pt1 pt2))
       somma (+ somma distanza)
       conta (+ 1 conta)
      );setq
     );progn
    )endif
   );wend
   (princ (strcat "\nSomma delle distanze: " (rtos somma 2 4)))
   (setq entita nil)
   (while (not entita)(setq entita (entsel "\nSeleziona il testo da
modificare: ")));wend
   (setq entita (entget (car entita))
    entita (entmod (subst (cons 1 (strcat "Lunghezza totale = " (rtos somma
2 4)))(assoc 1 entita) entita)))
  );progn
  (promtp "\nNon hai selezionato una mazza...... SVEGLIA!")
 );endif
 (setvar "cmdecho" cmde)
 (princ)
);defun
;--------
....l'avevo scritto per un amico, qualche giorno fa (malgrado non
avessi -comunque- tempo). :-D
NB = Funziona solo con LINEE (non ho tempo di modificarlo per polyline)... e
queste te le devi selezionare TU.
Lui somma le distanze tra i vertici (di ogni singola linea) e ti restituisce
il totale delle distanze, scrivendotele in un testo (che selezionerai a
video.. e lui lo modificherà).
Parti da qui... e vedi di aggiustarlo come meglio credi.
Nel caso avessi ancora difficoltà.. fai un fischio. MA..... non credo
proprio di poterti aiutare oltre, fino a giovedi sera.
Auguri! :-)
-- 
Bye
MioMao

non capisco il problema. Io se creo una polilinea e do il comando area 
con opzione Oggetto, mi restituisce l'area (anche se è una polilinea 
aperta, calcola l'area come fosse chiusa al primo vertice) e la 
lunghezza complessiva della polilinea.
Stessa cosa con il comando proprietà.

Certo, ma prova tu a fare questo lavoro per 1000 linee e copiarti la
lunghezza su un foglio excel... diventerai matto dopo una giornata...
grazie comunque
P.S. Io stavo cercando di assegnare degli attributi (come per i
blocchi) ad una linea/polilinea così poi verrebbero esportati in modo
assolutamente semplice, preciso e formattato... ma sembra che debba
creare per forza un blocco sulla linea prima di assegnare
l'attributo... ma così facendo mi perdo l'informazione della lunghezza
da inserire nel Tag....idee?
COMUNQUE ORA PROVO IL CODICE SOPRA.... GRAZIE MioMao

Eccellente... grazie... funziona il codice!
Ora provo a modificarlo per le mie esigenze...
... se mi riscopro così imbranato in programmazione giovedì domani mi
rifarò sentire...
intanto grazie a tutti
roberto


dove?
su it.comp.software.cad?
non serve mica l'iscrizione, e cosa c'entra se hai tiscali o altro.
forse intendi che il tuo server non ha quel gruppo? anche se mi sembra 
strano...
-- 
Il lavoro d'equipe è essenziale. Ti permette di dare la colpa a qualcun 
altro.
(Arthur Bloch)

Perdonami della domanda scema! Non avevo/ho ancora capito bene come
funzionano questi gruppi... ho scoperto ora che ci si può accedere da
molte pagine/server... pensavo che ogni website ne avesse al suo
interno alcuni dove si ragruppavano le persone interessate agli
argomenti del sito...
ora mi sembra di capire che posso scegliere qualsiasi pagina d'ingresso
(per esempio io li stò leggendo dalla pagina gruppi offerta da google)
ed il gruppo è sempre quello (così gli argomenti)...
domandina: se io spargo domande e riflessioni su tanti gruppi come
faccio a leggere poi tutte le risposte?
per es per leggere la tua risposta io devo perforza ritornare in questa
pagina o c'è da qualche parte un link che mi manda a tutte le risposte
ai miei messaggi non ancora lette?
ciao e grazie
roberto

 roberto
di niente


veleno81 ha scritto:


Nel suo scritto precedente, Roberto ha sostenuto :

volevi scrivere qualcosa?
se si, bisogna premere sui tasti, guardarli non basta...
:D
