Newsgroup: it.discussioni.geometri
Titolo: sezioni numeriche

Dovrei consegnare delle sezioni d'alveo in formato DWG ed in formato
numerico (txt) nel seguente formato:
N° sezione
progressina d'asse
progressina di sezione	quota
esempio:
25
251.10
0.00	251.254
1.054	251.001
ecc.
questi valori si trovano nelle fincature della sezione, generata con il
SW di topografia.
Ad oggi il file txt lo trascrivo a "mano" leggento i valori.
Domanda
Esiste qualche lisp, o programmino che in Autocad, selezionando la
polilinea di sezione
o selezionando i vertici interessati, mi generi questi dati in un file
txt?.
Saluto e ringrazio anticipatamente.
Alberto.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 wrote in message
9df4bb669c431f7b10c...@mygate.mailgate.org...

Non so se ti può aiutare ma il programma Thopos 3D esegue un report simile a
quello che cerchi; le sezioni o i profili devono essere stati disegnati con
quel programma però.
Saluti

 ha scritto nel messaggio
news:EUib9.118895$n04.3...@twister2.libero.it...


Ho estratto questa parte di programma da un mio software piů complesso.
Provalo e fammi sapere.
Ciao Claudio
;---------------------------------------------------------------------------
-
(defun c:creasez ()
        (setq pol(entsel "\n....... seleziona la polilinea : "))
(if (/= pol nil)(progn
(setq NomeFile(getstring "\n....... Nome File TXT: "))
(setq Separatore(getstring "\n....... Carattere separatore di NUM X Y: "))
(if (= Separatore "")(setq Separatore " "))
(setq NumSez(getstring "\n....... Numero sezione: "))
(setq ProgSez(getstring "\n....... Progressiva sezione: "))
(setq FF(open (strcat NomeFile ".txt") "a"))
(write-line NumSez FF)
(write-line ProgSez FF)
(if (= (cdr(assoc 0 (entget (car pol)))) "LWPOLYLINE")(progn
  (setq li-crea nil)
  (setq w(getpoint "\n....... punto sulla linea di riferimento : "))
  (setq quota(getreal "     => a quota : "))
         (setq scalay(getreal "\n....... rapporto scala distanze / scala
quote : "))
         (setq qrif(cadr w))
  (setq conta 0)
  (setq i 0)
  (setq lwp(entget(car pol)))
  (repeat (length lwp)
   (setq lwele(nth i lwp))
   (if (= (car lwele) 10)(progn
     (setq x(cadr lwele))
     (setq y(caddr lwele))
     (setq y(+ (/ (- y qrif) scalay) quota))
     (setq conta(+ conta 1))
     (setq xconta(itoa conta))
(if (= conta 1) (setq Xprog x))
(setq x(- x Xprog))
(write-line (strcat xconta Separatore (rtos x 2 2) Separatore (rtos y 2 2))
FF)
          )
   )
  (setq i (+ i 1))
  )
(close FF)
         )                     ;;;;;;<<<fine del progn che riguarda la
lwpolyline>>>
(if (and (= (cdr(assoc 0 (entget (car pol)))) "POLYLINE")(/= pol nil))(progn
        (setq li-crea nil)
        (setq w(getpoint "\n....... punto sulla linea di riferimento : "))
        (setq quota(getreal "     => a quota : "))
        (setq scalay(getreal "\n....... rapporto scala distanze / scala
quote : "))
        (setq qrif(cadr w))
        (setq pol-princ(entget (car pol)))
        (setq vertice(entnext (car pol)))
        (setq vert(entget vertice))
        (setq conta 0)
     (while (/= (cdr (assoc 0 vert)) "SEQEND")
                (setq x(car(cdr(assoc 10 vert))))
                (setq y(cadr(cdr(assoc 10 vert))))
                (setq y(+ (/ (- y qrif) scalay) quota))
                (setq conta(+ conta 1))
                (setq xconta(itoa conta))
(if (= conta 1) (setq Xprog x))
(setq x(- x Xprog))
(write-line (strcat xconta Separatore (rtos x 2 2) Separatore (rtos y 2 2))
FF)
                (setq vertice(entnext vertice))
                (setq vert(entget vertice))
     )
(close FF)
        )                  ;;;;;;<<<fine dell'if che riguarda la
polilinea>>>
        (progn
        (princ "    Deve essere una POLYLINE o una LWPOLYLINE!  < premi un
tasto per proseguire >")
        (getstring)
        (princ "\r
")
        )
        )
))
))
;---------------------------------------------------------------------
(princ "\n <Copyright ing. Claudio Granuzzo - 2002>  Digitare CREASEZ per
lanciare il programma!")
(princ)