Verifica dominio

mi chiedevo se una curva viene riparametrizzata 0>1 c’è un comando per verificare ciò?

avevo pensato a usare il dominio se [0] = 0 and [1] = 1
(non capiterebbe quasi mai)
ma se una curva è di lunghezza 1 mi ritrovo sempre con il dominio [0] = 0 e [1] = 1 giusto?
e poi se la curva sarebbe anche di lunghezza minore di 1 comunque non avrei corrispondenza
c’è qualche comando specifico?
ps con Python

Non so.
Leggi il dominio con questo:

https://developer.rhino3d.com/api/RhinoCommon/html/P_Rhino_Geometry_Curve_Domain.htm

In caso di oggetto Rhino puoi anche usare rs.CurveDomain()

verificato, dovrebbe coincidere la lunghezza con il dominio a 1 (non molto probabile)

in fatti sto usando if rs.CurveDomain(objCrv)[1] == 1:
mah vediamo se successivamente da problemi :wink:

NO

Il dominio inteso come valori estremi del vettore dei knot è il meno significativo.
Una curva è caratterizzata da:

Grado
Punti di controllo
vettore pesi
vettore knot

Se modifichi la posizione di un punto di controllo della curva oppure la splitti PER ORA rhino sembra mantenere il medesimo dominio. Ma non è detto che nella prossima release questo cambi.

Il dominio che Rhino assegna nativamente a una curva è legato lla lunghezza misurata della polygon cage.
In una curva in cui la lunghezza della polygon cage sia minore di 1…avrai un dominio con estremo <1.
Un dominio può essere rimappato a tuo piacere e potrai imporre 0<d<1 anche per una curva piccola.
Comando di Rhino:
Domain
Reparameterize

Non c’è corrrispondenza (ed è bene non “pensarla” dall’inizio) fra lunghezza metrica e parametrica.
Il parametro è da intendersi come il tempo “t” che serve a raggiungere un punto misurato metricamente su una curva.

… Anche perche’, facendo corrispondere lunghezza e dominio, nel caso generale il valore del parametro corrispondera’ sicuramente alla ‘lunghezza parziale’ della curva solo per i punti iniziale e finale.
Cioe’, ad esempio, il punto calcolato col valore medio del domino e’ una cosa diversa dal punto medio della curva.
Giusto ? :slight_smile:

Perfetto Emi.
Banalmente: se fai una curva deg3 4cv e metti il primo punto poi spazi e metti secondo terzo e quarto vicinissimi, riparametrizzabdo 0<t<1 t trovi t=0.5 quasi vicino a t=1.

wauuu ho provato, che cosa bizzarra e strana questa.
si nascondo molte insidie percorrendo oscuri meandri :slight_smile:

grazie tutti per le spiegazioni tornando alla domanda:
non esiste un comando come per “IsCurve” che
controlla se una curva è stata riparametrizzata?

Credo si veda bene la cosa quando con il comando loft si ottengono superfici con le isocurve molto inclinate … la velocità delle curve è sensibilmente differente.

Mi intrometto più che altro per una mia curiosità (scusate OT): ma la velocità delle curve può influenzare la velocità di movimento degli utensili di macchine a controllo numerico?
Mi sembra di avere letto che quelle più recenti “leggono” le nurbs in maniera nativa.

Come fa Rhino a sapere se ‘prima’ il dominio era diverso ? :confused:

E quand’e’ ‘prima’ ? :wink:

Se ti interessa saperlo, credo tocchi a te salvare il valore del dominio al momento opportuno, eventualmente nella curva, e poi verificare se e’ cambiato quando ti serve saperlo.

EDIT:

Originale come sinonimo di Nurbs … :smile:

1 Mi Piace

Ciao Gambler

i controlli numerici moderni processano i percorsi curvi mantenendo la velocità costante.
Se variasse la velocità avresti problemi ad esempio la rottura filo dell’erosione oppure
sul risultato del prodotto finito.

Giustissimo.

La corrispondenza dominio spazio è verificata solo per le linee e per cerchi / archi. (curvatura costante). … oppure per tutte le curve parametriche di qualunque grado con i punti di controllo
allineati lungo retta ed equidistanti.

1 Mi Piace

Ciao Fabio, come già ti ha detto Sergio, i controlli numerici non devono accelerare o frenare in base alle curve ma cercare di mantenere le velocità sempre il più vicino possibile a quelle impostate ( ad esempio, nella fresatura, la velocità di taglio “Vc” e avanzamento “Fz” vengono calcolate in base al tipo di materiale, di utensile utilizzato, impegno fresa, profondità di passata e presenza di spigoli nei percorsi).
Il vantaggio dei controlli che interpretano le nurbs è semplicemente quello di non dover convertire le curve in archi di cerchio ma di dare in pasto direttamente quelle originali (spline) in modo che si calcolino da soli gli spostamenti degli assi (il controllo deve sempre scomporre un movimento nei vari assi utilizzati; quindi tutti i percorsi saranno sempre composti da una serie di posizioni puntiformi che ogni asse dovrà raggiungere entro un tot di tempo pena il verificarsi di un “errore inseguimento assi” con conseguente pezzo sbagliato).

Grazie mille ragazzi. :blush:

ciao Lucio interessante ciò che dici,

riguardo alla velocità, come si fa ad impostarla?
fa parte di Rhino oppure ci vuole quel famoso plug-in CAM o cosa?

Ciao Sergio

Parli delle curve usate da Rhino ?

Perche’ con le Nurbs non mi sembra che la parametrizzazione degli archi di cerchio sia proporzionale all’angolo … :confused:

… O ricordo male ?

Invece penso di si perché il peso è funzione dell’angolo sotteso dall’arco.
Ma posso anche sbagliarmi …:sweat_smile:

Ciao Emilio!

Tutto quello che dai in pasto al cnc può essere generato da un CAM oppure scritto a mano (nel caso di programmi molto semplici fatti da poche righe).
Ogni marca di controllo ha i suoi codici specifici ma la logica di funzionamento rimane sempre la stessa (tipo il senso di rotazione mandrino viene impostato “orario” con M3 e “antiorario” con M4, i giri con S seguito dal numero, l’avanzamento con F seguito dal numero…).
Alla fine é come fare una macro, una serie di comandi in fila…

Lucio, quindi in pratica sei un “caMen” :smile: :smile:

1 Mi Piace

… Casomai un “caMan” ( o “CamMan” ) :wink:

2 Mi Piace