Script C# in GH: inviare valore da codice addizionale all'output parameter A

Ecco la stupidaggine che stavo dicendo:


aereo.gh (33,9 KB)

Senza anticipo:
senza anticipo

con anticipo:
con anticipo

… aria fritta.

2 Mi Piace

i vettori visualizzati non sono analoghi a quelli del componente Derivate in Gh?

Scusa, mi sono espresso male, non intendevo il risultato a livello di calcolo matematico, parlavo del risultato visivo.

1 Mi Piace

:+1:

non so se ti riferivi a questo ma una cosa ho visto che mi stranisce:
a quanto vedo il percorso della curva chiusa, mi sembra planare,
ma ad un certo punto aereo si inclina o mi sbaglio? (min 2:00)

Si è planare ed è giusto che si inclini.
Appena posso faccio il video con percorso non planare.

Grazie, ma niente di complicato, serve solo un po’ di tempo, ma mi sono divertito. È come art attack appena attacco è finita, faccio le ore piccole :joy:

1 Mi Piace

Vedrò il. GH, ma non colgo differenza tra i due video.

Diciamo che si potrebbe fare una similitudine con una moto.
Un motociclista “butta giù” in piega la moto per fare una curva, ma deve anticipare questa mossa, sia in entrata che in uscita.
Mentre sta ancora andando dritto, inizia a inclinare la moto, e prima che la curva finisca, la raddrizza.
L’inclinazione della moto non è in funzione diretta con la curvatura istantanea della traiettoria.

Simile in un aeroplano, prima c’è il rollio, e un po dopo fisicamente l’aereo inizia a virare (inerzia + l’aria non è una rotaia rigida).

Tra le due .gif c’è una leggera differenza in questo senso, quella con anticipo un po mi sembra più “realistica”. O meglio, al contrario, quella senza anticipo su curve strette stona il vedere zero anticipo…

Cmq si , ripeto, è una para mentale probabilmente inutile.

1 Mi Piace

Ok chiaro adesso grazie.

In teoria c’è un fattore inerzia si, ma impatta più il pilota che deve prepararsi prima perché altrimenti al momento giusto non riesce a seguire la traiettoria.
Perché al momento giusto il velivolo giri dopo la modifica dell assetto occorre attendere che si ristabilisca la circuitazione sull ala. Ma a me sembra già realistico così, sei troppo avanti tu, anzi… In anticipo :stuck_out_tongue_winking_eye:

1 Mi Piace

Diciamo che potrebbero esserci due curve, una che descrive i comandi impartiti dal pilota e una che descrive la traiettoria reale del velivolo con i ritardi dovuti da inerzia e altri fattori… ma credo si entri nel campo della simulazione di volo… sai che roba, uno che si presenta a fare il brevetto dicendo che ha sostenuto 300 ore di volo con gh… :joy:

4 Mi Piace

:rofl: :rofl: :joy:

Ricc, perché questa riga?

Eh… era lo script con il timer? Giusto?

Gli script c# ri-calcolano solo quando uno degli input cambia , o meglio “expira” (il valore potrebbe essere identico al precedente, ma è arrivata un’ “onda di ricalcolo” in grasshopper).

Ora, il timer ha l’evento che quando “scatta”/triggera fa eseguire la tua serie di comandi, tra cui cambiare il valore/proprietà del tuo oggetto.
Però lo script c#, pur avendo al suo interno un oggetto che è cambiato, se non riceve l’ordine di “aggiornarsi” non ti butterà fuori negli output i valor aggiornati. “Non lo sa”.
Facendo .ExpireSolution(true) il componente ri-eseguirà tutto il codice in void RunScript e quindi buttando in output quanto dovuto.

Nota che è possibile “expirare” anche solo specifici parametri dello script c#, e quindi in cascata i componenti ad esso collegati… ma è più complesso da gestire.

3 Mi Piace

Non capisco da cosa dipende questo comportamento, perché il codice che ho scritto in VS prima di passarlo nello script funzionava infatti, senza questo expire non avrei fatto nulla.
Lo vale per i plugin?

La curva è unica, solo che le superfici mobili e la potenza del motore vanno regolati con un po’ di anticipo per via del ritardo nel ristabilizzare il flusso di aria.

Certo che GH ha i suoi limiti (non posso fargli fare troppi calcoli… o expire, abbiamo imparato) perché si blocca e la finestra diventa tutta… rossa… Mai vista prima, sarà l’imbarazzo :laughing:
Però per uno studio basico non è male e si possono capire molte cose.

Forse quando la circonferenza tangente ha raggio che tende ad infinito (nei tratti dritti) mette in crisi i calcoli.
Potrebbe essere utile mettere un filtro che con valori superiori ad una certa soglia evita di disegnare il cerchio (ma magari è già stato fatto).

Non credo sia questo, perché se l intervallo temporale di aggiornamento non è piccolo, tutto funziona. Da provare comunque.

1 Mi Piace

Scusa Luca ,
non e’ cosi’ che funziona GH ? :slightly_smiling_face:
Ricalcola quando varia un input.

Non e’ un programma ‘normale’, che lanci tu.

… Almeno per cosa capisco io … :blush:

1 Mi Piace

potrebbe essere, io se fossi in Luca, darei anche un’occhiata a Gh2
dove in un post affrontai già la questione dei cerchi osculatori a raggi infiniti

infatti Gh2 ha proprio un componente apposito e magari
riesce anche a gestire la def in modo migliore.

Certo che è così Emilio, ma mi piacerebbe capire perché, a cosa è dovuto, se dipende da qualche metodo, proprietà,…

1 Mi Piace