- Exception occured during processing of command: Grasshopper Plug-In = Grasshopper Font 'Segoe UI' does not support style 'Regular'. Stack trace: at System.Drawing.Font.CreateNativeFont() at System.Drawing.Font.Initialize(FontFamily family, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont) at System.Drawing.Font.Initialize(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet, Boolean gdiVerticalFont) at System.Drawing.Font..ctor(String familyName, Single emSize, FontStyle style, GraphicsUnit unit, Byte gdiCharSet) at Grasshopper.GUI.GH_DocumentEditor.InitializeComponent() in C:\dev\Grasshopper\1.0\root\src\GH_DocumentEditor.Designer.vb:line 329 at Grasshopper.GUI.GH_DocumentEditor..ctor() in C:\dev\Grasshopper\1.0\root\src\GH_DocumentEditor.vb:line 1779 at Grasshopper.Plugin.Commands.ShowGrasshopperEditor(Boolean ShowUponLoad) in C:\dev\Grasshopper\1.0\root\src\GH_GrasshopperCommands.vb:line 22 at Grasshopper.Plugin.Commands.Run_Grasshopper() in C:\dev\Grasshopper\1.0\root\src\GH_GrasshopperCommands.vb:line 94 at GrasshopperPlugin.GrasshopperCommand.RunCommand(IRhinoCommandContext context) at RhDN_TemplateCommand<CRhinoCommand,RMA::Rhino::MRhinoCommand>.RunCommand(RhDN_TemplateCommand<CRhinoCommand\,RMA::Rhino::MRhinoCommand>* , CRhinoCommandContext* context) --------------------------- OK ---------------------------
I am using grasshopper 0.8.0050 and Rhino 4 SR8. I tried uninstalling it, and then installing it again. The same. It is interesting that until yesterday, everything was fine. What could possibly be the cause of a problem?
Thank you.…
s from a .gha directly but i know that they are just renamed .dll files)?
In the mean time i looked at the slow code i was writing and found this other"Search" overload in the rhino common sdk:
public static MeshClash[] Search( Mesh meshA, IEnumerablea href="http://4.rhino3d.com/5/rhinocommon/html/T_Rhino_Geometry_Mesh.htm">Mesh> setB, double distance, int maxEventCount )Because the search generate a compacted list i had to do a bit of acrobatics but the resulting C# component is much faster.private void RunScript(List<Mesh> testVoxel, Mesh testMesh, ref object A) { //do the clash detection on many voxels per mesh at once. Rhino.Geometry.Intersect.MeshClash[] clashresult = Rhino.Geometry.Intersect.MeshClash.Search(testMesh, testVoxel, 0.0001, 256); Print(clashresult.Length.ToString()); //create some temporary storage containers List<Mesh> clashingVoxels = new List<Mesh>(); List<int> results = new List<int>(); //collect all of the voxel meshes that were found to have clashed. foreach (Rhino.Geometry.Intersect.MeshClash clasher in clashresult) { clashingVoxels.Add(clasher.MeshB); } //go though the list of all the voxels. //If a voxel appears in the list of clashing voxels(see above) then output 0. //If not the test if the voxel is inside or outside of the mesh. foreach (Mesh voxel in testVoxel) { if (clashingVoxels.Contains(voxel)) { results.Add(0); } else { VolumeMassProperties voxelMassProp = VolumeMassProperties.Compute(voxel); if (testMesh.IsPointInside(voxelMassProp.Centroid, 0.00001, true)) { results.Add(-1); } else { results.Add(1); } } } A = results; }…
dings,roads and 600meters radius for the terrain:
Which corresponds to what openstreetmap is offering if you search for your location:
https://www.openstreetmap.org/search?query=33.585289%2C%2051.588740#map=17/33.58750/51.59100
Google Earth is a commercial product, and it can have better data than openstreetmap and opentopography. There are people who are payed to create map content at Google Earth, while openstreetmap relies itself on volunteer work.You can also contribute to openstreetmap - you can draw outlines of each building in Abyaneh village, and assign a number of floors to those outlines - this is a simplified way on how to add height information to openstreetmap buildings. I did this for example for my hometown. Once you do this - this data will be recorded and anyone else using either openstreetmap or Gismo will be able to benefit from it.Here is tutorial on how to add number of levels information:https://github.com/stgeorges/gismo/blob/master/resources/tutorials/How%20to%20tag%20OSM%20geometry.pdfThere is no tutorial on how to draw building outlines, but in the upper tutorial you will see a "Line" button starting from step number 4. It really is that simple, just draw four lines to make one building outline.If you are not interested in mapping the Abyaneh village building outlines, then you would have to use some other plugin, like GHowl. It can import Google Earth meshes.…
Added by djordje to Gismo at 10:54am on January 26, 2022
ed when membrane cones are invited to the party (then mesh (via Starling is the best way) the brep and send data to Kangaroo : the easiest thing to do). But patch doesn't trim the inner Loops and ... well initially I thought to find this in SDK and do the job:
Well... I confess that I can't get the gist of the Brep.Trim (as explained in SDK).
Thus go to plan B: having already the closed breps (the "cones") as cutters ... attempt a Boolean difference
but this does that (this looks to me a bit paranoid, but some reason must exist):
What I want is this:
the code that mess things is (open the script inside definition attached):
BTW: where in SDK is that DeBrep thing?
BTW: Delaunay GH syntax is still cryptic to me (but this is not an issue anymore)
I would greatly appreciate any help on that final step (to greatness).
The full working definition soon (v5: with 90% of components replaced by C# stuff).
best, Peter
…
ld work.
For example there's a grid shell and I've got a number of control points (for example 3) that can move up and down.
Depending on the control points I get forms that are structurally good and some that are bad.
In my office we've got a GH-Component, which leads the geometry in structural members and solves the structural forces and so on through an external Software called Sofistik and afterwards gives back to GH some Values, for example maximum bending moments. (Like Karamba)
Now I want to create this optimization component or something like that to minimize e.g. the bending moments in the given geometry.
Let's start with the work of the component.
So when I've three control points that can only move in z-direction.
P1(0,0,Z1), P2(10,0,Z2), P3(5,5,Z3)
They only depend on Z, so everything depends on Z1 to Z3 which have a range between 0 and 10 f.e.
First I want to get some (between 9 and 15) random Particles, one particle consists of this 3 different Z's.
So for example the first particle Part1 is [Z1=10, Z2=5, Z3=7]
and the second particle Part2 is [Z1=7, Z2=1, Z3=9]
and so on.
I created these Start Particles in a Cluster. See attached file.
I also tried this in C#, but thought it is easier in GH.
After I've got the Start Particles I want to give out the first particle and evaluate with its including Z's the target value in GH. Therefore I had to take the first branch and graft this branch (Discussion before)
Afterwards I want to save this Target Value that depends on the first starting Particle. Then I want to give out the second starting Particle to evaluate its target Value and store it. And so on till the last target Value of the last Starting Particle got assigned.
Then I want to assign the particles with its target values. E.g. part1: t=0.9, part2: t=1.8...
Then I want to define neighborhoods or the count of the expected local minima.
These neighborhoods can look like: Each neighborhood has to include not less than 3 particles. And the particles have to be next to each other.
E.g. if there are 12 particles and I want to have a look for 3 local minima, I need 3 or 4 neighborhoods. Then I would take 3 neighborhoods, because the more particles in one neighborhood, the better.
So the Count of the neighborhoods would be N=min{(Count of Part/3)& N_min}
How to define these neighborhoods I don't know at the moment. I think it has to be searched for the distance between the particles. E.g. part1 with (9,9,9) and part2 with (9,9,8) are next to each other but part 3 with(1,1,2) is far away.
Then each StartParticle is set to Partx_localbest.
And in each Neighbourhood the best of these localbeststs is Part_NyBest. (The best ist the one with the smallest target Value)
Loop:
Now I want to create new Particles. These Particles don't change their Z-values randomly. They change their Z-Values depending on Part_NxBest and Part_localBest. Therefore it has to be evaluated a new velocityfactor with v_Partx_new=0,792*v_PartxOld+1,5*random(0,1)*(partx_localbest-partx)+1,5*random(0,1)*(part_NyBest-partx)
The new particles will then be partx_new=partx+v_Partx_new.
The new Particle partx_new will be set to partx and then set in the output.
then there has to be caught the targetValue of part1 afterwards part2 can be put out and its target value caught and so on.
Then it has to be looked for the Partx_localbest through comparing the partx_localbest and its target value with the new part_x and its target value. If the target value of the new partx is smaller than partx_localbest,
then partx_localbest is the new partx.
This has to be done for each partx. Afterwards the same for neighborhoods best (best of all partx_localbest in one neighborhood)
Endloop if velocity gets small.
Output all part_NxBest
Output all targetvalues of the part_NxBests.
So in the Input there have to be:
StartParticles if they are given through the cluster attached.
Device on the target Value like in the attached gh.file from David Rutten I found in the discussions
Count of neighborhoods
And in the output
Output particle for evaluation
Output all part_NxBest
Output all targetvalues of the part_NxBests
Hope didn’t forget anything. And hope it isn’t crushed to badly. Sorry for my bad English by the way ;-)
For more explanation, how the PSO works in other programs. There’s attached a workflow script (is it called like that?) I think for GH it should be a little bit changed like I tried in my explanations.
So if you can help me a in some parts or you have any advices would be great, otherwise thank you nevertheless!!!!
Thankfully there’s no limit for the words in the discussions :-D
Best, Heiko
…
ou mean by 'Activate Direct Rhino Modifying'. Perhaps you could expand?
I like the idea of mixing and matching script and 'direct' modeling. There seems to be a lot of potential platforms for this:
1. Implict History: Is there a way for GH to read the direct modifications (with History activated) and translate this as a component (or cluster of components?)? IH seems to record the UI events and the associated elements. GH would need to write as well as read the IH info, in order to preserve as much flexibility downstream as possible. You mentioned Houdini. H seems to record all 'implicit' or direct mods, done via the CAD mouse-based UI, in its network graph. Maybe, this should be captured in the IH cluster/component mentioned above.
2. RhinoParametrics: RP has done a lot of work to intercept and translate Rhino commands into its version of Implicit History. Seems to be centred on points, which makes sense as so much of the traditional 'dumb' way of inputing CAD info is based on mouse clicks on screen (points) predicated by commands, active locks, workplanes etc.
3. Gumball: Rubberduck's use of the new Gumball tool to capture 'direct' modeling inputs thru the Gumball points to a good source for capturing this kind or input, that is related to the 'macro recorder' approach taken by RP and IH.
4. The new Geom Cache component seems to be able to preserve a lot of info about the baked object. There may be even a way to read tagged info generated both GH baked with the "reference" object, and external to GH (by IH, the gumball or even third party apps like RP).
Would be interesting to know what kind of info is 'preserved'. Houdini seems to have a pretty consistent approach to geometric data, that seems to allow parallel NURBS/subD/mesh versions of the geometry. It also seems to have a coherent heirarchical approach to vertices/edges/loops/faces etc that allows the subelements to be arbitarily grouped for 'direct' modeling, and still be part of a procedural script.
I guess the polygon / mesh approach to geometry lends itself to this. If all the procedural commands/components all understand mesh geometry in either vertex, edge, face format, then combining direct and script modeling is doable in transparent way?
In your example above, the Geo Cache node 'flattens' the object to dumb geometry which is manipulated using Rhino, then used as a Reference object, in the next section of the graph. I guess there is nothing to stop the follow on components reading the precedenting graph for parameters, for additional intelligence?
Does GH 'get' or 'put' parameter data?
…
e able to replicate it on another case study. (Sorry, probably I'm just lacking the basic understanding on how to merge the THERM model results with EP construction)
For what I understand, in the example file we start from the THERM materials and THERM model in order to simulate the thermal bridge. The WALL-NOTHERMALBRIDGE EP construction element is a "standard" EP abstraction of the real wall (with the CELLULOSE EP Material created from THERM CELLULOSE Material) that doesn't take into account the steel material in it, the resulting EP Construction has five material layers against the six materials of the real wall.
In the WALL-THERMALBRIDGE EP construction instead we substitute the "CELLULOSE..." insulation material layer (layer 4) with a "special" material capable to transfer the thermal bridge phenomenon inside the EP construction.
In THERM we simulate the whole 2D model with fixed boundary condition (only needed to calculate R and U value, so I guess we can leave the example values in every country) and we obtain an R-value of the overall lenght of the simulated wall. After importing the THERM result we subtract from it the R values of the other four layers of the WALL-NOTHERMALBRIDGE EP (so that we don't calculate them twice), and then we create a specific new EP Material (ThermalBridgeMat) in which the conductivity comes from this operation and then we rebuild another EP construction material in which the layer 4 is the new ThermalBridgeMat. Is it ok?
Now the question is, are there any guidelines on hints to understand how to break up for example a "linear" thermal bridge problem to better evaluate it? I Post an image with a basic example:
Let's say I have a two-storey house (ground floor and first floor) and the floor of the first floor creates a thermal bridge in the wall (red line). Probably in Energy+ I’ll go for a two zones modelling. Now in order to take into account the thermal bridge how am I supposed create the THERM file? I could (First hypothesis) leave the ground floor wall as it is, and simulate the slab and the first floor wall together (cyan box), and then “spread” the new value all over the first floor wall, or I could simulate the ground floor wall, the first floor and the slab and use an unique value for the two walls, which is better? Is there any documentation to understand if there is a basic workflow in order to tackle the issue?
Thank you very much and sorry for the long post!!…
mainly grasshopper. (If it were just Rhino it perhaps would have been easier for me). I've been working on it for a while now and I unfortunately am a bit stuck.
Below are some of my concerns:
1) I know the theory of what I'm suppose to do which is to have the rectangular base and scale it then array it up. However I noticed that the thickness of the each lath and support varies. There are 25 laths in all and from the structure diagram I have gathered that there are basically 4 groups of the same thickness from the base going up its the first 9, then 7, then 5 and then the top 3. I just can't seem to figure out how to vary the thickness. I would assume the attached lath and support definition diagrams would help but unfortunately I don't know how to read it. I've tried some formulas which didn't exactly work but I still included them in the file.
2) I also need to figure out how to create the hole in the structure which is the entrance. I know in Rhino I could just Boolean it out but is there a way to do it in grasshopper?
3) I also need helping figuring out the definition for putting the vertical supports in between each row. The diagram says something fancy about "Testing acceptable constraints in flexion and in shear, we find an acceptable eccentricity that varies with each row." Ok maybe it wasn't so fancy but I have no clue how to do that with grasshopper!
4) My lecturer wants a Structure Simulation which I'm going to assume is what number 3 is all about?
I've attached my progress so far and would appreciate any help possible. I'd prefer if anyone could guide me using basic things (without any fancy plug-ins unless it's absolutely necessary).
However, any help is appreciated! Thank you so much in advance.
Cheers!
Jo
…
dea is to distinguish the direction of the loft control curves - it's either clockwise or counterclockwise. therefore i found geometrical centers of the control curves and two consecutive points on the curves. then i draw lines from thecenter to thefirst curve point and from the first to the second curve point - let's call them L shapes. the shapes show the direction of the curve's rotation. then i aligned all the L shapes by their first segments and check whetherthe second segments point to the left or to the right. this makes a pattern for flipping the wrong control curves.
the solution in steps, maybe might help someone in the future :
find a geometrical center of each closed control curve: bounding box -> diagonal axis -> middle point of the axis
evaluate each control curve at two consecutive points: -> eval at domain parameter 0 and 0.5
draw a line from the center to the first point and from the first point to the second one (an L shape)
move the L shapes to the 0,0,0 (probably not neccessary)
rotate the L shapes so that the first segments align: measure the angle of the first segment and an X axis (use XY world plane, otherwise you won't measure angles above 180 degrees!). the shapes are now aligned but some are pointing to the left, others to the right. this distinguishes flipped loft control curves
decompose the L shapes into three control points
decompose the first and the last points of each L shape into their X Y Z components
compare Y positions of the first and the last points ( larger or smaller math component)
use the pattern to flip the wrong loft control curves
that's it
my grasshopper definition is very untidy, so i won't attach it, but this is pretty much the idea.
…
Added by Jan Pernecky at 10:41pm on August 22, 2011