discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

BOSL2 join_prism problem / possible misunderstanding

TR
Thomas Richter
Mon, Sep 28, 2026 2:23 PM

Dear all,

I am trying to join two prisms, a squared one and one with an octagon as base with join_prism to have a fillet at the connecting edges. I don't get it to work in the way I'd like to. I am not sure if I'm doing something wrong or if I don't fully understand the limitations of join_prism.

Please consider the following (extremely simplified!!!) example:

include <BOSL2/std.scad>

// spin != 0 fails
pathOct = octagon(d = 20, spin = 0);

// size > 8 fails
pathSq = square(size = 8, spin = 45, center = true);

join_prism(
    polygon = pathSq,
    length = 10,
    base = pathOct,
    fillet = 2,
);

yrot(90)
offset_sweep(
    path = pathOct,
    height = 40,
    anchor = CENTER,
);

This produces a good looking fillet (first picture). Nonetheless, actually I'd like to increase the size of the square to 12 and turn the octagon around x by 22.5 degrees (flat top and bottom). If I do so, it produces weird fillets that don't cover the connecting edges correctly (second picture).

What Am I doing / understanding wrong?

Best,
Thomas

Correct fillet:

Wrong fillet:

Dear all, I am trying to join two prisms, a squared one and one with an octagon as base with join_prism to have a fillet at the connecting edges. I don't get it to work in the way I'd like to. I am not sure if I'm doing something wrong or if I don't fully understand the limitations of join_prism. Please consider the following (extremely simplified!!!) example: ``` include <BOSL2/std.scad> // spin != 0 fails pathOct = octagon(d = 20, spin = 0); // size > 8 fails pathSq = square(size = 8, spin = 45, center = true); join_prism( polygon = pathSq, length = 10, base = pathOct, fillet = 2, ); yrot(90) offset_sweep( path = pathOct, height = 40, anchor = CENTER, ); ``` This produces a good looking fillet (first picture). Nonetheless, actually I'd like to increase the size of the square to 12 and turn the octagon around x by 22.5 degrees (flat top and bottom). If I do so, it produces weird fillets that don't cover the connecting edges correctly (second picture). What Am I doing / understanding wrong? Best, Thomas Correct fillet: Wrong fillet:
MM
Michael Möller
Mon, Sep 28, 2026 4:55 PM

I think the fillets look right. It just seems sharper, because edges
coincide in the "wrong" picture. Try doing an "animation", with the octagon
turning slowly, and/or with the square piece growing, to see how the
fillets grow/change.

On Mon, 28 Sept 2026 at 16:23, Thomas Richter via Discuss <
discuss@lists.openscad.org> wrote:

Dear all,

I am trying to join two prisms, a squared one and one with an octagon as
base with join_prism to have a fillet at the connecting edges. I don't get
it to work in the way I'd like to. I am not sure if I'm doing something
wrong or if I don't fully understand the limitations of join_prism.

Please consider the following (extremely simplified!!!) example:

include <BOSL2/std.scad>

// spin != 0 fails
pathOct = octagon(d = 20, spin = 0);

// size > 8 fails
pathSq = square(size = 8, spin = 45, center = true);

join_prism(
    polygon = pathSq,
    length = 10,
    base = pathOct,
    fillet = 2,
);

yrot(90)
offset_sweep(
    path = pathOct,
    height = 40,
    anchor = CENTER,
);

This produces a good looking fillet (first picture). Nonetheless, actually
I'd like to increase the size of the square to 12 and turn the octagon
around x by 22.5 degrees (flat top and bottom). If I do so, it produces
weird fillets that don't cover the connecting edges correctly (second
picture).

What Am I doing / understanding wrong?

Best,
Thomas

Correct fillet:

Wrong fillet:


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

