Mortise and tenon joint as a Library Feature

laukejas
Posts: 200
Joined: Sun Sep 05, 2021 8:27 am
Answers: 0
x 43
x 114

Mortise and tenon joint as a Library Feature

Unread post by laukejas »

I am developing a Library Feature to split a part into two pieces with a mortise and tenon joint with a small gap between the two:

Image

This is for 3D printing, I tried many different joints and this one is very convenient for some scenarios. I will have a model which I'll need to split into ~50 bodies using many instances of this Library Feature. Normally I'd use surfaces to build a body that represents the cavity, and the subtract it from the main body to split it into two. Unfortunately Library Feature doesn't support surfaces or Combine.

So I worked around like this:

1. Split the part using Cut-Extrude. Unfortunately this requires a sketch that envelops the part, but I didn't find a good alternative here.

Image

2. Create offset sketch on the face of the lower piece, and extrude it upwards:

Image

3. Add chamfer to the edge loop of the lower part (this is required for printability):

Image

4. Reuse the same sketch to make a cut into the upper part:

Image

5. Reuse that sketch again to make a thin-cut into the upper part again (to add clearance gap). Done.

Image

Now while this works (all these features are accepted as part of Library Feature), there are two big issues:
1. The first cut requires an enveloping sketch - it doesn't automatically "capture" the outer silhouette of the part at the plane level;
2. Because the extrusion is created using offset sketch, it creates a Library Feature references to 4 edges:

Image

Of course these edges cannot be selected when using Library Feature part, since they don't exist until the first cut is made. And even if one could select them, the bigger issue is that not all parts I will cut will have 4 edges - typically much more, and they might be lines, arcs, splines, etc.

Can anyone suggest a better approach to build this Library Feature without these limitations? Attaching the library part to this post if you want to take a look (saved with SW 2021).
Attachments
dowel connection.SLDLFP
(186.43 KiB) Downloaded 58 times
User avatar
matt
Posts: 1589
Joined: Mon Mar 08, 2021 11:34 am
Answers: 19
Location: Virginia
x 1219
x 2373
Contact:

Re: Mortise and tenon joint as a Library Feature

Unread post by matt »

You can save the splitting surface body as a library, and then use the Intersect feature to split the body and keep both solid bodies. That's the part that turns out to be the trick - keeping both bodies instead of throwing something away.

You might try this as a tutorial for the Intersect feature:
https://episodes.dezignstuff.com/blog/body-management/
laukejas
Posts: 200
Joined: Sun Sep 05, 2021 8:27 am
Answers: 0
x 43
x 114

Re: Mortise and tenon joint as a Library Feature

Unread post by laukejas »

matt wrote: Sat Sep 09, 2023 7:43 pm You can save the splitting surface body as a library, and then use the Intersect feature to split the body and keep both solid bodies. That's the part that turns out to be the trick - keeping both bodies instead of throwing something away.

You might try this as a tutorial for the Intersect feature:
https://episodes.dezignstuff.com/blog/body-management/
Thanks for the suggestion, but the splitting body would have to have a unique shape in pretty much every joint, because it has to follow the contour of the section of the part at the split area, so I don't think that would work...
User avatar
Krzysztof Szpakowski
Posts: 63
Joined: Sun Mar 14, 2021 4:28 pm
Answers: 0
x 58
x 75

Re: Mortise and tenon joint as a Library Feature

Unread post by Krzysztof Szpakowski »

Can't you use the boss/groove command? It seems to do exactly what you want to achieve.
image.png
laukejas
Posts: 200
Joined: Sun Sep 05, 2021 8:27 am
Answers: 0
x 43
x 114

Re: Mortise and tenon joint as a Library Feature

Unread post by laukejas »

Krzysztof Szpakowski wrote: Sat Sep 09, 2023 11:49 pm Can't you use the boss/groove command? It seems to do exactly what you want to achieve.

