n the z axis I can not, here's the problem, because the movement is not only on the z axis, I can't do a serie with this vector. I tried to do it by differents columns or rows but its impossible for me.
2. Another problem. How I can fill a surface like this with tetrahedrons? What about change the size of this tetrahedrons? Is it possible like a fractal? :Si'm still working...
Thank you!
Finally I have completed the cloud!! I am a little bit fool. With the help of some sketches it was not so difficult! :).
I found the movement pattern of my tetrahedrons
Then I found the points inside my surface!
But now I cant create lines between points like in the begining of the process, with the pattern with points 1, 2, 3, 4. What I have to do?
??????????
Bye!!!…
, but without modifying the lists order:
suposing i have a structure list
(Paths = 75)
{0} (N = 51)
{2} (N = 51)
{3} (N = 51)
{4} (N = 51) ...............
I`m trying to apply to that list of values the statement:
if x>y then x=0
if x<y then x=x/z
but i need the list structure to keep exactly the same.
I`d be very thankful for any ideas on how to approach this problem.
Many thanks,
Roberto
…
write a definition that represents the following surface that I have created out of paper.
This is essentially a squared surface subdivided into triangular segments. For that reason I was hoping I could use Zubin's example about triangles in chapter 3 of his book.
I'm sure, you guys know these kind of folding technique, but to clarify the pattern of the surface, here's a quick diagram:
My approach was to use the point cloud out of Zubani's example and select points with the Cull Nth component according to the pattern shown in the diagram. These points I would then offset with a z-vector component while keeping the distance between the points fixed.
However, after spending now several days trying to figure this out, I definitely ran into a wall..
As I see it, the example generates multiple points for the same coordinates, meaning there are occasions where there 6 points on top of each other.
Further, the Cull Nth component doesn't work exactly as I've hoped, the problem lies in the transition from one row to another..
I was also thinking instead of creating a series of points and then trying to filter specific points out to create (a) the surfaces and (b) the offset, maybe I should start creating these separate lists from the beginning?
Or, instead of point cloud series, using a surface and the sDivide component?
As you see, I am pretty confused/lost in the problem... any help would be greatly appreciated!
Thanks!
…
he process. The last one is there because fixing it would cause another problem, which we feel is more serious. Solutions may well be forthcoming in the future though.
1. Grasshopper curves and points are drawn more towards the camera than they really are. This is a conscious decision. Often Rhino geometry and Grasshopper geometry exist in the same place. If we would draw the Grasshopper preview in place, then there's no telling whether you'd see the Rhino curve or the Grasshopper curve. We feel it's important that you always see the Grasshopper curve on top. This is why we draw all curves and points slightly towards the camera. However we don't do this for meshes. This results in something akin to the image below. The eye represents the location of the viewport camera, the shaded box represents the actual location of the geometry and all the thick black lines represent the edges of the geometry moved towards the camera. As you can see, the red lines will be visible, even though they should be behind the shaded box. This effect can get very strong when the camera is close to some geometry relative to the size of the boundingbox of all geometry.
2. Wires behind the camera are sometimes visible. This is a bug I don't know how to solve. We'll get around to it eventually. When an object is behind the camera the display transform sometimes makes it visible in front of the camera in some weird inverted perspective mode.
3. Meshes are not z-sorted prior to display. This means that the order in which they are drawn is not back-to-front, but fairly arbitrary. This means that a transparent mesh may appear to punch a hole in the mesh behind it. If this is annoying you to no end, you can use Ctrl+F on the Grasshopper components that contain the meshes that are punching holes and then press F5 to recompute. The draw order should now be different. Of course sometimes it will only 'fix' it for a specific camera angle.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
that aren't relevant anymore or if there are any I missed please let me know. Maybe we can get a list like this in a better place as well.
Thank you.
Right Mouse - When wiring, plugs wire into multiple inputs.Shift+Click - Pick component aggregate.Shift+Clicking - Place component aggregate.Alt+Left - Click Split canvas tool.Ctrl+Q - Preview toggle.Ctrl+E - Enable toggle.Ctrl+Left - Navigate upstream.Ctrl+Right - Navigate downstream.Ctrl+M - Mesh Edge display toggle.Ctrl+1 - No previewCtrl+2 - Wireframe preview.Ctrl+3 - ShadedCtrl+Alt+Shift+Click - Save image of canvas.Ctrl+Alt and Shift+Ctrl+Alt - Highlights components on the canvas and component palette.Ctrl+Shift - Rewire component input/output.Double Click - Find/SearchAlt+Drag - Copy component on canvas.Ctrl+Tab - Document cycling.Ctrl+Shift+P - PreferencesCtrl+N - New fileCtrl+O - Open fileCtrl+S - Save file.Ctrl+Shift+S - Save as.Ctrl+Alt+S - Save backup.Ctrl+W - Close open document.Ctrl+Z - Undo copy.Ctrl+Y - RedoCtrl+X - CutCtrl+C - CopyCtrl+P - PasteCtrl+Alt+V - Paste in placeCtrl+Shift+V - Paste in centerCtrl+A - Select allCtrl+D - DeselectCtrl+Shift+I - Invert SelectionCtrl+Shift+A - Grow SelectionCtrl+Shift+Left Arrow - Grow UpstreamCtrl+Shift+Right Arrow - Grow DownstreamCtrl+Left Arrow - Shift upstreamCtrl+Right Arrow - Shift downstreamCtrl+G - Group selectionF3 - FindF4 - CreateF5 - RecomputeCtrl+B - Send to backCtrl+F - Bring to frontCtrl+Shift+B - Move backwardsCtrl+Shift+F - Move forwardsInsert - Bake selectedCtrl+Q - Toggle previewCtrl+E - Toggle enabled selected
…
try to optimise the form maybe will use Rhino Phyton... I will try to continue this script to pass trough potential method, which will modify the hull shape, and get the optimum shape. For now there is a problem with that Open Foam works only on linux and I am looking for other free alternative for CFD.. Just to investigate the resistance fast, so to deform and modify the shape... Later with the deformed shape will do 3 passes with deform, compare, deform with fast potential solver. And the last two shapes which I liked could pass trough viscous solver so I can compare the difference, cost, performance, production. Does somebody know such free potential code for windows I could try? After getting free CFD code. IDEA: The question will be how to connect them (the outputs of CFD with deformations in Rhino) so taking PressureXYZ vector fields from CFD, in table with coordinates for each point and amount of deformation in each direction putting them in Rhino (in scalar form in table with position of the control point amount of deformation and direction. So using Rhino nudge comands to deform the body. Deforming the hull using the control points, or control curves with soft body deformation. Maybe there will be a high dense cage where is the higesht point in the table and soft deforming proportionally the rest points. There sould be two limiting lines (which user will specify in top view) up to where the deformation can be done, for the cylindrical part. So the curvature should smooth with g2-g3 curvature up to this meeting points of optimised stern, bow with the cylindrical left alone part. At the end there will be optimised hull form for lowest Pressure = Resistance in some constrains (limiting lines for the untouched cylindrical part for example) for current LBD and displacement. With possibility to get linesplan.. Later time begining shape can be connected with Tables with emperical or statistical formulas from the rules for specific ship. If somebody wants to join this quest is more than welcome
Here is an example picutre which will show me where do dig, and where to put material for the deformation of the body: …
r ideal surface so they add up where lots of points or lines cluster and create rather unintuitive bulges form a 3D modeler's perspective, here done with Millipede's Geometry Wrapper:
I've learned to do marching tetrahedra or cubes in Python to create the surface as needed from a implicit ( f(x,y,z) = 0 ) mathematical equation based on raw trigonometry but am not yet sure how to define an equation for Rhino user created input items like this or find a way to make marching cubes accept such input let alone one that doesn't treat each geometry item as an electric charge with so little decay.
This would afford an old school "organic" modeling paradigm that T-Splines replaced, but the T-Spines pipe command can't do nearby lines right either, which just makes overlapping junk. Metaballs and lines are not as elegant in that there is a real "dumb clay" aspect to the result that affords little natural structure beyond just smoothing, but still, if it works at all that beats T-Splines, and then I can feed the crude mesh result into Kangaroo MeshMachine to afford surface tension relaxation that will add elegant form to it.
I need both quick hacks and some help on how to deeply approach the mathematics of the required isosurface, now that I can think in Python better than ever.
I got a hint the other day here, about using a different power of fall-off but am not sure how to do the overall task mathematically:
"and just as with point based potentials, one can use different power laws for the distance, function, resulting it different amounts of rounding at the junctions. Below is with a 1/d^3 law for comparision with the above 1/d" - Daniel Piker
http://www.grasshopper3d.com/forum/topics/meshes?commentId=2985220%3AComment%3A1324050
He also included this link about bulging:
http://paulbourke.net/geometry/implicitsurf/
Am I supposed to create an actual implicit equation for my assigned points and lines and use that with marching cubes to surface it? If so, how do I define that equation, at all, and then how to control bulging too?
…
make quad mesh usable with Kangaroo and with limited inputs parameters in order to simulate funicular structures like "Vaulted Willow" or "Pleated Inflation" from Marc Fornes and the Verymany.
Here is a first attempt script.
As inputs there are :
Lines_in, just lines, no duplicates, on XY plane could have Z values, but the algorithm works on a , on XY plane could have Z values, but the algorithm works on a flat representation.
Tolerance is used to glue lines when points are closer than tolerance
Width is the half width of the “roads” going through the network
Angle is the shape of the ends of the roads, 0° means flat end, 180° a totally rounded end
Deviation is the shift generating spikes or enabling to generate pleated geometry
N_u is the number of subdivision along the “roads”, image above with 3 subdivisions on the roads
N_u is the number of subdivision across the “roads”
Zbool if false everything is flat, if true the mesh is in 3d, best with angle = 180° or -180°
For the outputs there is the topology of the network (like Sandbox)
As outputs geometry are put on datatree, each branch represent a path on the road, above 3 paths, which are brep output.
Adding a diagonal there are now 4 paths so 4 branches
The mesh M goes with F which are fixed points, anchor in Kangaroo.
U and V are lines in datatree, there will be used as spring in Kangaroo, U above
This script could be used to draw sort of roads, like in here https://codequotidien.wordpress.com/2013/03/22/hemfunction/
But the primary purpose is to do that.
…
ate 2 lists (nList, fList) as reference, and produce this fnList <List of List of On3dPoints> - when I output the resulting Object, it gives me the Object Type, not the value and therefore unusable. Please see image for the output. In the code below, I think the only lines one would need to evaluate is the bold lines.
Am I getting confused with referencing or something?
Thanks in advance,
kat
Private Sub RunScript(ByVal wPt As List(Of On3dPoint), ByRef NodeList As Object, ByRef FacetList As Object, ByRef FacetNodeList As Object) Dim xlApp As Object Dim i As Integer ' override language Dim oldCI As System.Globalization.CultureInfo = system.Threading.Thread.CurrentThread.CurrentCulture System.Threading.Thread.CurrentThread.CurrentCulture = New System.Globalization.CultureInfo("en-US") 'Grab a running instance of Excel xlApp = System.Runtime.InteropServices.Marshal.GetActiveObject("Excel.Application") Dim wb As Object = xlApp.ActiveWorkbook 'Dim sheet As Object = wb.ActiveSheet Dim xlshNode As Object = wb.Sheets("Nodes") Dim xlshFacet As Object = wb.Sheets("Facet Table") Dim nList As New List(Of On3dPoint) Dim fList As New List(Of On3dPoint) Dim fnList As New List(Of List(Of On3dPoint)) Dim rowBegin As Integer = 3 Dim col_name As Integer = 1 Dim col_1 As Integer = 2 Dim col_2 As Integer = 3 Dim col_3 As Integer = 4 If Not IsNothing(xlshNode) Then nList = readIntoPoints(xlshNode, rowBegin, col_1, col_2, col_3) NodeList = nList End If If Not IsNothing(xlshFacet) Then fList = readIntoPoints(xlshFacet, rowBegin, col_1, col_2, col_3) FacetList = fList End If If Not IsNothing(nList) And Not IsNothing(fList) Then For i = 0 To fList.Count - 1 Dim pt1Name As Double = fList(i).x Dim pt2Name As Double = fList(i).y Dim pt3Name As Double = fList(i).z Print("pt1Name : " + CStr(pt1Name)) Print("pt2Name : " + CStr(pt2Name)) Print("pt3Name : " + CStr(pt3Name)) Dim ptList As New List(Of On3dPoint) Dim ptOne As On3dPoint = nList(CInt(pt1Name) - 1) Dim ptTwo As On3dPoint = nList(CInt(pt2Name) - 1) Dim ptThree As On3dPoint = nList(CInt(pt3Name) - 1)
ptList.Add(ptOne) ptList.Add(ptTwo) ptList.Add(ptThree) Print(" ptList : " + ptList.ToString) fnList.Add(ptList) Next FacetNodeList = fnList End If End Sub…