• このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

ポリラインの方へ

  • Thread starter Thread starter exxon
  • Start date Start date

exxon

Guest
e' possibile invertire il verso di una polilinea?

nel senso di invertire la sequenza degli elementi che la compongono (o quella dei vertici, che è la stessa cosa)?

mi spiego ulteriormente, in quanto la domanda potrebbe essere fraintesa: il disegno deve restare uguale, dovrebbe cambiare solo la rappresentazione interna nel database del disegno. come dire che tutti i vertici mantengono le proprie coordinate, ma il numero 1 diventa l'ultimo, il numero 2 il penultimo e così via.
 
problema:
il comando inverti funziona bene con le polilinee aperte, mentre con quelle chiuse...

il disegno mostra una polilinea chiusa formata da due segmenti rettilinei e quattro archi di circonferenza.
i due triangoli mostrano il primo segmento della polilinea e la sua direzione, prima e dopo l'applicazione del comando inverti.

poli.png

idee?
 
io non ho capito quello che vuoi fare.
a me funziona come nell'imagine
 

Attachments

  • Immagine.jpg
    Immagine.jpg
    25.1 KB · Views: 8
sto scrivendo un cam. quindi sono interessato al verso di percorrenza di una polilinea.

la questione è abbastanza sottile e non l'avevo mai presa in considerazione: se si inverte l'ordine della sequenza di una serie di punti che costituiscono una polilinea aperta, la nuova sequenza stabilirà anche il verso di percorrenza inverso.

poli2a.png

nella figura, prima dell'inversione, la sequenza nodi 1, 2, 3, 4, 5, percorre in verso orario i segmenti a, b c, d.
dopo l'inversione, la stessa sequenza nodi 1, 2, 3, 4, 5, percorre in verso antiorario i segmenti d, c, b a, come previsto.

se invece si inverte l'ordine della sequenza di una serie di punti che costituiscono una polilinea chiusa, la nuova sequenza non stabilirà più il verso di percorrenza inverso.

1544356096582.png

nella figura, prima dell'inversione, la sequenza nodi 1, 2, 3, 4, 5, 1, percorre in verso orario i segmenti a, b c, d, e.
dopo l'inversione, la stessa sequenza nodi 1, 2, 3, 4, 5, 1, percorre in verso antiorario i segmenti d, c, b a, e, che non è il percorso opposto a quello precedente (che sarebbe e, d, c, b, a).

nel caso di una polilinea chiusa, per ottenere l'inversione di percorrenza, i nodi dovrebbero essere invertiti come da figura, con un ovvio pasticcio di logica.

poli3.png

tutto il problema nasce dal fatto che in una polilinea chiusa, il punto finale non viene considerato come tale, ma come punto iniziale. nel caso della figura precedente, i nodi dovrebbero essere sei, non cinque, avendo il nodo 6 coincidente con il nodo 1. in questo caso, l'inversione dei nodi darebbe anche l'inversione della percorrenza.

il problema è che non appare possibile creare una polilinea aperta con nodo iniziale e finale coincidenti: autocad la chiude "d'ufficio".

e' un po' un casino.
 
se dopo il vertice 5 chiudi la poly, questa sarà una poly di 5 vertici chiusa, i vertici iniziale/finale non potranno mai coincidere.

se invece disegni l'ulteriore vertice 6 coincidente con il vertice 1, che la poly sia aperta o chiusa (come proprietà) non cambia niente ai fini dell'applicazione del comando inverti e il risultato deve essere quello che ti aspetti.

perché dici che "non appare possibile creare una polilinea aperta con nodo iniziale e finale coincidenti"?
 
perché dici che "non appare possibile creare una polilinea aperta con nodo iniziale e finale coincidenti"?
perché non è solo con il comando di chiusura che si genera una polilinea chiusa, acad lo fa anche di sua volontà, in certi casi sì, in certi no (ad minchiam, come direbbe un mio collega...).

ti faccio un esempio. se partiamo da un poligono aperto con sei vertici come quello in figura e, selezionato il vertice 6, lo posizioniamo sopra il vertice 1, la polilinea resta aperta, con i suoi sei vertici.

poli11.png

se invece partiamo da un poligono aperto con sei vertici come quello in figura e tagliamo l'eccedenza del segmento e, la polilinea si chiude perdendo l'ultimo vertice.

poli12.png

nessuno ha chiesto di trasformare una polilinea aperta in una chiusa, ma acad ha ritenuto che l'operazione di taglio sottintendesse la volontà (chissà poi perché) di trasformare la polilinea aperta in chiusa.

senza considerare che nella prossima release, le cose potrebbero essere diverse, visto che questi comportamenti non sono documentati.

dal punto di vista pratico (il mio problema), la maggior parte dei percorsi provengono da importazioni di disegni terzi, tutti formati da linee separate che vengono unite con il comando "edita polilinea". acad, se trova un percorso possibile, chiude la polilinea di sua volontà, decidendo qual'è il primo (e ultimo) nodo, nonché la direzione di percorrenza. aprire una polilinea così generata è praticamente impossibile se non pasticciando a mano il disegno.

mi sono messo il cuore in pace e nella gestione dei percorsi gestisco separatamente le polilinee aperte e chiuse, ricostruendomi l'ultimo nodo nel caso sia necessario.

sorge però un altro problema: in acad, in una polilinea chiusa, è possibile stabilire in modo arbitrario quale sia il nodo 1 della sequenza?
 
ma se tutto questo discorso ti serve per determinare il percorso di una fresa non puoi infischiartene di quello che fa autocad e di farlo fare al cam?
che cam è?integrato in autocad?
 
io sto scrivendo il cam...

e' un cam "2d e mezzo" per router che deve creare posaggi nel settore elettronico (tipo questo).

Posaggio.png

non si può dare un cam standard in mano a degli elettronici che non saprebbero dove mettere le mani. loro importano in acad i dati del cad elettronico, aggiungono in 2d dei blocchi standard per le spine di allineamento, i fori delle viti, ecc. ciò che serve è premere un pulsante e avere il g-code per il pantografo.

come sempre i problemi vengono dove uno meno se li aspetta: leggere il .dxf e generare il g-code è stato semplice, mentre gestire 'sta manfrina delle polilinee e dei versi mi sta facendo dannare.
 
se può essere di aiuto, creando una polilinea di una figura chiusa tramite bpoly ti ritrovi una polilinea che gira sempre in verso antiorario
 
ti ringrazio della dritta, è una cosa da provare.

per la cronaca, il problema della definizione del nodo 1 l'ho risolto facendo inserire un oggetto con il nome "start" sul nodo di partenza. rende tutto anche più evidente.
 

Forum statistics

Threads
46,674
Messages
380,976
Members
2
Latest member
loop80
このフォーラムは、www.cad3d.it/forum1 - イタリアのデザインコミュニティの機械翻訳です。いくつかの用語は正しく翻訳されていません。

Members online

No members online now.
Back
Top