discuss@lists.openscad.org

OpenSCAD general discussion Mailing-list

View all threads

creating laser cut plywood structures with finger joints

RW
Rogier Wolff
Mon, Feb 16, 2026 9:53 AM

I have created a bunch of enclosures with what you might call "finger
joints".

I have the enclosures laser-cut from perspex or plywood (depending on
the application).

If you have a box of size X * Y * Z as inside-measures, and you make
the sides X+2mt, Y+2mt and Z+2mt with mt the material thickness,
all the panels will overlap along the edges. By assigning that mt
mt*w
rod (with w=X, Y or Z) alternatingly to either of the panels, you'll
end up with a box that falls apart really easily.

If you don't want to glue things together permanently, you have the
following option:

I've decided to make two (opposite) panels 2*mt larger in both
directions, two in one direction and two in neither direction.

The result is that there is now only one direction that requires
"keeping it together" screws.

As to designing this with openscad, I've defined a module that does
the finger-drawing.

What works best for me is that I design the panels lying flat in or on
the XY plane (centered around the origin). Then you can "assemble" the
panels by rotating and translating them to their final position in the
box. This verifies 3D fitment. You can also model whatever needs to go
in to verify that too.

You can also create a module that only translates them to position
them on the plane so that they don't intersect. This is your
"export-to-DXF" that you'll send to the laser-cutter.

To those that suggest CNC milling as opposed to laser-cutting: Not
everyone has a CNC mill. And even if you do: laser-cutting may be much
easier to master sufficiently to get a result in an acceptable
time. Both me and my friend who has the laser-cutter have a CNC
machine that's almost never used... So even if you HAVE a CNC machine,
learning to use it might be more of a hassle. And the sharp inside
corners required for the finger joints might not be possible in CNC
either.

Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
** Verl. Spiegelmakerstraat 37 2645 LZ  Delfgauw, The Netherlands.
** KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a** is going up.  -- Chris Hadfield about flying up the space shuttle.
**  'a' for accelleration.

I have created a bunch of enclosures with what you might call "finger joints". I have the enclosures laser-cut from perspex or plywood (depending on the application). If you have a box of size X * Y * Z as inside-measures, and you make the sides X+2*mt, Y+2*mt and Z+2*mt with mt the material thickness, all the panels will overlap along the edges. By assigning that mt*mt*w rod (with w=X, Y or Z) alternatingly to either of the panels, you'll end up with a box that falls apart really easily. If you don't want to glue things together permanently, you have the following option: I've decided to make two (opposite) panels 2*mt larger in both directions, two in one direction and two in neither direction. The result is that there is now only one direction that requires "keeping it together" screws. As to designing this with openscad, I've defined a module that does the finger-drawing. What works best for me is that I design the panels lying flat in or on the XY plane (centered around the origin). Then you can "assemble" the panels by rotating and translating them to their final position in the box. This verifies 3D fitment. You can also model whatever needs to go in to verify that too. You can also create a module that only translates them to position them on the plane so that they don't intersect. This is your "export-to-DXF" that you'll send to the laser-cutter. To those that suggest CNC milling as opposed to laser-cutting: Not everyone has a CNC mill. And even if you do: laser-cutting may be much easier to master sufficiently to get a result in an acceptable time. Both me and my friend who has the laser-cutter have a CNC machine that's almost never used... So even if you HAVE a CNC machine, learning to use it might be more of a hassle. And the sharp inside corners required for the finger joints might not be possible in CNC either. Roger. -- ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 ** ** Verl. Spiegelmakerstraat 37 2645 LZ Delfgauw, The Netherlands. ** KVK: 27239233 ** f equals m times a. When your f is steady, and your m is going down your a** is going up. -- Chris Hadfield about flying up the space shuttle. ** 'a' for accelleration.
JB
Jon Bondy
Mon, Feb 16, 2026 2:32 PM

Thanks, Rogier.

I wrote something similar to your approach, a module to create a 2D
square with edge cuts.  I ended up giving up on BOSL2's partition() and
doing it dumb-and-strong.  The BOSL2 approach appeared to require a lot
of rotations and translations that my approach avoids.

I am exploring how to ensure that all edges thus created can join correctly.

Jon

On 2/16/2026 4:53 AM, Rogier Wolff via Discuss wrote:

I have created a bunch of enclosures with what you might call "finger
joints".

I have the enclosures laser-cut from perspex or plywood (depending on
the application).

If you have a box of size X * Y * Z as inside-measures, and you make
the sides X+2mt, Y+2mt and Z+2mt with mt the material thickness,
all the panels will overlap along the edges. By assigning that mt
mt*w
rod (with w=X, Y or Z) alternatingly to either of the panels, you'll
end up with a box that falls apart really easily.

If you don't want to glue things together permanently, you have the
following option:

I've decided to make two (opposite) panels 2*mt larger in both
directions, two in one direction and two in neither direction.

The result is that there is now only one direction that requires
"keeping it together" screws.

As to designing this with openscad, I've defined a module that does
the finger-drawing.

What works best for me is that I design the panels lying flat in or on
the XY plane (centered around the origin). Then you can "assemble" the
panels by rotating and translating them to their final position in the
box. This verifies 3D fitment. You can also model whatever needs to go
in to verify that too.

You can also create a module that only translates them to position
them on the plane so that they don't intersect. This is your
"export-to-DXF" that you'll send to the laser-cutter.

To those that suggest CNC milling as opposed to laser-cutting: Not
everyone has a CNC mill. And even if you do: laser-cutting may be much
easier to master sufficiently to get a result in an acceptable
time. Both me and my friend who has the laser-cutter have a CNC
machine that's almost never used... So even if you HAVE a CNC machine,
learning to use it might be more of a hassle. And the sharp inside
corners required for the finger joints might not be possible in CNC
either.

Roger.

--
This email has been checked for viruses by AVG antivirus software.
www.avg.com

Thanks, Rogier. I wrote something similar to your approach, a module to create a 2D square with edge cuts.  I ended up giving up on BOSL2's partition() and doing it dumb-and-strong.  The BOSL2 approach appeared to require a lot of rotations and translations that my approach avoids. I am exploring how to ensure that all edges thus created can join correctly. Jon On 2/16/2026 4:53 AM, Rogier Wolff via Discuss wrote: > I have created a bunch of enclosures with what you might call "finger > joints". > > I have the enclosures laser-cut from perspex or plywood (depending on > the application). > > If you have a box of size X * Y * Z as inside-measures, and you make > the sides X+2*mt, Y+2*mt and Z+2*mt with mt the material thickness, > all the panels will overlap along the edges. By assigning that mt*mt*w > rod (with w=X, Y or Z) alternatingly to either of the panels, you'll > end up with a box that falls apart really easily. > > If you don't want to glue things together permanently, you have the > following option: > > I've decided to make two (opposite) panels 2*mt larger in both > directions, two in one direction and two in neither direction. > > The result is that there is now only one direction that requires > "keeping it together" screws. > > As to designing this with openscad, I've defined a module that does > the finger-drawing. > > What works best for me is that I design the panels lying flat in or on > the XY plane (centered around the origin). Then you can "assemble" the > panels by rotating and translating them to their final position in the > box. This verifies 3D fitment. You can also model whatever needs to go > in to verify that too. > > You can also create a module that only translates them to position > them on the plane so that they don't intersect. This is your > "export-to-DXF" that you'll send to the laser-cutter. > > To those that suggest CNC milling as opposed to laser-cutting: Not > everyone has a CNC mill. And even if you do: laser-cutting may be much > easier to master sufficiently to get a result in an acceptable > time. Both me and my friend who has the laser-cutter have a CNC > machine that's almost never used... So even if you HAVE a CNC machine, > learning to use it might be more of a hassle. And the sharp inside > corners required for the finger joints might not be possible in CNC > either. > > Roger. > -- This email has been checked for viruses by AVG antivirus software. www.avg.com
GS
Guenther Sohler
Mon, Feb 16, 2026 2:50 PM

I am following a different approach for creating arbitrary Plywood laser
cut joints

It is based on a list of correctly placed faces in space.
My class can automatically detect

  • Edge->Edge joints
  • Edge->Face joints
  • Face->Face joints

Depending on the joint detected, my class inserts the correct connection
into the wood.

Here is a simple demonstration for a box with 3 cells.

We start with a solid box, remove the top and insert 2 separator pieces

https://imgur.com/a/lNtUbvg

Cheers

On Mon, Feb 16, 2026 at 3:33 PM Jon Bondy via Discuss <
discuss@lists.openscad.org> wrote:

Thanks, Rogier.

I wrote something similar to your approach, a module to create a 2D
square with edge cuts.  I ended up giving up on BOSL2's partition() and
doing it dumb-and-strong.  The BOSL2 approach appeared to require a lot
of rotations and translations that my approach avoids.

I am exploring how to ensure that all edges thus created can join
correctly.

Jon

On 2/16/2026 4:53 AM, Rogier Wolff via Discuss wrote:

I have created a bunch of enclosures with what you might call "finger
joints".

I have the enclosures laser-cut from perspex or plywood (depending on
the application).

If you have a box of size X * Y * Z as inside-measures, and you make
the sides X+2mt, Y+2mt and Z+2mt with mt the material thickness,
all the panels will overlap along the edges. By assigning that mt
mt*w
rod (with w=X, Y or Z) alternatingly to either of the panels, you'll
end up with a box that falls apart really easily.

If you don't want to glue things together permanently, you have the
following option:

I've decided to make two (opposite) panels 2*mt larger in both
directions, two in one direction and two in neither direction.

The result is that there is now only one direction that requires
"keeping it together" screws.

As to designing this with openscad, I've defined a module that does
the finger-drawing.

What works best for me is that I design the panels lying flat in or on
the XY plane (centered around the origin). Then you can "assemble" the
panels by rotating and translating them to their final position in the
box. This verifies 3D fitment. You can also model whatever needs to go
in to verify that too.

You can also create a module that only translates them to position
them on the plane so that they don't intersect. This is your
"export-to-DXF" that you'll send to the laser-cutter.

To those that suggest CNC milling as opposed to laser-cutting: Not
everyone has a CNC mill. And even if you do: laser-cutting may be much
easier to master sufficiently to get a result in an acceptable
time. Both me and my friend who has the laser-cutter have a CNC
machine that's almost never used... So even if you HAVE a CNC machine,
learning to use it might be more of a hassle. And the sharp inside
corners required for the finger joints might not be possible in CNC
either.

   Roger.

--
This email has been checked for viruses by AVG antivirus software.
www.avg.com


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

I am following a different approach for creating arbitrary Plywood laser cut joints It is based on a list of correctly placed faces in space. My class can automatically detect * Edge->Edge joints * Edge->Face joints * Face->Face joints Depending on the joint detected, my class inserts the correct connection into the wood. Here is a simple demonstration for a box with 3 cells. We start with a solid box, remove the top and insert 2 separator pieces https://imgur.com/a/lNtUbvg Cheers On Mon, Feb 16, 2026 at 3:33 PM Jon Bondy via Discuss < discuss@lists.openscad.org> wrote: > Thanks, Rogier. > > I wrote something similar to your approach, a module to create a 2D > square with edge cuts. I ended up giving up on BOSL2's partition() and > doing it dumb-and-strong. The BOSL2 approach appeared to require a lot > of rotations and translations that my approach avoids. > > I am exploring how to ensure that all edges thus created can join > correctly. > > Jon > > On 2/16/2026 4:53 AM, Rogier Wolff via Discuss wrote: > > I have created a bunch of enclosures with what you might call "finger > > joints". > > > > I have the enclosures laser-cut from perspex or plywood (depending on > > the application). > > > > If you have a box of size X * Y * Z as inside-measures, and you make > > the sides X+2*mt, Y+2*mt and Z+2*mt with mt the material thickness, > > all the panels will overlap along the edges. By assigning that mt*mt*w > > rod (with w=X, Y or Z) alternatingly to either of the panels, you'll > > end up with a box that falls apart really easily. > > > > If you don't want to glue things together permanently, you have the > > following option: > > > > I've decided to make two (opposite) panels 2*mt larger in both > > directions, two in one direction and two in neither direction. > > > > The result is that there is now only one direction that requires > > "keeping it together" screws. > > > > As to designing this with openscad, I've defined a module that does > > the finger-drawing. > > > > What works best for me is that I design the panels lying flat in or on > > the XY plane (centered around the origin). Then you can "assemble" the > > panels by rotating and translating them to their final position in the > > box. This verifies 3D fitment. You can also model whatever needs to go > > in to verify that too. > > > > You can also create a module that only translates them to position > > them on the plane so that they don't intersect. This is your > > "export-to-DXF" that you'll send to the laser-cutter. > > > > To those that suggest CNC milling as opposed to laser-cutting: Not > > everyone has a CNC mill. And even if you do: laser-cutting may be much > > easier to master sufficiently to get a result in an acceptable > > time. Both me and my friend who has the laser-cutter have a CNC > > machine that's almost never used... So even if you HAVE a CNC machine, > > learning to use it might be more of a hassle. And the sharp inside > > corners required for the finger joints might not be possible in CNC > > either. > > > > Roger. > > > > -- > This email has been checked for viruses by AVG antivirus software. > www.avg.com > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
AM
Adrian Mariano
Mon, Feb 16, 2026 2:53 PM

What were you trying to do with partition()?  If you are trying to make a
corner joint then partition is the wrong tool. That should be done with
dovetail() from joiners.scad

On Mon, Feb 16, 2026 at 09:33 Jon Bondy via Discuss <
discuss@lists.openscad.org> wrote:

Thanks, Rogier.

I wrote something similar to your approach, a module to create a 2D
square with edge cuts.  I ended up giving up on BOSL2's partition() and
doing it dumb-and-strong.  The BOSL2 approach appeared to require a lot
of rotations and translations that my approach avoids.

I am exploring how to ensure that all edges thus created can join
correctly.

Jon

On 2/16/2026 4:53 AM, Rogier Wolff via Discuss wrote:

I have created a bunch of enclosures with what you might call "finger
joints".

I have the enclosures laser-cut from perspex or plywood (depending on
the application).

If you have a box of size X * Y * Z as inside-measures, and you make
the sides X+2mt, Y+2mt and Z+2mt with mt the material thickness,
all the panels will overlap along the edges. By assigning that mt
mt*w
rod (with w=X, Y or Z) alternatingly to either of the panels, you'll
end up with a box that falls apart really easily.

If you don't want to glue things together permanently, you have the
following option:

I've decided to make two (opposite) panels 2*mt larger in both
directions, two in one direction and two in neither direction.

The result is that there is now only one direction that requires
"keeping it together" screws.

As to designing this with openscad, I've defined a module that does
the finger-drawing.

What works best for me is that I design the panels lying flat in or on
the XY plane (centered around the origin). Then you can "assemble" the
panels by rotating and translating them to their final position in the
box. This verifies 3D fitment. You can also model whatever needs to go
in to verify that too.

You can also create a module that only translates them to position
them on the plane so that they don't intersect. This is your
"export-to-DXF" that you'll send to the laser-cutter.

To those that suggest CNC milling as opposed to laser-cutting: Not
everyone has a CNC mill. And even if you do: laser-cutting may be much
easier to master sufficiently to get a result in an acceptable
time. Both me and my friend who has the laser-cutter have a CNC
machine that's almost never used... So even if you HAVE a CNC machine,
learning to use it might be more of a hassle. And the sharp inside
corners required for the finger joints might not be possible in CNC
either.

   Roger.

--
This email has been checked for viruses by AVG antivirus software.
www.avg.com


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

What were you trying to do with partition()? If you are trying to make a corner joint then partition is the wrong tool. That should be done with dovetail() from joiners.scad On Mon, Feb 16, 2026 at 09:33 Jon Bondy via Discuss < discuss@lists.openscad.org> wrote: > Thanks, Rogier. > > I wrote something similar to your approach, a module to create a 2D > square with edge cuts. I ended up giving up on BOSL2's partition() and > doing it dumb-and-strong. The BOSL2 approach appeared to require a lot > of rotations and translations that my approach avoids. > > I am exploring how to ensure that all edges thus created can join > correctly. > > Jon > > On 2/16/2026 4:53 AM, Rogier Wolff via Discuss wrote: > > I have created a bunch of enclosures with what you might call "finger > > joints". > > > > I have the enclosures laser-cut from perspex or plywood (depending on > > the application). > > > > If you have a box of size X * Y * Z as inside-measures, and you make > > the sides X+2*mt, Y+2*mt and Z+2*mt with mt the material thickness, > > all the panels will overlap along the edges. By assigning that mt*mt*w > > rod (with w=X, Y or Z) alternatingly to either of the panels, you'll > > end up with a box that falls apart really easily. > > > > If you don't want to glue things together permanently, you have the > > following option: > > > > I've decided to make two (opposite) panels 2*mt larger in both > > directions, two in one direction and two in neither direction. > > > > The result is that there is now only one direction that requires > > "keeping it together" screws. > > > > As to designing this with openscad, I've defined a module that does > > the finger-drawing. > > > > What works best for me is that I design the panels lying flat in or on > > the XY plane (centered around the origin). Then you can "assemble" the > > panels by rotating and translating them to their final position in the > > box. This verifies 3D fitment. You can also model whatever needs to go > > in to verify that too. > > > > You can also create a module that only translates them to position > > them on the plane so that they don't intersect. This is your > > "export-to-DXF" that you'll send to the laser-cutter. > > > > To those that suggest CNC milling as opposed to laser-cutting: Not > > everyone has a CNC mill. And even if you do: laser-cutting may be much > > easier to master sufficiently to get a result in an acceptable > > time. Both me and my friend who has the laser-cutter have a CNC > > machine that's almost never used... So even if you HAVE a CNC machine, > > learning to use it might be more of a hassle. And the sharp inside > > corners required for the finger joints might not be possible in CNC > > either. > > > > Roger. > > > > -- > This email has been checked for viruses by AVG antivirus software. > www.avg.com > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org
JJ
jon jonbondy.com
Mon, Feb 16, 2026 3:09 PM

Adrian:

I am trying to create a tool to make a somewhat-complex wooden structure (unconventional guitar amp/speaker box) using finger-jointed (perhaps not the right term) 1/4" plywood.  I started out trying to write a Square() module that creates rectangular cutouts along the edges of a square() such that the joints are compatible.  I was then going to try to create the structure using a series of these Squares.  I am making progress, slowly.

I started out aiming partition() at the square(), but could not figure out how to perform this operation easily on anything but the bottom edge (I could manage the left edge with a rotation, but still was only half done). Then I realized that I needed to not consume the entire length of the edge with cutouts, because the X and Y cutouts would interact, so I added zones at the end of each edge that lacked cutouts.  I am about to face the problem where one 20" edge has to mate to two 10" edges; I am not sure  how to ensure that the edges are compatible, especially given the zones I just described.

So, I am just beginning to explore this problem space, which is both fun and frustrating.  I am learning a lot, but progress is slow.

Jon

On 2/16/2026 9:53 AM, Adrian Mariano wrote:
What were you trying to do with partition()?  If you are trying to make a corner joint then partition is the wrong tool. That should be done with dovetail() from joiners.scad

On Mon, Feb 16, 2026 at 09:33 Jon Bondy via Discuss <discuss@lists.openscad.orgmailto:discuss@lists.openscad.org> wrote:
Thanks, Rogier.

I wrote something similar to your approach, a module to create a 2D
square with edge cuts.  I ended up giving up on BOSL2's partition() and
doing it dumb-and-strong.  The BOSL2 approach appeared to require a lot
of rotations and translations that my approach avoids.

I am exploring how to ensure that all edges thus created can join correctly.

Jon

On 2/16/2026 4:53 AM, Rogier Wolff via Discuss wrote:

I have created a bunch of enclosures with what you might call "finger
joints".

I have the enclosures laser-cut from perspex or plywood (depending on
the application).

If you have a box of size X * Y * Z as inside-measures, and you make
the sides X+2mt, Y+2mt and Z+2mt with mt the material thickness,
all the panels will overlap along the edges. By assigning that mt
mt*w
rod (with w=X, Y or Z) alternatingly to either of the panels, you'll
end up with a box that falls apart really easily.

If you don't want to glue things together permanently, you have the
following option:

I've decided to make two (opposite) panels 2*mt larger in both
directions, two in one direction and two in neither direction.

The result is that there is now only one direction that requires
"keeping it together" screws.

As to designing this with openscad, I've defined a module that does
the finger-drawing.

What works best for me is that I design the panels lying flat in or on
the XY plane (centered around the origin). Then you can "assemble" the
panels by rotating and translating them to their final position in the
box. This verifies 3D fitment. You can also model whatever needs to go
in to verify that too.

You can also create a module that only translates them to position
them on the plane so that they don't intersect. This is your
"export-to-DXF" that you'll send to the laser-cutter.

To those that suggest CNC milling as opposed to laser-cutting: Not
everyone has a CNC mill. And even if you do: laser-cutting may be much
easier to master sufficiently to get a result in an acceptable
time. Both me and my friend who has the laser-cutter have a CNC
machine that's almost never used... So even if you HAVE a CNC machine,
learning to use it might be more of a hassle. And the sharp inside
corners required for the finger joints might not be possible in CNC
either.

   Roger.
