fear that it would be too hard, but I was pleasantly surprised. Not that bad, even for a C# novice. I am attaching the *.cs files for three components:
SerialCreate component creates the serial port instance. This component controls port parameters and opens/closes the port. (It won't close the port, however.) SerialWrite and Read try to interact with the port created by SerialCreate. I can verify that the port opens because it's unavailable to other terminal applications, but if I try to close the port, it won't...it stays open until I restart Rhino. SerialWrite works, because I can see the rx light on my device light up when I enter text in grasshopper. SerialRead does not work. I blue screen with a DPC WATCHDOG VIOLATION.
All in all, not too bad for a day's work. I'll forget the user objects and go for custom components. The question that still remains is that I don't think I'm correctly or efficiently sharing the serial port instance with the other classes. Again, this is just a hack, but I'm happy I'm closer to solving the problem (or so it seems). If anyone has any ideas about how to better go about this, I'd appreciate any suggestions.
Thanks again,
~BB~…
he Cordyceps. Maybe some of you find this helpful/useful.
So basically, the Cordyceps is a physical module with 4 knobs and 1 slider. The knobs give an output between 1 and 1000, while the physical slider outputs 0-359. And of course, for this physical module I wrote a plugin to communicate with it. The knobs are intended to be the variables that modifies the design, while the physical slider is intended to be connected to the camera component.
Here I will put up "the recipe" for all to make their own module. You will be able to download the plugin as well.
Please send me a message if you want the 3D-files for the knobs, the box and slider knob. They've been made to directly 3D-print.
Plugin:
https://github.com/zakadjeb/Cordyceps/blob/master/Cordyceps/Cordyce...
Code for Arduino IDE:
https://github.com/zakadjeb/Cordyceps/blob/master/Arduino/_Arduino_...
What you need:
1x - Arduino (Leonardo, UNO or whatever)
4x - Potentiometers
1x - Sliding potentiometer
1x - Breadboard
Bundle of jump wires.
1. So, a potentiometer is a variable resistor, which is basically a component that changes the resistance between the voltage and the ground.
If A is supplied with 5V then B must be connected to Ground. The W will give "read" the resistance, and thus should be placed in Analog input (A0-A5) on the Arduino. The slider potentiometer works the same way.
2. Now connect the 4 pots to each their Analog input. The slider is supposed to be in A4. So to make sure:
A0: Knob1
A1: Knob2
A2: Knob3
A3: Knob4
A4: Slider
3. Now it's time to connect the voltage! Using the breadboard, the voltage can be sent through 1 line, the Ground as well. It should be quite easy to connect them.
4. Now, download the Arduino IDE and copy-paste the code I supplied above. In the IDE, you need to let it know which Arduino you're working with, and which port is should send the script.
5. Almost there. Download the plugin. Open the port you're using through the plugin. Set Start to True and the Cordyceps should be within you.
This recipe will be updated!
Let me know if there are any issues.
// Zakaria Djebbara…
he Cordyceps. Maybe some of you find this helpful/useful.
So basically, the Cordyceps is a physical module with 4 knobs and 1 slider. The knobs give an output between 1 and 1000, while the physical slider outputs 0-359. And of course, for this physical module I wrote a plugin to communicate with it. The knobs are intended to be the variables that modifies the design, while the physical slider is intended to be connected to the camera component.
Here I will put up "the recipe" for all to make their own module. You will be able to download the plugin as well.
Please send me a message if you want the 3D-files for the knobs, the box and slider knob. They've been made to directly 3D-print.
Plugin:
https://github.com/zakadjeb/Cordyceps/blob/master/Cordyceps/Cordyce...
Code for Arduino IDE:
https://github.com/zakadjeb/Cordyceps/blob/master/Arduino/_Arduino_...
What you need:
1x - Arduino (Leonardo, UNO or whatever)
4x - Potentiometers
1x - Sliding potentiometer
1x - Breadboard
Bundle of jump wires.
1. So, a potentiometer is a variable resistor, which is basically a component that changes the resistance between the voltage and the ground.
If A is supplied with 5V then B must be connected to Ground. The W will give "read" the resistance, and thus should be placed in Analog input (A0-A5) on the Arduino. The slider potentiometer works the same way.
2. Now connect the 4 pots to each their Analog input. The slider is supposed to be in A4. So to make sure:
A0: Knob1
A1: Knob2
A2: Knob3
A3: Knob4
A4: Slider
3. Now it's time to connect the voltage! Using the breadboard, the voltage can be sent through 1 line, the Ground as well. It should be quite easy to connect them.
4. Now, download the Arduino IDE and copy-paste the code I supplied above. In the IDE, you need to let it know which Arduino you're working with, and which port is should send the script.
5. Almost there. Download the plugin. Open the port you're using through the plugin. Set Start to True and the Cordyceps should be within you.
This recipe will be updated!
Let me know if there are any issues.
// Zakaria Djebbara…
o Common - just like C#. But Rhino Python has a "Scripting Language Wrapper" which breaks commonly used taks down to simpler functions.
Here's a general Example:
Take a look at the code on this website http://wiki.mcneel.com/developer/rhinocommonsamples/addline). Generally it's Rhino Common code in three language to create a line. They look equally difficult.
But if you use Rhino Python Scripting you can use an simplified syntax to get the same result. It's very similar to Rhino Script.
The code would be:
import rhinoscriptsyntax as rsstart_point = rs.GetPoint("Get start point")end_point = rs.GetPoint("Get end point")line_id = rs.AddLine(start_point, end_point)
OK - No Error Tracking here, but still you can see that the syntax is much simpler. (And in the end you just have less lines of code you have to debug.
And the good thing about Rhino Python is, that you can mix these approaches. Once you reach a level where Rhino Python Script doesn't get you there, which by the way happens very rarely, you can still use the Rhino Common methods.
Also, in Python Sycripting 99% of what you probably would like to do is available as a "wrapped" script function.
Rhino Python Script is currently also better documented than Rhino Common for C# and VB.Net. If you have used Rhino VB Script before, these functions will be very familar to you.
I'm not sure, why it's currently a separate plug-in. I belive the reason is that Rhino 4 (which is supported by GH) doesn't support Rhino Python. Also it's currently WIP, so it needed to be updated more frequently than GH itself. In the long run (I believe) it might be integrated into GH as a general component
- Martin
P.S.: To use Rhino Python within GH is a little more tricky than my example - but nothing compared to developing C#
P.S.2 Here's the code with Error Tracking:
import rhinoscriptsyntax as rsdef AddLine(): start_point = rs.GetPoint("Get start point") if start_point is None: print "No start point was selected" return end_point = rs.GetPoint("Get end point") if end_point is None: print "No end point was selected" return line_id = rs.AddLine(start_point, end_point) return line_idAddLine()
…
e 7555, in callFromHoneybeeHive, "<string>" line 94, in main, "<string>" line 126, in script
(Swedish errormessage translation: "selected key does not exist in the lookup list")
I dont get any error messages in either LB or HB. HB says it has all libraries in its text output.I'm using a vanilla install of Win 10 with standard win firewall unaltered. I have a feeling it has something to do with files not downloading all the same.c:/Ladybug does not exist.
Picture shows contents of roaming/ladybug folder. is something missing?
This is what i've done so far:
Followed all the steps on the install instructions.Uninstalled and installed it again running in administrator mode.
Tried to get files from this thread, but links are broken to download those outdated files. I think I remember I usually have to do this when i do HB installs on new OS...I have not installed open studio, only energy+…
, Engineer and Researcher from France with broad programming experience. He is the author of the City in 3D Rhinoceros plugin for creation of buildings according to geojson file and with real elevation. Guillaume already created a new component: "Address to Location". It enables getting latitude and longitude values for the given address:
2) Support of Bathymetry data: automatic creation of underwater (sea/river/lake floor) terrain. This feature is now available through new source_ input of the "Terrain generator" component. Here is an example of terrain of the Loihi underwater volcano, of the coast of Hawaii:
3) A new terrain source has been added: ALOS World 3D 30m. ALOS is a Japanese global terrain data. Gismo "Terrain Generator" component has been using SRTM 30m terrain data, which hasn't been global and was limited to -56 to +60 latitude range. With this addition, it is possible to switch between SRTM and ALOS World 3D 30m models with the use of source_ input.
4) 9 new components have been added:
"Address To Location" - finds latitude and longitude coordinates for the given address.
"XY To Location" - finds latitude and longitude coordinates for the given Rhino XY coordinates. "Location To XY" - vice versa from the previous component: finds Rhino XY coordinates for the given latitude longitude coordinates. "Z To Elevation" - finds elevation for particular Rhino point. "Rhino text to number" - convert numeric text from Rhino to grasshopper number. "Rhino unit to meters" - convert Rhino units to meters. "Deconstruct location" - deconstructs .epw location. "New Component Example" - this component explains how to make a new Gismo component, in case you are interested to make one. We welcome new developers, even if you contribute a single component to Gismo! "Support Gismo" - gives some suggestions on how to make Gismo better, how to improve it and support it.
5) Ladybug "Terrain Generator" component now supports all units, not only Meters. So any Gismo example file which uses this component, can now use Rhino units other than Meters as well. Thank you Antonello Di Nunzio for making this happen!!
Basically just forget about this yellow panel:
This panel is not valid anymore, so just use any unit you want.
6) A number of bugs have been fixed, reported in topics for the last couple of weeks. We would like to thank members in the community who invested their time in testing, finding these bugs and reporting them: Rafat Ahmed, Peter Zatko, Mathieu Venot, Abraham Yezioro, Rafael Alonso. Thank you guys!!! Apologies if we forgot to mention someone.
The version 0.0.2 can be downloaded from here:
https://github.com/stgeorges/gismo/zipball/master
And example files from here:
https://github.com/stgeorges/gismo/tree/master/examples
Any new suggestions, testing and bug reports are welcome!!…
Added by djordje to Gismo at 5:13pm on March 1, 2017
obably only using Rhino4, but three people who bought Rhino2, Rhino3 and Rhino4 respectively are three people using one version each.
We certainly don't know how many Grasshopper users there are. Grasshopper installers are not always downloaded via our website or -once downloaded- used multiple times (think class-rooms and company IT). We have no way of knowing whether someone who once downloaded Grasshopper is still using it. That being said, Grasshopper is downloaded ~100 times a day from our website and this number has been fairly constant since 2009 (though slightly on the increase, I'd say ~80 a day in early 2009). There are nearly 96,000 unique email addresses in the Grasshopper mailing list, more than 455,000 in the Rhino4 mailing list.
The size of this community (>17,000 registered users) is a much better indicator of user-base magnitude, but even here we have no idea how many people registered but are now no longer using GH as we do not collect use statistics (yet).
--
David Rutten
david@mcneel.com
Poprad, Slovakia
…
What I figured yesterday is that the increase in radiation because of the reflective facade for the 'worst' month is only about 2-3 kWh/m2 as your looking at a value of 80 without and 82-83 kWh/m2 with reflection.
So my assumption is that the glare factor will play a much bigger role instead of intensity of the sun, looking at comfortable levels. So I'm looking in this as well. It's very cool to play around with these plugins and see the outcome. I'll keep you guys posted.
@ Claudio, that was exactly my problem as well. I presented a direct sunlight hour analysis, to show the increase in direct sunlight hours because of the mirrored facade and at what times of the day the reflections occurred. But it is hard to asses if this is 'bad' or 'good'. The restaurant in question receives more or less 130 direct sunlight hours 'naturally' in the worst month and because of the reflection the result was 161 direct sunlight hours, but the client was like okay..... and is this a problem? So we decided to look at sun intensity but I didn't want to fall into the trap of in the end presenting kWh/m2 and having the same problem not knowing if this is 'comfortable' or 'annoying' etc. Good luck with your study, I'll post my findings
Thanks again guys…
nitions prior to Karamba are to allow the genes to manipulate the form of the shell and then kangaroo to relax the form to its "equilibrium" state.
The definition, as attached, runs fine over one iteration. However, when I run the Galapagos solver, rhino slowly uses up my computers memory and then ultimately crashes (around 80 Galapagos iterations). I don't think that the surface patch, or kangaroo are the issue, as I have run other iterative definitions through them without issue.
I believe Karamba may be occupying memory each iteration that is not released when a new iteration begins. This problem is exasperated by the fact that I am running 11 load cases, 9 of which are point loads defined over each vertex of the mesh. I ran a definition with only one load case, and it reached 170 generations (with a population of 50 for each generation). However, at this point it had occupied 90% of my computer's available memory.
Do you know of a way to ensure that Karamba purges its memory after an iteration, or is this a possible memory leak bug?
Thanks again, any help you can provide is much appreciated.
Sean
…
.
I think i'm about 80% there. It may not be the most elegant procedure, but it appears to be working. I am having some slight problems.
1. I'm having trouble extracting the edge curve on one side of my mesh
a. I used a mesh plane intersection to trim my site mesh, and the resultant curve extends beyond the limit of my mesh
b. I identified the intersection point, but GH is not shattering on that intersection point. instead it happens at a point further down the polyline
2. I'm can't join my curves. If i bake them, they join into a closed curve.... GH join curves is not behaving. i've had some success joining two segments, but i can seem to get all 4 side wall curves to join.
if anybody could offer some advice, i'd be very appreciative. also, i'd like some recommendations for ways to streamline this definition. I'm sure that there are more creative ways to manage this data, and i'd love to about them. thanks - CSDG
…