# Verifica dominio

**URL:** <https://it.discourse.mcneel.com/t/verifica-dominio/2334>\
**Category:** Scripting e Programmazione\
**Created:** [21 Marzo 2019, 1:52pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334 "2019-03-21T13:52:30Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [21 Marzo 2019, 1:52pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/1 "2019-03-21T13:52:30Z")

</div>

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

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [21 Marzo 2019, 2:31pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/2 "2019-03-21T14:31:22Z")

</div>

> [@0904](#):
>
> ma se una curva è di lunghezza 1 mi ritrovo sempre con il dominio [0] = 0 e [1] = 1 giusto?

Non so.  
Leggi il dominio con questo:

[https://developer.rhino3d.com/api/RhinoCommon/html/P\_Rhino\_Geometry\_Curve\_Domain.htm](https://developer.rhino3d.com/api/RhinoCommon/html/P_Rhino_Geometry_Curve_Domain.htm)

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

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [21 Marzo 2019, 2:42pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/3 "2019-03-21T14:42:42Z")

</div>

> [@emilio](#):
>
> Non so.

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

> [@emilio](#):
>
> **rs.CurveDomain()**

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

---

<div class="post-metadata">

**Author:** ![Sergio\_Alessi](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/sergio_alessi/32/22676_2.png) [@Sergio\_Alessi](https://it.discourse.mcneel.com/u/Sergio_Alessi)\
**Post date:** [22 Marzo 2019, 7:56am UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/4 "2019-03-22T07:56:52Z")

</div>

> [@0904](#):
>
> ma se una curva è di lunghezza 1 mi ritrovo sempre con il dominio [0] = 0 e [1] = 1 giusto?

NO

> [@0904](#):
>
> e poi se la curva sarebbe anche di lunghezza minore di 1 comunque non avrei corrispondenza  
> c’è qualche comando specifico?

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.

---

<div class="post-metadata">

**Author:** ![giuseppe](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/giuseppe/32/16416_2.png) [@giuseppe](https://it.discourse.mcneel.com/u/giuseppe)\
**Post date:** [22 Marzo 2019, 10:06am UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/5 "2019-03-22T10:06:48Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [22 Marzo 2019, 10:19am UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/6 "2019-03-22T10:19:34Z")

</div>

> [@giuseppe](#):
>
> Non c’è corrrispondenza (ed è bene non “pensarla” dall’inizio) fra lunghezza metrica e parametrica.

… 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 ? 🙂

---

<div class="post-metadata">

**Author:** ![giuseppe](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/giuseppe/32/16416_2.png) [@giuseppe](https://it.discourse.mcneel.com/u/giuseppe)\
**Post date:** [22 Marzo 2019, 10:24am UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/7 "2019-03-22T10:24:45Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [22 Marzo 2019, 10:46am UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/8 "2019-03-22T10:46:16Z")

</div>

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

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

---

<div class="post-metadata">

**Author:** ![Gambler](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/gambler/32/16276_2.png) [@Gambler](https://it.discourse.mcneel.com/u/Gambler)\
**Post date:** [22 Marzo 2019, 11:09am UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/9 "2019-03-22T11:09:23Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [22 Marzo 2019, 11:38am UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/10 "2019-03-22T11:38:48Z")

</div>

> [@0904](#):
>
> non esiste un comando come per “IsCurve” che  
> controlla se una curva è stata riparametrizzata?

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

E quand’e’ ‘prima’ ? 😉

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:

> [@0904](#):
>
> oscuri meandri

Originale come sinonimo di Nurbs … 😄

---

<div class="post-metadata">

**Author:** ![Sergio\_Alessi](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/sergio_alessi/32/22676_2.png) [@Sergio\_Alessi](https://it.discourse.mcneel.com/u/Sergio_Alessi)\
**Post date:** [22 Marzo 2019, 12:23pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/11 "2019-03-22T12:23:09Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![Sergio\_Alessi](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/sergio_alessi/32/22676_2.png) [@Sergio\_Alessi](https://it.discourse.mcneel.com/u/Sergio_Alessi)\
**Post date:** [22 Marzo 2019, 12:38pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/12 "2019-03-22T12:38:33Z")

</div>

> [@emilio](#):
>
> … 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 ? 🙂

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.

---

<div class="post-metadata">

**Author:** ![lucio\_zadra](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/lucio_zadra/32/16361_2.png) [@lucio\_zadra](https://it.discourse.mcneel.com/u/lucio_zadra)\
**Post date:** [22 Marzo 2019, 2:29pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/13 "2019-03-22T14:29:28Z")

</div>

> [@Gambler](#):
>
> Mi sembra di avere letto che quelle più recenti “leggono” le nurbs in maniera nativa.

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).

---

<div class="post-metadata">

**Author:** ![Gambler](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/gambler/32/16276_2.png) [@Gambler](https://it.discourse.mcneel.com/u/Gambler)\
**Post date:** [22 Marzo 2019, 2:39pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/14 "2019-03-22T14:39:31Z")

</div>

Grazie mille ragazzi. 😊

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [22 Marzo 2019, 3:19pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/15 "2019-03-22T15:19:57Z")

</div>

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?

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [22 Marzo 2019, 3:29pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/16 "2019-03-22T15:29:27Z")

</div>

Ciao Sergio

> [@Sergio\_Alessi](#):
>
> e per cerchi / archi

Parli delle curve usate da Rhino ?

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

… O ricordo male ?

---

<div class="post-metadata">

**Author:** ![Sergio\_Alessi](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/sergio_alessi/32/22676_2.png) [@Sergio\_Alessi](https://it.discourse.mcneel.com/u/Sergio_Alessi)\
**Post date:** [22 Marzo 2019, 8:55pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/17 "2019-03-22T20:55:28Z")

</div>

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

Ciao Emilio!

---

<div class="post-metadata">

**Author:** ![lucio\_zadra](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/lucio_zadra/32/16361_2.png) [@lucio\_zadra](https://it.discourse.mcneel.com/u/lucio_zadra)\
**Post date:** [25 Marzo 2019, 6:46am UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/18 "2019-03-25T06:46:58Z")

</div>

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…

---

<div class="post-metadata">

**Author:** ![0904](https://avatars.discourse-cdn.com/v4/letter/0/b3f665/32.png) [@0904](https://it.discourse.mcneel.com/u/0904)\
**Post date:** [25 Marzo 2019, 11:43pm UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/19 "2019-03-25T23:43:42Z")

</div>

Lucio, quindi in pratica sei un “caMen” 😄 😄

---

<div class="post-metadata">

**Author:** ![emilio](https://sea3.discourse-cdn.com/mcneel/user_avatar/it.discourse.mcneel.com/emilio/32/16095_2.png) [@emilio](https://it.discourse.mcneel.com/u/emilio)\
**Post date:** [26 Marzo 2019, 6:23am UTC](https://it.discourse.mcneel.com/t/verifica-dominio/2334/20 "2019-03-26T06:23:36Z")

</div>

> [@0904](#):
>
> un “caMen”

… Casomai un “caMan” ( o “CamMan” ) 😉

[Pagina seguente](https://it.discourse.mcneel.com/t/verifica-dominio/2334.md?page=2)
