ake this example. However, I still have minor bugs.
Whenever I save and reopen the file, I could not unclick the drop down menu to fold the additional input. See pictures below.
1. When I open the gh file.
2. The input is not folded.
3. When I click again, additional input is now duplicated with itself.
Does anyone know how to fix this situation? Any comment will be appreciated.
I attach the C# file below. Thanks! …
as one element.
Thank you
Comment by karamba on October 7, 2014 at 11:27pm
Hello Patricio, divide the beams in such a way that each boundary vertex of the shell becomes an endpoint of a beam segment.
Best, Clemens
Comment by Llordella Patricio on October 8, 2014 at 8:30amDelete Comment
Hi Clemens,
I did what you suggested but now assemble element doesn´t work properly. Could you please tell me how to fix it? Thanks in advance, Patricio
8-10-14losa%20cadena.gh
Comment by karamba on October 8, 2014 at 11:59am
Hi Patricio, if you flatten the 'Elem'-input at the 'Assemble'-component the definition works. The triangular shell elements have linear displacement interpolations whereas the beam deflections are exact. In order to get correct results you should refine the shell mesh.
Best, Clemens
Comment by Llordella Patricio on October 9, 2014 at 8:35amDelete Comment
Hello, succeeds in creating the mesh to the slab, and built the beam segment, but when I see the deformations are not expected because the beam is deformed as the slab.
Thanks for the help
PS: maybe I'm using the program for a type of structure that is not the most appropriate, as I saw in the examples of other structures. But this type of structure is that students taught
best regards
Patricio
9-10-14%20Example%201.gh
Comment by karamba on October 9, 2014 at 10:46am
You could use the 'Mesh Edges'-component to retrieve the naked edges and turn them into beams - see attached file:91014Example1_cp.gh
Best regards,
Clemens
Comment by Llordella Patricio on October 15, 2014 at 3:41pmDelete Comment
Dear clemens
I was doing a rough estimate of the deformation, and I can not achieve the same result with Karamba. When I make a rough estimate of the result with Karamba beams and mine are very similar, I think the problem is when I connect the shell, because there are no similar results.
I sent the GH file, and an image of the calculation
The structure is concrete The result I get is 0.58cm
thank youPatricio
15-10-14%20Example.gh
Comment by karamba yesterday
Dear Patricio,
try to increase the number of shell elements. As mentioned in the manual they are linear elements. A mesh that is too coarse leads to a response which is stiffer than the real structure.
Best,
Clemens
…
via MIDI controllers.
my idea is to link PureData to GH via UDP. why pure data? cause' i can relate data like GH to generate numeric relations (and link it to audio generation)
so far i got PD and Processing to talk, but i can't get to grasshopper.
i use this definitions to make pd and processing to talk http://ubaa.net/shared/processing/udp/ and this GHX to get the data to GH http://www.grasshopper3d.com/forum/attachment/download?id=2985220%3...
i got this data from this post but the GH definition doesn't work for me. i have tried LAN definitions and "the engine" as well but they both freeze, even if i send data thru processing or PD.
i have a lot of questions at this time
1.- why processing tells me that i am getting the data from diferent ports, while i'm using 6000?
2.- why in the UDP definition i get no data out, even if it should say something like "waiting fordata/port/etc.." that's defined in the C# capsule
3.- is there a direct way to get midi data (key and CC) to GH
i also tried to use firefly to get the data via COM port. i know you can do this trick in processing but i just don't know how.
well. if anyone could help me i would share the results here (since it's a magister, results shoud be very interesting)
UDP has allways been a unsolved issue on other posts. maybe we could work it out ;)
Thanks…
Added by jota aldunce at 8:43am on September 28, 2010
s my code, so I decided to write a new simple component refreshing all time at 300 ms interval and the problem came up again. The code provoking the display exceptions and images with the erros are listed below.
----------------------------------------------------------------------------------------------
using System;using System.Drawing;using Grasshopper.Kernel;using FirstComp.Properties;using System.Timers;namespace FirstComp{ public class FirstCompGH : GH_Component { private Timer myTimer = new Timer(300); //3 veces por segundo private Random rand = new Random(DateTime.Now.Millisecond); public FirstCompGH() : base("Nombre", "Abreviado", "Descripcion", "Categoría", "SubCat") { myTimer.Elapsed += new ElapsedEventHandler(MainLoop); myTimer.Start(); } protected override void RegisterInputParams(GH_Component.GH_InputParamManager pManager) { pManager.Register_DoubleParam("Op A", "A", "Primer parámetro de la operación",0.0); pManager.Register_DoubleParam("Op B", "B", "Segundo parámetro de la operación",0.0); } protected override void RegisterOutputParams(GH_Component.GH_OutputParamManager pManager) { pManager.Register_DoubleParam("Suma", "S", "Resultado de la suma"); pManager.Register_DoubleParam("Resta", "R", "Resultado de la resta"); pManager.Register_DoubleParam("Mult", "M", "Resultado de la multiplicación"); pManager.Register_DoubleParam("Div", "D", "Resultado de la división"); } protected override void SolveInstance(IGH_DataAccess DA) { // Variables para contener los datos de entrada // Le podemos asignar algunos valores iniciales. double opA = double.NaN, opB = double.NaN; // El objeto DA recupera los datos de la entrada. // Si no hay datos de entrada abortamos. if (!DA.GetData(0, ref opA)) { return; } if (!DA.GetData(1, ref opB)) { return; } opA += rand.Next(1,10); opB += rand.Next(1,10); // Ahora realizamos las operaciones matemáticas DA.SetData(0, (opA + opB)); DA.SetData(1, (opA - opB)); DA.SetData(2, (opA * opB)); if (opB != 0) //Rhino.RhinoMath.ZeroTolerance DA.SetData(3, (opA/opB)); else { AddRuntimeMessage(GH_RuntimeMessageLevel.Error, "Error de división por cero"); return; } } public override Guid ComponentGuid { get { return new Guid("44BEA3FE-7CB8-42fe-AEC9-BE5F6EE424E8");} } protected void MainLoop(object source, ElapsedEventArgs e) { this.ExpireSolution(true); } protected override Bitmap Internal_Icon_24x24 { get { return Resources.icono; } } }}
-------------------------------------------------------------------------------------------------
Images showing errors.
I can't figure out what is causing these errors.
Best Regards
Ernesto
…
ntrol points in Rhino.
Also, I forgot to mention in part 1 that when doing the directional subdivision, depending on how you drew your input mesh, there is a chance that it gets divided in the wrong direction, and you end up with something like this:
Which is not what we want.
The simple way to fix this is with the MeshTurn component, which rotates the direction of each face by one side:
Now we can use physical relaxation to smooth our mesh. In this example I show a simple tensile relaxation, so it will be negatively curved, but the same principles can be applied to all sorts of surfaces by using different combinations of forces.
The definition for the relaxation is attached below.
There are 3 main groups of forces used:
Planarization
For the mesh to be able to unroll properly into flat strips, we want each of the thin rectangles to be flat.
Springs
I already showed how the WarpWeft splitting can be used to assign different strengths to control the shape of a mesh here. Now because of the uneven subdivision we have very different numbers of edges in each direction, so the strengths have to account for this. Depending on the level of subdivision used and the shape you want to achieve, you may need to set the Weft stiffness to be 10 to 100 times that of the Warp.
Edge Smoothing
Because our subdivided mesh has square ends, we might not want to simply anchor the boundary, so I've shown how we can force them to become more circular, while still staying in place. Each boundary curve gets pulled onto its best fit plane, while also applying bending to round it out, and springs to keep it from shrinking.
(This part could also be achieved in other ways, such as pulling the boundary vertices to a curve)
When we run this relaxation, the shape should smooth out to something like this:
Play with the tensions and boundaries until you are happy with the result, wait for it to stop moving, then stop the timer. (Remember it is very important to always stop the timer once the relaxation has finished, before continuing working with the output, as otherwise Grasshopper becomes very slow, because Kangaroo is constantly resolving, even if no movement is visible).
If you want to try other shapes than tensile surfaces, you could also use forces such as bending, laplacian smoothing, or pulling to some target surface to control the form.
Next - Part 3 splitting and unrolling
…
ooking for an efficient way to perform glazing of complex shapes.
I've only followed the Energy modelling workshops so far so i may have missed some essential components or workflows to achieve my needs. But i've made an attached definition with all my current attempts to get a proper HBzone with the numerous windows faces i will always have to deal with in this project.
I first thought that i was not using the HBObjWGZ correctly, then after some readings it was maybe an upgrading issue, then effectively i had my Therm 7.5 that needed to be reinstaled, but then ... I must be missing an essential HB tricks or workflow i guess ...
So I divided my attempt in two series :
- The Serie 1 : is a simplier version of the project step i'm working on but i'd be glad to achieve it first !
- The Serie 2 : is the real final direction of the project, which consist in sorting/dispatch faces to windowon one side and to an other material on the other, according to the winter sun and a pourcentage param.
Despite it is more complicated than the Serie one, it seems seems to create the same diversity of issues.
Until now, with the 5 different combinations of Serie 1, and the 3 of Serie 2, with and without using the different Glazing/window components, here are the logs i got from both HBZone component or OpenStudio component:
From OpenStudio - "1. The simulation has not run correctly because of this severe error: ** Severe ** BuildingSurface:Detailed="00073E23257843B6A948", invalid Construction Name="ETFE" - has Window materials.">> Has to deal with the way i'm trying to assign too early a customized EPConstruction material ? Done it wrong ? I tried to reload it in the library but doesn't change anything...
From OpenStudio - "1. The simulation has not run correctly because of this severe error: ** Severe ** BuildingSurface:Detailed="000579CD749E46DFA5EA", invalid Construction Name="EXTERIOR WINDOW" - has Window materials.">> Is it an issue in the way i define my surfs both as "WINDOW" (5) for srfType and Outdoors on the same component ?
From Create HBZone -"1. Solution exception:'EPZone' object has no attribute 'shdCntrlZoneInstructs'"
>> Happens when i try to introduce my ETFE EpMaterial after creating my first HBZone, with a Set EP Zone Construction, so this material seems to be not working either before and after trying to create an HB Zone
From Create HBZone- "1. Solution exception: 73df51a3b2144b1e858b has been moved, scaled or rotated."If you need to move or rotate a Honeybee object you should use Honeybee move, rotate or mirror components. You can find them under 12|WIP tab.
>> >> wich seems to exist in some on other thread Here and was a coding bug supposed to be fixed.
And last but not least ...
From OpenStudio - "1. The simulation has not run correctly because of this severe error: ** Severe ** checkSubSurfAzTiltNorm: Outward facing angle of subsurface differs more than 90.0 degrees from base surface.2. The simulation has failed because of this fatal error: ** Fatal ** GetSurfaceData: Errors discovered, program terminates" .
I'm attaching the file with each attempt in this post. The definitions are disabled and the log already copied separatly so there is no need to compute each of them to see what's wrong.
If someone from the beginner to one of the Kings of HoneyBee has any relevant answer/solution to this attempt with complex geometry Issue it will be really nice for me so i could to move forward !!
Thanks in advance guys and have a great day !
…
looked at autodesk simulation cfd 2015 and was optimistic because it had an export plugin from revit, which i use anyway for material takeoffs and etc, but found that it did not take solar radiation into account. This was a downer because I have heard that solar radiation could effect indoor airflow - convection - as much as 50 percent at a time.
Then I searched again and found that Hyperworks, a software by altair technology can be coupled with a radiation software. So I went through the trouble of obtaining an educational license of Hyperworks. However, though some email exchange I have found that the coupling is a one-way. The radiation analysis software was used, I think, for understanding the solar loading for a SOM project called church of light.
The support guy said : "Unfortunately our coupling with Hyperworks is really a one way coupling. We can accept H coefficients from their software in RadTherm, but they will not read in our wall temps. That said, it still can be a useful coupling in the sense that you can run the analysis in Hyperworks, send H coefficients to RadTherm, and run the analysis to better understand radiation and conduction. Most importantly, that analysis can be done for longer transient analysis, but will require much less compute time and resources."
Not only did I not understand what he means by the H coefficients, my wanting to get a CFD understanding coupled with solar radiation was again, unsatisfied. In the mean while I had to finish a presentation so I haven't had the time to try to get some result on the natural ventilation. I would probably need to look into how their solutions work before I can understand if their software would "do the job"
Thank you for letting me know about your work on this. I downloaded the Honeybee_Set EP Natural Ventilation component and made sure that it is allowed, but it does not show up in grasshopper.
You pointed out that "The component (and the corresponding equation) is mostly meant for cases where you have zones with windows that are NOT connected by an air wall (or a larger airflow network)." I wondered if you are suggesting it would be a code violation for zones to be connected by an air wall for fire safety reasons. It would be a violation I guess, like not putting an fiber insulation or some kind of smoke stop between Spandrel panels and the edge of a floor plate would be a code violation for a typical office building.
There is a project by kevin daly architects where you can see a section drawing with what seems like a cfd analysis (could be an illustration)
it was my initial visualization/simulation goals were for a facade design I am working on
1) an average air velocity across a zone at noon, for example, if a passive design strategy like this was used. for this I am guessing cfd is not entirely necessary. probably means that it could be used earlier in a design process, too. This would be more about user comfort.
2) at a later phase, like in detailing facade components, if airflow is indeed as expected for a zone that is connected to an air wall / chimney like feature (and to see if there is a proper mixing of air)
3) and a projection of energy savings, of course.
After seeing a video of simulation cfd I was optimistic, but like I said sim cfd does not take account of solar loading. I think I would probably go ahead start with one zone with sim cfd first, try three zones stacked on top of each other, then try hyperworks and try to factor in solar radiation.
For analyzing multiple zones on different levels, being able to add a chimney would be especially useful, I think. Having said that, I don't have a lot of experience of using honeybee except for the daylight component so it would take some time for me to understand the components.
I hope some of the information here is useful for you. after all, both sim cfd and hyperworks are commercial softwares and somewhat different than the e plus project you are working on, I guess but still trying to address a similar problem.
so.. in cased you missed it I was asking I downloaded the Honeybee_Set EP Natural Ventilation component and made sure that it is allowed and placed in the user object foler, but it does not show up in grasshopper. what could be the reason?
…
inner As Curve() = section.ToNurbsCurve().Offset(normal, pc, -plate, 1e-3, 1e-4, Rhino.Geometry.CurveOffsetCornerStyle.Sharp)
the error message is:
"
{0}0. Error: Het oplossen van de overbelasting is mislukt omdat dit aantal argumenten door geen enkele toegankelijke Offset wordt geaccepteerd. (line 104)
"
this is the VBA script:
"Option Strict OffOption Explicit On'Import SDK and Framework namespacesImports RhinoImports Rhino.GeometryImports Rhino.CollectionsImports GrasshopperImports Grasshopper.KernelImports Grasshopper.Kernel.DataImports Grasshopper.Kernel.TypesImports GH_IOImports GH_IO.SerializationImports SystemImports System.IOImports System.XmlImports System.DataImports System.DrawingImports System.ReflectionImports System.CollectionsImports System.Windows.FormsImports Microsoft.VisualBasicImports System.Collections.GenericImports System.Runtime.InteropServices'Code generated by Grasshopper(R) (except for RunScript() content and Additional content)'Copyright (C) 2011 - Robert McNeel & Associates<System.Runtime.CompilerServices.CompilerGenerated()> _Public Class Script_Instance Implements IGH_ScriptInstance#Region "Members" ''' <summary>List of error messages. Do not modify this list directly.</summary> Private __err As New List(Of String) ''' <summary>List of print messages. Do not modify this list directly, use the Print() and Reflect() functions instead.</summary> Private __out As New List(Of String) ''' <summary>Represents the current Rhino document.</summary> Private doc As RhinoDoc = RhinoDoc.ActiveDoc ''' <summary>Represents the Script component which maintains this script.</summary> Public owner As Grasshopper.Kernel.IGH_ActiveObject#End Region#Region "Utility functions" ''' <summary>Print a String to the [Out] Parameter of the Script component.</summary> ''' <param name="text">String to print.</param> Private Sub Print(ByVal text As String) __out.Add(text) End Sub ''' <summary>Print a formatted String to the [Out] Parameter of the Script component.</summary> ''' <param name="format">String format.</param> ''' <param name="args">Formatting parameters.</param> Private Sub Print(ByVal format As String, ByVal ParamArray args As Object()) __out.Add(String.Format(format, args)) End Sub ''' <summary>Print useful information about an object instance to the [Out] Parameter of the Script component. </summary> ''' <param name="obj">Object instance to parse.</param> Private Sub Reflect(ByVal obj As Object) __out.Add(GH_ScriptComponentUtilities.ReflectType_VB(obj)) End Sub ''' <summary>Print the signatures of all the overloads of a specific method to the [Out] Parameter of the Script component. </summary> ''' <param name="obj">Object instance to parse.</param> Private Sub Reflect(ByVal obj As Object, ByVal method_name As String) __out.Add(GH_ScriptComponentUtilities.ReflectType_VB(obj, method_name)) End Sub#End Region ''' <summary> ''' This procedure contains the user code. Input parameters are provided as ByVal arguments, ''' Output parameter are ByRef arguments. You don't have to assign output parameters, ''' they will be null by default. ''' </summary> Private Sub RunScript(ByVal p0 As Point3d, ByVal p1 As Point3d, ByVal p2 As Point3d, ByVal pc As Point3d, ByVal plate As Double, ByVal itt As Integer, ByVal dev As Double, ByRef crvout As Object, ByRef crvin As Object, ByRef sec As Object, ByRef opp As Object, ByRef div As Object, ByRef pt4 As Object) 'your code goes here… opp = "test01" Dim section As New Polyline(5) section.Add(p0) section.Add(p1) section.Add(p2) section.Add(pc) section.Add(p0) Dim normal As Vector3d = vector3d.CrossProduct((p1 - p0), (p2 - p0)) Dim area As Double Dim chicken_int As Int32 = 0 Dim XX As Double Dim YY As Double Do chicken_int += 1 If (chicken_int > itt) Then Exit Do 'Compute the section offset Dim inner As Curve() = section.ToNurbsCurve().Offset(normal, pc, -plate, 1e-3, 1e-4, Rhino.Geometry.CurveOffsetCornerStyle.Sharp) Dim edges As New CurveList(inner) edges.Add(section.ToNurbsCurve()) crvin = edges Dim sections As Brep() = Brep.CreatePlanarBreps(edges) If (sections Is Nothing) Then Exit Do opp = "test02" 'Compute the centroid of the current section Dim am As AreaMassProperties = AreaMassProperties.Compute(sections(0)) Dim ct As Point3d = am.Centroid XX = am.CentroidCoordinatesMomentsOfInertia.X YY = am.CentroidCoordinatesMomentsOfInertia.Y area = am.Area Dim dx As Vector3d = pc - ct 'Compute the error of the current centroid Dim dl As Double = dx.Length div = dl 'Update output values crvout = section crvin = inner sec = sections(0) opp = area If (dl < dev) Then Exit Do 'Adjust outline with a boosting factor. section(3) += dx * 4 Loop pt4 = section(3) crvout = section End Sub '<Custom additional code> '</Custom additional code> End Class
"…
s. (Go to RCE Tabs)
Normaly a compoment is disable.
Fill the 3 parameters: name, e-mail and company.
Enable the component with the right mouse button on the component and enable.
A file is created here:
C:\RhinoDeveloppements\RhinoCivilEngineering\license\licence_a_envoyer.txt
Send it to this address:
rhinodeveloppements@gmail.com
You will receive your license within 24 hours
----------------------------------------------------------------------
Pour procéder à la requête de licence, merci de suivre ces étapes.
1. Installer RhinoCivil Engineering
2.Charger Rhinoceros et Grasshoper
3.Glisser Déposer le composant RCE Protection sur le canevas de Grasshopper.(Sur le panneau RCE)
Normalement le composant est désactiver.
4. Remplir les 3 paramètres: Nom, Adresse mail et société.
Activer le composant avec un clic droit sur le composant et "enable"
Un fichier est alors créer ici:
C:\RhinoDeveloppements\RhinoCivilEngineering\license\licence_a_envoyer.txt
Envoyer le à cette adresse:
rhinodeveloppements@gmail.com
Vous recevrez votre licence dans les 24 heures.…