Welcome to the Onshape forum! Ask questions and join in the discussions about everything Onshape.

First time visiting? Here are some places to start:
  1. Looking for a certain topic? Check out the categories filter or use Search (upper right).
  2. Need support? Ask a question to our Community Support category.
  3. Please submit support tickets for bugs but you can request improvements in the Product Feedback category.
  4. 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.

Options

New Feature: 3D Printed Hole

Evan_ReeseEvan_Reese Member Posts: 2,072 PRO
edited January 2022 in General
I finally made time over the holidays to knock out a feature I'd been wanting to write for a while. It automates the process of converting round holes to a droplet shape so they 3D print cleanly without support material. I made a video tour here to show off all the bells and whistles. Go get the feature here. Let me know what you think!
It does this to holes:


Evan Reese / Principal and Industrial Designer with Ovyl
Website: ovyl.io

Comments

  • Options
    MichaelPascoeMichaelPascoe Member Posts: 1,766 PRO
    Yess!  Thanks @Evan_Reese


    Learn more about the Gospel of Christ  ( Here )

    CADSharp  -  We make custom features and integrated Onshape apps!   cadsharp.com/featurescripts 💎
  • Options
    matthew_stacymatthew_stacy Member Posts: 486 PRO
    Nice work @Evan_Reese!  Can you offer any guidance on how much 'tear-dropping' is required to maintain clearance for a round pin?  I realize that there are a gazillion variables involved from printer and material characteristics to hole size and orientation. 

    But if you were looking for minimal modification on a Ø1/4" hole, perpendicular to the build-direction what would you recommend?
  • Options
    Evan_ReeseEvan_Reese Member Posts: 2,072 PRO
    I'll probably just leave the Overhang Angle at 45° pretty much always, and then not think too much about how tilted the holes are or aren't since the feature automatically adjusts the amount of tear-dropping for you based on the hole angle. You still need to design the hole with some clearance to the shaft before using this feature. I'd probably start with 0.2mm for a rigid connection or something like 0.5mm for something meant to slide, but if I wanted to dial it in I'd do a test print with lots of holes slight variations in clearance to find the best one. Did that answer the question you asked?
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • Options
    matthew_stacymatthew_stacy Member Posts: 486 PRO
    I'll probably just leave the Overhang Angle at 45° pretty much always, and then not think too much about how tilted the holes are or aren't since the feature automatically adjusts the amount of tear-dropping for you based on the hole angle. You still need to design the hole with some clearance to the shaft before using this feature. I'd probably start with 0.2mm for a rigid connection or something like 0.5mm for something meant to slide, but if I wanted to dial it in I'd do a test print with lots of holes slight variations in clearance to find the best one. Did that answer the question you asked?

    Answered.  Thanks @Evan_Reese.
  • Options
    mahirmahir Member, Developers Posts: 1,296 ✭✭✭✭✭
    Nice. I've never even seen that type of hole for 3D printing. But I could have definitely made use of it and will do so in the future.
  • Options
    Evan_ReeseEvan_Reese Member Posts: 2,072 PRO
    I like it. I'm not sure if it's the first place I learned about it, but Angus from Maker's Muse explains it well. It's not just about overhang angles, it's also about how it's hard to approximate a round hole by slicing it into layers. https://youtu.be/j6508J94VsA
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • Options
    sebastian_glanznersebastian_glanzner Member, Developers Posts: 411 PRO
    @Evan_Reese
    Thanks for the amazing Feature-Script! 
    I just used it in a print  :)
  • Options
    Evan_ReeseEvan_Reese Member Posts: 2,072 PRO
    @Evan_Reese
    Thanks for the amazing Feature-Script! 
    I just used it in a print  :)
    Nice! glad it was useful
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • Options
    marshall_polandmarshall_poland Member Posts: 10 PRO
    Fantastic, I will use this a lot @Evan_Reese ! I just posted an improvement suggestion exactly for this, but will remove it since this covers it about perfectly.
  • Options
    Evan_ReeseEvan_Reese Member Posts: 2,072 PRO
    wohoo! thanks for letting me know.
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • Options
    STEGSTEG Member, User Group Leader Posts: 82 PRO
    edited March 15
    Great work! 👍

    Truncate is what I was doing manually.
  • Options
    Evan_ReeseEvan_Reese Member Posts: 2,072 PRO
    Glad to hear it
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • Options
    jelte_steur814jelte_steur814 Member Posts: 109 PRO
    edited April 23
    Hi @Evan_Reese

    I always use the 'truncate' setting of your 3D printed holes feature but have had it fail on me a couple of times.
    I've copied and changed the code to make it more robust.

    Moreover in one of my cases the evDistance in getPrinterZDirection function failed and it caused the whole feature to fail. I've haven't solved the rootcause  but made it so the feature still resolves. (couldn't quite figure out why the evDistance failed)

    I'd love for the community and you to benefit from my improvements rather than just forking another version off that won't benefit from future improvements.

    Can i share it with you to integrate it when you find the time?

    kind regards

    Jelte
  • Options
    Evan_ReeseEvan_Reese Member Posts: 2,072 PRO
    Hi @Evan_Reese

    I always use the 'truncate' setting of your 3D printed holes feature but have had it fail on me a couple of times.
    I've copied and changed the code to make it more robust.

    Moreover in one of my cases the evDistance in getPrinterZDirection function failed and it caused the whole feature to fail. I've haven't solved the rootcause  but made it so the feature still resolves. (couldn't quite figure out why the evDistance failed)

    I'd love for the community and you to benefit from my improvements rather than just forking another version off that won't benefit from future improvements.

    Can i share it with you to integrate it when you find the time?

    kind regards

    Jelte
    Thanks for looking into it! I'd be happy to incorporate improvements. Go ahead and share it with me if you don't mind. The more you can do to explain what you changed an why the better too.
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • Options
    Evan_ReeseEvan_Reese Member Posts: 2,072 PRO
    Thanks again to @jelte_steur814 for the code edits to mitigate some of the failure cases! I've got his code implemented and running in the newest version of the feature.
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • Options
    jelte_steur814jelte_steur814 Member Posts: 109 PRO
    awesome @Evan_Reese

Sign In or Register to comment.