algorithmic modeling for Rhino
Hello,
I have been searching through the forum for a bit looking for a bit of VB script that will give me current timedate that I will be able to add to string. I haven't been able to find anything, and I've had an attempt at a VB script but I really don't know what I'm doing.
What i'm doing is building comma separated strings in lists and then exporting to excel. I would like for there to be a current date (can be fairly rough) in the string that I export.
I was trying to get =NOW() to work in excel, but i need it to be unchanging, and from the date I pull the data from grasshopper.
Does anyone have any ideas. I have an image of what I would like it to do (theoretically).
Tags:
Hi Will,
I use:
private void RunScript(object x, object y, ref object time, ref object hours, ref object minutes, ref object seconds)
{
time = System.DateTime.Now.Date;
hours = System.DateTime.Now.Hour;
minutes = System.DateTime.Now.Minute;
secnods = System.DateTime.Now.Second;
}
Hope it´s useful.
Cheers!
here i made couple of components including these ones
http://www.grasshopper3d.com/group/localcodecomponents/forum/topics...
Oh my gosh... that's perfect David. I guess I just needed clarification on how to use the time parameter. When I read the remarks under "help", i didn't read it clearly, and thought the parameter didn't have any current functionality.
What else can you plug in besides today, yesterday, tomorrow and now. Can you modify the format of the output?
It also accepts "Lunch", "Next Week" and "Last Week" as string constants, but they're not really meant as serious conversions.
I originally added the DateTime parameter because I thought I'd end up writing a solar-angle component, but I've never gotten around to that.
Dates are stored as 64-bit integers. Basically they count Ticks (1 tick = 100 nanoseconds, or 1 second = 10 million ticks) since midnight, January 1st, 1 AD. Formatting comes into play only when the time is represented as a String.
A wide variety of formatting flags is possible Dates, unfortunately the Grasshopper Expression language doesn't support the DateTime type, so it gets converted to Strings automatically. This makes formatting dates and times impossible. I'll probably get around to adding the type at some point, or maybe I'll make a dedicated DateTime formatter component (less work, but also less flexible).
I also do my best to interpret any string that might represent a date or a time:
--
David Rutten
david@mcneel.com
Poprad, Slovakia
Note that a DateTime object stores ticks as Int64 (64-bit integers). The Grasshopper integer type is only 32-bit. This means you cannot convert a Datetime tick count to a Grasshopper integer and back as Grasshopper integers simply cannot handle the magnitude of the numbers involved. 32-bit integers can only count up to 2,147,483,647 whereas 64-bit integers can count up to 9,223,372,036,854,775,807
There is also no data format in Grasshopper for representing time-spans or durations. It's probably not too difficult to write some VB.NET script components that do what you need, but you'll need to tell me exactly what types of data you have and what data you're looking for.
--
David Rutten
david@mcneel.com
Poprad, Slovakia
Thanks for the explanation David. That makes perfect sense. As you allude to in the second part of your post above, I'm currently working towards setting up a system to convert the datetime string to a rationalized integer format for use in the grasshopper definition . I don't want to convert the information permanently, but have been looking for an elegant method for converting the datetime string as needed so that it can interface within a grasshopper definition.
What I am trying to do is create a process for working with the timestamp included alongside sensor data I pull from Cosm. The data feed is formatted like this; <current_value at="2012-07-25T05:24:44.601988Z">77.68</current_value> and the Time paramater seems to easily understand the datetime string to read 2012-07-25T05:24:44.601988 as Wednesday, 25 July 2012 (05:24:44) so I plan on keeping the string as is when stored in a local mySQL database I have setup, but want to make sure I am not setting myself up for major headaches down the road.
I asked about converting the date time string to an integer to allow me to find time spans and generate a series of time stamps in an efficient way for creating a batch/ iterative process for requesting additional sets of data based on a query comparison of what gaps are left to fill in along a timeline of data points.
At the moment, I think a conversion to an integer is my best bet. (ref; Excel Date Time Code Id love to be able to feed in a date into a math component, add 08:00:00 and for it to result with a time 8 hours later than the first. I also have a string manipulation method working also, but have yet to really test it beyond what I have shown in the screenshot below.
I currently have these batches stream from Cosm.com into Grasshopper via a xml parser component (either the one found in Andy Payne's Firefly set, or the one included in gHowl.) From there I sort/ extract the data points and their respective time stamps and feed these data points into a mySQL database I've setup with Nathan Miller's Slingshot components. With the points in a local SQL database, I can then begin to integrate the use of database queries into definitions and retrieve data points based on sensor value Booleans rather than being restricted to time spans, (which is the only way to request historical data from Cosm's site)
I've been debating on if I should convert all the time information to an integer before writing it to the SQL database so GH can work with the data, or if I should keep the time code as a string and create a couple of conversation component clusters to translate the information each time it needs to be processed or manipulated in GH. I'd prefer to keep things in the date time string because the database can handle it without a problem, GH sort of handles it in one translation direction and allows me to avoid conversion that Id have to explain to others if they were to access the database in their own grasshopper definition or from another application.
I think the best solution is to use strings to represent time intervals. It's lossless and as long as you know what you're doing you won't run into casting bugs. I attached a file with a bunch of VB component that perform several typical operations on times and timespans, hopefully it will get you started (and hopefully you can open the file as it was saved with 0.9.0002).
It's midnight here and I won't be in the office tomorrow, so I'm afraid I won't be able to respond to any further questions until
--
David Rutten
david@mcneel.com
Poprad, Slovakia
Your incredible David. The components opened flawlessly and are exactly the tools I had been looking to solve. Thank you for the help today and all of the timetool components.
Any news on when 0.9.0002 might drop?
Welcome to
Grasshopper
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
Added by Parametric House 0 Comments 0 Likes
© 2024 Created by Scott Davidson. Powered by