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.…
divided each strip into 6 shorter surfaces, I should have 48 surfaces overall). Currently I'm doing this using splitting planes and a custom script component I got from elsewhere on this forum:
Unfortunately I have some tricky criteria that I'm having trouble meeting:
1. These new surfaces cannot be trimmed. Currently I'm grabbing the edges of the new trimmed surfaces and building new surfaces using these edges. I realize this changes the geometry somewhat, and this is 100% okay for my purposes. However, I think this method is causing problems for criterion #2...
2. The new surfaces must all have the same UV directions; namely, the U-Direction for all surfaces is either "clockwise" or "counterclockwise" (either is fine, as long as they all match) AROUND the blade profile and the V-Direction is oriented lengthwise along the blade (either outward or inward, as long as they all match). Check UV directions using "Dir" in Rhino after baking.Attached is my attempted solution. Criterion #2 is met immediately after splitting, but not #1, and vice versa after rebuilding. I've tried to put the surfaces through a sort of "filter" to switch UV directions accordingly, but I think I'm missing something. Maybe the best idea is to use a different method for splitting in the first place?Any suggestions or help appreciated. Thanks in advance!
*the attached solution uses a component from LunchBox…
and visualizing data for ENVI-Met 4 software. ENVI-met is a cutting edge software used to analyse microclimate interactions in urban environment. Tens of different analysis types can be performed on the chosen building context. From Mean radiant temperature and local Wind speed to CO2 concentration and Pollutant dispersion in the air. To generate the building context for Ladybug ENVI-met components, Antonello used Gismo:
An example similar to results in upper screenshots has been been attached below. To run it, Gismo, Ladybug and Human plugins need to be installed. To perform the ENVI-met analysis, download ENVI-met 4 Basic for free, and install it. Steps in the .gh example file have been labelled from 1 to 11. They mostly consist of just setting a boolean toggle to True. An exception to this are steps 6 (set the folder path of your ENVI-met application install folder), and 8 (running the ENVI-met simulation). Step 8 has been explained in detail in the photo attached below (step8.jpg). Special thanks to Antonello for developing and guidance on ENVI-met application and components! Post questions below if you have any issues!…
Added by djordje to Gismo at 11:30am on March 25, 2017
e-form 3-D NURBS models. This fast-moving class covers most of Rhino's functionality, including the most advanced surfacing commands. In addition, this workshop will give students a functional understanding of Grasshopper and Parametric design. This will allow them to build on this understanding into more advanced projects of their own including design optimization with RhinoNest and creating their models on a laser machine.
You can find more information at:
http://www2.mcneel.com/training/final_summary.asp?ScheduleID=8940&template=Rhino…
think GH and Rhinocam is perfect for duplicating these sorts of toolpaths but it's a little over my head to put it together completely. I thought a good starting point might be to create a definition for 1 sin curve with these parameter sliders
frequency
fixed or random with range ex: .25" - .5"
amplitude width
fixed or random with range
amplitude height
fixed or random with range
Once I had this I would try to repeat the lines - each with separate randomness but without having to
have separate sin components. You might have 200 plus curves in a 4 x 8 sheets so you would want to keep it very simple. Also, you would want the curves to be connected at alternating ends so the tool zig zags back and forth.
After that I would tackle trying to get the lines to follow a flowing contour as in the original program
I'm away from my Rhino right now but when I get back I'll give it a shot. Hope fully we can figure things out from there.
Jaroslaw, these patterns are a little flashy for residential use but work well for commercial interiors like bars and restaurants.
Cheers…
ve an adequately low value for vibration. Script all runs fine and matches expected results for a few test cases. Phew. Note that in excel form this calculation runs over 6000 cells of look up's and arrays, it's not a trivial calc that can practically be rearranged to make it work back from an acceptable value.
But in my results I have 99 sets of vibration-acceptable outcomes, which I'd now like to examine to see which one uses the least material in its particular combination of beam thicknesses, slab thicknesses and other stuff to find the overall most efficient system. The plan at the moment is to copy the solver Record over into Excel, extract the %'s for the different variables and post-process the info to sort the acceptable outcomes by weight.
It feels like there must be a better way that avoids taking the data out and having a gap in the parametric thinking. Is there a way to ask Galapagos to give me all (or at least, loads of) combinations for which R < 8 and then test those for the minimum weight? Can I automatically take the winning results from fitness test 1 out into an array of data that feeds into a second fitness test in the same grasshopper space? …
imes. Your loop should go to y.Count - 1. Or, you could use a For...Each loop, circumventing the problem altogether:
Dim shortLines As New List(Of Line)
For Each segment As Line in y
If (segment.Length < x) Then
shortLines.Add(segment)
End If
Next
A = shortLines
--------------------------------
Another problem is this line of code:
New_Lines.Add(New_Line)
It is located inside the loop but outside the If statement, meaning it gets run every single iteration. This fills up the short line list with duplicates.
-------------------------------
Here's something else which is redundant:
Dim Input_Line As New Line
Apart from the fact that you don't need a special variable for this at all, you also don't need to add a New keyword. The type Line in RhinoCommon (just like Point3d, Vector3d, Plane, BoundingBox etc. etc.) are Structures, not Classes. Structures always exist when they are defined, whereas Classes can be null ("Nothing" in VB).
-------------------------------
Some more advice:
Dim i As Integer
For i = 0 To y.Count()
You can merge these two lines into one. VB.NET allows you to declare your iteration variable inside the loop:
For i As Integer = 0 To y.Count - 1
--------------------------------
If you don't like the For...Each approach at the top of this answer, here's how to write this using a For...To loop:
Dim shortLines As New List(Of Line)
For i As Integer = 0 To y.Count - 1
If (y(i).Length < x) Then
shortLines.Add(y(i))
End If
Next
A = shortLines
ps. A personal preference of mine is that I always encase the expressions inside If...Then statements in brackets. You technically don't need to do this, but I find it makes the code more readable.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
ne surface".
To do that, you use 'Brep | Brep' intersection to find the curves where the smaller shells intersect the large one, then use those curves to split the large surface. Like this, for the small one:
This fails with the larger of the two smaller half cylinders, though, because it doesn't fully intersect the large shell. That can be fixed by adjusting the slider that moves the smaller shell from "6" to "8".
P.S. OOPS!!! Sorry, distracted by watching the news... You also want to trim off the parts of the smaller half cylinders that are inside the large one.…
2014 at 8:37am), from which I downloaded files below. You will see that there is a pattern made by curves (called in the file "CrvsToTranspose"). I tried to create my own pattern in Rhino, but I have issues to "link" it, to make it correspond with a new Crv in GH. Like that i can replace the original pattern by mine. Does someone know how to do it?
I found also that lines made in "CrvsToTranspose" are kind of located in ManageCurveCollection (with right clic on "CrvsToTranspose), maybe should I add my rhino curves in a collection? But, frankly I have no idea how to do it!
Thanks for your help!
Best regards
AKA
…
al other things:1. the minimum and maximum spacing between points (a certain 'x' and 'y');2. the jump between two next points - let's say it is always 2. So if a minimum possible spacing is 'x' (pt.1) then the next one would be x+2, then x+4, x+6 etc. until it gets to x+n=y (the maximum);3. how many maximum/minimum points there are in a row - when a division reaches the minimum 'x' or maximum 'y distance I want it to stay there for a while (e.g. [...] x+(n-2), x+n=y, y, y, y, y, x+(n-2), x+(n-4)...) Therefore, what I want to get after dividing the base curve are curve pieces of following lenghts/points on the curve with following distances between them (for example):x, x, x, x+2, x+4, x+8 . . . x+n, y, y, y, y, y, x+n . . . x+4, x+2, x, x, x, x, x, x, x, x+2, x+4 . . . x+n, y, y, y, x+n . . . x-2, x, x, x, x, x-2 . . . and so on and on.As you can see the amounts of x's and y's in a row changes (Rule no.3).I've tried this with graphs and attractor points and got nowhere in almost 2 weeks (though I'm a beginner).. Perhaps someone here will have an idea :)I'm attaching a picture of what I have in mind (may be easier to understand than what I wrote for some people :))Cheers…