No closest point

Forse così.

1 Mi Piace

Non puoi risolvere un problema riferendosi al solo caso indicato. Io sono partito da una generalizzazione che include combinazione di curve aperte e chiuse… planari e giacenti sullo stesso piano.

Assolutamente si: sarà una lista con N distanze su cui fai un sorting con chiave distanza e poi in List item con N = -1

2 Mi Piace

In rhinoscript metodo CurveDeviation … forse.
Immagino ci sia il corrispondente anche in python.
Ciao

1 Mi Piace

Ciao Leo, a occhio la distanza fra estremi opposti è maggiore.

Ciao Giuseppe.
Direi che, più che maggiore, è quasi doppia,
Ma pensavo a una retta perpendicolare.
E non è neanche una buona idea.

premessa la domanda come spiegato nasceva con l’esempio nella foto postata inizialmente
dove c’era la curva sulla parte superiore e venivano trovati i punti più vicini
e mi chiedevo come mai non esistesse un modo per trovare il punto più lontano con la curva inferiore

ottimo Sergio ed il comando deviazione c’é anche in Rh (il risultato sarebbero le linee bianche e rossa)
in verità il comando deviazione l’ho avevo anche già usato in altre situazioni in questa non ci avevo pensato
ho trovato anche il metodo script per RhScript e di sicuro è uguale per Python.

cercando sul forum internazionale ho trovato questi risultati per RhinoCommon potrebbe essere:

ciao Leopoldo, io ho provato in questo modo “la foto a Dx” sembra che funzioni
(sempre tenendo conto di una curva aperta simile a quella postata)

Ma manca un pezzo.

Ho trovato questi :slight_smile:

Curve.GetDistancesBetweenCurves Method (rhino3d.com)

Rhino - RhinoScriptSyntax (rhino3d.com)

1 Mi Piace

si infatti l’impostazione del mio piano l’ho dovuto impostare con i punti scelti tramite nei frame non c’era

certo Giuseppe infatti l’avevo anche specificato

sarebbe la precedente foto (quella Dx) dove sottolineavo l’impostazione del piano tramite i 3 punti

si Emilio, questo metodo l’ho usato tempo fa sia tramite Rh-Script che Gh solo che adesso sto evitando di utilizzare queste soluzioni geometriche, anche perché come avevo accennato trovandomi con una curva chiusa tipo foto sopra Sx il BBox non mi troverebbe tutti i punti necessari

come dicevo al momento osservando la foto a Dx (geometrie inclinate) le ruoto portandole parallele asse X mi trovo i punti Quad col codice esposto nel compopnente Python e riporto tutto all’inclinazione di prima
sono due passaggi, se dovessi fare il BBox dovrei anche suddividere le curve diventa tutto più contorto

ho applicato lo stesso metodo con il settaggio del piano come foto precedente
peccato che questa volta sembra trovare soltanto tre punti e non quattro come dovrebbe essere
(questa non l’ho capita qualcosa mi sfugge?)

ps Emilio per i link dei metodi che abbiamo postati mi servirebbe un aiuto io non li capisco :blush:

Dici i due link che ho postato sopra ?

Uno rimanda alla documentazione del metodo RhinoCommon e l’altro a quella della funzione rhinoscriptsyntax relativi a CurveDeviation.
Forse non funzionano i link ? :slight_smile:

Se non usi RhinoCommon lascia perdere il primo.

Il secondo e’ la solita documentazione rhinoscriptsyntax che conosci anche tu.
Riporto qui sotto quello che vedo io cliccando sul link:

e’ il CurveDeviation di cui parlava Sergio.

Tutto chiaro ? :slight_smile:

Salvio: lo sai che così non annamo da nessuna parte… :laughing:
Ho risposto alla prima domanda… errore da principiante :joy: :joy: :joy:

2 Mi Piace

Emilio questo l’ho capito che è stato trovato il metodo del comando deviazione:

nella foto ho usato proprio il comando Deviazione da Rhino ma questo risultato non me l’aspettavo

contemporaneamente in python ho usato il metodo GetDistance2Crv che mi ritrova gli stessi punti più 1

in effetti il comando deviazione l’ho sempre usato quando modificavo una curva
quindi andavo a verificare le differenze distanze tra l’originale e quella modificata
(forse in questo caso tra una curva chiusa e una retta come nella foto il risultato è sfalsato)

Giuseppe mi sa che hai proprio ragione :smiley:

chissà forse è meglio resettare il tutto perché inizio a non capirci più nulla :sweat_smile: :sweat_smile:

edit:

dev.gh (6,1 KB) posto il file e anche un video:

in pratica il ragionamento fatto inizialmente dovrebbe essere giusta la soluzione della def postata
ma come si vede nel video in questo caso il punto trovato in Rhino, nel metodo in Python non si trova

chissà se anche in questo caso è collegato a questa discussione:

ps mi potreste far sapere nel caso se a voi la def funziona bene ricavando tutti è 4 punti. . . .

direi proprio di si, dato che sei andato a creare una curva con punti di controllo esattamente strutturati nello stesso modo del bug che ha trovato leo nell’altro thread:
2022-07-20 01_55_46-Window

Bisognerebbe reportare il bug nel forum inglese.


Non ho capito a cosa miri a fare questa volta (un po come tutti gli altri post che fai riguardo a curve, tangenza, ecc ecc … non riesco ad immaginare che tipo di lavoro tu faccia con rhino…).

Ma se devi trovare il punto su una curva che sia più lontano possibile da una retta, io affronterei il problema in uno di questi due modi:

  • faccio una parallela della retta, che “scavalchi” la curva, e poi faccio curve proximity.
  • creo un piano perpendicolare alla retta, proietto la curva su quel piano e poi faccio un cerchio sempre su quel piano che sia più largo della curva proiettata, faccio curve proximity tra cerchio e curva proiettata e uso il parametro per trovare il punto sulla curva non proiettata. (questo secondo metodo è decisamente più complicato, ma sempre semplice, rispetto al primo, ma permette di ignorare la posizione della curva rispetto alla retta, senza indagare in quale lato fare l’offset, e funziona anche con curve 3d … )
1 Mi Piace

non c’è bisogno… gestiamo il bugtracker anche da qui… :wink:

2 Mi Piace

Aggiungo (già postato su altro thread):
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 queste soluzioni le avevo già applicate nel passato sia tramite script che in Gh.

per il punto più distante (come da foto iniziale) credo che la soluzione migliore sia quella indicata da Sergio

dist1

per la seconda geometria “quella chiusa bug a parte” anche in questo caso credo che il metodo
extremes funzioni bene (se non si è così fortunati da beccare una curva con quelle caratteristiche)

per questo secondo metodo quando creo il piano perpendicolare alla retta ma dovrò esere sempre sul piano di una delle viste di Rhino? essendo che se sto nello spazio 3D il piano può andare in tutte le direzioni. . . . e in questo caso presumo che se l’inclinazione tra piano e geometria sia troppo sfalsata la proiezione potrebbe differire di molto ed il risultato non sia idoneo (nel caso in cui le curve non piane)

edit:

se la curva è aperta si potrebbe creare un BBox e trovare centro area per indicare la direzione
(nel caso di una curva chiusa il BBox non servirebbe)

…no.

Se il tuo problema è tra una curva e una retta, no.
Un piano perpendicolare ad una retta è una cosa sola, a prescindere da dove lo guardi.

1 Mi Piace


retta curva max dist.gh (13,1 KB)

1 Mi Piace

:+1: