b or a mesh > all finally yielding a triangulated mesh (either via Ball Pivoting or "tuned" via MeshMachine or with some other approach)..
2. Assume that this mesh is "reasonable" with regard the edge sizes et all.
3. What is the best DIY method to do the thing using wood ? Well ... by FORGETTING beams as stand alone entities (using even linear hinges for the connection) and creating STAND ALONE tri "frames" from plywood and then connecting them by bolts.
4. How can we achieve planer pieces that when extruded inwards (+ some other "minor" stuff) could yield these standalone sets of plywood? (+ some decent layouts for cutting the pieces). What about fitting tolerances? What about the fact that we have actually "skin" deployed frames and not a true truss (so what? - it's a small thingy after all).
I give you a hint (he, he) the full solution soon (not sure if I should use a bit of the Dark Side for creating these tri-frames):
Red is non planar, green is planar (height - or rather the "width" of the plywood pieces for the tri-frame - is obviously user controllable):
more soon
…
d also have some real influence.
-1 or -2 makes them unstable, so I'll add Damping to the line springs too. Nope, raising damping made lines blow up, oddly enough. A real power law instead of inverse power law has real effect though with Exponents set above 0, but it wacks out by 4:
Oh I see, if a line is too long, it can only bend, so it gets pinched into S forms instead of following along the others. I see it clearest in Exponents 3 above, on the left.
Actually I'm wrong, for if I up the Cutoff, I get:
So what's causing all the disorder in the previous cases? What's Cutoff really doing?
Replacing your Boolean toggle switch on Kangaroo with a Button is important since the result depends on the starting movement and must thus be reset each time you change a parameter.
Have fun and perhaps post some results.
…
Added by Nik Willmore at 12:09pm on February 14, 2016
ruses could follow. Then cones are made and some other things.You can move the cones around via the equivalent slider. If the cones "touch" then ... well .. test it and see what's happening,
2. Interactive capability is not present: assume that you have 666 paths/cones > by what means you think that you could control what's happening? By adding 666 sliders? (not in a million years).
3. Rhino is amusing with regard the solid union Method. Depending on Karma you can get this:
or that :
4. Leaving aside N3 .. if the real-time response goes AWOL with just 8 cones what would be the situation if you add 666 cones? This is the reason for using K to solve this ... obviously with "some" compromises yielding "vault" stuff like this:
or like that (an Alien billiard (C)(Tm)(US patent pending) for planet Zorg):
Moral: stick to the Soap_opera approach.…
ill be curves not lines. But it could be fixed if necessary
1 Generation of a torus
2 Generation of Voronoi in 3d and calculation of intersection between cells and torus
3 Cut of the curves with 2 planes
4 Projection of the curves in XY planes between 0 and 2*PI
5 Scale in X of this pattern and array
Main variables are
Little radius of torus
Number of points for Populate 3d component
And the scale in X
It seems quite a simple way to generate a Seamless Voronoi.
Happy ?
For the question about symetry, cut, rotate ... you will have to draw things , seek on internet ... figure it by yourself. …
lt (with a sectioned view to appreciate clearance and modify it if necessary).
3. Normalised and common values of diameters and pitch (snapping sliders, although customised values are also allowed), as well as list of common combinations of diameter and pitch for reference.
4. Fundamental deviation or allowance for clearance and good fit. The diameters of the male and female threads are calculated by default with the minimum allowed clearance. But this clearance can be increased within the tolerance zone of both, with values ranging from 0 to 1, being zero the minimum tolerance and 1 the maximum tolerance for any given pitch and diameter.
Tolerance values and relationships have been taken from these two sites:
http://www.roymech.co.uk/Useful_Tables/Screws/Thread_tol.html#Funda...
http://mdmetric.com/tech/M-thead%20600.htm
I have not tested any 3d printing yet. This Grasshopper definition would be valid for FFF 3d printers under the assumption that they provide results within the tolerances. I do not think that is a problem for medium and large size threads, but I doubt they could do for the smallest values where the pitch is smaller than common resolutions.
I am not a mechanical engineer and I might have made some mistakes. Please do not hesitate to review or correct them.
This a link to a video showing how the definition works:
https://youtu.be/sNb7pVPPyBA
…
ine that populates the grid in a forward/backward/left/right/up/down manner in other words only within the XYZ axis one point at a time (like a 3D hilbert curve).
For instance the starting point is at 1,1,0 (XYZ).
to move one step right is to point 2,1,0 ,
to move one step forward is to point 1,2,0
and to move upwards is to point 1,1,1.
The attached file is what i'm working on right now.
What i tried doing was i selected all 64 points and decomposed them into their XYZ coordinates and then i sorted each one of them according to their axis. so i have 3 lists of the 64 points from their smallest number to the biggest. The bad thing about this is that i need to list out the XYZ coordinates for each of the 64 points and it is quite a pain because the grid i actually wanted is way bigger than this.
i thought a better way to do that would be to somehow number each point from 1-64.
Thus i could get a system where the starting point would be point 1, point 2 is the one next to it, point 17 is the one right directly above it and the last point being point 64.
So if i want the line to:
move right/left, i would just add/subtract one.
move forward i would just add 4 (going to the next row)
and move upwards/downwards i would add/substract 16.
How could i do this in grasshopper?
I hope i explained clear enough.
Any other method/suggestion is appreciated as well!
…
n #, row #, seat #, various value metrics, etc.).
I can also use Elefront to bring this data back in along with the geometry, but the geometry comes in flat. Normally I would grab a corresponding tree structure from somewhere upstream in the definition or internalize the structure if I'm starting a new definition and then apply this to an unflatten component to restructure the geometry.
However, I got to wondering if I could use the flattened row and seating data from my object's user dictionary to reconstruct a tree. To keep things simple, I start the numbering at 0 instead of 1 to match the way Grasshopper indices work.
If I have 2 sections, each with 3 rows, and the rows have 4, 5, and 6 seats respectively, my seat data per seat would look like this (spaces are for pattern clarity):
0123 01234 012345 0123 01234 012345
And my row data per seat would look like this:
0000 11111 222222 0000 11111 222222
I was able to use these two numerical patterns alone to reconstruct the tree but I suspect my solution is inefficient. I'm including images and the definition itself in case anyone wants to take a stab at it.
…
pavilion) and from that i want to fabricate it using some paper or card bored .
for modeling the pavilion i used a simple kangaroo based algorithm to generate the desired form using mesh 3d plane faces . there was no problem with this part and i was able to get the mesh from geometry out put . then i wanted to use that output mesh to panelize it and then adding tabs and the nesting and cutting to get the parts. but the problem was every tutorial i looked up were using surfaces to panelize and nest so this was the first problem to convert the mesh into a surface and then panelazing and nesting . i tried using the mesh2nurbs but it didn't work out for me . (because i needed a single surface not some poly surfaces) . (attachment | input mesh )
so i started from the beginning and tried using a surface as an input for kangaroo and thus getting a surface as an output so i did that and tried to create a surface by the Surface from points component . and the result was not good the surface was kinda messed up and the the reason was the points were not ordered well i guess . so this was another problem for me . (attachment | input surface)(picture below)
so basically i have a few main questions :
1. is there a tutorial or any topic or book or somthing that explains from 0 to 100 from design to fabrication (as an example a pavilion) ?
2. can i use the mesh to panelize and nest and then fabricate ? and are there any tips or tricks to it ?
3. is the starting from surface for me a good idea or not ?
i am extremely sorry for talking this much and i'm grateful for the time you spent on reading this .
best wishes ; Babak.
…
rectly except for the first material in a series. See attached image... Here is my code:
Private Sub RunScript(ByVal M As Object, ByVal C As Color, ByRef AddName As Object, ByRef AddMat As Object, ByRef AddBool As Object, ByRef baseName As Object, ByRef newMatName As Object)
Dim z As String = "newMatName" Dim y As String = "BaseName" Dim x As Integer = 0 Dim nRestore As String Dim mTemp As Rhino.DocObjects.Material
mTemp = CType(M, Rhino.DocObjects.Material) y = mTemp.Name Dim nTemp As String
If mTemp.Name.Contains("_MOD_R") = False Then
nRestore = mTemp.Name nTemp = mTemp.Name & "_MOD_R" & C.R & "_G" & C.G & "_B" & C.B mTemp.Name = nTemp z = nTemp mTemp.DiffuseColor = C
If Doc.Materials.Find(nTemp, True) < 0 Then
Doc.Materials.Add(mTemp) x = x + 1 AddName = nTemp AddMat = mTemp
End If
mTemp.Name = nRestore
End If
newMatName = z
AddBool = x BaseName = y
End Sub
1) I have checked that all of the materials I am calling by name exist in the document and that data matching is correct. There doesn't seem to be anything special about the offending material except that it is always the first material that was added to the document by my script.
2) The main thing I was missing in the previous script was the "doc.Materials.Add()" -- how on earth should I have known that existed? Even a search for "doc.Materials" in the Rhinocommon SDK doesn't turn that up. I'm having a very hard time using the SDK to my advantage, it seems not to correlate to the actual code I need to write.
2b) Perfect example... now I am trying to rewrite my other component (which exposes all of the document materials) to set a few objects manually in Rhino with the Materials I want to use as templates. Now I am trying to find out how to access the material assigned to an object. Seems easy, but it's clearly not a Property, and I can't find an appropriate Method in either the Objects or Materials classes.
3) One of my problems originally, when feeding the component one material and multiple colors, was that the nTemp variable was not resetting properly for the second color. Same thing if I duplicated the material to match the list of colors. It would create a material on the first pass but concatenate "_MOD_R_G_B" in each subsequent pass and be caught by my String checker. Why is that? I thought that the nTemp Name variable would be reset in each pass by the line "mTemp = CType(M, Rhino.DocObjects.Material)" and "nTemp = mTemp.Name" combination.
Does the mTemp material somehow carry over its properties in each successive pass? That's why I added the nRestore to be sure each pass reset the name back to the original.
Still, I wonder if there is some problem with the way I am conceptualizing this that is causing the first material to be the same as the input material.
Thanks for your help on this...
Cheers,
Marc…