.
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
…
a machine that is light and very sturdy. I have taken my Macbook Pro all around the world, carry it with me every day, even dropped it a few times and its still totally fine. Its thin and light.
2) You get some actual support for your hardware even a few years down the line. My Macbook Pro is from 2012 and I can still walk in to any Apple Store and get help with it, which I have done many, many times in different places around the world - I never had to show a receipt or was charged any money for help. There is no PC/Laptop manufacturer in the world with anything close to that, because companies like Asus, Dell, etc. bring out dozens of new versions of laptops every year, so its much harder to service them after a few years.
3) This is the most important one, which usually people forget when they say that Macbooks are overpriced: Resale Value. If you have ever tried to sell an old PC/Laptop (I have a few times), you will know how little value they have even after just 2-3 years. Macbooks retain their value very well and even after 4 years you can still get 50% of your original price.
4) Of course you can install Windows on it and it runs perfectly. I have MacOS and Windows on it and both run absolutely fine. On the Windows side I have Rhino+GH, Maya and a few others. Having Windows is good, because some software still only runs on Windows (looking at you, 3DSMax!). Most other software also runs on MacOS. In the interest of sanity it is great to have an alternative to Windows for all the day to day stuff, like Mail, Calender, Photos, Presentations, etc. that just always works.
5) As for performance: Yes, Macbook Pros dont necessarily have the latest and greatest in graphics cards (the rest is on par with PC laptops), but unless you want to play games you will not need it. VRay RT can do GPU rendering, but you wont get great performance from a Notebook GPU anyways and it doesnt make sense to do rendering on a laptop (especially since you have a workstation). You could get one of the older Macbook Pro Retina Late 2013 or Mid 2014 models with the GTX750M by Nvidia, which will be usable to render using VRay RT, but of course not huge performance. Better to invest in a good used graphics card for your workstation like an Nvdia GTX980ti, which is the best value for money for GPU rendering right now (lots of used ones available).
So at least consider also getting a Macbook Pro. You can buy refurbished models (depending where you are) and they are like new, but a lot cheaper or even get an older one thats used. It will be a worthwile investment.
Take it from someone who has used dozens of PCs and Macs in my lifetime and have to do the IT support here at work (where we also use both).
I still have my Macbook Pro Retina from 2012 and its still running perfectly, super fast, and I can use Rhino and GH for huge files, do GPU Rendering with Octane Render and all sorts of other heavy computing stuff.
Hope that helps.…
Added by Armin Seltz at 11:12am on September 19, 2016
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.
…
Python and install it and it should work fine.
2. You still see the image above in case 1 however you have GHPython already installed. What about that?
In this case probably the GHA component is blocked. Find GHPython.GHA on your system (usually at: C:\Users\%username%\AppData\Roaming\Grasshopper\Libraries) . Right click, go to properties and select unblock.
To make sure that GHPython is working fine on your system open the attachment file (testGHPython.gh). You should see something similar to the image below on your screen when you open the file:
If you see the something similar you should be fine to go! Try to open one of the example files.
3. You have Ladybug running but in some of the case the output is missing. You see something similar to this:
or this
This one is because you are using old version of GHPython. Close the file without saving. Download the new version and install it and re-open the file. It should work fine now.
Hope it helps,
Mostapha
…
the mesh into long strips 1 quad wide.
*I did make an alternative icon for this, but opted for the tamer one in the end ;)
The Unroller component goes along the strip face by face, rotating it into a single plane.
Note that this component will still give a result even if you supply it with non planar quads - it will just fold them along a diagonal. However, if the faces are significantly non-planar, then it won't work as well for fabricating from a smooth strip of sheet material, so it is better to try and make sure your planarizing in the relaxation part is working well.
The Unroller component also has a T input which allows you to unroll only part of the mesh at a time. This is mainly for animation purposes, and most of the time you will probably just want to leave it set at 1.
At the moment the unroller is limited to working with open strips, so if your strip forms a closed loop, you will have to split it first. Later releases should include an automatic 'loop snipper'.
The final part of the definition then takes all these strips, orients them into the XY plane, and does some very basic layout.
It's then up to you to label, add tabs, nest, laser cut and assemble!
Because of the subdivision, each strip should have an even number of quads, which can also be useful for generating interlocking tabs by offsetting alternate groups of edges. I'll try and post an example of this soon.
I hope this is helpful. It was my intention when making this that it could be a relatively quick and easy way of making smooth curved structures out of sheet material, (I'm thinking card, polypropylene, metal, thin plywood...) with a lot less fixing/connecting work than doing a similar shape with individual panels.
Thanks to all the participants in these long-running threads:
http://www.grasshopper3d.com/forum/topics/how-to-create-nodesbone
http://www.grasshopper3d.com/forum/topics/skeletal-mesh*
which inspired this work, especially some of the comments by Ivan Kiryakov, Wiktor Kidziak, Giulio Piacentino, Andrew Haas and Mårten Nettelbladt.
*note also that the meshes generated using this definition can be used for developable strips, because they have the even-valence property.
I was also inspired by these papers:
http://www.cs.jhu.edu/~misha/Fall09/Liu06.pdf
http://www.geometrie.tugraz.at/wallner/strip.pdf…
lName, signalValue, operationMode):
sigV=signalValue
if sys.version_info[0] == 3:
if type(signalName) is str:
signalName=signalName.encode('utf-8')
if type(signalValue) is bytearray:
sigV = (ct.c_ubyte*len(signalValue))(*signalValue)
if type(signalValue) is str:
signalValue=signalValue.encode('utf-8')
sigV = (ct.c_ubyte*len(signalValue))(*signalValue)
else:
if type(signalValue) is bytearray:
sigV = (ct.c_ubyte*len(signalValue))(*signalValue)
if type(signalValue) is str:
signalValue=bytearray(signalValue)#<========This is line 1052
sigV = (ct.c_ubyte*len(signalValue))(*signalValue)
sigV=ct.cast(sigV,ct.POINTER(ct.c_ubyte)) # IronPython needs this
return c_WriteStringStream(clientID, signalName, sigV, len(signalValue), operationMode)
It displays the following error:
Program started
Connected to remote API server
Runtime error (TypeErrorException): unicode argument without an encoding
Traceback:
line 1052, in simxWriteStringStream, "C:\Program Files (x86)\V-REP3\V-REP_PRO_EDU\programming\remoteApiBindings\python\python\vrep.py"
line 70, in script
Any hint?…
are hotter than the least overlapped parts.
I'm trying to create gradients when overlapping between closed surfaces occur. The gradient goes from the center of the most overlapped figure to the edges of the least overlapped figures.
To help understand how I'm thinking it, I will first show you my solution for one figure.
As I said in the title, it's kind of a pseudo gradient. It's a way of organising areas (rings) inside of the geometry. To achieve this I thought in creating a series of rays that then can be divided in segments, in this case 3 segments of same lenght per ray, I could get more resolution in the gradient by dividing in more thus creating more rings...
in this picture the rays are in dark red and go from the center to 4 points in the perimeter, if I wanted more resolution I could have more rays, but with this simple figure 4 is enough
the rings are in a gradient of colors from the center to the perimeter, lighter in color each time:
so when I have 2 overlapping geometries
the center of the gradient should be on the center of the most overlapped part (in red) and go to the perimeter of the pink parts
for the red figure I draw the rays from the center to its perimetry. and for the pink figures the gradient should go from the parts that are in contact with the red figure to the perimeter, something like this:
still that is something I did with rhino and it's pretty intuitive...
the problem gets worse when i have more figures and more "heat centers"
like in these examples
maybe the approach should not be with rays to create the rings... maybe with offsets..
not sure if it's not too complicated to achieve in grasshopper and maybe there's another way of creating a gradient with multiple focuses...
would aprecciate any help
cheers…
phere with the maximum number of triangles but not much than a defined threshold.
I scaled that mesh just to fit Rhino grid, but it is not mandatory. What is useful, is to scale not uniformly the mesh (Scale NU). It could be done after cellular modifier applied or before or before and after. The 3 options are possible in the script. If you don’t need them just put 1 in scale sliders.
Ellipsoid mesh is the populated with points, I put 2 independents populations to randomize a bit further. For each vertices of the mesh the closest distance from the populated points is calculated.
Here is an illustration in color of this distance.
This distance is then used to calculate a bump. If domain for bump is beginning with negatives values to 0, it carves the mesh. Instead it bumps/inflates it.
Some images to illustrate the difference with populating 100 points with one or two populations.
Here some images to illustrate the application of scale before carving or after.
Next phase apply noise. At the moment I don't find it good.…