Hello community,
I am new to grasshopper and trying to create a component for Tekla which allows me to place lifting points on my CLT slab elements modelled in Tekla.
So I wrote a script which functions well in Grasshopper when I manually link the object I was this script to apply to : see image under, you can see that the lifting points are created.
However, when I want to use this grasshopper definition via the Tekla/Grasshopper component (to allow my colleagues to use this script without having to open grasshopper), it doesn’t work.
I get no error message and a component symbol gets created in my Tekla model when I pick the slab I want the script to apply to, but the drillings for my lifting points are not created.
(OBS: I cleared the data in the plate component and saved it before trying to run it through the Grasshopper/Tekla component… didn’t make any difference)
Any experience with this and idea how I could solve this?
And how can I share my definition here for people to have a look at it?
Hi Olivia,
This probably has to do with the coordinate system.
Any Tekla plugin (like the Grasshopper Component in this case) will have an internal coordinate system which is determined by the first input point or object when gathering the input. Objects are then generated relative to that coordinate system/work plane. This means you need to be cautious when using points that are actually defined in the global coordinate system.
Here you extract the center of gravity using properties like COG_X - these coordinates will be returned relative to the global coordinate system. Therefore they need to be translated into the local plugin coordinate system. This can be done using the Get Coordinate System and Orient components.
Below is an example where we place a rod at the center of gravity. This will work both directly from GH and through the GH component.
COG-Rod.gh (14.9 KB)
pic:
Cheers,
-b
1 Like
Thank you Sebastian!
That seemed to be the problem indeed.
It solved the first part of my definition and created one of the objects I needed this component to create.
However I am getting this error message on the second part, when trying to use the Tekla-grasshopper component:
[ Warning from the “Beam” component ] Curve input is null or invalid.
But when linking my slab directly in Grasshopper, everything is working just fine…
Any idea what could cause this issue?
Hi Olivia,
If the curve is invalid I would start tracing upwards to see which component might fail to produce a valid output. To debug, you could attach panels named “Output” to various outputs - this will cause a dialog to pop up in Tekla and display the panel content when you run the definition through the Grasshopper Component.
My guess is that the curve intersection component isn’t returning any results, as the offset curve for the top input (green) would be in local coordinates while the circle you intersect it with is centered around the global COG point (red). Try Orienting the COG point same way as you do the lines before feeding it further, or maybe orient the circle itself (not sure which is best).
Also note that those Unit Z vectors you have scattered as input will be in local (slab) coordinates when used through the Grasshopper Component. This will matter if the slabs are tilted, as the vectors wouldn’t point in the global Z direction any more. But maybe that’s the intention.
Cheers,
-b
That indeed solved it.
I didn’t pay enough attention to this issue of coordinates.
Many thanks for your valuable input Sebastian. This is going to be very useful to me for more than just this one component.
1 Like