Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Progamma in lisp

301 views
Skip to first unread message

Il grande fardello

unread,
Apr 26, 2013, 1:43:15 PM4/26/13
to
Tempo fa un bravissimo programmatore in lisp di questo ng mi fece un
programma per disegnare dei punti in cad estratti da un file .txt
"Codice;X;Y" (coord. cartesiane) come te lo danno al catasto.
Si potrebbe ottenere lo stesso risultato con le coordinate polari tipo
"Cod;angolo(cetesimale);distanza"?

--
Ciao


Cirano

unread,
Apr 26, 2013, 3:49:00 PM4/26/13
to
Il grande fardello ha spiegato il 26/04/2013 :
solo se vengono tutte dalla stessa stazione

--
Cirano


Aladino

unread,
Apr 27, 2013, 3:19:06 AM4/27/13
to
Cirano <cir...@qqrq.it> wrote:

> solo se vengono tutte dalla stessa stazione
Perch�? Io a suo tempo l'avevo fatto in MiniPascal, e imporavo tutto il
rilievo.
Comunque adesso come adesso passerei tutto in un foglio di calcolo e mi
calcolerei le coordinate cartesiane.

--
Per contattarmi, togliere -NOSPAM- dall'indirizzo.
To contact me, remove -NOSPAM- from address.

Lupo

unread,
Apr 27, 2013, 12:33:49 PM4/27/13
to
Io quando ho necessitᅵ di qualche lisp, se non lo trovo giᅵ pronto sul
web, mi rivolgo a www.emicad.it
Prova richiedere a loro un preventivo...

Il grande fardello

unread,
Apr 28, 2013, 5:15:56 AM4/28/13
to
In news:klelh2$7f5$1...@dont-email.me,
Cirano <cir...@qqrq.it> typed:
fa lo stesso: un cad per ogni stazione poi li unisci con il punto di
stazione in comune.

--
Ciao


Il grande fardello

unread,
Apr 28, 2013, 5:17:21 AM4/28/13
to
In news:517bfdef$0$1369$4faf...@reader2.news.tin.it,
Lupo <nos...@tin.it> typed:
> Il 26/04/2013 19.43, Il grande fardello ha scritto:
>> Tempo fa un bravissimo programmatore in lisp di questo ng mi fece un
>> programma per disegnare dei punti in cad estratti da un file .txt
>> "Codice;X;Y" (coord. cartesiane) come te lo danno al catasto.
>> Si potrebbe ottenere lo stesso risultato con le coordinate polari
>> tipo "Cod;angolo(cetesimale);distanza"?
>>
>
>
> Io quando ho necessit� di qualche lisp, se non lo trovo gi� pronto sul
> web, mi rivolgo a www.emicad.it
> Prova richiedere a loro un preventivo...

anch'io attingo l�, ma quel lisp molto semplice lo fece ...a gratise!

--
Ciao


Cirano

unread,
Apr 29, 2013, 3:26:28 AM4/29/13
to
ma poi li anche devi ruotare...
a meno che non lavori orientato, ma se lavori orientato hai giᅵ le
cartesiane... mah

io farei un foglio elettronico con uscita in cartesiane e poi userei il
lisp che hai giᅵ


GeoNick

unread,
Apr 29, 2013, 8:44:02 AM4/29/13
to
Il grande fardello <nonte...@virgilio.it.invalid> ha scritto:
Un qualsiasi programma di topografia fa quanto vuoi tu, ma immagino tu
non ce l'abbia, vista la domanda.

Potresti ritrascriverti il libretto in formato pregeo, elaborarlo (senza
punti fiduciali) ed esportarlo in formato CAD con il programma gratuito
Vigeo.

Ciao geoNick



PS: Se si tratta di un libretto te lo converto io in 30 secondi.

--
Per scrivermi in privato clicca qui:
http://www.mynewsgate.net/mp.php?u=4348

Il grande fardello

unread,
Apr 29, 2013, 11:35:22 AM4/29/13
to
In news:201304291...@mynewsgate.net,
GeoNick <4348i...@mynewsgate.net> typed:
> Il grande fardello <nonte...@virgilio.it.invalid> ha scritto:
>
>
>
>> Tempo fa un bravissimo programmatore in lisp di questo ng mi fece un
>
>> programma per disegnare dei punti in cad estratti da un file .txt
>
>> "Codice;X;Y" (coord. cartesiane) come te lo danno al catasto.
>
>> Si potrebbe ottenere lo stesso risultato con le coordinate polari
>> tipo
>
>> "Cod;angolo(cetesimale);distanza"?
>
>>
>
>
>
> Un qualsiasi programma di topografia fa quanto vuoi tu, ma immagino tu
> non ce l'abbia, vista la domanda.
>
> Potresti ritrascriverti il libretto in formato pregeo, elaborarlo
> (senza punti fiduciali) ed esportarlo in formato CAD con il programma
> gratuito Vigeo.
>
> Ciao geoNick
>
>
>
> PS: Se si tratta di un libretto te lo converto io in 30 secondi.

Allora spiegamoci meglio.
Per trasferire un libretto delle misure con coord. polari, prelevato dal
catasto,ti devi leggere e trascrivere i punti sul cad con probabili errori
di lettura e trascrizione. Punto.
Se invece, come faccio con le coord. cartesiane, faccio riconoscere la
pagina con l'OCR, la importo con excel e la esporto in formato txt con i
dati separati da virgola, il tutto avviene automaticamente senza digitazione
ed errori.
Mi sono spiegato?


--
Ciao


GeoNick

unread,
Apr 29, 2013, 12:04:43 PM4/29/13
to
Il grande fardello <nonte...@virgilio.it.invalid> ha scritto:



> Allora spiegamoci meglio.

> Per trasferire un libretto delle misure con coord. polari, prelevato dal

> catasto,ti devi leggere e trascrivere i punti sul cad con probabili

> errori di lettura e trascrizione. Punto.

> Se invece, come faccio con le coord. cartesiane, faccio riconoscere la

> pagina con l'OCR, la importo con excel e la esporto in formato txt con i

> dati separati da virgola, il tutto avviene automaticamente senza

> digitazione ed errori.

