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.


United Lofted Parts?

WillPWillP Member Posts: 3
Hi all!

First time asking something here.

Here's my part link for reference:

This is just some jar I'm making for fun using the loft command, and possibly 3D Printing later.  I lofted a single rib and then circular patterned it 360 around the base.  I did another one in the opposite direction so it would crisscross.

My problem is that I can't get them to unite using the boolean command.  It always kicks me an error (Failed to resolve or something like that) and leaves me with 50 separate parts.  I know that I can just download the entire Part Studio as a single .stl file for printing, but I figure it would be good to know how to resolve this if it came up in the future.

Any suggestions?

Best Answer


  • Options
    andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭✭
    Answer ✓
    Try this

    Rather than two lofts I just did one and Mirrored the result.

    The key to getting the lofts to merge is in the Split Part operation, to clean up the interface for the subsequent Mirror/Merge (boolean)

    I had to reduce the number of the circular pattern by half because even then the model ran glacially slow for me, but you should be able to just edit that.
  • Options
    WillPWillP Member Posts: 3

    Rather than two lofts I just did one and Mirrored the result.

    The key to getting the lofts to merge is in the Split Part operation, to clean up the interface for the subsequent Mirror/Merge (boolean)
    Interesting!  Totally worked, thanks!

    Follow up question if you don't mind.  I understand that this worked, but I'm not exactly sure why it didn't work without splitting the face.  Does it have to do with the relative complexity of the loft vs some generic geometry (cube, sphere, etc)?  I had assumed the Union option would simply find all the overlapping body sections to unite them into one part without the need for splitting the face (though it obviously wasn't working).  As a rule of thumb should I ensure interfaces need to be flush for united lofted parts?

    Thanks again!

  • Options
    andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭✭
    I'm not entirely sure what was wrong beforehand - I noticed that the loft profiles were unconstrained and it occurred to me that possibly somewhere in the solid geometry which would result from the boolean there might be an instance of something not permitted.

    The most usual one is "zero thickness geometry"
    (If you're interested in delving into this, a search on this forum, or even a Google search, should throw up some discussions)

    I know from experience that an easy way to ensure that adjacent bodies do not touch at a single edge when combined into one is to make sure they extend past each other, then use a single plane or surface in the midzone of that mutual interpenetration to trim them both back to. 
    It's not so much trimming the "faces" (in your words) as trimming the solid volumes so they match exactly, which does the trick.

    When doing tricky models it usually pays to try to give the software routines something really clean by way of input solids, too... the way you were trying to do it would have created multiple tiny sliver faces. Even if it had worked, the performance hit would have been considerable once the circular pattern multiplied the instances of those faces. I guess it's even possible that it was that, alone, which caused the routine to cry foul.

    Because the model was already running so slowly for me, I gave up on trying to diagnose the problem, and just applied that fix (I dislike walking away not having learned anything, but I just ran out of time)

    If you do find the problem, I'd love to know!
  • Options
    andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭✭
    It might pay to have a think about whether the whole model can be made a lot cleaner, in terms of drastically reducing the number of faces, and totally eliminating sliver faces.

    The edges highlighted here are all unnecessary; it occurs to me that the outside of the entire lattice could actually be just one single face. (Hint: think subtractive, rather than additive, modelling)

    And there are sliver faces too, but you can only get a whiff of them by zooming right in, and glimpsing occasional phantom edges (like the one with the arrow) come and go fleetingly, like hunted animals in mist. (This is a closeup at the intersection of the crossbars of one of the "Kite" face collections, like the one at top right)

    There are several ways they could be eliminated (or better still, never arise in the first place) - any ideas?
  • Options
    WillPWillP Member Posts: 3
    Thanks again for the detailed response! (and also the homework.  It really got me thinking.)

    So my initial approach was actually going to be subtractive (the Shell Jar Part Studio in that part was the attempt at this), but figuring out how to pattern it escaped me.  I thought maybe I could pattern a cylinder of diamond cutouts and then project it onto the jar body, but my results were not great (at least aesthetically).  I really like the "organic" visual appearance I got with the revolved lofts, and patterned diamonds kept giving me uniform grid shapes (for obvious reasons).

    I also tried to pattern a diamond cut along a helix, but if the option of patterning a sketch along a curve exists, I couldn't find it.

    For the sliver faces, I imagine those form because at the intersections, the faces of the two ribs are not coplanar.  I'm not sure if there's a slick way of enforcing that in the loft, but a (possibly hacked) way to get rid of them off might be by revolving a cut around the inner and outer profiles of the jar.  It might shave a bit of the wall thickness off, but it would smooth the faces out.  

    Another (incredibly time consuming) way might be to go through and delete all of the sliver faces at each intersection by hand, but that sounds heinous to do.

    The only other idea I can think of is to make another jar that's a negative of the one that I want, and use it as a boolean subtraction tool.  I'm not sure if this would still run into similar problems with my lofts though, especially as my cutouts crossed.

    What are your thoughts?
  • Options
    andrew_troupandrew_troup Member, Mentor Posts: 1,584 ✭✭✭✭✭
    edited November 2015
    I sense a kindred spirit ! All of those are interesting ideas and some of them seem viable.

    But they seem a bit like letting the horse bolt prior to shutting the stable door - it's always preferable to have a model which is clean all the way through, to one which is cleaned up at the end. (I've done heaps of the latter, so it's a counsel of perfection)
    What's nice about abstract examples like your jars, though,. is you can use them to perfect your modelling.

    Here's a possible approach:

    Start with the solid jar.
    Instead of using a solid loft, to represent a single rib, I would loft a single surface, lofted through short lines (but not very short - see # below) sketched at the various station heights, representing the local  midline of that rib. These lines (if extended), would all pass through the central revolve axis.

    # The outer and inner extents of those lines would overlap the solid body of the jar.

    I would then "Thicken" that surface, and use a Boolean "Intersect" with the solid jar, to create a single rib whose inner and outer surfaces would be a perfect subset of the faces of the revolved solid, hence when you pattern them, they SHOULD match perfectly so that the outer and inner surfaces of the entire lattice, after uniting into a single solid, will each comprise a single face.

    This saves you some work, but that's a drop in the ocean compared to the work it saves the modelling kernel of Onshape.

Sign In or Register to comment.