Punti in quadrature su curve

Ciao Sergio

Sembra che il problema siano le curve periodiche. :slight_smile:

1 Mi Piace

Vero Emilio

il vettore dei knot cambia … guarderò con molta calma.

Ciao!

1 Mi Piace

Scusa Sergio …

Se capisco come funziona lo script, all’inizio su ogni span della curva ricavi dei punti e ci costruisci una polilinea con 2*grado segmenti.
Poi dove la polilinea presenta un massimo o un minimo (rispetto alla coordinata scelta) cerchi il massimo o il minimo della curva.

Se e’ cosi’ … La mia curiosita’ e’ questa:
Come hai ricavato il numero 2*grado per i segmenti della polilinea ? :slight_smile:

Ciao Emilio

che domande mi fai in pubblico!!! :joy: :joy: :rofl: Il risultato è corretto?
Puoi tradurre il codice in py così mi fai sapere come gira? Con il poco tempo
a disposizione se lo scrivo in c++ ci metto un mese! … dimentico tutte le regole,
anche le basilari … :sob:. In VB scrivo di tutto …

1 Mi Piace

Hahaha. :grinning_face_with_smiling_eyes:

Ci provo :slight_smile: .
( Se riesco a fare lo script lo posto cosi’ vedi tu come gira :wink: )
Come suggerisci di fare per le curve periodiche ?

Se e’ per GH puoi usare C#, per Rhino credo tocchi aspettare Rhino 8. :slight_smile:

Come faresti tu, vedo …
Il vettore dei knot cambia rispetto alle curve clamped.

Intendevo che il codice è palesemente orientato verso la programmazione con puntatori di memoria. C# come tutti i linguaggi net mmm …

Hehe … si’, ma quello c’e’/ci sara’ … :grinning_face_with_smiling_eyes:

Ti preoccupa la velocita’ dello script ?

Di solito e’ piu’ un problema per GH (che ricalcola come un matto :grinning_face_with_smiling_eyes:) che per Rhino.

Comunque anche C#, dai :wink: … intanto puoi usare RhinoCommon e poi meglio che ReDim Preserve sara’, no ? :grinning_face_with_smiling_eyes:

… Unica alternativa, almeno per ora, Python (sul 7 IronPython, per Rhino 8 CPython) … che pero’ credo ti dia una certa allergia … :wink: :grinning_face_with_smiling_eyes:
Purtroppo per te e’ quello che piace in RMA :neutral_face:… e riesce anche a connettersi in qualche modo col divino dotNET … tanto con Rhino sempre li’ si casca ormai. :wink:

Sto provando ‘accorciando’ il knot vector per calcolare la spezzata, cioe’ tengo solo i nodi nel dominio della curva …
Dice che potrebbe andare o ci vedi qualche cavolata galattica ? :slight_smile:

Poi a essere pignoli dovrei evitare di cercare il quad a fine curva per le curve chiuse credo …

Ti rispondo come prima da cell… Non conosco come si trattino le curve chiuse periodiche in termini di punti e knot. Io le tratterei tutte come clamped … ma non sembra vada bene per gli standard prefissati … :upside_down_face:

OK, provo poi a finire lo script e vedere se funziona.
Se no gli faccio convertire la curva in non periodica prima del calcolo … :wink:

Ho provato a replicare in GH lo script dell’inarrivabile Sergio, ma mi ritrovo un punto in più.
serg2 b.gh (22,0 KB)
img1

3 Mi Piace

Ciao Leopoldo

Per ora non riesco a concentrarmi per capire come funziona la definizione, sorry, con GH fatico sempre :blush: … ma sembra che funzioni bene ! :grinning:

Pare che invece lo script VBS non trovi quel punto.
Direi che lo script in casi come questo puo’ mancare un punto.

@Sergio_Alessi , forse serve aggiungere un punto lungo la tangente a inizio/fine curva, per avere una ulteriore terna di punti da testare, credo che cosi’ dovrebbe trovarlo … che dici ?

curva-quad.3dm (31,4 KB)

ciao Leopoldo,
finalmente ho capito come funziona il tuo sistema, io creavo direttamente i rettangoli usando due punti :man_facepalming:

lo script finale mi è chiaro quello che invece non comprendo è il fatto che dopo esserti trovato i punti,
(a metà def) poi nella parte finale ti ritrovi con 3 punti da gestire con lo script? mi manca il motivo. . . .

ps

  1. ma con “shatter” avresti ottenuto lo stesso risultato di “point trim curve” ma senza il dominio giusto?
  2. la funzione “indexof” ho letto la descrizione ma mi sfugge il risultato che riporta da un testo a 6 :thinking:

edit:
a me con un paio di prove fatte tra “RhScript” e “Extreme Parameters” un punto non mi corrispondeva
mentre con l’ultima def di Leopoldo ho dovuto modificare i decimali da 3 a 4 per ritrovarmi tutti i punti

tutto ciò al fine di…?

1 Mi Piace

Lo “shatter” non divide la curva in segmenti.
Vediamo se riesco a spiegarmi, ho messo qualche didascalia nella definizione.
Tenete presente e che in queste definizioni non ho usato il componente “equality” ma il componente “similarity”, anche se con una tolleranza molto bassa.
serg2 c.gh (31,3 KB)

Quest’altra definizione prevede la possibilità di modificare il piano di riferimento.
quad points l.gh (22,2 KB)

ok Leopoldo grazie per la spiegazione ora è più chiaro :+1:

è normale che poi alla fine i punti finali del “list item 1 centrale” non combacino con quelli del cull pattern?
non mi sembra che ci sia qualcosa che cambi, a meno che non mi sfugge qualcosa verso il merge. . . .

:thinking: :thinking:

strano perché così mi fu consigliato di usarlo, essendo che mi serviva propro dividere la curva in segmenti.

Ho confuso.
Shatter divide la curva.
Ho usato “point trim curve” perchè fornisce anche i domini dei segmenti.

1 Mi Piace

Se il caldo non ha fuso tutto nella mia capoccia: il problema si manifesta quando il punto di minima/massima coincide con un knot.

Si, effettivamente sembra così.

Il post di leo è abbastanza succinto e chiaro, ottimo per reportare il problema, volendo.

1 Mi Piace

Giuseppe scusa se preciso:

in realtà sono 2 problemi (anche 3), infatti la domanda era se fossero collegati/connessi:

bug3

il primo è con una curva aperta dove Leopoldo posizionando i CV in modo simmetrico usando la def di Riccardo che costruisce una derivata compare il problema. (infatti già ne parlò anche David Rutten)

dev.gh (6,1 KB)

invece quest’altro caso riguarda una curva chiusa dove la def Gh tramite metodo script si cerca di trovare i Quad della curva che avendo sempre dei CV posizionati in un certo modo salta un Quad (Rhino invece si)

nonQuad2

NonQuad2.gh (7,0 KB)

in quest’altro caso invece è l’incontrario, sempre la stessa def con altra curva, stavolta trova tutti i Quad mentre questa volta è Rhino che con la stessa curva il Quad indicato dalla freccia non viene trovato

https://mcneel.myjetbrains.com/youtrack/issue/RH-69504
Sarà visibile a discrezione dello sviluppatore che prende in carico.

1 Mi Piace