> Mi sono spiegato?

>

>



Si, ti sei spiegato.

Vediamo se mi spiego anch'io:

Immagino che il trascrivere un libretto pregeo serva per fare una
riconfinazione.

Le coordinate cartesiane che ti vengono fornite con il libretto pregeo,
sono coordinate calcolate dall'elaborazione pregeo, che come avrai notato
si tratta di una rototraslazione con variazione di scala sulla base dei
punti fiduciali utilizzati.

Prima regola importante per una riconfinazione ᅵ quella di utilizzare le
misure "non trattate" in special modo da pregeo per il quale gli algoritmi
di calcolo sono sconosciuti.

Per questo ti suggerivo di partire dalle misure polari, che poi era la tua
domanda iniziale.

Utilizzando l'OCR puoi scannerizzare sia il libretto che le coordinate
calcolate. Il mio suggerimento ᅵ quello di scannerizzare il libretto delle
misure.



Ora, ottenuto il libretto delle misure procedi con il sistema piᅵ opportuno.



La cosa piᅵ semplice ᅵ copiare il libretto su un file blocco note
rinominato con estensione dat che puoi agevolmente importare in pregeo.

In pregeo NON UTILIZZANDO le coordinate dei punti fiduciali (per esempio
rinominando i PF con altri nomi: PF01 -> 1001 oppure cancellandoli dalla
TAF) puoi fare una elaborazione baricentrica rigida e con il programma
Vigeo ti trasformi in DXF apribile da CAD sul quale puoi sovrapporre il tuo
rilievo.

Ciao geoNick

Il grande fardello

unread,
Apr 30, 2013, 3:25:43 AM4/30/13
to
> Il grande fardello <nonte...@virgilio.it.invalid> ha scritto:
>
>
>
>> Allora spiegamoci meglio.
>
>> Per trasferire un libretto delle misure con coord. polari, prelevato
>> dal
>
>> catasto,ti devi leggere e trascrivere i punti sul cad con probabili
>
>> errori di lettura e trascrizione. Punto.
>
>> Se invece, come faccio con le coord. cartesiane, faccio riconoscere
>> la
>
>> pagina con l'OCR, la importo con excel e la esporto in formato txt
>> con i
>
>> dati separati da virgola, il tutto avviene automaticamente senza
>
>> digitazione ed errori.
>
>> Mi sono spiegato?
>
>>
>
>>
>
>
>
> Si, ti sei spiegato.
>
> Vediamo se mi spiego anch'io:
>
> Immagino che il trascrivere un libretto pregeo serva per fare una
> riconfinazione.
>
> Le coordinate cartesiane che ti vengono fornite con il libretto
> pregeo, sono coordinate calcolate dall'elaborazione pregeo, che come
> avrai notato si tratta di una rototraslazione con variazione di scala
> sulla base dei punti fiduciali utilizzati.
>
> Prima regola importante per una riconfinazione � quella di utilizzare
> le misure "non trattate" in special modo da pregeo per il quale gli
> algoritmi di calcolo sono sconosciuti.
>
> Per questo ti suggerivo di partire dalle misure polari, che poi era
> la tua domanda iniziale.
>
> Utilizzando l'OCR puoi scannerizzare sia il libretto che le coordinate
> calcolate. Il mio suggerimento � quello di scannerizzare il libretto
> delle misure.
>
>
>
> Ora, ottenuto il libretto delle misure procedi con il sistema pi�
> opportuno.
>
>
>
> La cosa pi� semplice � copiare il libretto su un file blocco note
> rinominato con estensione dat che puoi agevolmente importare in
> pregeo.
>
> In pregeo NON UTILIZZANDO le coordinate dei punti fiduciali (per
> esempio rinominando i PF con altri nomi: PF01 -> 1001 oppure
> cancellandoli dalla TAF) puoi fare una elaborazione baricentrica
> rigida e con il programma Vigeo ti trasformi in DXF apribile da CAD
> sul quale puoi sovrapporre il tuo rilievo.
>
> Ciao geoNick

Buona soluzione,

--
Ciao


Genep

unread,
Apr 30, 2013, 8:43:12 AM4/30/13
to
Non programmo pi� in AutoLisp da svariati anni, quindi riprendere il filo a
memoria � quasi impossibile...
per� se tu hai il file .lsp di partenza (quello che scrive da coord.
cartesiane) posse vedere se riesco ad adattarlo in coord polari.

Devi mandarmi anche un file di testo tipo da importare (uno vecchia maniera
con coord cartesiane e uno con coord polari)

non garantisco la riuscita... ma un tentativo lo posso fare ;-)

gene


Il grande fardello

unread,
Apr 30, 2013, 10:33:25 AM4/30/13
to
In news:517fbc38$0$6840$5fc...@news.tiscali.it,
Genep <ge...@nospam.com> typed:
Questo l'ha fatto Maci, a proposito, dov'� finito?

**********************************************************

;;; Restituisci un rilievo da un elenco di punti di un file TXT

************************************************************

; variabili generali di default

(setq ril:dx 0.15 ;offset X posizione testo

ril:dy 0.05 ;offset Y posizione testo

ril:ht 0.40 ;altezza testo

ril:sep "," ;separatore valori nel file

ril:rot 0.0 ;rotazione del testo

ril:lap "punti" ;layer su cui disegnare i punti

ril:lat "nomi" ;layer su cui scrivere i testi

)



(defun c:rest_ril ()

(if (null (tblsearch "layer" ril:lap)) (command ".-layer" "_n"

ril:lap ""))

(if (null (tblsearch "layer" ril:lat)) (command ".-layer" "_n"

ril:lat ""))

(setq ril:htt (cdr (assoc 40 (tblsearch "style" (getvar "TEXTSTYLE")))))

(setq ril:htt (if (= 0.0 ril:htt) T nil))

(if (null ril:htt) (command "_.style" "" "" ril:ht "" "" "" "" ""))

(setq ril:file (getfiled "Scegli file coordinate" "" "txt" 4))

(setq ril:desc (open ril:file "r"))

(setq ril:riga t)

(setq ril:con 0)

(while ril:riga

(setq ril:riga (read-line ril:desc))

(if ril:riga

(progn

(setq ril:pos 0

ril:lung (strlen ril:riga)

ril:pt (ril:val)

ril:N (atof (ril:val))

ril:E (atof (ril:val))

ril:con (1+ ril:con)

)

(setvar "CLAYER" ril:lap)

(command "_.point" "_non" (list ril:E ril:N))

(setvar "CLAYER" ril:lat)

(command "_.text" "_non" (list (+ ril:E ril:dx) (+ ril:N ril:dy)))

(if ril:htt (command ril:ht))

(command ril:rot ril:pt)

)

)

)

(alert (strcat "\nSono stati importati correttamente " (itoa ril:con)

" punti."))

(princ)

)

