Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.
First time visiting? Here are some places to start:- Looking for a certain topic? Check out the categories filter or use Search (upper right).
- Need support? Ask a question to our Community Support category.
- Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
- Be respectful, on topic and if you see a problem, Flag it.
If you would like to contact our Community Manager personally, feel free to send a private message or an email.
Designing laser cut finger joints by hand is tedious. Here's how to automate it! (tutorial)
It's no fun spending hours manually making tabs for laser cut (or CNC router cut) finger joints, only to have them break when a model parameter changes. Fortunately, with Onshape, we have some awesome FeatureScript-based solutions, so I made a tutorial to demo/show how to use them! I'm using @lemon1324's "Laser joint" and "Auto layout" FeatureScripts. Huge thanks for making such awesome automations!
Link to the tutorial:
https://youtu.be/YPoJ484-7tI
If you have any questions, feedback, or video/tutorial ideas, please let me know! Also, I'm planning on trying to make Onshape tutorials Monday/Wednesday/Friday. What would be an appropriate frequency/amount to post them to this forum? I really don't want to spam/clog things up/annoy anyone! I'm happy posting none at all, one a week, a "weekly digest," or each one as it comes out, or something else, just let me know.
Link to the final public document: https://cad.onshape.com/documents/911c7d4c83c10390d2f023d5/v/ef952579db9528bbe57e12be/e/aa4fee8b5651082d4d436e1c
Link to the tutorial:
https://youtu.be/YPoJ484-7tI
If you have any questions, feedback, or video/tutorial ideas, please let me know! Also, I'm planning on trying to make Onshape tutorials Monday/Wednesday/Friday. What would be an appropriate frequency/amount to post them to this forum? I really don't want to spam/clog things up/annoy anyone! I'm happy posting none at all, one a week, a "weekly digest," or each one as it comes out, or something else, just let me know.
Link to the final public document: https://cad.onshape.com/documents/911c7d4c83c10390d2f023d5/v/ef952579db9528bbe57e12be/e/aa4fee8b5651082d4d436e1c
Get in touch: contact@alnis.dev | My personal site: https://alnis.dev
@alnis is my personal account. @alnis_ptc is my official PTC account.
@alnis is my personal account. @alnis_ptc is my official PTC account.
8
Comments
I hadn't seen the auto layout FeautureScript before either. Definitely is going to come in handy for me.
Thank you for making these videos, please keep them coming!
One thing I really love about the auto layout feature is that it will automatically make countersunk holes face downward (avoiding accidentally cutting out the countersink diameter along with the hole diameter). Saves a lot of time and material!
@alnis is my personal account. @alnis_ptc is my official PTC account.
@alnis is my personal account. @alnis_ptc is my official PTC account.
That's a good video idea! I'll add it to my production queue/schedule. Onshape is definitely the easiest CAD program for 3D printing I've used so far.
@alnis is my personal account. @alnis_ptc is my official PTC account.
Great video, thanks
One remark, isn't it faster-easier to make a final sketch and use the Use command, then you don't need to worry about scaling the drawing.
After creating the sketch, just right click and export.
see document,
https://cad.onshape.com/documents/25ca04e8c8de81ed446c584b/w/f2d6fd729bdf46ff7a520d10/e/dcdab1aeee364364f001a12a
@dirk_van_der_vaart that is definitely a faster/easier way to get a DXF, but there are two main disadvantages:
1. Since "Use" only projects the outlines of faces, not the holes on their inside, you have to manually project any holes or slots on the panels.
2. If we make some sort of major update to the parts (e.g. changing the number of tabs on an edge, adding/removing some pieces, etc.), the drawing will update completely automatically when we press the yellow refresh button, while for the sketch, we'll have to delete some old entities and re-project new ones.
@alnis is my personal account. @alnis_ptc is my official PTC account.
A couple of small notes:
- You mention the prerequisite is multiple intersecting panels of a uniform thickness, which is maybe a little ambiguous - only each part needs to be planar, different parts in the single joint can have different thicknesses.
- At one point you add allowance internal to the joint of half the kerf. My own workflow is to drop in a kerf compensation feature after doing the auto layout to do all of the compensation at once. The reason for doing it this way is so that all sides of the part are compensated, and it comes out to nominal size. If you don't do this, assembling a joint so that the parts touch means that the ends of the pins end up overlapping by your kerf (also things you thought were 25mm end up as 24.8). The intent of the allowance features is if you want to adjust the nominal fit of the joint. The way you're doing it does work, it just leaves other aspects of the part small by half of a kerf.
- I'll go in and make sure adaptive pin sizing also remembers previous.
- You might also find a tutorial I did for a class at Stanford interesting for some ideas. I'm not doing the thicken here because I wanted to illustrate how you might want to do a laser-cut structure that has subassemblies, so my workflow is part studio(s) -> assembly(ies) (or assembly with copied subassemblies) -> in-context copy all in place -> laser joint -> kerf compensation -> auto layout -> drawing. If you don't have repeated subassemblies, then you'd have part studio -> laser joint -> kerf compensation -> auto layout -> drawing(s).
- That same tutorial has some recommended parameters for a typical laser and 3/6mm ply that give pretty good slip fit joints that sit flush.
Again, great video tutorial, just wanted to leave some thoughts here in case it helps you or anyone else use this set of FeatureScripts.Definitely agree with you on drawings being the best way to go - I tried doing the sketch to DXF thing the first time I made this feature and rapidly figured out how annoying it was when I made any changes that resulted in a change in the number of regions.
PhD, Mechanical Engineering, Stanford University
That assembly-based method with in-context design looks super useful. The tutorial you made is very clean and well-put-together! Also, thanks for the suggestions for the slip fits. Now that the pandemic seems to be a bit better under control (or at least better understood) in Seattle, the university has started to re-open maker spaces as long as social distancing is observed, so I was able to finally go and laser-cut some projects. They absolutely fit together, but I think that the overall kerf compensation method would have made it work even better. Here's a picture of one of the things I made using your custom feature:
I'll add the link to your tutorial in a pinned comment on the YouTube video, as well as the corrections and improvements. Hopefully, I'll have the second version up sooner rather than later!
Thanks for all of the great feedback and suggestions!
@alnis is my personal account. @alnis_ptc is my official PTC account.
I did check the code, and added a REMEMBER_PREVIOUS to the joint operation type so that adaptive pins should now remember previous when you make several joints. Latest is V4.3.1.
PhD, Mechanical Engineering, Stanford University
I use this mainly for laser cut steel parts and normally use the corner overcut as this helps with fitment on tighter tolerance joints as the laser tends to round the corners a little.
Thanks @lemon1324 for the great FS.
Twitter: @onshapetricks & @babart1977
Or most likely I'm trying to use his FS completely incorrectly.... I probably don't have to go through this process to use his scripting but what is the procedure? (Likely a different thread is better for this question because it's a basic FS import type question/use public FS type question however since I'm trying to use this specific one I'm asking here.)