till quite rough.
I went through your attached log but it seems to be a successful run, perhaps the error log wasn't attached. In any case, I believe we have identified this issue. The goal of the update fvSchemes component was to apply schemes to finalized meshes in an automatic way. While this is useful for new users it is also a dangerous thing to do in CFD studies.
The component works by relating mesh quality to the mesh non-orthogonality, which the checkMesh component reports. While non-orthogonality is one of the important criteria of mesh quality it does present difficulties on some kind of meshes, especially like the simple cases that BF has been meshing so far.
The example case of simple box buildings in a wind tunnel above for instance will appear as a good quality case for even the lowest of cell-count meshes, simply because it is an orthogonal geometry. That means that checkMesh will probably report low values (imagine an empty blockMesh of 10m blocks has a non-orthogonality of 0) which in turn means that higher order schemes might be paired with actually low quality meshes. This I believe is causing problems.
I posted a possible solution to this here https://github.com/mostaphaRoudsari/Butterfly/issues/57. The idea is that Buttefly provides additional options to the users, enabling them to choose between first-order (faster, more robust, but lower quality schemes) and second-order (slower, less robust, but more accurate) schemes depending on mesh quality, stage of assessment, etc. In cases like the above mesh quality a first-order scheme might provide a better option. To test this I am attaching an fvSchemes file you can use by replacing yours in the /system folder of the case.
As a note however, I would like to stress there is so much that a tool like Butterfly can provide in this area. Meshing is a quite complicated and demanding part of the process, involving a lot of trial and error. Sometimes the problem is just the mesh and not the solution options (GIGO stands true in CFD as well). It does however get easier with experience. The safe advice is the simplest one: when changing solution options doesn't help, refine mesh and run again.
Kind regards,
Theodore.…
ino Mc Neel, autore di "Architettura Parametrica - Introduzione a Grasshopper", il primo manuale su Grasshopper. I corsi PLUG IT nascono dalla volontà di promuovere le nuove tecnologie digitali di supporto alla progettazione e condividere il know-how maturato attraverso ricerca, collaborazione con i più importanti studi di architettura e pubblicazioni internazionali. Verranno introdotte le nozioni base di Grasshopper approfondendo le metodologie della progettazione parametrica e le tecniche di modellazione algoritmica per la generazione di forme complesse. Il corso è rivolto a studenti e professionisti con esperienza minima nella modellazione 3D e si articolerà in lezioni teoriche ed esercitazioni. Argomenti trattati: - Introduzione alla progettazione parametrica: teoria, esempi, casi studio - Grasshopper: concetti base, logica algoritmica, interfaccia grafica - Nozioni fondamentali: componenti, connessioni, data flow - Funzioni matematiche e logiche, serie, gestione dei dati - Analisi e definizione di curve e superfici - Definizione di griglie e pattern complessi - Trasformazioni geometriche, paneling - Attrattori, image sampler - Data tree: gestione di dati complessi - Digital fabrication: teoria ed esempi - Nesting: scomposizione di oggetti tridimensionali in sezioni piane per macchine CNC Verrà rilasciato un attestato finale. INFO E PRENOTAZIONI: http://www.arturotedeschi.com/wordpress/?p=2888…
rasshopper (only compatible with IRC5 controllers). I made some tests with kinect and phones and tablets and it works (so if you have a good position for your kinect you can already know when a user is too close to the robot and stop the execution or slow it), but due to controller limitations I am now working on a different way of sending and managing data to the robot to minimise the latency of the system.
Galapagos will not allow you to switch between configurations and toolpaths, since configurations are computed by the IK solver and managed by several informations in the code, that can only be overrided or changed depending on the interpolation you use (MoveJ/MoveL/MoveAbsJ etc.). And once again, some configurations are not reachable depending on the rotation domains of certain joints (4th one for example) or also because linear interpolations cannot work for targets necessiting more than 90° of rotation. HAL computes by default the most "accessible" configurations in order to minimize 4th axis flip (which is a pain), and the next update will have a fix to allow to count the laps you do with the joints allowing more than 360° of rotation in order to prevent to reach the max values (otherwise the robot is locked and the application is stopped), there is a little bug on the 6th axis on the current version. IMHO these questions are much more important to solve for the design of your application than the approximaton of the workspace (it is very easy to measure the max radius of rotation, and singularities can always been reached using moveAbsJ).
By the way, all those things are not exactly trivial to solve (some are with the new verson of HAL, but not all of them), so depending on how far you need to go, I hope you don't have a deadline soon...…
eople use different methods and components was the way that I learnt most of what I know (and it might solve parts of other's problems)! It's always apparent from forum posts that everything is work in progress.
The "divide curve" components gives you tangents (T) to the curve at the points you've made. You want the perpendicular (right angle) to the curve, so need to rotate this vector around point on the curve (P) by 90 degrees or Pi/2 Radians .
It seems you're finding your lengths as required, but then passing them through a unit Y vector - so they are only ever going to move in the Y direction. You need to use an "Amplitude" component with the perpendicular vectors from above and the lengths you've calculated.
Before sweeping you'll need to properly align the rectangles such that they are also perpendicular to the curve.
…
Added by Joe Allberry at 10:33am on August 4, 2015
se the final panels that you want to rotate, or is this file just an example? Do you also have panels in other facades (in other planes)? Is the positioning of the panels random? Is it completely random, or are there some rules? Are the dimensions of the panels fixed or can they change, and how?
2. If I understand correctly, you want to have 2 different rotations, right?
2a. The first rotation is around the edge of the panel that lies on the facade and you want it to be between 0 and 90 degrees, right? How is the angle for each panel defined? Based on the sun's beams direction and, if yes, how exactly?
2b. The second rotation is around the X axis, on the right point of each panel (which is fixed on the facade) and you want the angle of rotation to be specified based on an attractor point, right? Is there a minimum and maximum angle or do the panels always align with the attractor point?
For a better understanding of these questions, see the attached definition (open it together with your 3dm file). Here the first rotation is the same for all panels and is controlled by a slider (until you explain how you want to define the angles). The second rotation doesn't have any constrains, so the panels always "look" at the attractor. But, as you can expect, strange thing happen this way: Panels hit into each other, rotate until their solar side is looking downwards, etc.
Still, I believe, if you answer the above questions we will get somewhere.
Cheers,
Nikos…
Added by nikos tzar at 5:42am on September 24, 2015
s. Now ... I want from you to do the proper combo of columns for the job: I want a dynamic solution worth the name not some stupid columns going vertically. Use the tree regions in order to avoid distorting the glass modular floor. Say like this:
The truss must engulf the trees. Killing a tree is a crime (even touching it should be a crime). How to do it? Same for the rotating fins. Assembling the truss must take provision of the branches (if they are fragile).
Plaza must being divided as follows: a perimeter ring (critical) separates the glass floor panels from the ugly buildings AND the tree regions. Fine grey pebbles are OK for that. Then the panels deploy in the remaining region. Panels must be all the same: 90*90cm. Solve this "arrangement" with GH. Measure the drainage slopes and calculate the Buzon pedestals with GH (how far we need to adjust them: critical for ordering).
Cover the existing pavement with a 5cm thick layer of black pebbles (bonus: hide the cables for the led arrays and the rings [no WiFi required]). Create variations of these arrays in GH.
Create something for servicing the whole thing.
Greenhouse effect can raise the temperature below the glass flooring (BTW: panels are at 1-2 cm distance [Buson spacers] each other [rain + escaping gases]).
…
ese seem to have one issue which I need to be addressed for my application.
The grids which are produced using the methods on here follow the surface and tend to be equally spaced in two dimensions. What I need is to create a grid which keeps the distance between the path lines equal whether the angle between the lines is 90 of 45 degrees. At the moment the grids act a bit like contours on an OS map but they bunch up in the lower parts of the curves and spread out in higher parts.
Below is a picture of what I produce via grasshopper so far but using a grid formula from elsewhere on the forums along with Rhino to connect up the paths. In this example they seem equally spaced but they differ by anywhere between 0.755mm and 0.785mm which if scaled up would be a problem.
Any Ideas how to help me split the surface up equally in all dimensions, meaning that if I were to sweep the tool path with a circle radius of half the distance between the lines/rails, there would be no gap between the beads/filaments?
I appreciate any help or advice hugely.
Philip
…
st between those two applications. But as soon as every frame is re-calculated I noticed that intersection function is very slow. It is actually so slow, that maximum number of polygons to play with is only 10 or less.
Could you help me to find a faster solution for my script?
calculation of intersection lines;
//////////////////////////////////////////////////////////////////////////////////////////
import ghpythonlib.components as ghcompimport rhinoscriptsyntax as rsdef ctr(crv): pts = ghcomp.Explode(crv)[1] pts = ghcomp.CullDuplicates(pts,0.001)[0] return ghcomp.Average(pts)pts = []lines = []ctr_c1 = ctr(C1)for crv in C2: if ctr(crv) != ctr_c1: int = ghcomp.CurveXCurve(C1, crv)[0] if int: [pts.append(x) for x in int] lines.append(rs.AddLine(int[0],int[1]))
/////////////////////////////////////////////////////////////////////////////////////////////
The overall description of the script:
a)Processing+ghowl is used for moving objects and physics
b)python script (slowest part) calculates intersection lines
c)intersected parts of polygons are rotated in 90 degrees.
I have attached grasshopper and processing files. (processing is not necessary to test the script)
Thank you in advance,
Pereas.
…
width of the other letter
find the intersecting shape with Solid Intersection
re-orient final shape
This process sometimes breaks when a letter has one or more "holes" in it (eg: B, O, R). When this happens, the Solid Intersection component experiences an error and says "Boolean intersection set is empty". I don't know what that means.
I have tried the quick-fixes of flattening and grafting to no avail.
Could somebody shed some light on this issue?
I have internalized the letters into the attached GH def, but am also attaching the illustrator file that I'm using.…
e any affect, but that's way too slow if 90% of the GH program is initialization and creation of source geometry to then simply alter a bit or array here and there. When I use Python directly to change output values that I plug into former slider inputs, again no new solution is triggered at all so I'd have to recalculate the entire Grasshopper program which is simply not how Grasshopper normally works. How do I actually emulate a human changing a slider value one slider at a time in a way that makes Grasshopper behave normally so that only downstream flow is affected in an efficient way?
An related example would be if you have several separate programs in a Grasshopper page and you wanted to only change one of them without triggering full recalculation of them all.
At this point it's almost like a Windows mouse scripting utility is needed but if I need to do combinatorial combinations of all possible slider values, that seems quite thorny too unless I set up a pre-arranged array of values that could then simply be incremented "manually" followed by a right click to bake and then typing commands into Rhino to save to a file. UGH. That would be quite difficult to pull off since I need to control file names, but it's what I seem to need.
I'm using Python since it avoids thorny Grasshopper schemes and it allows me to access Rhino to save baked objects files.…