I think the fillets look right. It just seems sharper, because edges coincide in the "wrong" picture. Try doing an "animation", with the octagon turning slowly, and/or with the square piece growing, to see how the fillets grow/change. On Mon, 28 Sept 2026 at 16:23, Thomas Richter via Discuss < discuss@lists.openscad.org> wrote: > Dear all, > > I am trying to join two prisms, a squared one and one with an octagon as > base with join_prism to have a fillet at the connecting edges. I don't get > it to work in the way I'd like to. I am not sure if I'm doing something > wrong or if I don't fully understand the limitations of join_prism. > > Please consider the following (extremely simplified!!!) example: > > ``` > include <BOSL2/std.scad> > > // spin != 0 fails > pathOct = octagon(d = 20, spin = 0); > > // size > 8 fails > pathSq = square(size = 8, spin = 45, center = true); > > join_prism( > polygon = pathSq, > length = 10, > base = pathOct, > fillet = 2, > ); > > yrot(90) > offset_sweep( > path = pathOct, > height = 40, > anchor = CENTER, > ); > ``` > > This produces a good looking fillet (first picture). Nonetheless, actually > I'd like to increase the size of the square to 12 and turn the octagon > around x by 22.5 degrees (flat top and bottom). If I do so, it produces > weird fillets that don't cover the connecting edges correctly (second > picture). > > What Am I doing / understanding wrong? > > Best, > Thomas > > Correct fillet: > > > > Wrong fillet: > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
AM
Adrian Mariano
Mon, Sep 28, 2026 5:00 PM

Your squares has only four points. Not enough for a good match. You need to
resample the square to have more points.

On Mon, Sep 28, 2026 at 10:23 Thomas Richter via Discuss <
discuss@lists.openscad.org> wrote:

Dear all,

I am trying to join two prisms, a squared one and one with an octagon as
base with join_prism to have a fillet at the connecting edges. I don't get
it to work in the way I'd like to. I am not sure if I'm doing something
wrong or if I don't fully understand the limitations of join_prism.

Please consider the following (extremely simplified!!!) example:

include <BOSL2/std.scad>

// spin != 0 fails
pathOct = octagon(d = 20, spin = 0);

// size > 8 fails
pathSq = square(size = 8, spin = 45, center = true);

join_prism(
    polygon = pathSq,
    length = 10,
    base = pathOct,
    fillet = 2,
);

yrot(90)
offset_sweep(
    path = pathOct,
    height = 40,
    anchor = CENTER,
);

This produces a good looking fillet (first picture). Nonetheless, actually
I'd like to increase the size of the square to 12 and turn the octagon
around x by 22.5 degrees (flat top and bottom). If I do so, it produces
weird fillets that don't cover the connecting edges correctly (second
picture).

What Am I doing / understanding wrong?

Best,
Thomas

Correct fillet:

Wrong fillet:


OpenSCAD mailing list
To unsubscribe send an email to discuss-leave@lists.openscad.org

Your squares has only four points. Not enough for a good match. You need to resample the square to have more points. On Mon, Sep 28, 2026 at 10:23 Thomas Richter via Discuss < discuss@lists.openscad.org> wrote: > Dear all, > > I am trying to join two prisms, a squared one and one with an octagon as > base with join_prism to have a fillet at the connecting edges. I don't get > it to work in the way I'd like to. I am not sure if I'm doing something > wrong or if I don't fully understand the limitations of join_prism. > > Please consider the following (extremely simplified!!!) example: > > ``` > include <BOSL2/std.scad> > > // spin != 0 fails > pathOct = octagon(d = 20, spin = 0); > > // size > 8 fails > pathSq = square(size = 8, spin = 45, center = true); > > join_prism( > polygon = pathSq, > length = 10, > base = pathOct, > fillet = 2, > ); > > yrot(90) > offset_sweep( > path = pathOct, > height = 40, > anchor = CENTER, > ); > ``` > > This produces a good looking fillet (first picture). Nonetheless, actually > I'd like to increase the size of the square to 12 and turn the octagon > around x by 22.5 degrees (flat top and bottom). If I do so, it produces > weird fillets that don't cover the connecting edges correctly (second > picture). > > What Am I doing / understanding wrong? > > Best, > Thomas > > Correct fillet: > > > > Wrong fillet: > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org