Extrusion of H profile results in self-intersecting error

Which SDK and Platform version are you using?

SDK: v13.2.1
Platform: v22.06.4

Current Behavior

I try to create a 3d-visualisation of a H-profile. This results in a self-intersection error
→ I don’t understand why, my input is not self intersecting → is this shape to complex because of being concave? → it should be mentioned in the docs then

beam_profile = list(reversed(    [Point(-width / 2, -height / 2), #used reversed to change the input order into clockwise
    Point(width / 2, -height / 2),
    Point(width / 2, -height / 2 + flange_tickness),
    Point(web_tickness / 2, -height / 2 + flange_tickness),
    Point(web_tickness / 2, height / 2 - flange_tickness),
    Point(width / 2, height / 2 - flange_tickness),
    Point(width / 2, height / 2),
    Point(-width / 2, height / 2),
    Point(-width / 2, height / 2 - flange_tickness),
    Point(-web_tickness / 2, height / 2 - flange_tickness),
    Point(-web_tickness / 2, -height / 2 + flange_tickness),
    Point(-width / 2, -height / 2 + flange_tickness),
    Point(-width / 2, -height / 2),]
))

beam_obj = Extrusion(beam_profile, Line(Point(0.,0.),Point(10.,0.)))

Expected Behavior

Creating an extrusion, or mention in the docs which shapes are possible.

Workaround:

divide crosssections into rectangles

Hi Wichard,

What are the values you are using for the four measurement parameters?
I used your code and am getting a functional 3D-visualisation.

@GeometryView("Geometry view", duration_guess=2)
    def test_geom_view(self, params: Munch, entity_id: int, **kwargs):
        width = 2
        height = 2
        web_tickness = 0.2
        flange_tickness = 0.2
        beam_profile = list(
            reversed([Point(-width / 2, -height / 2),  # used reversed to change the input order into clockwise
                      Point(width / 2, -height / 2),
                      Point(width / 2, -height / 2 + flange_tickness),
                      Point(web_tickness / 2, -height / 2 + flange_tickness),
                      Point(web_tickness / 2, height / 2 - flange_tickness),
                      Point(width / 2, height / 2 - flange_tickness),
                      Point(width / 2, height / 2),
                      Point(-width / 2, height / 2),
                      Point(-width / 2, height / 2 - flange_tickness),
                      Point(-web_tickness / 2, height / 2 - flange_tickness),
                      Point(-web_tickness / 2, -height / 2 + flange_tickness),
                      Point(-width / 2, -height / 2 + flange_tickness),
                      Point(-width / 2, -height / 2), ]
                     ))

        beam_obj = Extrusion(beam_profile, Line(Point(0., 0.), Point(10., 0.)))

        return GeometryResult(beam_obj)

1 Like

Ah, you’re right. My bad, an error in the unit conversion :blush:

Thanks!