this occasion, but it could be converted for DT in no time). Requires some minutes more as regards ... some things, but the usual update is due to some days.
Bad news: it's C#
Good news: User's Manual :
1. That thing (the C#, not me) after sorting (in a "sequential way", so tho speak) the panels (their order was chaotic) allows you to start the massacre by locating a focus of interest (and the user controllable +/- Range derived from it).2. The Range is variable (obviously) and takes care not to exceed the indices of the panel list (OK, that's elementary).
3. If you click the right button (Sadistic Q: where is it? he he) things are deleted and a new constantly self-updating list is your new List. Thus the massacre of panels is totally controllable. An autoZoom thing is also included (free of charge, but it's a bit nerve braking). Zoom factor is variable as well.
4. Then you move over (via the index slider) and start the massacre again. Notice the change of Range.
5. If you turn begin to false (initialization) and then begin to true > start all over again.
6. The other C# thing allows you to increment the index slider in a rather more convenient way. It's a bit weird: it uses delegates (A delegate is an object that knows how to call a method) and events (An event is a construct that exposes just the subset of delegate features required for the broadcaster/subscriber model - but don't ask what this means, he he) in order to talk with your slider (with a defined NickName) and perform the required value control.
NOTE: without realizing it you've just (indirectly) asked one of the most important questions even exposed in this Noble Forum. I hear you : what question? Well ... wait some days for the mother of all threads: "Total control in collections on a per Item basis"
may the Force (the dark option) be with you (and me)
best, Peter…
should follow the instruction which mostapha has wrote in https://github.com/mostaphaRoudsari/ladybug/blob/master/resources/I...
Instructions for Installing Ladybug + Honeybee: (Follow steps 1-6 for basic functionality and 1-11 for full functionality) 0. If you have an old version of LB+HB, download the file here (https://app.box.com/s/ds96em9l6stxpcw8kgtf) and open it in Grasshopper to remove your old Ladybug and Honeybee version. 1. Make sure that you have a working copy of both Rhino and Grasshopper installed. 2. Open Rhino and type "Grasshopper" into the command line (without quotations). Wait for grasshopper to load. 3. Install GHPython by downloading the file at this link (http://www.food4rhino.com/project/ghpython?ufh) and drag the .gha file onto the Grasshopper canvas. 4. Select and drag all of the files in the "userObjects" folder (downloaded with this instructions file) onto your Grasshopper canvas. You should see Ladybug and Honeybee appear as tabs on the grasshopper tool bar. (If you are reading this instruction on github you can download them from http://www.food4rhino.com/project/ladybug-honeybee) 5. Download the files at this link (https://app.box.com/s/bh9sbpgajdtmmystv3n4), unzip them and copy the contents to both C:\ladybug and C:\Users\[yourUsername]\AppData\Roaming\Ladybug. 6. Restart Rhino and Grasshopper. You now have a fully-functioning Ladybug. For Honeybee, continue to the following: 7. Install Radiance to C:\Radiance by downloading it from this link (https://github.com/NREL/Radiance/releases/download/4.2.2/radiance-4...) and running the exe. 6. Install Daysim to C:\DAYSIM by downloading it at this link (http://daysim.ning.com/page/download) and running the exe. 8. Install Energy Plus 8.1 to C:\EnergyPlusV8-1-0 by going to the DOE website (http://apps1.eere.energy.gov/buildings/energyplus/energyplus_downlo...), making an account, going to "download older versions of EnergyPlus, selecting 8.1 and running the exe. 9. Copy falsecolor2.exe (http://pyrat.googlecode.com/files/falsecolor2.exe) and evalglare.exe (http://www.ise.fraunhofer.de/en/downloads-englisch/software/evalgla...) to C:\Radiance\bin 10. Download the OpenStudio Libraries (https://app.box.com/s/y2sx16k98g1lfd3r47zi) and unzip them to C:\ladybug\OpenStudio. 11. You now have a fully-working version of Ladybug + Honeybee. Get started visualizing weather data with these video tutorials (https://www.youtube.com/playlist?list=PLruLh1AdY-Sj_XGz3kzHUoWmpWDX...).
It works for me..
Agus…
Rubicon (ii.e. some programming language [I would strongly recommend C#] > the Dark Side > years of pain + tears > hell or heaven?).
Back to that pile or worms of yours (I hate "simple" cases, he he).
0. if you want rounded lips ... Styrofoam is the only solution (+ sanding [buy a mask and some decent cigars ... path is long and hilly]). if not > goto 5/6.
1. by what means you think that you can shape Styrofoam? Do you have access to some CNC foam cutter? Or the only tools that you have are ... 2 hands and a knife? (or a thermal cutter). Accuracy is a BIG issue here: chances are that panels won't "fit". Solution is available in the forthcoming V3.
2. male "protrusions" on Styrofoam is kinda 3rd marriage > AVOID at any cost > this would end up in tears.
3. female ones are safe ... thus we need a proper "insert stripe" that must be compatible with the Styrofoam adhesive and strong enough to hold the pieces until the glue cures (it takes time, there's no instant Styrofoam adhesives around). Maybe aluminum (hard to cut by hand) or balsa (very expensive) or plywood (best option).
4. Some CNC foam cutters they can't shape the female "crevices" > be prepared (a thermal tool may(?) cut the mustard).
Note: panels made with Styrofoam look miserable because reality and theory differ. They also look miserable as well (and kitsch and miserable).
5. making the panels with (marine) plywood ... well this yields far superior accuracy and therefor aesthetics but (a) yields max panel thickness constrains, (b) introduces max panel dimensions constrains (c) yields packing issues [waste material] and (d) requires a totally different "connection" approach: it doesn't make sense to do some female crevice ... unless the plywood is very thick (expensive + heavy).
Note: Designing (pro option) self supporting "rib" reinforced sandwich composite panels ... well this is a bit far and away from what you can handle at present time.
So ... I've suspended the male/female thingy until you decide the final policy: it's the material/detailing that should dictate the method(s) AND the whole design and not the other way.
This is what we call bottom-top design approach (dinosaur Architects follow the top-bottom: disastrous + naive + naive + naive + avoid).
6. Plan ZZTop: make a stand alone autonomous perimeter frame per panel (marine plywood: imagine "thickening" these abstract beams shown inwards per panel) then join these frames by means of bolts (easy) and fill the "gaps" with Styrofoam (hmm). Note: you can reinforce the frames by a variety of means (say: a secondary "beam" sub-structure) achieving a rather elegant all overall solution.
This is the best solution by roughly 666 miles.
…
.
as you can see I devided it into 3 parts.
part1: when I try to connect the new shape to the rest of your definition,the plan z,which gives the panels individually when baked(so I can work them individually)doesn't work,apparently there is something missing when I want to explode it.
that is why I connected it to the definition that I already had(part2)( the only cool part about that one is the attractor point)well it kind works,but not really(if you zoom in you can see that there are some parts overlapped and really not looking good).however I much rather your definition because of the option it gives me to work with individual panels when baked(planz).
however it's around 4 am. and I have decided to make some major changes in design (to prepare some closed and open space,I'm talking about part3 that works with the fibonacci like shape,I know it doesnt look really good,but seriously 4am.!).the major problem is that I tried to make a form like that with kangaroo so the shape would be smoother but I wasnt really able to make it with kangaroo,that's why I made it manually in rhino.I was wondering if you can help me make something like this ( not exacly like this) with kangaroo or (if impossible to be made with kangaroo)even helping me optimizing it so it doesnt look as bad,as you can see when I try to work the grasshopper definition on this shape,it gives me different panel sizes for each surface and all of them are to small compared with the overall size of the so-called pavillion(give it 200-500 sq feet (20-50 sq.m).and any suggestions about the shape would be appreciated,please forgive my basic knowledge of rhino and grasshopper,and let's say I wanted to make a shape like these(don't laugh please!)
u promised not to laugh!!!
please help me find the right way!
…
make-this-form-...
Other than that:
1. Tensegrity is a "static" thingy in the sense that you use some module (let's call it "mode") and repeat. Creating some code that does INVENT new modes for T trusses (Pulitzer/EMMY/Nobel on sight, he he) ... I would strongly suggest to forget that THIS VERY MOMENT.
2. Applying some T "mode" on something (see my examples in the above thread where I use surfaces for the T nodes) is another animal. If you intend to use Kangaroo to "relax" that something (NOT the T itself) well ... you can do it but has nothing to do with T.
3. The Kangaroo def provided is a "way" to test the "rigidity" of the T in use. It's a "post-processing" thing NOT a T solving thing.
4. I have a terrible feeling: are you saying that (a) without knowing a thing (or two) from C#, (b) without knowing K1/K2, (c) with a limited GH experience ... your goal is to write down from scratch a FEA ("Femap") thingy that ALSO does node "relaxation" ? If so ... well ... what about sky diving (without parachute) or that classic Russian roulette "game"?
PS: shown double tetra (classic) and XFrames (classic) T trusses applied in open and closed surfaces.
But of course these are abstract stupid "arrangements" utterly out of question in real-life: read CAREFULLY the discussion in the thread provided above AND also study the 3dPDF attached (with a system out of many available) in order to get the gist about what real-life means (Note: EVEN if no real-parts are used ... the node calculation is different from the abstract "star" connections pictured above - by "star" I mean that cables meet at a single point in space without any "offset" etc etc).
Moral: Seppuku
Plan Z: Skype ASAP
…
d the ObjectName of a selected set of objects from a Rhino model in CSV format.
2) Opened this in Excel, Column-A contains the GUID, Column-B contains ObjectNames.
3) Modified and revised the ObjectNames in Excel.
4) Using another GH-solution, Wrote a VB script to push this modified data back into the model. However after baking, the objectName is not getting updated.
Though the solutions do not show any runtime errors, after baking, the ObjectNames are not updated. However, if I try selecting the object using:
obj.Select < - this gives an error
--------------------------------------------------------
Here is the code to my GH-solution (see attached image)
WriteToXL module:
------------------------------------------------------------------------------
Private Sub RunScript(ByVal id As Object, ByRef mName As Object, ByRef GUID As Object, ByRef A As Object) Dim obj As Rhino.DocObjects.RhinoObject = doc.Objects.Find(id)'Dim A As StringDim mP1(2) As DoubleDim mP2(2) As DoubleDim mCurve As Rhino.DocObjects.CurveObjectIf obj Is Nothing ThenmName = "Obj not found"ElseIf obj.ObjectType = Rhino.DocObjects.ObjectType.Curve ThenmCurve = objmP1(0) = mcurve.CurveGeometry.PointAtStart.XmP1(1) = mcurve.CurveGeometry.PointAtStart.YmP1(2) = mcurve.CurveGeometry.PointAtStart.Zmp2(0) = mcurve.CurveGeometry.PointAtEnd.Xmp2(1) = mcurve.CurveGeometry.PointAtEnd.Ymp2(2) = mcurve.CurveGeometry.PointAtEnd.ZEnd IfmName = CType(obj.Name, String)GUID = obj.idA = GUID.ToString & ", " & CStr(mName) & ", " & mp1(0) & ", " & mp1(1) & ", " & mp1(2) & ", " & mp2(0) & ", " & mp2(1) & ", " & mp2(2)End IfEnd Sub -------------------------------------------------------
ReadFromXL module:
-------------------------------------------------------
Private Sub RunScript(ByVal activate As Object, ByRef A As Object, ByRef B As Object, ByRef C As Object) If activate = True Then Dim XLApp As Object Dim XLSheet As Object
xlApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application") Dim strSheet As String = "ObjectName+GUID" XLSheet = xlApp.Worksheets(strSheet)
Dim strGUIDColumn As String = "A" Dim strObjectNameColumn As String = "L"
Dim iRow As Int16 Dim nRows As Int16 = XLSheet.usedrange.rows.count Dim obj As Rhino.DocObjects.RhinoObject ReDim B(nRows - 1) ReDim C(nRows - 1) ReDim A(nRows - 1) For iRow = 1 To nRows
Dim strGUID As String = XLSheet.Range(strGUIDColumn & iRow).Value Dim objGUID As Guid = New System.Guid(strGUID) Dim strObjectName As String = XLSheet.Range(strObjectNameColumn & iRow).Value obj = doc.Objects.Find(objGUID) obj.Attributes.Name = strObjectName B(iRow - 1) = objGUID C(iRow - 1) = obj.Attributes.Name A(iRow - 1) = obj Next
End If
End Sub
----------------------------------------------------------------…
a reply.
Q1. I run two generations in my generation 0 I can distinguish 3 lines...what do they refer to? I got my Fitness as 5 values Heating, Cooling etc and thought there will be 5 lines
Q2. What are values on X/Y/Z axis and color legend? What colors means I got black 409.87 and red 33.63 amd tis dot 99.2:5 and green 2.27:4?
Q3. I can see that in every generation my values are condensed ...of course I shall run this for many more generations... but as result of my simulation which is minimize energy will be the last one that head down?
Q4. I was reading this forum and there is no current way of savings all results for each run ?
Q5. If there are some any general advice how I shall tackle my problem this would be great!
Ps. I will try to run this example over the weekend to see what is the result.
…
hat differ in shapes, sizes and height the facade would be a mess. Some spaces need some light while other can't have any. I would like to have full freedom of creation inside the building, to make it as functional as possible. Thats why i decided the parametric "skin" solution would be best. Since the location has industrial past (factories made of brick) i decided that brick would give interesting result.
I tried creating the definition on my own but since i lack skill in GH i got some problems (especially multiplication of bricks and the diffrence between each "level" (half a brick on y axis) caused problems for me.
I post my simple sketch explaining the idea of definition i would like to create (sorry about quality):
1 - Brep - I would like to use 25x12x6cm (classic brick) but as well experiment with diffrent shapes - like the one on the right with hole inside - that would give more light. Thats why i think the best solution would be using brep for this definition.
2- Multiplication - biggest problem for me - I don't know how tall the wall would be, what will be the final shape of Brep (brick) and that's why i would like to manipulate this with sliders as well. All the walls are flat (maybe it would be easier to use surface?). As i managed to multiply the bricks easy way i don't know how to gain control over height of the wall - for example that it is 30 bricks high, but has each second row moved on x axis by the distance of 1/2 brick. I tried using Series but with no success. Could you help me with that please?
3 - Rotation - i would like to use image sampler for that so i can "paint" where i want more sun and where i dont need it at all (black and white). The rotation has to be limited to 180 degrees as well. Obviously i didn't get here yet, but i never used image sampler so if you could give me some advice how to use component and how to create such images i would be really grateful.
4 - More of a concept thing - since the connection angles differ from 90 degrees i will have to figure out how to connect the parts of the wall at sides ;).
I would like to ask you for help with the defintion, since i am totally stuck at step 2. I post what i came up with so far. Thank you for your time and help!
PS. I post an image that is pretty similar to one of options i would like to check for my building.
…
or of the rectangle
Here is a sketch.
I found also into rhinoscript help some script however I don't see how to manage to create such a component for a use into grasshopper.
Could you possibly help me ?
Thank you.
Marc
GetRectangle
Pauses for user input of a rectangle.
Syntax
Rhino.GetRectangle ([intMode [, arrPoint [, strPrompt1 [, strPrompt2 [, strPrompt3]]]]])
Parameters
intMode
Optional. Number. The rectangle selection mode. If not specified, all modes (0) are available. The rectangle selection modes are as follows:
Value
Description
0
All modes.
1
Corner. A rectangle is created by picking two corner points.
2
3-Point. A rectangle is created by picking three points
3
Vertical. A vertical rectangle is created by picking three points.
4
Center. A rectangle is created by picking a center point and a corner point.
arrPoint
Optional. Array. A 3-D base point.
strPrompt1
Optional. String. The first prompt or message.
strPrompt2
Optional. String. The second prompt or message.
strPrompt3
Optional. String. The third prompt or message. The third prompt used only with 3Point and Vertical modes.
Returns
Array
An array of four 3-D points that define the corners of the rectangle if successful. Points are returned in counter-clockwise order. See the image below for details.
Null
If not successful, or on error.
Example
Dim arrRect
arrRect = Rhino.GetRectangle
If IsArray(arrRect) Then
Rhino.AddTextDot "0", arrRect(0)
Rhino.AddTextDot "1", arrRect(1)
Rhino.AddTextDot "2", arrRect(2)
Rhino.AddTextDot "3", arrRect(3)…
le and grasshopper timer to simplify simulation control. Double click the main Kangaroo component to open this remote. There are buttons for Stop(reset), Play, Pause, and Step (moves the simulation forward one iteration).
Line-line force - allows interaction between line segments - they are treated as rigid cylinders. As with springs, there are settings for offset and rest distance, so this can be used to simulate colliding rods, and also for keeping cylinders tangent to one another (can be used for reciprocal structures).
Gear simulator - collision between curves in a plane, can be used for various mechanical simulations - cams, gears, rack and pinions etc.
Developablize force - adjusts vertices of a mesh locally, to make angles around each interior vertex sum to 2*Pi, so the mesh can be unfolded to a flat sheet without stretching.
Volume dependent pressure force - allows you to set a rest volume for a mesh instead of just a fixed pressure. When combined with Laplacian smoothing for area minimization, this can be used to optimize for CMC (constant-mean-curvature) surfaces. It will also work on open meshes.
Translation lock - maintains a fixed relationship between a pair of points. This can be used to enforce periodic boundary conditions for TPMS.
Equalize angles force - given a set of angles (defined by 3 points each), this tries to adjust them all to become equal.
Mirror symmetry force - can be used to minimize curvature variation, and optimize for higher order curve continuity. It can also be used for simulating torsional resistance in curved rods.
True minimal surface relaxation - Laplacian smoothing force now includes an option for cotangent weighting, which optimizes for zero mean curvature, unlike spring based methods, or uniform weighted Laplacian smoothing which only roughly approximate this.
Fast sphere collide - allows much faster collision detection between large numbers of spheres. By placing these spheres at the vertices, this can also be used for collision between meshes.
Force-density element - an experimental one, more on this later
Projected-force - adjusts its strength so the component of the force in a given direction stays constant.
New mesh tools:
WarpWeft - sorts the edges of a quad mesh into warp and weft directions. This can be used to assign them different stiffness in fabric form-finding.
Checkerboard - sort the faces of a mesh into 2 lists so that 2 faces of the same colour are never adjacent.
MeshDirection - sorts the vertices of a quad mesh to give it a sort of u-v directionality
Refine Strips - subdivision in one direction only - can be used to generate developable strips
Stripper - separates out the strips of quads from a larger mesh
Unroller - unfolds a quad strip to flat without stretching
MeshMap - maps points from one mesh to another (can be used together with circle-packing to generate conformal mappings)
Reciprocal structure - generates starting geometry for a reciprocal structure from any input mesh (using the Plankton mesh library *Note* If you already have the Plankton components installed, you will need to update to version 0.3.0, which is available from here)
ReMesher - adjusts the connectivity of a mesh by flipping, splitting and collapsing edges to make all edge lengths closer to a target value
Diagonalize - creates a new face for every edge of the original mesh. Can be used on quad meshes to easily convert to a diagrid.
Refine - simple non-smoothing subdivision, splitting quads into 4 quads, and triangles into 4 triangles
QuadDivide - subdivide quads by any number squared, not just powers of 4
Corners - finds the corner vertices of a quad mesh
ByParent - simple quad subdivision, keeping the output grouped by parent face.
User objects:
The download comes with an increased collection of user objects to simplify setting up common simulation types - Including a simple to use origami simulator, a reciprocal structure generator, and a tool to generate compact circle packings from a CP mesh.
General:
Geometry input now accepts polylines and straight curves.
Hinges can now be fold completely flat in both directions.
Various other minor bug fixes and speed improvements (including much faster removeDuplicatePoints/Lines components)
*****
I've not yet updated all the documentation and example files to reflect this new version, but over time I will keep posting here with new demos and explanation of all these new features. I'll try and add a few new examples each week. Vote in the comments below if there is a feature mentioned above that you're particularly keen to hear more about soon.
No doubt there are still some bugs to be discovered. If something isn't working the way you expect or want it to, please post in this forum (ideally with a description or sketch of what you think should be happening, and a clear description of what happens instead and any error messages).
There are also some more new features that weren't quite ready to make it into this release, but are on the way shortly...
Kangaroo remains completely free, for personal, academic, and commercial use. I'm always interested to hear about projects done using it, and suggestions for improvements or additions.
Daniel
…