her people) a tremendous amount of time creating them by hand. Dog Treat was far from perfect, however it was good enough to use almost daily.
Three years is a long time. Since 2016 my Gh knowledge has expanded and I’ve seen how dodgy some of the scripting is. With this in mind I started work on a new build. Many things have been tweaked and some things have been rebuilt from the ground up.
Everything has been designed to be leaner and be a general solution to the problem of creating dog bone corners on geometry for quick, efficient and safe CNC fabrication.
Some of these things are:
Adding prompts about user geometry to make them aware about open curves, varying curve heights and if their geometry had been altered (mostly removing unnecessary points on curves).
Smooth Transfers. If you’re in a rush and need to speed through cutting, smooth transfers mean that a lead in geometry is now created alongside the actual dog bone arc. This means the router bit doesn’t have to come to a minute stop at every corner. This is turned on by default.
Acute Angle Condition If the angle between the two curves adjacent to a dog bone point is acute, previously the dog bone corner was useless. This was because the distance between the end points of the dog bone arc were less than the diameter of the router bit. There are many ways this condition could be addressed. I chose to circumscribe a larger arc based on the original angle between the adjacent curves. While it removes more material from the corner, it minimises tool wear and any potential for material to burn.
Single Curve A single curve can now be input into Dog Treat. It will be output with both internal and external treatments.
I’ll continue to update Dog Treat as the need arises, it’s become somewhat of a hobby now. Maybe one day it will become part of a Plug-in… once I learn to code it though!
Happy Treating!
Hi Everyone,
Here's a tool I've been working on for the past 4 months or so in my free time. It's a dog bone corner generator, however it's a little different to some of the existing ones. It's designed to be used for large amounts of geometry and as such, it avoids using any curve boolean operations that are computationally taxing. You don't have to split your curves up into internal and external lots either, it works it all out so you can be lazy. I've also incorporated Lunch Box's Object Bake Component for a one click operation that bakes geometry back out to Internal and External profile layers.
Let me know how it goes, will update where necessary.
Best,
Darcy
Change Log
06/11/19 - Version 2.0 SECOND DINNER - Rebuild
29/09/17 - Version 1.3 - Now with smooth corners option, True for smooth default/False for original
18/05/17 - Version 1.2 - Now includes variable angle domain input (defaults at 90°) for angled corners
13/11/16 - slight change to enable acceptance of very large interior curves
…
Added by Darcy Zelenko at 8:44pm on November 9, 2016
windows. I manage to have proper HBZones with RADMaterials and EPConstructions (I've run Daylight calculation on them successfully), but when I plug the zones to GrizzlyBear this error appears:
Solution exception:'EPZone' object has no attribute 'getCurrentLoads'
In addition, something similar happens when I plug these HBZones to the newest decomposeByType component, althought it works properly when plugged to the previous version of it. This is what the error says:
Solution exception:'hb_EPZoneSurface' object has no attribute 'BC'
Same thing with SetEPZoneConstruction:
Solution exception:'hb_EPZoneSurface' object has no attribute 'BCObject'
Any thought?
Ander…
like to use a single VRay material as a template for creating multiple identical materials with different colors within the GH environment (instead of creating manually in the document).
I have gotten as far as creating the materials. Now I need to add them to the document material table so that they can be used with Giulio's rendering component (which looks for either Rhino.Display.DisplayMaterial or a String that references a document object). I'm not going to learn C# to modify his script, so I am catering to its demands.
Private Sub RunScript(ByVal M As Object, ByVal C As Color, ByRef Mat As Object)
Dim mTemp As Rhino.DocObjects.Material mTemp = CType(M, Rhino.DocObjects.Material) If mTemp.Name.Length > 0 Then mTemp.DiffuseColor = C Dim nTemp As String = mTemp.Name & "_" & C.R & "_" & C.G & "_" & C.B mTemp.Name = nTemp End If
Rhino.DocObjects.Tables.MaterialTable.Add(mTemp) Mat = mTemp
End Sub
The code throws the error: Reference to a non-shared member requires an object reference. (line 96)
Do I understand that the material has to be assigned to a particular object in order to enter the Material Table? Can I assign it to a Layer instead? Any ideas? A better way to do this?
Thanks,
Marc
…
cannot be cast to [B]CustomClassXY. Type A originates from 'CustomLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'LoadNeither' in a byte array. Type B originates from 'CustomLib, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' in the context 'LoadFrom' at location 'C:\Users\T\AppData\Roaming\Grasshopper\Libraries\CustomLib.gha'. (line: 96)This is how I do the casting:List<CustomLib.SomeClass.CustomClassXY> AllINPUTs = new List<CustomLib.SomeClass.CustomClassXY>();
for (int i = 0 ; i < INPUT.Count; i++)// { AllINPUTs.Add((CustomLib.SomeClass.CustomClassXY) INPUT[i]); }
The GHA is compiled with two namespaces, one for the component one for the library.
Thanks a lot in advance,
Tim…
the bubble diagram. This algorithm works by a set of attractive and repulsive forces (as in Equation 9) acting recursively on graph vertices, seeks a ‘relax’ situation for a graph, and reaches to a graph drawing. This tool is quite intuitive and shows in real-time bubble diagrams neatly according to the specified areas and the connectivity graph.
Equation 9
Attraction: 〖AF〗_ij=ka ∆x_ij for all linked (i,j)
Repulsion: 〖RF〗_ij=kr /x_ij for all (i,j)
The attraction/repulsion strength inputs are denoted as ka and kr
in the above equations. If some configuration is very messy, you need to have a high repulsion first to untangle it. I have not tried Angel's method but it is very similar to the method we have scripted for this component.
I hope this helps.
Best regards,
Pirouz…
nnot calculate (too many digits).
Or you want just to fill that space with random configuration and find some good for you?
Here's my first thoughts:
Again, as some other cases, iterative process.
(Conway's game of life, a cellular_automata-like process (?)... Install anemone.)
I would create 3 grids:
1 - grid of 100 values, cell's center points
these values can have more integer values like 0=free 1=occuped
2 - grid of 81 values, grid vertex points (excludig perimeter)
these values are where the center of 2x2 cells could be. 0=possible location 1=not possible location
3 - "grid" of 180 values, grid segment center, where 1x2 center could be
again 0 and 1
Then it's needed a "topology" between those 3 grids:
At each iteration those values updates each other by basing on placed cells and adjacent values.
At each iteration a new cell (random from A or B) is placed in a random possible location.
This is just my madness, and maybe I'm already far away from a result.
For sure a fasterst, simpler, smarter solution exists.…
rsity building with 81 thermal zones. I wanted to use this model on my master thesis, but I am afraid I won't be able. So I would really appreciate some help.
The purpose was to set different insulation thicknesses and glazing types depending on the orientation. Therefore I created every zone by using "createHBsrfs" components. At the same time different zones would have different "building programs".
I created all the zones, I added windows as "child surfaces" for every zone. And I created the adjacencies. No errors or whatsoever.
But from this point I cannot connect the model to any other component without GH being frozen. So although the model is correct maybe it is to heavy for the software, however I am not sure if that is the reason.
Is it stupid what I have done? Is there any easier way to accomplish my purpose?
Any thought or help will be much appreciated.
I attach the GH file.
Thank you,
Eduard
Version: HB 0.0.59 / LB 0.0.62…
e some questions.
I want to loop with a foreach loop trough a list of points do i have to make a list before or is it possible to use them coming in from a noed i set the access to list?
Also i dont understand why no plane is created. How do i need to feed the points in?
And why is c# expecting open parens in line 88 and 86?
Hope its not to much at once, probably i should try a few less steps to get the problems solved one by one, just hoped it would be easier and sometimes just a parentesis is missing or some format stuff, so maybe it is not so much i really cant say.
If anybody has the time and feels he wants to help it would be nice on the other hand i understand cause of the amount of chaotic questions.
Regards!…
understanding of the graphical algorithm editor, and then dive into more complex parametric models. We’ll also learn tricks to keep our project responsive and enjoyable to use.
Course outline
inspired in the first, visual programming part of the Grasshopper primer
(http://www.grasshopper3d.com/page/tutorials-1)
Duration: 3 days (24 hours).
Including
An understanding of the Grasshopper interface and the visual programming theory
Base parameters, large numbers of points and vectors, and small geometrical instances
Data flow
Troubleshooting definition problems and solutions
Know the main component types
Be able to join, and manage connections and trees
Expressions for both calculation and boolean creation
Understand Data Matching and casting
Managing long lists of objects within Grasshopper
Have an understanding of the functioning of Grasshopper components
Experience creating definitions
Parametric geometry examples, like attractors and list culling
Re-utilizable modeling examples: colored panelization, surface population, gradient and picture sampling and manipulation, catenary line and weaving
Spline animation examples
Getting ready to prepare own definitions in groups
More information...
…
dive into more complex parametric models. We’ll also learn tricks to keep our project responsive and enjoyable to use. Course outline
covering similar content as the first part of the primer (http://www.grasshopper3d.com/page/tutorials-1)
novel material
duration: 3 days (24 hours)
Including
An understanding of the Grasshopper interface and the visual programming theory
Base parameters, large numbers of points and vectors, and small geometrical instances
Data flow
Troubleshooting definition problems and solutions
Know the main component types
Be able to join, and manage connections and trees
Expressions for both calculation and boolean creation
Understand Data Matching and casting
Managing long lists of objects within Grasshopper
Have an understanding of the functioning of Grasshopper components
Experience creating definitions
Parametric geometry examples, like attractors and list culling
Re-utilizable modeling examples: colored panelization, surface population, gradient and picture sampling and manipulation, catenary line and weaving
Spline animation examples
Getting ready to prepare own definitions in groups
More information...
…