(defun ril:val ()

(setq ril:chr "")

(while (/= ril:chr ril:sep)

(setq ril:pos (1+ ril:pos)

ril:chr (substr ril:riga ril:pos 1)

)

(if (> ril:pos ril:lung)

(setq ril:chr ril:sep)

)

)

(setq ril:ret (substr ril:riga 1 (1- ril:pos ))

ril:riga (substr ril:riga (1+ ril:pos) ril:lung)

ril:pos 0

)

(eval ril:ret)

)



;(princ "\nUtility per ricostruire un rilievo da un elenco di coordinate

;caricata.\nby Maci 24.01.09\nDigita 'rest_ril' per avviare il comando")

(princ)

______________________________________________________
Questo � un file di coord. cartesiane. Per le polari � inutile che ti
dica......
CODICE, ANGOLO, DISTANZA
______________________________________________________
PF05/0190/D597,1286.729,1330.032
PF06/0190/D597,1586.193,1410.33
PF10/0190/D597,2101.91,1335.852
PF09/0190/D597,1819.598,1735.548
100,1640.12,1466.843
200,1575.839,1452.013
300,1673.21,1577.774
400,1785.063,1703.275
500,1569.18,1487.505
101,1638.597,1411.104
102,1650.912,1424.043
103,1653.686,1434.051
104,1660.767,1459.609
105,1663.971,1471.173
106,1608.919,1486.656
107,1605.683,1474.977
108,1598.557,1449.432
109,1596.076,1420.423
201,1589.058,1422.291
202,1588.086,1422.525
203,1569.812,1426.917
204,1535.783,1442.857
205,1542.67,1467.712
206,1544.286,1473.543
207,1551.178,1498.418
208,1605.791,1475.363
209,1598.897,1450.489
210,1597.282,1444.658
211,1592.882,1428.777
212,1589.828,1429.536

--
Ciao


Genep

unread,
May 1, 2013, 8:03:58 AM5/1/13
to
>>> Tempo fa un bravissimo programmatore in lisp di questo ng mi fece un
>>> programma per disegnare dei punti in cad estratti da un file .txt
>>> "Codice;X;Y" (coord. cartesiane) come te lo danno al catasto.
>>> Si potrebbe ottenere lo stesso risultato con le coordinate polari
>>> tipo "Cod;angolo(cetesimale);distanza"?
>>>
>>

> Questo l'ha fatto Maci, a proposito, dov'� finito?
>

Ecco qua
copia incolla e prova
N.B. nel lisp che mi hai mandato le coordinate venivano scritte invertite
cio� "Codice,Y,X" fai una prova...
in questo lisp i valori importati sono: "Codice, angolo (gradi centesimali),
distanza"
dove l'angolo da gradi centesimali viene convertito in gradi e la distanza �
dal punto 0,0 del disegno.
Praticamente le coordinate da importare sono considerate polari rispetto al
punto 0,0

ciao
gene


**********************************************************

;;; Restituisci un rilievo da un elenco di punti di un file TXT

************************************************************



; funzione di conversione gradi centesimali in radianti

(defun cir (a)
(* pi(/ a 200.0))
)




; variabili generali di default

(setq ril:dx 0.15 ;offset X posizione testo

ril:dy 0.05 ;offset Y posizione testo

ril:ht 0.40 ;altezza testo

ril:sep "," ;separatore valori nel file

ril:rot 0.0 ;rotazione del testo

ril:lap "punti" ;layer su cui disegnare i punti

ril:lat "nomi" ;layer su cui scrivere i testi

)



(defun c:pol ()

(if (null (tblsearch "layer" ril:lap)) (command ".-layer" "_n"

ril:lap ""))

(if (null (tblsearch "layer" ril:lat)) (command ".-layer" "_n"

ril:lat ""))

(setq ril:htt (cdr (assoc 40 (tblsearch "style" (getvar "TEXTSTYLE")))))

(setq ril:htt (if (= 0.0 ril:htt) T nil))

(if (null ril:htt) (command "_.style" "" "" ril:ht "" "" "" "" ""))

(setq ril:file (getfiled "Scegli file coordinate" "" "" 4))

(setq ril:desc (open ril:file "r"))

(setq ril:riga t)

(setq ril:con 0)

(while ril:riga

(setq ril:riga (read-line ril:desc))

(if ril:riga

(progn

(setq ril:pos 0

ril:lung (strlen ril:riga)

ril:pt (ril:val)

ril:N (atof (ril:val))

ril:E (atof (ril:val))

ril:con (1+ ril:con)

)

(setvar "CLAYER" ril:lap)

(setq pnt1 (polar '(0 0) (cir ril:N) ril:E)) ;calcola il punto

(command "_.point" "_non" pnt1) ;disegna il punto


(setvar "CLAYER" ril:lat)

(command "_.text" "_non" (list (+ (car pnt1) ril:dx) (+ (cadr pnt1)
ril:dy))) ;scrive il testo alla distanza stabilita
;caricata.\nby Maci 24.01.09\n modificata da Genep per
;coordinate polari\nDigita 'pol' per avviare il comando")

(princ)



Genep

unread,
May 1, 2013, 8:07:00 AM5/1/13
to
> Ecco qua
> copia incolla e prova
> N.B. nel lisp che mi hai mandato le coordinate venivano scritte invertite
> cio� "Codice,Y,X" fai una prova...
> in questo lisp i valori importati sono: "Codice, angolo (gradi
> centesimali), distanza"
> dove l'angolo da gradi centesimali viene convertito in gradi e la distanza
> � dal punto 0,0 del disegno.
> Praticamente le coordinate da importare sono considerate polari rispetto
> al punto 0,0
>

dimenticavo il comando �: pol

ciao
gene


Il grande fardello

unread,
May 2, 2013, 3:01:56 AM5/2/13
to
In news:51810498$0$6842$5fc...@news.tiscali.it,
Genep <ge...@nospam.com> typed:
>>>> Tempo fa un bravissimo programmatore in lisp di questo ng mi fece
>>>> un programma per disegnare dei punti in cad estratti da un file
>>>> .txt "Codice;X;Y" (coord. cartesiane) come te lo danno al catasto.
>>>> Si potrebbe ottenere lo stesso risultato con le coordinate polari
>>>> tipo "Cod;angolo(cetesimale);distanza"?
>>>>
>>>
>
>> Questo l'ha fatto Maci, a proposito, dov'� finito?
>>
>
> Ecco qua
> copia incolla e prova
> N.B. nel lisp che mi hai mandato le coordinate venivano scritte
> invertite cio� "Codice,Y,X" fai una prova...
> in questo lisp i valori importati sono: "Codice, angolo (gradi
> centesimali), distanza"
> dove l'angolo da gradi centesimali viene convertito in gradi e la
> distanza � dal punto 0,0 del disegno.
> Praticamente le coordinate da importare sono considerate polari
> rispetto al punto 0,0
>
> ciao
> gene
>

le coordinate sono invertite perch� � cos� che succede tra autocad e e
cartesiane di tipografia.
Se non le inverti il disegno viene "specchiato.

--
Ciao


Il grande fardello

unread,
May 2, 2013, 3:08:36 AM5/2/13
to
In news:51810498$0$6842$5fc...@news.tiscali.it,
Genep <ge...@nospam.com> typed:
>>>> Tempo fa un bravissimo programmatore in lisp di questo ng mi fece
>>>> un programma per disegnare dei punti in cad estratti da un file
>>>> .txt "Codice;X;Y" (coord. cartesiane) come te lo danno al catasto.
>>>> Si potrebbe ottenere lo stesso risultato con le coordinate polari
>>>> tipo "Cod;angolo(cetesimale);distanza"?
>>>>
>>>
>
>> Questo l'ha fatto Maci, a proposito, dov'è finito?
>>
>
> Ecco qua
> copia incolla e prova
> N.B. nel lisp che mi hai mandato le coordinate venivano scritte
> invertite cioè "Codice,Y,X" fai una prova...
> in questo lisp i valori importati sono: "Codice, angolo (gradi
> centesimali), distanza"
> dove l'angolo da gradi centesimali viene convertito in gradi e la
> distanza è dal punto 0,0 del disegno.
Grazie, proverò e ti farò sapere

--
Ciao


Il grande fardello

unread,
May 2, 2013, 10:53:44 AM5/2/13
to
i punti li importa ma:
un punto importato con angolo 200,0000 g. centesimali, (disegnata la
stazione 100 su coord. 0.00,0.00), e misurata la distanza da il valore
dell'angolo 300,0000 g
Perché?

> Ecco qua
> copia incolla e prova
> N.B. nel lisp che mi hai mandato le coordinate venivano scritte
> invertite cioè "Codice,Y,X" fai una prova...
> in questo lisp i valori importati sono: "Codice, angolo (gradi
> centesimali), distanza"
> dove l'angolo da gradi centesimali viene convertito in gradi e la
> distanza è dal punto 0,0 del disegno.
--
Ciao


www.studiomirano.it

unread,
May 2, 2013, 10:58:35 AM5/2/13
to
On 02/05/2013 16:53, Il grande fardello wrote:
> i punti li importa ma:
> un punto importato con angolo 200,0000 g. centesimali, (disegnata la
> stazione 100 su coord. 0.00,0.00), e misurata la distanza da il valore
> dell'angolo 300,0000 g
> Perché?
>



autocad > formato > unità > direzione

guarda un pò se il problema è lì...............




--
www.studiomirano.it

Il grande fardello

unread,
May 2, 2013, 11:21:29 AM5/2/13
to
In news:kltuuo$ec2$1...@speranza.aioe.org,
www.studiomirano.it <a...@a.com> typed:
no, non è lì, è proprio che gli angoli sono tutti sballati e senza una
logica precisa.
Se ruoto tutto il rilievo allineandolo angolarmente al primo punto, gli
altri angoli non corrispondono a quelli letti dal file .txt.
Boooh?

--
Ciao


SePrAm.com

unread,
May 3, 2013, 6:16:12 AM5/3/13
to
Il giorno giovedì 2 maggio 2013 17:21:29 UTC+2, Il grande fardello ha scritto: > In news:kltuuo$ec2$1...@speranza.aioe.org, www.studiomirano.it typed: > On 02/05/2013 16:53, Il grande fardello wrote: >> i punti li importa ma: >> un punto importato con angolo 200,0000 g. centesimali, (disegnata la >> stazione 100 su coord. 0.00,0.00), e misurata la distanza da il >> valore dell'angolo 300,0000 g >> Perché? >> > > > > autocad > formato > unità > direzione > > guarda un pò se il problema è lì............... no, non è lì, è proprio che gli angoli sono tutti sballati e senza una logica precisa. Se ruoto tutto il rilievo allineandolo angolarmente al primo punto, gli altri angoli non corrispondono a quelli letti dal file .txt. Boooh? -- Ciao

Attenzione ai separatori di decimali e di valori.
Nella variabile ril:sep viene impostato il separatore di campi per ogni riga:
ril:sep "," ;separatore valori nel file
Se tale separatore è lo stesso del separatore decimale il lisp non legge correttamente i dati.
Meglio scegliere ";" come separatore dei campi.
Ciao Claudio

Genep

unread,
May 3, 2013, 6:53:08 AM5/3/13
to
Calma calma...
il separatore � correttamente una virgola, perch� il separatore dei decimali
in autocad � il punto.

il problema che riscontri forse � la conversione fra gradi centesimali e
gradi (cartesiani?)!
100 gradi centesimali corrispondono a 90 gradi cartesiani!
200 a 180� ecc ecc

se provi ad importare questo test:

test,100.00,45.00

ottieni un punto a 45 unit� di distanza dall'origine 0,0 con un angolo di
90� (cio� in autocad sulla verticale di 0,0)

se invece le misure che inserisci sono gi� in gradi cartesiani, dimmelo che
elimino la conversione

ciao
gene




Genep

unread,
May 3, 2013, 6:59:39 AM5/3/13
to
E dimmi anche se hai necessit� di ruotare i disegni una volta importati i
valori angolari,
perch� la rotazione la posso impostare automaticamente.

ciao
gene


www.studiomirano.it

unread,
May 3, 2013, 7:56:11 AM5/3/13
to
se 200 diventa 300 allora � solo una questione che � tutto
ruotato...........se invece ci sono dei casi in cui 200 diventa 305 o
comunque situazioni diverse, il problema � altrove



--
www.studiomirano.it

SePrAm.com

unread,
May 3, 2013, 9:15:46 AM5/3/13
to
Il giorno venerdì 3 maggio 2013 12:53:08 UTC+2, Genep ha scritto:
> Calma calma... il separatore � correttamente una virgola, perch� il separatore dei decimali in autocad � il punto. il problema che riscontri forse � la conversione fra gradi centesimali e gradi (cartesiani?)! 100 gradi centesimali corrispondono a 90 gradi cartesiani! 200 a 180� ecc ecc se provi ad importare questo test: test,100.00,45.00 ottieni un punto a 45 unit� di distanza dall'origine 0,0 con un angolo di 90� (cio� in autocad sulla verticale di 0,0) se invece le misure che inserisci sono gi� in gradi cartesiani, dimmelo che elimino la conversione ciao gene

Attenzione, prima si deve verificare che nel file il separatore dei decimali sia il . perchè se così non fosse la lettura nel file non potrebbe funzionare correttamente.
Infatti, la lettura nel file viene fatta in questo modo:
- leggo una riga
- in questa, leggo un carattere alla volta finchè incontro il carattere separatore (,)
Ciò significa che se nel file ho la seguente riga:
test,100,00,45,00
i tre valori che il lisp estrarrà sono:
test
100
00
che non sono corretti.
Ciao Claudio

Il grande fardello

unread,
May 3, 2013, 11:00:05 AM5/3/13
to
In news:5ab82aba-2ffa-47b6...@googlegroups.com,
SePrAm.com <gran...@sepram.com> typed:
> Il giorno venerd� 3 maggio 2013 12:53:08 UTC+2, Genep ha scritto:
>> Calma calma... il separatore ? correttamente una virgola, perch? il
>> separatore dei decimali in autocad ? il punto. il problema che
>> riscontri forse ? la conversione fra gradi centesimali e gradi
>> (cartesiani?)! 100 gradi centesimali corrispondono a 90 gradi
>> cartesiani! 200 a 180? ecc ecc se provi ad importare questo test:
>> test,100.00,45.00 ottieni un punto a 45 unit? di distanza
>> dall'origine 0,0 con un angolo di 90? (cio? in autocad sulla
>> verticale di 0,0) se invece le misure che inserisci sono gi? in
>> gradi cartesiani, dimmelo che elimino la conversione ciao gene
>
> Attenzione, prima si deve verificare che nel file il separatore dei
> decimali sia il . perch� se cos� non fosse la lettura nel file non
> potrebbe funzionare correttamente.
> Infatti, la lettura nel file viene fatta in questo modo:
> - leggo una riga
> - in questa, leggo un carattere alla volta finch� incontro il
> carattere separatore (,)
> Ci� significa che se nel file ho la seguente riga:
> test,100,00,45,00
> i tre valori che il lisp estrarr� sono:
> test
> 100
> 00
> che non sono corretti.
> Ciao Claudio

Nel file ci sono le virgole per separare i dati e il punto separatore
decimali.
Eccolo:

PF15,229.2190,136.199
PF16,313.6250,270.271
101,184.2650,53.798
102,226.9460,39.040
128,33.0560,25.451
129,89.1160,43.670
130,105.4360,71.294
131,140.5680,55.511
132,139.6630,57.091
134,147.9700,22.543
154,144.6060,31.150
135,214.7860,6.848

--
Ciao


Il grande fardello

unread,
May 3, 2013, 11:06:00 AM5/3/13
to
In news:5183d104$0$37131$4faf...@reader1.news.tin.it,
Il grande fardello <nonte...@virgilio.it.invalid> typed:
Aggiungo che ho un lisp che fa lo stesso lavoro perfettamente ma con dati
digitati da tastiera.
Rieccolo:

; *********************************************************************
; DISEGNA UN PUNTO DI COORDINATE POLARI DATE (Punto per polari)
; *********************************************************************

(defun c:polari (/ ht xyst xytx xnomep ynomep postx nomep nomep1 nomestr
stringa staz ang1 np x y dtr dis pt)
(setvar "blipmode" 1)
(setvar "AUNITS" 2)
(setvar "ANGDIR" 1)
(setvar "ANGBASE" ( * pi 0.5))
(setvar "AUPREC" 4)
(setvar "LUNITS" 2)
(setvar "LUPREC" 3)
(setvar "PDMODE" 3)
(setvar "PDSIZE" 2.0000)
(setvar "OSMODE" 0)

(setvar "CMDECHO" 0)

;se non esiste il layer TESTI, lo crea
(IF (not (TBLSEARCH "LAYER" "TESTI"))
(COMMAND "_LAYER" "_N" "TESTI" "_C" "1" "TESTI" ""));fine if

;se non esiste il layer PUNTI, lo crea
(IF (not (TBLSEARCH "LAYER" "PUNTI"))
(COMMAND "_LAYER" "_N" "PUNTI" "_C" "3" "PUNTI" ""));fine if

;se HTES non � impostato, preimposta HTES
(if (not htes) (setq htes 4.0));fine if

;chiede l'altezza per il testo
(setq ht (getreal (strcat "\nAltezza testi <" (rtos htes 2 2) ">: ")));fine
setq

;se HT non � stato impostato, significa che � stato confermato HTES, quindi
lo assegna
(if ht (setq htes ht));fine if

(command "stile" "" "" htes "" "" "" "" "")

(setq STAZ nil)
(while (not STAZ)
(setq staz (getint "\nSTAZIONE N.: "))
);wend
(setq XYST nil)
(while (not XYST)
(setq xyst (getpoint "\nCoordinate STAZIONE: "))
);wend
(setq xytx (LIST (+ (* 2 htes) (CAR XYST)) (+ (* 2 htes) (CADR XYST))))

(COMMAND "layer" "R" "Punti" ""
"punto" xyst
"layer" "R" "Testi" ""
"testo" xytx 100 staz
);fine command

(setq nomep (1+ staz) ang1 T)

(setq nomestr (getstring (strcat "\nPunto battuto: <" (itoa nomep) ">")))
(if (not nomestr) ;se nomestr � = NIL (ha ricevuto un INVIO)
(setq nomestr (itoa nomep)) ;imposta nomestr=nomep, ma informato STRING
(setq nomep (atoi nomestr)) ;altrimenti reimposta nomep=nomestr, ma in
formato INTEGER
);fine if


(while ang1 ;finch� ang1 � impostato... continua il ciclo

(setq ang1 (getreal "\nAngolo: "))
(if ang1
(progn
(initget 1)
(setq dis (getreal "\nDistanza: "))
(setq dtr (* pi (/ ang1 200.0)))
(setq x (+ (CAR XYST) (* dis (sin dtr))))
(setq y (+ (CADR XYST) (* dis (cos dtr))))
(setq pt (list x y))
(setq xnomep (+ X htes))
(setq ynomep (+ y htes))
(setq postx (list xnomep ynomep))
(command "layer" "R" "Punti" ""
"punto" pt
"layer" "R" "Testi" ""
"testo" postx 100 nomep
);fine command

(setq nomep (1+ nomep)
NOMESTR (itoa nomep)
nomep (getint (strcat "\n \n \nPunto battuto n.<" NOMESTR ">: "))
);fine setq
(if nomep (setq NOMESTR (itoa nomep))(setq nomep (atoi nomestr)));fine
if

);fine progn
);fine if
);fine while
(prompt "\n \nTerminato")
(princ)

);fine defun

--
Ciao


www.studiomirano.it

unread,
May 3, 2013, 11:37:26 AM5/3/13
to
mmm.....hai settato la variabile che da precedenza ai dati inputati dal
lisp rispetto a eventuali osnap ?

OSNAPCOORD

Il grande fardello

unread,
May 3, 2013, 1:03:11 PM5/3/13
to
In news:km0ljj$kib$1...@speranza.aioe.org,
www.studiomirano.it <a...@a.com> typed:
> mmm.....hai settato la variabile che da precedenza ai dati inputati
> dal lisp rispetto a eventuali osnap ?
>
> OSNAPCOORD
>

??????

--
Ciao


Genep

unread,
May 3, 2013, 1:24:11 PM5/3/13
to
>> OSNAPCOORD
>>
>
> ??????
>

non mi hai risposto al mio messaggio precedente così te lo rimando:

il problema che riscontri forse è la conversione fra gradi centesimali e
gradi (cartesiani?)!
100 gradi centesimali corrispondono a 90 gradi cartesiani!
200 a 180° ecc ecc

se provi ad importare questo test:

test,100.00,45.00

ottieni un punto a 45 unità di distanza dall'origine 0,0 con un angolo di
90° (cioè in autocad sulla verticale di 0,0)

se invece le misure che inserisci sono già in gradi cartesiani, dimmelo che

addre...@invalid.invalid

unread,
May 4, 2013, 6:06:51 AM5/4/13
to
> PF15,229.2190,136.199
> PF16,313.6250,270.271
> 101,184.2650,53.798
> 102,226.9460,39.040
> 128,33.0560,25.451
> 129,89.1160,43.670
> 130,105.4360,71.294
> 131,140.5680,55.511
> 132,139.6630,57.091
> 134,147.9700,22.543
> 154,144.6060,31.150
> 135,214.7860,6.848

Lo importa correttamente! Ma devi dirmi se i gradi sono CENTESIMALI o
CARTESIANI ....
Ciao
Gene

Genep

unread,
May 4, 2013, 7:24:40 AM5/4/13
to
>> 154,144.6060,31.150
>> 135,214.7860,6.848
>
> Lo importa correttamente! Ma devi dirmi se i gradi sono CENTESIMALI o
> CARTESIANI ....

Pardon,
gradi CENTESIMALI o SESSAGESIMALI.

ho modificato il lisp di Maci per l'acquisizione di punti espressi in coord.
polari con gradi CENTESIMALI
come mi era sembrata la tua richiesta...

ciao
gene


Genep

unread,
May 4, 2013, 8:14:41 AM5/4/13
to
>
> ; *********************************************************************
> ; DISEGNA UN PUNTO DI COORDINATE POLARI DATE (Punto per
> polari)
> ; *********************************************************************
>
> (defun c:polari (/ ht xyst xytx xnomep ynomep postx nomep nomep1 nomestr
> stringa staz ang1 np x y dtr dis pt)
> (setvar "blipmode" 1)
> (setvar "AUNITS" 2)
> (setvar "ANGDIR" 1)
> (setvar "ANGBASE" ( * pi 0.5))
> (setvar "AUPREC" 4)
> (setvar "LUNITS" 2)
> (setvar "LUPREC" 3)
> (setvar "PDMODE" 3)
> (setvar "PDSIZE" 2.0000)
> (setvar "OSMODE" 0)

Il problema � proprio questo!!!!
lanciando questo lisp fai un casino alle impostazioni delle unit� angolari:

(setvar "blipmode" 1) ;mette un marcatore sui punti
(setvar "AUNITS" 2) ;imposta i gradi centesimali <<<<<<<??????
(setvar "ANGDIR" 1) ;conta gli angoli in senso orario <<<<<<<<???????
(setvar "ANGBASE" ( * pi 0.5)) ;setta la base degli angoli rispetto alla
corrente UCS a P greco mezzi (???) quindi la ruota di 90� <<<<<<???????
(setvar "AUPREC" 4) ; setta il numero dei decimali dopo la virgola
(setvar "LUNITS" 2) ;imposta l'unita decimale
(setvar "LUPREC" 3) ;numero dei decimali per le linee
(setvar "PDMODE" 3) ;mostra i punti con la crocetta
(setvar "PDSIZE" 2.0000) ;specifica la dimensione della crocetta sul punto

ciao
gene



Il grande fardello

unread,
May 5, 2013, 4:24:43 AM5/5/13
to
In
news:1831704503389354494.621835...@news.tiscali.it,
addre...@invalid.invalid <addre...@invalid.invalid> typed:
Centesimali

--
Ciao


Il grande fardello

unread,
May 5, 2013, 4:25:36 AM5/5/13
to
In news:5184fb99$0$1593$5fc...@news.tiscali.it,
Genep <ge...@nospam.com> typed:
E il tutto � proprio come voglio che sia.

--
Ciao


Genep

unread,
May 5, 2013, 9:31:44 AM5/5/13
to
>>
>> Lo importa correttamente! Ma devi dirmi se i gradi sono CENTESIMALI o
>> CARTESIANI ....
>> Ciao
>> Gene
>
> Centesimali
>
> --
> Ciao
>

ma allora � tutto a posto, non capisco cosa non funziona!
gli angoli che trovi strani sono dovuti alle impostazioni che hai detto di
volere.
Veramente non afferro il problema!

ciao
gene


www.studiomirano.it

unread,
May 6, 2013, 3:04:06 AM5/6/13
to
se questa variabile non � ben settata, autocad potrebbe non disegnare
l'angolo secondo l'input del lisp, ma secondo l'osnap pi� vicino



--
www.studiomirano.it

Il grande fardello

unread,
May 6, 2013, 3:18:25 AM5/6/13
to
In news:51865f29$0$6828$5fc...@news.tiscali.it,
Genep <ge...@nospam.com> typed:
Grazie per la tua pazienza.
Non so cosa succeda nell'importazione del file .txt.
Ti allego il libretto da importare ed il risultato dopo l'importazione:

Libretto da importare
PF15,229.2190,136.199
PF16,313.6250,270.271
101,184.2650,53.798
102,226.9460,39.040
128,33.0560,25.451
129,89.1160,43.670
130,105.4360,71.294
131,140.5680,55.511
132,139.6630,57.091
134,147.9700,22.543
154,144.6060,31.150
135,214.7860,6.848

Risultato su cad
PF15,270.7810,136.199
PF16,186.3750,270.271
101,315.7350,53.798
102,273.0540,39.040
128,66.9440,25.451
129,10.8840,43.670
130,394.5640,71.294
131,359.4320,55.511
132,360.3370,57.091
133,352.0300,22.543
134,355.3940,31.150
135,285.2140,6.848


--
Ciao


Il grande fardello

unread,
May 6, 2013, 5:22:52 AM5/6/13
to
In news:km7kl5$gg2$1...@speranza.aioe.org,
www.studiomirano.it <a...@a.com> typed:
Non mi ha mai dato problemi

--
Ciao


Genep

unread,
May 6, 2013, 1:20:53 PM5/6/13
to
> Grazie per la tua pazienza.

Ormai mi sono appassionato...
Il risultato � corretto:
tu hai come impostazione
la rotazione del calcolo degli angoli che parte da 90� anzich� da 0� (menu
FORMAT > UNITS > DIRECTION)
e l'impostazione CLOCKWISE anzich� il contrario.
Se provi a calcolare gli angoli in senso ANTIORARIO e da EST (sinistra) e
impostando il tipo centesimale (GRADS) i numeri tornano giusti.

Posso capire la rotazione del disegno ma non capisco perch� cambiare il
verso antiorario, perch� cos� quando misuri trovi gli angoli esplementari
(complementari dell'angolo giro ...l'ho trovato su wikipedia!!!)

ciao
gene


Il grande fardello

unread,
May 6, 2013, 1:49:34 PM5/6/13
to
In news:5187e66a$0$1588$5fc...@news.tiscali.it,
Genep <ge...@nospam.com> typed:
>> Grazie per la tua pazienza.
>
> Ormai mi sono appassionato...
>
cut
> Il risultato � corretto:
> tu hai come impostazione
> la rotazione del calcolo degli angoli che parte da 90� anzich� da 0�
> (menu FORMAT > UNITS > DIRECTION)
> e l'impostazione CLOCKWISE anzich� il contrario.
> Se provi a calcolare gli angoli in senso ANTIORARIO e da EST
> (sinistra) e impostando il tipo centesimale (GRADS) i numeri tornano
> giusti.
> Posso capire la rotazione del disegno ma non capisco perch� cambiare
> il verso antiorario, perch� cos� quando misuri trovi gli angoli
> esplementari (complementari dell'angolo giro ...l'ho trovato su
> wikipedia!!!)
> ciao
> gene

Non so se sei geometra ma per come mi suggerisci mi sembra di no.
comunque ho fatto come dici tu ed il risultato � sempre uguale.
In topografia comunque il nord � parallelo all'asse Y del cad ed � 0 gradi e
la rotazione in senso orario.
Hai provato a digitare un punto caricando il mio lisp che ho mandato qualche
giorno fa, cio� questo che funziona benissimo?
Si potrebbe adattarlo per far si che leggesse un file .txt invece di
digitare da tastiera?

; *********************************************************************
; DISEGNA UN PUNTO DI COORDINATE POLARI DATE (Punto per polari)
; *********************************************************************

(defun c:polari (/ ht xyst xytx xnomep ynomep postx nomep nomep1 nomestr
stringa staz ang1 np x y dtr dis pt)
(setvar "blipmode" 1)
(setvar "AUNITS" 2)
(setvar "ANGDIR" 1)
(setvar "ANGBASE" ( * pi 0.5))
(setvar "AUPREC" 4)
(setvar "LUNITS" 2)
(setvar "LUPREC" 3)
(setvar "PDMODE" 3)
(setvar "PDSIZE" 2.0000)
(setvar "OSMODE" 0)

Genep

unread,
May 6, 2013, 4:24:57 PM5/6/13
to
Stavolta � a prova di bomba!
(spero ;-)

il comando l'ho cambiato in "polari" per non confonderlo con qualcos'altro

ciao
gene


**********************************************************

;;; Restituisci un rilievo da un elenco di punti di un file TXT

************************************************************

;impostazioni di ambiente

(setvar "AUNITS" 2) ;gradi centesimali
(setvar "ANGDIR" 1) ;calcola gli angoli in senso orario
(setvar "ANGBASE" ( * pi 0.5)) ;calcola gli angoli da nord (y)
(setvar "AUPREC" 4) ;4 decimali
(setvar "LUNITS" 2)
(setvar "LUPREC" 3)
(setvar "PDMODE" 3)
(setvar "PDSIZE" 2.0000)
(setvar "OSMODE" 0)



; funzione di conversione gradi centesimali in radianti

(defun cir (a)
(* pi(/ a 200.0))
)




; variabili generali di default

(setq ril:dx 0.15 ;offset X posizione testo
ril:dy 0.05 ;offset Y posizione testo
ril:ht 0.40 ;altezza testo
ril:sep "," ;separatore valori nel file
ril:rot 0.0 ;rotazione del testo
ril:lap "punti" ;layer su cui disegnare i punti
ril:lat "nomi" ;layer su cui scrivere i testi
)



(defun c:polari ()

(if (null (tblsearch "layer" ril:lap)) (command ".-layer" "_n" ril:lap ""))

(if (null (tblsearch "layer" ril:lat)) (command ".-layer" "_n" ril:lat ""))

(setq ril:htt (cdr (assoc 40 (tblsearch "style" (getvar "TEXTSTYLE")))))

(setq ril:htt (if (= 0.0 ril:htt) T nil))

(if (null ril:htt) (command "_.style" "" "" ril:ht "" "" "" "" ""))

(setq ril:file (getfiled "Scegli file coordinate" "" "" 4))

(setq ril:desc (open ril:file "r"))

(setq ril:riga t)

(setq ril:con 0)

(while ril:riga

(setq ril:riga (read-line ril:desc))

(if ril:riga

(progn

(setq
ril:pos 0
ril:lung (strlen ril:riga)
ril:pt (ril:val)
ril:N (atof (ril:val))
ril:E (atof (ril:val))
ril:con (1+ ril:con)
)

(setvar "CLAYER" ril:lap)

(setq x (* ril:E (sin (cir ril:N) ))) ;calcola la X del punto
(setq y (* ril:E (cos (cir ril:N) ))) ;calcola la Y del punto
(setq pnt1 (list x y))

(command "_.point" "_non" pnt1) ;disegna il punto


(setvar "CLAYER" ril:lat)

(command "_.text" "_non" (list (- (car pnt1) ril:dy) (+ (cadr pnt1)
ril:dx))) ;scrive il testo alla distanza stabilita
;coordinate polari\nDigita 'polari' per avviare il comando")

(princ)



Cirano

unread,
May 7, 2013, 3:42:29 AM5/7/13
to
> Libretto da importare
> PF15,229.2190,136.199
> PF16,313.6250,270.271
> 101,184.2650,53.798
> 102,226.9460,39.040
> 128,33.0560,25.451
> 129,89.1160,43.670
> 130,105.4360,71.294
> 131,140.5680,55.511
> 132,139.6630,57.091
> 134,147.9700,22.543
> 154,144.6060,31.150
> 135,214.7860,6.848

una curiositᅵ: ma da pregeo 8 in poi su diverse misure, se non su
tutte, c'ᅵ anche l'angolo verticale. Lᅵ come fai? Riduci la distanza
prima?


Il grande fardello

unread,
May 7, 2013, 3:53:55 AM5/7/13
to
In news:5188116b$0$1597$5fc...@news.tiscali.it,
Genep <ge...@nospam.com> typed:
> Stavolta � a prova di bomba!
> (spero ;-)
>
> il comando l'ho cambiato in "polari" per non confonderlo con
> qualcos'altro
> ciao
> gene

finalmenteeeee! e, come disse la mosca cocchiera "hai visto quanto abbiamo
lavorato?"

Ho modificato solo queste righe:
ril:rot 0.0 ;rotazione del testo con ril:rot 100.0 ;rotazione del testo per
far scrivere il testo in orizzontale;

(command "_.text" "_non" (list (- (car pnt1) ril:dy) (+ (cadr pnt1)
ril:dx))) ;scrive il testo alla distanza stabilita

con ..... (+car pnt1) perch� non mi spostava il testo a destra rispetto
all'asse y

Ti ringrazio molto e ti sono debitore


--
Ciao


Il grande fardello

unread,
May 7, 2013, 4:02:41 AM5/7/13
to
In news:kmab2g$h1q$1...@dont-email.me,
Cirano <cir...@qqrq.it> typed:
>> Libretto da importare
>> PF15,229.2190,136.199
>> PF16,313.6250,270.271
>> 101,184.2650,53.798
>> 102,226.9460,39.040
>> 128,33.0560,25.451
>> 129,89.1160,43.670
>> 130,105.4360,71.294
>> 131,140.5680,55.511
>> 132,139.6630,57.091
>> 134,147.9700,22.543
>> 154,144.6060,31.150
>> 135,214.7860,6.848
>
> una curiosit�: ma da pregeo 8 in poi su diverse misure, se non su
> tutte, c'� anche l'angolo verticale. L� come fai? Riduci la distanza
> prima?

� giusto il tuo appunto ma questa applicazione serve per riconfinazioni di
libretti "ante 8".
Per gli altri basta lo scanner, il riconoscimento tramite OCR, il
salvataggio .dat e rielaborazione con pregeo 10.
Poi applicazioni tipo Leonardo o altre free per esportare in dxf.
Aggiustando il .lisp questa procedura si potrebbe applicare anche ai
libretti ante 8

--
Ciao


Il grande fardello

unread,
May 7, 2013, 4:57:33 AM5/7/13
to
In news:5188b521$0$1374$4faf...@reader2.news.tin.it,
Il grande fardello <nonte...@virgilio.it.invalid> typed:
oops "post 8"

--
Ciao


0 new messages