Autore |
Discussione |
blubossa
Utente Senior
102 Messaggi |
Inserito il - 22 novembre 2010 : 16:14:04
|
ciao a tutti, sto cercando di risolvere un problema relativo all'esportazione dei vertici della polilinea e dei raggi, in allegato posto sia il lisp che dcl che ho cercato di correggere senza riuscirci, inoltre ho allegato il file di testo errato e quello corretto.
spero che qualcuno possa aiutarmi a risolvere. grazie
BB
Scarica allegato:
test.rar 56,52 KB
Scarica allegato:
TEST5.dwg 46,82 KB
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 22 novembre 2010 : 17:50:32
|
Prova così:
Scarica allegato:
test.zip 4,2 KB
Senza che riscrivo tutto il listato ho apportato questa correzione alla riga 103 del programma:
(setq p1 (trans (trans (cdr (nth (* vi 5) pl)) en 0) 0 1)
b42 (cdr (nth (+ (* vi 5) 3) pl))
fb (if (or (not b42) (zerop b42))
(setq b42 nil)
b42
)
)
Il codice 42 si trova anch'esso dopo 5 elementi della lista e non 4 come era scritto. Nelle versioni più recenti di AutoCAD è stato aggiunto il codice 91 (identificatore del vertice) dopo il codice 42 (curvatura), invece nelle versioni precedenti questo codice non esisteva.
10 Coordinate vertice 40 Larghezza iniziale 41 Larghezza finale 42 Curvatura 91 Identificatore del vertice 10 Coordinate vertice successivo
La sequenza dei vertici era effettivamente giusta (1 ogni 5 elementi).
PS: Alla riga 82 e 83 dovrebbe essere scritto pure il 5 al posto del 4, ma nella funzione è ininfluente |
Modificato da - Terminator in data 22 novembre 2010 18:15:20 |
|
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 22 novembre 2010 : 18:48:57
|
ciao Terminator, ho provato ma continua ad andare in errore..........
grazie bb
| Messaggio inserito da Terminator
Prova così:
Scarica allegato:
test.zip 4,2 KB
Senza che riscrivo tutto il listato ho apportato questa correzione alla riga 103 del programma:
(setq p1 (trans (trans (cdr (nth (* vi 5) pl)) en 0) 0 1)
b42 (cdr (nth (+ (* vi 5) 3) pl))
fb (if (or (not b42) (zerop b42))
(setq b42 nil)
b42
)
)
Il codice 42 si trova anch'esso dopo 5 elementi della lista e non 4 come era scritto. Nelle versioni più recenti di AutoCAD è stato aggiunto il codice 91 (identificatore del vertice) dopo il codice 42 (curvatura), invece nelle versioni precedenti questo codice non esisteva.
10 Coordinate vertice 40 Larghezza iniziale 41 Larghezza finale 42 Curvatura 91 Identificatore del vertice 10 Coordinate vertice successivo
La sequenza dei vertici era effettivamente giusta (1 ogni 5 elementi).
PS: Alla riga 82 e 83 dovrebbe essere scritto pure il 5 al posto del 4, ma nella funzione è ininfluente
|
|
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 22 novembre 2010 : 18:51:55
|
Molto strano, sul mio Autocad 2011 funziona, che versione hai? Al limite prova con questo:
Scarica allegato:
test.zip 4,19 KB
PS: il DWG dovresti allegarlo zippato
|
Modificato da - Terminator in data 22 novembre 2010 18:56:23 |
|
|
GP
Utente Master
Regione: Piemonte
Prov.: Vercelli
2776 Messaggi |
Inserito il - 22 novembre 2010 : 19:19:43
|
Qualche command da "underscorizzare"? |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 22 novembre 2010 : 19:41:42
|
| Messaggio inserito da GP:
Qualche command da "underscorizzare"?
|
Si, effettivamente ci sono 2 SELECT da "underscorizzare" (bello questo termine), ma facendo girare il programma test.lsp step by step, questi 2 SELECT non vengono chiamati in causa. Almeno fino a quando non si aggiunge o si rimuove un'entità dal gruppo di selezione. Il problema è nell'entità polilinea. Infatti il codice di errore numberp significa che il programma si aspetta un numero reale e invece gli viene propinata una lista e secondo me può essere solamente nella sequenza errata che ho accennato prima. Aspettiamo lumi da blubossa... |
Modificato da - Terminator in data 22 novembre 2010 21:24:47 |
|
|
joseph
Utente Master
Regione: Lombardia
Prov.: Cremona
Città: Casalmaggiore
1884 Messaggi |
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 22 novembre 2010 : 22:20:42
|
Come sta scritto sui commenti, il file originale funziona per versioni AutoCAD fino alla 2007. Per le versioni successive bisogna effettuare quella modifica che avevo suggerito all'inizio (infatti sul mio pc funziona). Probabilmente blubossa ha una versione di AutoCAD dopo la 2007 e ha effettuato solo mezza correzione sul file lisp, dimenticandosi di aggiornare anche il codice 42. In ogni caso la mia è solo una supposizione. |
|
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 22 novembre 2010 : 23:35:21
|
ciao Terminator, purtroppo adesso non posso provare a testare il file che hai corretto ho una versione troppo vecchia, farò il test domani con la versione 2010 con cui ho fatto le altre prove.
posso utilizzare il file che hai allegato?
scusatemi per il dwg non zippato
grazie bb |
|
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 23 novembre 2010 : 08:25:42
|
ciao Terminator, ho provato ad utilizzare il file che hai allegato e continua a non funzionare, ecco il risultato % :TY (CIAO) N5 G90 G21 N10 G00 G99 N15 M05 M09 N20 T21 M03 M08 N25 S800 N30 F200 N35 G00 Z3 N40 G00 X0 Y0 N45 G01 Z-2 N50 G01; errore: tipo di argomento errato: punto 2D/3D: 0
possibile che tra versione 2010,che io uso, e la 2011 ci sia qualcosa di diverso?? ti è possibile fare una prova con la 2010?
grazie bb
| Messaggio inserito da Terminator
Molto strano, sul mio Autocad 2011 funziona, che versione hai? Al limite prova con questo:
Scarica allegato:
test.zip 4,19 KB
PS: il DWG dovresti allegarlo zippato
|
|
|
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 23 novembre 2010 : 08:51:13
|
Ciao Terminator,ho fatto tutte le correzioni che hai indicato nelle varie righe ed il risultato che ottengo lo vedi nel file A, mentre io mi aspettavo il file B. Ti ho allegato anche l'immagine del dcl per vedere i dati inseriti.
sembra che un passo in avanti è stato fatto.
bb
Scarica allegato:
test1.rar 45,4 KB |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 23 novembre 2010 : 09:01:58
|
Intanto non si inchioda come prima! Almeno il problema codici è risolto...
Puoi allegarmi il dwg dove hai effettuato la prova? Grazie!
|
|
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 23 novembre 2010 : 09:32:39
|
| Messaggio inserito da Terminator
Intanto non si inchioda come prima! Almeno il problema codici è risolto...
Puoi allegarmi il dwg dove hai effettuato la prova? Grazie!
|
Scarica allegato:
TEST5.rar 12,86 KB |
|
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 23 novembre 2010 : 09:34:17
|
scusa ho inserito senza messaggio..... quello che ti ho allegato è lo stesso su cui ho fatto tutti gli altri test...
ciao bb
| Messaggio inserito da blubossa
<div align="center" id="quote2"><table class="quote"><tr><td class="quotetd"></td></tr><tr><td class="quotetd2"><span class="quotetext">Messaggio inserito da Terminator
Intanto non si inchioda come prima! Almeno il problema codici è risolto...
Puoi allegarmi il dwg dove hai effettuato la prova? Grazie!
</span></td></tr></table></div align="center" id="quote2">
Scarica allegato:
TEST5.rar 12,86 KB
|
|
|
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 23 novembre 2010 : 11:54:54
|
ho riprovato e nuovamente non funziona!!!!
ecco nuovamente lo stesso risultato:
% :RR (ERGR) N5 G90 G21 N10 G00 G99 N15 M05 M09 N20 T32 M03 M08 N25 S600 N30 F50 N35 G00 Z2 N40 G00 X0 Y0 N45 G01 Z-3 N50 G01; errore: tipo di argomento errato: punto 2D/3D: 0
non riesco a capire cosa succede..........
|
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 23 novembre 2010 : 12:20:04
|
Sto meditando sul programma, spero di farti avere una risposta al più presto... |
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 23 novembre 2010 : 14:48:45
|
Dovrebbe andare (il condizionale è d'obbligo):
Testato su AutoCAD 2011, l'output è lo stesso del file .nc che mi hai inviato. Prova in ogni caso più volte.
Scarica allegato:
test.zip 4,2 KB |
|
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 23 novembre 2010 : 15:22:07
|
ciao Terminator, ho provato diverse volte e.........sembra davvero funzionare correttamente dico sembra solo perchè vorrei fare altri test.
mi fai capire dov'era l'errore?? aveva ragione GP sul tuo conto grazie tante...
bb
| Messaggio inserito da Terminator
Dovrebbe andare (il condizionale è d'obbligo):
Testato su AutoCAD 2011, l'output è lo stesso del file .nc che mi hai inviato. Prova in ogni caso più volte.
Scarica allegato:
test.zip 4,2 KB
|
|
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 23 novembre 2010 : 15:55:35
|
Aspetto che tu finisca le prove e dopo ti spiego tutto, non vorrei vendere la pelle dell'orso prima che sia ucciso... |
|
|
blubossa
Utente Senior
102 Messaggi |
Inserito il - 23 novembre 2010 : 16:30:29
|
ciao Terminator, ho continuato a fare diverse prove e pare proprio che l'orso sia morto...........
| Messaggio inserito da Terminator
Aspetto che tu finisca le prove e dopo ti spiego tutto, non vorrei vendere la pelle dell'orso prima che sia ucciso...
|
|
|
|
Terminator
Utente Master
725 Messaggi |
Inserito il - 23 novembre 2010 : 18:25:36
|
| Messaggio inserito da blubossa
...pare proprio che l'orso sia morto...
|
Scarica allegato:
test.zip 4,23 KB]
Intanto inoltro l'ultima versione del programma dato che se la polilinea è chiusa io posso avere non solo un valore 1 della variabile PLINEGEN, ma anche 129. Avevo il problema che mancava l'ultima riga di testo nel file .nc, quando devo far coincidere il primo vertice con l'ultimo
Come da help in linea: PLINEGEN - Imposta la modalità di generazione dei modelli di tipo di linea attorno ai vertici di una polilinea 2D. In parole povere se ho una linea tratteggiata i vertici possono essere non visibili dato che lo "spazio" del tratteggio cade su uno di loro.
Le righe dalla 155 alla 160 riguardano la modifica che dicevo prima (PLINEGEN)
Ma il cuore del programma è tutto nelle righe 181-232. Intanto bisognava partire dalla variabile vi=1 e non dallo 0 (riga 181). Le righe 183-184 sono state modificate tenendo conto della codifica polilinee cambiata nelle ultime versioni AutoCAD (il famoso codice 91) e quindi aumentando il valore da 4 a 5. Caso strano, quando c'era il raggio, non venivano considerate le coordinate x e y e quindi il programma stampava solo il raggio (righe 199-207).
In ultimo c'erano queste righe secondo me anomale: (equal (car p1) (car pp) 0.000001) (equal (cadr p1) (cadr pp) 0.000001)
invece delle più logiche: (equal p1 pp 0.000001) (equal p1 pp 0.000001)
Dato che bisognava confrontare le coordinate dei vertici e non solo le x e le y singole dei vertici.
Spero di essere stato chiaro e mi scuso fin d'ora se la spiegazione è stata un po' farraginosa. Anche in ufficio mi dicono che non so spiegare bene le cose su AutoCAD.
|
|
|
Discussione |
|