Adrian: I am trying to create a tool to make a somewhat-complex wooden structure (unconventional guitar amp/speaker box) using finger-jointed (perhaps not the right term) 1/4" plywood. I started out trying to write a Square() module that creates rectangular cutouts along the edges of a square() such that the joints are compatible. I was then going to try to create the structure using a series of these Squares. I am making progress, slowly. I started out aiming partition() at the square(), but could not figure out how to perform this operation easily on anything but the bottom edge (I could manage the left edge with a rotation, but still was only half done). Then I realized that I needed to not consume the entire length of the edge with cutouts, because the X and Y cutouts would interact, so I added zones at the end of each edge that lacked cutouts. I am about to face the problem where one 20" edge has to mate to two 10" edges; I am not sure how to ensure that the edges are compatible, especially given the zones I just described. So, I am just beginning to explore this problem space, which is both fun and frustrating. I am learning a lot, but progress is slow. Jon On 2/16/2026 9:53 AM, Adrian Mariano wrote: What were you trying to do with partition()? If you are trying to make a corner joint then partition is the wrong tool. That should be done with dovetail() from joiners.scad On Mon, Feb 16, 2026 at 09:33 Jon Bondy via Discuss <discuss@lists.openscad.org<mailto:discuss@lists.openscad.org>> wrote: Thanks, Rogier. I wrote something similar to your approach, a module to create a 2D square with edge cuts. I ended up giving up on BOSL2's partition() and doing it dumb-and-strong. The BOSL2 approach appeared to require a lot of rotations and translations that my approach avoids. I am exploring how to ensure that all edges thus created can join correctly. Jon On 2/16/2026 4:53 AM, Rogier Wolff via Discuss wrote: > I have created a bunch of enclosures with what you might call "finger > joints". > > I have the enclosures laser-cut from perspex or plywood (depending on > the application). > > If you have a box of size X * Y * Z as inside-measures, and you make > the sides X+2*mt, Y+2*mt and Z+2*mt with mt the material thickness, > all the panels will overlap along the edges. By assigning that mt*mt*w > rod (with w=X, Y or Z) alternatingly to either of the panels, you'll > end up with a box that falls apart really easily. > > If you don't want to glue things together permanently, you have the > following option: > > I've decided to make two (opposite) panels 2*mt larger in both > directions, two in one direction and two in neither direction. > > The result is that there is now only one direction that requires > "keeping it together" screws. > > As to designing this with openscad, I've defined a module that does > the finger-drawing. > > What works best for me is that I design the panels lying flat in or on > the XY plane (centered around the origin). Then you can "assemble" the > panels by rotating and translating them to their final position in the > box. This verifies 3D fitment. You can also model whatever needs to go > in to verify that too. > > You can also create a module that only translates them to position > them on the plane so that they don't intersect. This is your > "export-to-DXF" that you'll send to the laser-cutter. > > To those that suggest CNC milling as opposed to laser-cutting: Not > everyone has a CNC mill. And even if you do: laser-cutting may be much > easier to master sufficiently to get a result in an acceptable > time. Both me and my friend who has the laser-cutter have a CNC > machine that's almost never used... So even if you HAVE a CNC machine, > learning to use it might be more of a hassle. And the sharp inside > corners required for the finger joints might not be possible in CNC > either. > > Roger. > -- This email has been checked for viruses by AVG antivirus software. www.avg.com<https://urldefense.proofpoint.com/v2/url?u=http-3A__www.avg.com&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=AsrE-c7ZR7B2Kyr3qgfvvppkCEBVsNmwEMndcrRSuOI&m=x5c4v2sTlHBkzOzKImO3Jcu6CzBta0cyFArfwJzGQKN1Q95Q8CmBk3QzAeisMR2s&s=Z8Qu7b71IwXdWjbP8_4otDFMcttQbjPb5oQN0C1fLIg&e=> _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org<mailto:discuss-leave@lists.openscad.org>
LD
lee.deraud@roadrunner.com
Mon, Feb 16, 2026 3:28 PM

Speaking as someone who has had a laser for decades, once built a CNC router
(a story for another time), and now also has a 3D printer:
Anything done on the laser is an order of magnitude easier than on a CNC
router.
Anything done on the laser is an order of magnitude faster than on a 3D
printer.
Or more concisely, anything that CAN be done on the laser SHOULD be done on
the laser.

(The CNC was much more fun to design/build than it was to use...ended up
selling it a couple years later to free up garage space.
And I'm still a bit amazed at the number of people who use a 3D printer to
print 2D objects.)

-----Original Message-----
From: Rogier Wolff via Discuss discuss@lists.openscad.org
Sent: Monday, February 16, 2026 1:54 AM
To: OpenSCAD general discussion Mailing-list discuss@lists.openscad.org
Cc: Rogier Wolff R.E.Wolff@BitWizard.nl
Subject: [OpenSCAD] Re: creating laser cut plywood structures with finger
joints

I have created a bunch of enclosures with what you might call "finger
joints".

I have the enclosures laser-cut from perspex or plywood (depending on the
application).

If you have a box of size X * Y * Z as inside-measures, and you make the
sides X+2mt, Y+2mt and Z+2mt with mt the material thickness, all the
panels will overlap along the edges. By assigning that mt
mt*w rod (with
w=X, Y or Z) alternatingly to either of the panels, you'll end up with a box
that falls apart really easily.

If you don't want to glue things together permanently, you have the
following option:

I've decided to make two (opposite) panels 2*mt larger in both directions,
two in one direction and two in neither direction.

The result is that there is now only one direction that requires "keeping it
together" screws.

As to designing this with openscad, I've defined a module that does the
finger-drawing.

What works best for me is that I design the panels lying flat in or on the
XY plane (centered around the origin). Then you can "assemble" the panels by
rotating and translating them to their final position in the box. This
verifies 3D fitment. You can also model whatever needs to go in to verify
that too.

You can also create a module that only translates them to position them on
the plane so that they don't intersect. This is your "export-to-DXF" that
you'll send to the laser-cutter.

To those that suggest CNC milling as opposed to laser-cutting: Not everyone
has a CNC mill. And even if you do: laser-cutting may be much easier to
master sufficiently to get a result in an acceptable time. Both me and my
friend who has the laser-cutter have a CNC machine that's almost never
used... So even if you HAVE a CNC machine, learning to use it might be more
of a hassle. And the sharp inside corners required for the finger joints
might not be possible in CNC either.

Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
** Verl. Spiegelmakerstraat 37 2645 LZ  Delfgauw, The Netherlands.
** KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down your a**
is going up.  -- Chris Hadfield about flying up the space shuttle.
**  'a' for accelleration.


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