image.png
Yes, you are correct, it does (except for that little chamfer), but the issue is Lip&Groove can't be used in a Library Feature either, and setting it up for every single joint is just too tedious...
User avatar
Krzysztof Szpakowski
Posts: 63
Joined: Sun Mar 14, 2021 4:28 pm
Answers: 0
x 58
x 75

Re: Mortise and tenon joint as a Library Feature

Unread post by Krzysztof Szpakowski »

laukejas wrote: Sun Sep 10, 2023 5:40 am Yes, you are correct, it does (except for that little chamfer), but the issue is Lip&Groove can't be used in a Library Feature either, and setting it up for every single joint is just too tedious...
I'm not sure what you consider a "small bevel" but if you're thinking about tapering the side surfaces of the lip or groove, it's possible. You can also save your settings in a template file to use them as defaults.
laukejas
Posts: 200
Joined: Sun Sep 05, 2021 8:27 am
Answers: 0
x 43
x 114

Re: Mortise and tenon joint as a Library Feature

Unread post by laukejas »

Krzysztof Szpakowski wrote: Sun Sep 10, 2023 7:19 am I'm not sure what you consider a "small bevel" but if you're thinking about tapering the side surfaces of the lip or groove, it's possible. You can also save your settings in a template file to use them as defaults.
I meant this little chamfer here: Image

Yes, I can save the settings, but the issue with Lip&Groove is that I still need to manually select all the edges around the joint of the part. There is no option to select a face or loop, each edge has to be selected individually. Also, if geometry changes and the number of these edges changes as well, the feature becomes broken. I know I am being a bit scrupulous here, but like I said, there will be dozens if not hundreds of these joints, so I need to automate their creation as much as possible, so they don't break when underlying geometry of the joined parts changes.
User avatar
SPerman
Posts: 2056
Joined: Wed Mar 17, 2021 4:24 pm
Answers: 14
x 2227
x 1878
Contact:

Re: Mortise and tenon joint as a Library Feature

Unread post by SPerman »

I probably don't understand all of the complexities of your specific problem, but I use s different approach.

I would create a sketch block, and use that as the cutting geometry.
image.png
WIth that sketch, I do an extrude cut, thin feature, mid plane. (I find 0.015" makes for a nice fit.) Keep all bodies and you're done.
image.png
-
I may not have gone where I intended to go, but I think I have ended up where I needed to be. -Douglas Adams
laukejas
Posts: 200
Joined: Sun Sep 05, 2021 8:27 am
Answers: 0
x 43
x 114

Re: Mortise and tenon joint as a Library Feature

Unread post by laukejas »

SPerman wrote: Sun Sep 10, 2023 8:07 am I probably don't understand all of the complexities of your specific problem, but I use s different approach.

I would create a sketch block, and use that as the cutting geometry.

image.png

WIth that sketch, I do an extrude cut, thin feature, mid plane. (I find 0.015" makes for a nice fit.) Keep all bodies and you're done.

image.png
Thanks, this is a nice idea, but as you can see from my screenshots, the joined parts are curving, so it can't be a straight cut - it has to be swept. This could be done by selecting an edge, but as I'm trying this right now, it doesn't seem to work nicely due to the complexity of placing that initial sketch and making sure the cut extends just where it needs to be. Library Feature limitations make this a headache... I'll keep trying.
User avatar
Krzysztof Szpakowski
Posts: 63
Joined: Sun Mar 14, 2021 4:28 pm
Answers: 0
x 58
x 75

Re: Mortise and tenon joint as a Library Feature

Unread post by Krzysztof Szpakowski »

laukejas wrote: Sun Sep 10, 2023 8:20 am Library Feature limitations make this a headache...
It is precisely because of the diversity of patterns that Lip/Groow works the way it does. No possibility of greater automation. The limitations you write about apply here. If you used it, you wouldn't have a headache, but maybe a finger ache. From clicking ;-)

Let me repeat the mantra once again: The program cannot know what you want to do, you must know what the program can do. This is what being a good operator of any program is all about. On knowing its limitations and not taking up way that will must end in failure.
Post Reply