Grasshopper

algorithmic modeling for Rhino

Hi Everyone.

I am using a rotary switch with firefly that sends values to a stream gate. I want to remember the last set of data sent via the stream after switching. Can VB scripting do this? 

In the image below stream 1 is reading data but stream 2 has lost data. I want stream 2 to remember the last value sent to it.

Views: 792

Replies to This Discussion

Sorry... I've been out of town and have not had access to the internet for a while.  But, this should be really easy to do with a scripting component.  Below is one way (I think this will work for your application). I'm using a C# component and the input is renamed to "val" and the type hint is set to double.  The code is shown in the screenshot.  Let me know if this helps.

Hi Andy, No problems. Its almost there, I sort of understand ;p. As shown in the image below it is holding a single value of 0 when switched. I wonder if it needs to be able to remember (hold in memory) the penultimate values for 0,1,2? Thank you for your assistance.

Hi Scott... Just trying to figure out exactly what you're after.  So, in your example you have a list of three numbers coming into the S-input... and I'm assuming the Gate input is a slider value which will change whether the list coming into the S-input is output to 1, 2 or 3 output nodes.  Is this correct?  If so, what is the value you're trying to 'remember' (or hold in memory)?  Can you provide an example... I don't think what you're trying to do is difficult... just trying to figure out the scenario so I can write the code correctly.

-Andy

Hi Andy, I have attached a GH file. I have values coming from 3 x 10k pots that provide the numbers into Gate Switch. I want to hold these numbers in the script so that the resulting geometry is kept at its current value. A momentary switch (for example) toggles the Gate to adjust the next bit of geometry with the pots. etc. It's like controlling multiple floor plates in a building with 3 sliders (adjust size) and a push button (to move floors), thus allowing you to modify geometry press button and move up. 

Scott

This is for a publication that Firefly is referenced in. I will mention you in the Acknowledgments.

Attachments:

Hi Scott,

I think something like this will work... but take a look and let me know.

-Andy

For some reason... it didn't upload the file.  Let's try again.

Attachments:

Hi Andy,

Our versions of GH are not compatible I have 0.9.0014 I cannot upgrade at the moment. How can we do this? sorry for the inconvenience. 

Scott

The code is pretty simple and you should be able to recreate it using your version.  See the image below.  The only thing I changed is the name of the input is now "in_list" and it is of type Integer (instead of double) since it's actually going to be one of the ADC values from your potentiometer.  I also set the input to use a List instead of a single value.  Other than that, it should be pretty straightforward.  

HTH,

Andy

Hi Andy,

This works the same as your first suggestion (val) i.e. when the switch is pressed it forgets the values. I have added a link to a screen cast - http://www.screenr.com/xsj7 - you can see the panels loos the in_list values when switched.

I guess I am wanting to internalize the data with out disconnecting the sources?

Hi Scott,

I think you just need to check and make sure (in both if statements) that the in_list is not null and that the List.Count is greater than 0. I think what's happening is that when you push the button it switches the gate... and since the list changes (to nothing), the C# component clears the list.  If you check for null or that the count is greater than zero, then you should be able to handle this case.  Let me know if you need more help.

-Andy

RSS

About

Translate

Search

Videos

  • Add Videos
  • View All

© 2024   Created by Scott Davidson.   Powered by

Badges  |  Report an Issue  |  Terms of Service