Speaking as someone who has had a laser for decades, once built a CNC router (a story for another time), and now also has a 3D printer: Anything done on the laser is an order of magnitude easier than on a CNC router. Anything done on the laser is an order of magnitude faster than on a 3D printer. Or more concisely, anything that CAN be done on the laser SHOULD be done on the laser. (The CNC was *much* more fun to design/build than it was to use...ended up selling it a couple years later to free up garage space. And I'm still a bit amazed at the number of people who use a 3D printer to print 2D objects.) -----Original Message----- From: Rogier Wolff via Discuss <discuss@lists.openscad.org> Sent: Monday, February 16, 2026 1:54 AM To: OpenSCAD general discussion Mailing-list <discuss@lists.openscad.org> Cc: Rogier Wolff <R.E.Wolff@BitWizard.nl> Subject: [OpenSCAD] Re: creating laser cut plywood structures with finger joints I have created a bunch of enclosures with what you might call "finger joints". I have the enclosures laser-cut from perspex or plywood (depending on the application). If you have a box of size X * Y * Z as inside-measures, and you make the sides X+2*mt, Y+2*mt and Z+2*mt with mt the material thickness, all the panels will overlap along the edges. By assigning that mt*mt*w rod (with w=X, Y or Z) alternatingly to either of the panels, you'll end up with a box that falls apart really easily. If you don't want to glue things together permanently, you have the following option: I've decided to make two (opposite) panels 2*mt larger in both directions, two in one direction and two in neither direction. The result is that there is now only one direction that requires "keeping it together" screws. As to designing this with openscad, I've defined a module that does the finger-drawing. What works best for me is that I design the panels lying flat in or on the XY plane (centered around the origin). Then you can "assemble" the panels by rotating and translating them to their final position in the box. This verifies 3D fitment. You can also model whatever needs to go in to verify that too. You can also create a module that only translates them to position them on the plane so that they don't intersect. This is your "export-to-DXF" that you'll send to the laser-cutter. To those that suggest CNC milling as opposed to laser-cutting: Not everyone has a CNC mill. And even if you do: laser-cutting may be much easier to master sufficiently to get a result in an acceptable time. Both me and my friend who has the laser-cutter have a CNC machine that's almost never used... So even if you HAVE a CNC machine, learning to use it might be more of a hassle. And the sharp inside corners required for the finger joints might not be possible in CNC either. Roger. -- ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 ** ** Verl. Spiegelmakerstraat 37 2645 LZ Delfgauw, The Netherlands. ** KVK: 27239233 ** f equals m times a. When your f is steady, and your m is going down your a** is going up. -- Chris Hadfield about flying up the space shuttle. ** 'a' for accelleration. _______________________________________________ OpenSCAD mailing list To unsubscribe send an email to discuss-leave@lists.openscad.org
RW
Rogier Wolff
Mon, Feb 16, 2026 3:31 PM

On Mon, Feb 16, 2026 at 09:32:12AM -0500, Jon Bondy via Discuss wrote:

Thanks, Rogier.

(It's "Roger", unless you speak Dutch).

I wrote something similar to your approach, a module to create a 2D
square with edge cuts.  I ended up giving up on BOSL2's partition()
and doing it dumb-and-strong.  The BOSL2 approach appeared to
require a lot of rotations and translations that my approach avoids.

For viewing I make the cutouts a smidge larger, so that in the
assembled view you can verify that there is a small border between the
pieces. Or render them with different colors and watch out for the
z-fighting.

I try to prevent "getting things wrong" by passing the cutouts module
the length over which to distribute the fingers, and the number of
fingers. I use different finger-widths on each of the directions so an
X join won't fit an Y join.... (so when I have a side-of-the-box
that's 120 and one that's 60, I don't use 12 and 6 for the number of
fingers, but rather say 11 and 6 (the side lenghts not matching
should be an obvious hint, but you never know...)

Roger.

--
** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 **
** Verl. Spiegelmakerstraat 37 2645 LZ  Delfgauw, The Netherlands.
** KVK: 27239233    **
f equals m times a. When your f is steady, and your m is going down
your a** is going up.  -- Chris Hadfield about flying up the space shuttle.
**  'a' for accelleration.

On Mon, Feb 16, 2026 at 09:32:12AM -0500, Jon Bondy via Discuss wrote: > Thanks, Rogier. (It's "Roger", unless you speak Dutch). > I wrote something similar to your approach, a module to create a 2D > square with edge cuts.  I ended up giving up on BOSL2's partition() > and doing it dumb-and-strong.  The BOSL2 approach appeared to > require a lot of rotations and translations that my approach avoids. For viewing I make the cutouts a smidge larger, so that in the assembled view you can verify that there is a small border between the pieces. Or render them with different colors and watch out for the z-fighting. I try to prevent "getting things wrong" by passing the cutouts module the length over which to distribute the fingers, and the number of fingers. I use different finger-widths on each of the directions so an X join won't fit an Y join.... (so when I have a side-of-the-box that's 120 and one that's 60, I don't use 12 and 6 for the number of fingers, but rather say 11 and 6 (the side lenghts not matching should be an obvious hint, but you never know...) Roger. -- ** R.E.Wolff@BitWizard.nl ** https://www.BitWizard.nl/ ** +31-15-2049110 ** ** Verl. Spiegelmakerstraat 37 2645 LZ Delfgauw, The Netherlands. ** KVK: 27239233 ** f equals m times a. When your f is steady, and your m is going down your a** is going up. -- Chris Hadfield about flying up the space shuttle. ** 'a' for accelleration.
JB
Jon Bondy
Mon, Feb 16, 2026 3:54 PM

Guenther:

The image looks like it is exactly what I am looking for, although I
would need to study the details.

Does this require Python?

Is this available?

Thanks!

Jon

On 2/16/2026 9:50 AM, Guenther Sohler via Discuss wrote:

I am following a different approach for creating arbitrary Plywood
laser cut joints

It is based on a list of correctly placed faces in space.
My class can automatically detect

  • Edge->Edge joints
  • Edge->Face joints
  • Face->Face joints

Depending on the joint detected, my class inserts the correct
connection into the wood.

Here is a simple demonstration for a box with 3 cells.

We start with a solid box, remove the top and insert 2 separator pieces

https://imgur.com/a/lNtUbvg
https://urldefense.proofpoint.com/v2/url?u=https-3A__imgur.com_a_lNtUbvg&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=AsrE-c7ZR7B2Kyr3qgfvvppkCEBVsNmwEMndcrRSuOI&m=WteBKQWpIRE0l5xyjs-paLAYZupf5FJvVDxKWq3fPjuGD3uKRkIlqkiwu1IBY9zi&s=9RF8gZW2ZO5AqBqdcMwfKHbCQX9HIVJsv8NsJUO56S0&e=

Cheers

On Mon, Feb 16, 2026 at 3:33 PM Jon Bondy via Discuss
discuss@lists.openscad.org wrote:

 Thanks, Rogier.

 I wrote something similar to your approach, a module to create a 2D
 square with edge cuts.  I ended up giving up on BOSL2's
 partition() and
 doing it dumb-and-strong.  The BOSL2 approach appeared to require
 a lot
 of rotations and translations that my approach avoids.

 I am exploring how to ensure that all edges thus created can join
 correctly.

 Jon

 On 2/16/2026 4:53 AM, Rogier Wolff via Discuss wrote:

I have created a bunch of enclosures with what you might call

 "finger

joints".

I have the enclosures laser-cut from perspex or plywood

 (depending on

the application).

If you have a box of size X * Y * Z as inside-measures, and you make
the sides X+2mt, Y+2mt and Z+2*mt with mt the material thickness,
all the panels will overlap along the edges. By assigning that

 mt*mt*w

rod (with w=X, Y or Z) alternatingly to either of the panels, you'll
end up with a box that falls apart really easily.

If you don't want to glue things together permanently, you have the
following option:

I've decided to make two (opposite) panels 2*mt larger in both
directions, two in one direction and two in neither direction.

The result is that there is now only one direction that requires
"keeping it together" screws.

As to designing this with openscad, I've defined a module that does
the finger-drawing.

What works best for me is that I design the panels lying flat in

 or on

the XY plane (centered around the origin). Then you can

 "assemble" the

panels by rotating and translating them to their final position

 in the

box. This verifies 3D fitment. You can also model whatever needs

 to go

in to verify that too.

You can also create a module that only translates them to position
them on the plane so that they don't intersect. This is your
"export-to-DXF" that you'll send to the laser-cutter.

To those that suggest CNC milling as opposed to laser-cutting: Not
everyone has a CNC mill. And even if you do: laser-cutting may

 be much

easier to master sufficiently to get a result in an acceptable
time. Both me and my friend who has the laser-cutter have a CNC
machine that's almost never used... So even if you HAVE a CNC

 machine,

learning to use it might be more of a hassle. And the sharp inside
corners required for the finger joints might not be possible in CNC
either.

       Roger.

 -- 
 This email has been checked for viruses by AVG antivirus software.
 www.avg.com
 <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.avg.com&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=AsrE-c7ZR7B2Kyr3qgfvvppkCEBVsNmwEMndcrRSuOI&m=WteBKQWpIRE0l5xyjs-paLAYZupf5FJvVDxKWq3fPjuGD3uKRkIlqkiwu1IBY9zi&s=pAIMfcSGexz-hyRqWQ52piEPTU0C2GjfDfFXAH04Hok&e=>
 _______________________________________________
 OpenSCAD mailing list
 To unsubscribe send an email to discuss-leave@lists.openscad.org

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

Guenther: The image looks like it is exactly what I am looking for, although I would need to study the details. Does this require Python? Is this available? Thanks! Jon On 2/16/2026 9:50 AM, Guenther Sohler via Discuss wrote: > I am following a different approach for creating arbitrary Plywood > laser cut joints > > It is based on a list of correctly placed faces in space. > My class can automatically detect > > * Edge->Edge joints > * Edge->Face joints > * Face->Face joints > > Depending on the joint detected, my class inserts the correct > connection into the wood. > > Here is a simple demonstration for a box with 3 cells. > > We start with a solid box, remove the top and insert 2 separator pieces > > https://imgur.com/a/lNtUbvg > <https://urldefense.proofpoint.com/v2/url?u=https-3A__imgur.com_a_lNtUbvg&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=AsrE-c7ZR7B2Kyr3qgfvvppkCEBVsNmwEMndcrRSuOI&m=WteBKQWpIRE0l5xyjs-paLAYZupf5FJvVDxKWq3fPjuGD3uKRkIlqkiwu1IBY9zi&s=9RF8gZW2ZO5AqBqdcMwfKHbCQX9HIVJsv8NsJUO56S0&e=> > > > Cheers > > > > On Mon, Feb 16, 2026 at 3:33 PM Jon Bondy via Discuss > <discuss@lists.openscad.org> wrote: > > Thanks, Rogier. > > I wrote something similar to your approach, a module to create a 2D > square with edge cuts.  I ended up giving up on BOSL2's > partition() and > doing it dumb-and-strong.  The BOSL2 approach appeared to require > a lot > of rotations and translations that my approach avoids. > > I am exploring how to ensure that all edges thus created can join > correctly. > > Jon > > On 2/16/2026 4:53 AM, Rogier Wolff via Discuss wrote: > > I have created a bunch of enclosures with what you might call > "finger > > joints". > > > > I have the enclosures laser-cut from perspex or plywood > (depending on > > the application). > > > > If you have a box of size X * Y * Z as inside-measures, and you make > > the sides X+2*mt, Y+2*mt and Z+2*mt with mt the material thickness, > > all the panels will overlap along the edges. By assigning that > mt*mt*w > > rod (with w=X, Y or Z) alternatingly to either of the panels, you'll > > end up with a box that falls apart really easily. > > > > If you don't want to glue things together permanently, you have the > > following option: > > > > I've decided to make two (opposite) panels 2*mt larger in both > > directions, two in one direction and two in neither direction. > > > > The result is that there is now only one direction that requires > > "keeping it together" screws. > > > > As to designing this with openscad, I've defined a module that does > > the finger-drawing. > > > > What works best for me is that I design the panels lying flat in > or on > > the XY plane (centered around the origin). Then you can > "assemble" the > > panels by rotating and translating them to their final position > in the > > box. This verifies 3D fitment. You can also model whatever needs > to go > > in to verify that too. > > > > You can also create a module that only translates them to position > > them on the plane so that they don't intersect. This is your > > "export-to-DXF" that you'll send to the laser-cutter. > > > > To those that suggest CNC milling as opposed to laser-cutting: Not > > everyone has a CNC mill. And even if you do: laser-cutting may > be much > > easier to master sufficiently to get a result in an acceptable > > time. Both me and my friend who has the laser-cutter have a CNC > > machine that's almost never used... So even if you HAVE a CNC > machine, > > learning to use it might be more of a hassle. And the sharp inside > > corners required for the finger joints might not be possible in CNC > > either. > > > >       Roger. > > > > -- > This email has been checked for viruses by AVG antivirus software. > www.avg.com > <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.avg.com&d=DwMFaQ&c=euGZstcaTDllvimEN8b7jXrwqOf-v5A_CdpgnVfiiMM&r=AsrE-c7ZR7B2Kyr3qgfvvppkCEBVsNmwEMndcrRSuOI&m=WteBKQWpIRE0l5xyjs-paLAYZupf5FJvVDxKWq3fPjuGD3uKRkIlqkiwu1IBY9zi&s=pAIMfcSGexz-hyRqWQ52piEPTU0C2GjfDfFXAH04Hok&e=> > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org > > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email todiscuss-leave@lists.openscad.org
L
larry
Mon, Feb 16, 2026 4:27 PM

On Mon, 2026-02-16 at 07:28 -0800, Lee DeRaud via Discuss wrote:

Speaking as someone who has had a laser for decades, once built a CNC
router
(a story for another time), and now also has a 3D printer:
Anything done on the laser is an order of magnitude easier than on a
CNC
router.
Anything done on the laser is an order of magnitude faster than on a
3D
printer.
Or more concisely, anything that CAN be done on the laser SHOULD be
done on
the laser.

(The CNC was much more fun to design/build than it was to
use...ended up selling it a couple years later to free up garage
space. And I'm still a bit amazed at the number of people who use a
3D printer to print 2D objects.)

Really? Can you tell me what you consider a 2D print on a 3D printer?
A print has to have at LEAST 1 layer.

Larry

On Mon, 2026-02-16 at 07:28 -0800, Lee DeRaud via Discuss wrote: > Speaking as someone who has had a laser for decades, once built a CNC > router > (a story for another time), and now also has a 3D printer: > Anything done on the laser is an order of magnitude easier than on a > CNC > router. > Anything done on the laser is an order of magnitude faster than on a > 3D > printer. > Or more concisely, anything that CAN be done on the laser SHOULD be > done on > the laser. > > (The CNC was *much* more fun to design/build than it was to > use...ended up selling it a couple years later to free up garage > space. And I'm still a bit amazed at the number of people who use a > 3D printer to print 2D objects.) Really? Can you tell me what you consider a 2D print on a 3D printer? A print has to have at LEAST 1 layer. Larry
JB
Jon Bondy
Mon, Feb 16, 2026 5:05 PM

I agree that 3D printing sheet goods is not optimal.  I think what was
meant was any flat sheet, that could have been cut out of plywood or MDF
or plastic.

Jon

On 2/16/2026 11:27 AM, larry via Discuss wrote:

On Mon, 2026-02-16 at 07:28 -0800, Lee DeRaud via Discuss wrote:

Speaking as someone who has had a laser for decades, once built a CNC
router
(a story for another time), and now also has a 3D printer:
Anything done on the laser is an order of magnitude easier than on a
CNC
router.
Anything done on the laser is an order of magnitude faster than on a
3D
printer.
Or more concisely, anything that CAN be done on the laser SHOULD be
done on
the laser.

(The CNC was much more fun to design/build than it was to
use...ended up selling it a couple years later to free up garage
space. And I'm still a bit amazed at the number of people who use a
3D printer to print 2D objects.)

Really? Can you tell me what you consider a 2D print on a 3D printer?
A print has to have at LEAST 1 layer.

Larry


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

--
This email has been checked for viruses by AVG antivirus software.
www.avg.com

I agree that 3D printing sheet goods is not optimal.  I think what was meant was any flat sheet, that could have been cut out of plywood or MDF or plastic. Jon On 2/16/2026 11:27 AM, larry via Discuss wrote: > On Mon, 2026-02-16 at 07:28 -0800, Lee DeRaud via Discuss wrote: >> Speaking as someone who has had a laser for decades, once built a CNC >> router >> (a story for another time), and now also has a 3D printer: >> Anything done on the laser is an order of magnitude easier than on a >> CNC >> router. >> Anything done on the laser is an order of magnitude faster than on a >> 3D >> printer. >> Or more concisely, anything that CAN be done on the laser SHOULD be >> done on >> the laser. >> >> (The CNC was *much* more fun to design/build than it was to >> use...ended up selling it a couple years later to free up garage >> space. And I'm still a bit amazed at the number of people who use a >> 3D printer to print 2D objects.) > Really? Can you tell me what you consider a 2D print on a 3D printer? > A print has to have at LEAST 1 layer. > > Larry > > _______________________________________________ > OpenSCAD mailing list > To unsubscribe send an email to discuss-leave@lists.openscad.org -- This email has been checked for viruses by AVG antivirus software. www.avg.com