terations will be explored through evolutionary system optimization approaches. The Program focuses on the creation of a unique screen design using algorithmic simulation of natural phenomenon to generate a sustainable and optimized design. The use of rapid prototyping tools will be integrated in order to move from conception to materialistic physical realization. Lecturer: Dr. Christian Bauriedel, Assistant Professor for Computation in Architectural Design Fees: 800 LE (subsidies by GIZ for unemployed youth and students) Normal fees: 3500 LE Apply online: http://bit.ly/1106QnD Internship opportunities: This training is designed to facilitate the interaction between unemployed youth / students and private sector companies. There will be two kinds of participants: On the one hand, unemployed youth and students and on the other hand company employees from the relevant sector. The companies are strongly encouraged to offer internship opportunities for the other participants after the training. Transportation to AUC Cairo New Campus will be provided.
For full schedule please visit the event page.
https://www.facebook.com/events/239919859479632/…
don't have to do it manually. In this case the bitmaps were used on the alpha channel. The code is for the old sdk. Sorry, it's a bit of a mess. So each surface (b input) was in an individual path containing one item and the colors (x input) are also separated in paths that correspond to each surface, but in each path there's a list of items that correspond to the pixels of that surface. The z input is a counter (list of numbers) also separated into paths used to name the bitmap files.
Dim num As Integer = y
Dim bm As New Bitmap(num, num)
For i As Integer = 0 To num - 1
For j As Integer = 0 To num - 1
bm.SetPixel(i, j, x(i * num + (num - 1 - j)))
Next
Next
' Save the result as a JPEG file.
bm.Save("C:\Users\v\Documents\amid\cubierta\mapas\transp" & z & ".jpg")
Dim obj As IRhinoSurfaceObject
Dim mat As New OnMaterial
Dim texture As New OnTexture
texture.m_filename = "C:\Users\v\Documents\amid\cubierta\mapas\transp" & z & ".jpg"
texture.m_bApply_uvw = True
' texture.m_transparent_color = New OnColor(0, 0, 0)
texture.m_type = RMA.OpenNURBS.IOnTexture.TYPE.transparency_texture
texture.m_mode = RMA.OpenNURBS.IOnTexture.MODE.modulate_texture
'mat.m_textures.Append(texture)
mat.AddTexture(texture)
mat.m_diffuse = New OnColor(204, 204, 204)
'doc.DeleteObject(New MRhinoObjRef(obj), True, True)
obj = doc.AddSurfaceObject(b)
Dim att As New MRhinoObjectAttributes(obj.Attributes())
att.setmaterialsource(1)
att.m_material_index = doc.m_material_table.AddMaterial(mat)
att.m_rendering_attributes.Default
Dim objref As New MRhinoObjRef(obj.Attributes.m_uuid)
doc.ModifyObjectAttributes(objref, att)
' app.RunScript("_save")
…
ged name as newer versions of GH have been released. Discussed in detail in the link above is the Create Facility which allows you to type the name of a component with out having to locate it on the tool bar, this returns the most likely candidates. eg Cull. I've given the example of both name and icon so that you can see the differences.
Cull Pattern will remove items from a a list based on a True/False pattern
Area will return both the Area and the Centroid of a surface
Surface CP(Closest Point) willl find the location on a surface of a Point in 3D space. It will return the 2D (U,V) co-ordinate of the Surface space
Amplitude allows you to set the length of a vector. Useful when moving objects etc
Project (in this case project to a BRep) will intersect a Curve with a BRep from a given direction
Merge - simply merges two lists (however Path Structure plays an important role with the results eg {0;0} will be merged with {0;0} but not with {0;1} or {0;0;0} etc
Solid Difference will remove the intersection of one solid object from another.
...................
hope this helps …
d slow so it only really makes sense if you need to repeatedly perform these sorts of comparisons on the same list of lines.
If you really are dealing with the exact same lines, then you only have to compare From and To points to each other:
if (L0.From == L1.From && L0.To == L1.To)
//lines are the same.
If however the lines are only equal within a certain accuracy then you'll need to compare both sides and include a tolerance check:
if (L0.From.DistanceTo(L1.From) < tolerance)
{
// lines share start-points, they must now match end-points as well.
if (L1.To.DistanceTo(L1.To) < tolerance)
// lines are identical within tolerance.
}
else if (L0.From.DistanceTo(L1.To) < tolerance)
{
// lines share start-point and end-point, they must match at the other end as well.
if (L0.To.DistanceTo(L1.From) < tolerance)
// lines are identical within tolerance.
}
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
Added by David Rutten at 2:54am on November 27, 2012
h", "yada yada", "cat", "sub") End Sub Public Overrides ReadOnly Property ComponentGuid As System.Guid Get Return Guid.NewGuid End Get End Property Protected Overrides Sub RegisterInputParams(pManager As Kernel.GH_Component.GH_InputParamManager) pManager.AddBooleanParameter("Boolean", "B", "Turn the component on or off", GH_ParamAccess.item) pManager.AddTextParameter("String", "N", "New Parameters", GH_ParamAccess.item) pManager.AddTextParameter("String", "I", "Input file path", GH_ParamAccess.item) pManager.AddTextParameter("String", "L", "Local copy path", GH_ParamAccess.item) pManager.AddTextParameter("String", "U", "User Name", GH_ParamAccess.item) pManager(2).Optional = True 'this doesn't work pManager(3).Optional = True End Sub Protected Overrides Sub RegisterOutputParams(pManager As Kernel.GH_Component.GH_OutputParamManager)
End Sub Protected Overrides Sub SolveInstance(DA As Kernel.IGH_DataAccess)
End SubEnd Class
Could it perhaps be that the component you're writing is not the same one that GH is loading? It's the only idea I have left at this point.
--
David Rutten
david@mcneel.com
Poprad, Slovakia…
can be found in "C:\Documents and Settings\<user name>\Application Data\McNeel\Rhinoceros\5.0\Plug-ins\IronPython\settings\lib\rhinoscript" folder on WinXP. So could have used yours too.
RhinoCommon is a SDK and basically the power behind grasshopper and rhinoscriptsyntax functions. In fact each time you call a rhinoscriptsyntax, a RhinoCommon code gets executed.
And, yes:
import Rhino - imports RhinoCommon
import utility - enables importing utility.coercebrep() (or coerce3dpoint() coercecurve() ... so on)
Item access means an input is consisted of a single item.List access means an input is a list.Tree access means an input is consisted of a tree with data on different branches.rs.BooleanDifference requires both of it's arguments to be lists, so it would be logical to set the inputs b1 and b2 as lists. But there is one problem, that Mitch pointed out to me: it seems that python components (like grasshopper components) are "intelligent", and can distinguish whether you are inputting item, list, or tree. Setting your input as list, might disable this ability and leave you with only possible type of input (list).So honestly I do not know why in this case, setting the inputs to Lists worked - due to mentioned "intelligence" of python component, even an Item type would work.This might be a question for an experienced user, I am just a beginner.…
rid.
just to keep it simple here is an example of what I want by using 1 curve and planar grid. so let say I have this original rectangular grid =
and then I have this curve, notice that the curve does not intersect with any grid point =
what I want is for GH to slide every UV (and possible add more UV to add more detail) so I can get this result =
so that is the result that I want. :) by having various UV interval to compensate the curve
hope you get what I mean :)))
the fact that I posted a jagged grid (on my first post) means I couldn't solve the problem that is why I am asking for help T^T
Cheers, Runnie…
random points. UV coordinates of a sphere are kind of weird since they go from 0 to U in one direction but -v/2 to v/2 in the other?!
A standard 3D Voronoi of the surface points was used to create intersection curves with the rounded surface. This doubles the work of the slow marching cubes part, since each cell outline edge is duplicate of the adjacent face one, but so be it.
The layering effect and sticky flow would require more sophistication.
The Cocoon plugin is here:
http://www.bespokegeometry.com/2015/07/22/cocoon/
With a whopping 600 points, it takes some time, about a minute:
Or 1200 points:
The little bumps here and there are from using a fast crude marching cubes sample size of 0.02 instead of maybe half that which would take much longer.…
Added by Nik Willmore at 7:59am on August 17, 2015
... er ... AGAIN these @$@% fins [also baked in U and V] - wonder why I insist on them?
Why ? well ... man ... here's Greece > we can promise auto rotating fins (WOW *2 = rings on the floor + fins on the sky) and never make them > the Greek way, that is. But we can take the money (+ VAT) for making them > the Greek way.
If we make them (crisis of honesty: bad thing) there's people in Greece who can do it - barely believable but trust the Lord - by extruding poly carbonate (kinda like making custom alu extrusions) at a fraction of the planar glazing thingy cost. Panos T (excellent windsurfer, mind) can rotate them rather easily. Lord can do other "minor" things as well and supervise the construction with his known way (Merciless Perfectionism).
What if rains? Well ... Greeks do the ouzo option in this occasion (thus why bother?)
Added the happy bunny thingy on the demo surface to encourage you towards the girl + Monaco stuff.
…
r did you type paraFoam to call the OF integrated paraview, or did you maybe type paraFoam -builtin? The last one was a workaround for when paraview installation has issues. I think I remember an old bug where the version not connected to OF would give out this error. I will check it as soon as I can to make sure it's not smth in our case setup.
Concerning the boxes on the display that is the refinement of your mesh. The fastest way to get a more refined image is to go back to your blockMesh and change the number of cells in x and y directions (and thus the size of these squares) and go through the whole process of meshing and solving again. Bare in mind doubling the cell number makes a 4 times bigger mesh, which would also delay the simulation a bit (but really for such a small model it would still be fairly fast).
Another thing you can do in coarse or even medium quality meshes is to display the point values and not the cell values. You can do that in the dropdown menu where you select which fluid parameter to display (U, p, k, epsilon, etc.). In your screenshot I can see the cell value is currently selected. By selecting point values Parafoam should interpolate the display automatically and provide a more 'refined' image (but not a more accurate result). Should make a small difference in such a coarse mesh but this works quite nicely in medium to better meshes.
Kind regards,
Theodore.…