Ciao a tutti,
ero un po’ indeciso se mettere questo sotto la categora GH o scripting, e alla fine ho optato per quest’ultima, spero di non aver sbagliato.
Avrei bisogno di capire come gestire un input come slider, i panel o i Value list con un componente tipo python. Nel mio caso specifico vorrei con un click su un pulsante riportare dei valori in determinati componenti simultaneamente.
Allego immagine per aiutare a capire meglio cosa intendo.
Decisamente categoria grasshopper.
Hai mai provato MetaHopper | Food4Rhino ?
Io mai. Ma è molto probabile che con quello riesci a fare quello che vuoi.
In tanti lo usano, Andrew Heumann ha fatto un bel lavoro credo.
In alternativa si va di scripting; se Metahopper non ti prende bene, potrei buttarti giù qualche script in c# (io da python ci sto alla larga )
Ciao a tutti, si confermo l’uso proficuo di MetaHopper
ammesso che abbia capito bene, io ho risolto così:
Ogni Merge a sinistra è una serie di opzioni, che manda ad uno stream filter comandato da uno slider, inverto la matrice e la mando ad un explode tree per ripristinarla.
In questo modo posso inserire n soluzioni diverse. Ciascuna di questo è una configurazione di velivolo.
Uau! Provo subito, grazie!
Ciao Luca, molto intelligente la tua soluzione. Molto adatta a caricare velocemente varie configurazioni. Grazie!
Ma era ciò che ti serviva?
Risolve il problema, non come pensavo. Avevo più in mente un unico slider/ panel/ value list ecc da guardare per vedere i valori che ho assegnato.
che è esattamente come quella da me proposta
Nel tuo caso per vedere a occhio lo slider che comanda dovrei guardare che ingresso c’è nello stream filter e da lì capire che configurazione comanda. Un po’ scomodo rispetto un unico slider da guardare nel mio caso. E’ però comodo in altri casi dove mi basta guardare alla configurazione e quindi ci si può concentrare su quella senza preoccuparsi di valori degli slider.
Volendo proprio pensare a “reset to default” … potremmo impostare il valore di default dello slider dentro il nickname dello slider stesso!
Ho anche implementato una “tag” così da poter gestire a gruppi gli slider.
reset slider to default c#.gh (7,4 KB)
Lo script funziona con gli slider che hanno come nickname quell’esatta grammatica:
nomeslider+" "+tag+" default="+valoredefault
Se ci sono altri spazi nel nome dello slider, non funziona … per ora.
codice:
private void RunScript(bool Go, string tag)
{
if(Go && !down)down = true;
if(down && !Go){
vals = new List<decimal>();
sliders = new List<Grasshopper.Kernel.Special.GH_NumberSlider>();
foreach (Grasshopper.Kernel.IGH_DocumentObject obj in this.GrasshopperDocument.Objects){
if(obj is Grasshopper.Kernel.Special.GH_NumberSlider){
Grasshopper.Kernel.Special.GH_NumberSlider sldr = (Grasshopper.Kernel.Special.GH_NumberSlider) obj;
string n = sldr.NickName;
string[] f = n.Split(' ');
if(f[1] == tag){
f = f[2].Split('=');
sliders.Add(sldr);
vals.Add(Convert.ToDecimal(f[1]));
}
};
}
this.GrasshopperDocument.ScheduleSolution(5, ResetSliders);
down = false;
}
}
// <Custom additional code>
public bool down;
public List<Grasshopper.Kernel.Special.GH_NumberSlider> sliders;
public List<decimal> vals;
private void ResetSliders(GH_Document doc){
for(int i = 0;i < vals.Count;i++){
sliders[i].TrySetSliderValue(vals[i]);
}
}
Grazie Riccardo, molto interessante. E direi che fa al caso mio. Peccato non conosco il C# ma ci giocherò lo stesso.
Chissà che riesca ad imparare qualcosa.
Ciao Luciano, ho provato MetaHopper e direi che per gli slider e i panel fa quello che promette.
Per i ValueList invece no, basta un F5 su GH e reimposta a 0 il ValueList.