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.

Booleans on parts with tangent surfaces

tony_459tony_459 Member Posts: 206 ✭✭✭
edited February 2020 in Using Onshape
In the real world, I expect that if I lay one part on top of another so that their surfaces are tangent, then I can glue them or weld them together so that they are joined.
But this seems a difficult thing in Onshape. Much of the time, if surfaces or edges are tangent, then the Boolean fails. It seems silly to add 1/100th of an inch to artificially overlap the tangent surfaces just to get the Boolean to work.
Does anyone know why tangents are such a problem with Booleans? I avoid them where I can, but sometimes the parts to join just have to be tangent---like a panel to be welded on a beam or strut...


  • NeilCookeNeilCooke Moderator, Onshape Employees Posts: 4,942
    Simple explanation - if the parts touch at an infinitely small line or vertex, then there is no volume, so it is not a valid solid (I don't think glue would stick either). To make parts that touch behave as one part, please use Composite Parts.
    Senior Director, Technical Services, EMEA 
  • Jake_RosenfeldJake_Rosenfeld Moderator, Onshape Employees, Developers Posts: 1,646

    Could you give an example?  If it is an edge-to-edge surface it should work.  But if they are solid parts as Neil mentions, they do need some overlap.
    Jake Rosenfeld - Modeling Team
  • tony_459tony_459 Member Posts: 206 ✭✭✭
    Ah! I'll try composite parts. Thanks!
  • tony_459tony_459 Member Posts: 206 ✭✭✭
    edited February 2020
    An example of the boolean struggles I have all the time.

    The mating surfaces are coincident. I made sure of it by replacing the mating surface on one part with the mating surface on the other.
    In the real world, you can glue these parts together. In the pure geometry world, I'm sure you can do the same. A bit confused as to why booleans like this would fail.
    I can get the boolean to work by replacing the remaining surfaces, but this creates overlap with the parts that are supposed to go right behind. Plus, it changes my geometries in ways that I had not intended, which means I cede control over my model for the sake of a rote boolean operation...
    Compositing the parts together isn't ideal, since the two geometries form one continuous solid, not two solids rigidly bonded together...
  • NeilCookeNeilCooke Moderator, Onshape Employees Posts: 4,942
    Can you share the URL?
    Senior Director, Technical Services, EMEA 
  • scott_garman232scott_garman232 Member Posts: 1 EDU
    Overall, I am enjoying learning to use Onshape, but it is frustrating to keep running into this boolean failure.

    Is there a way to make this very simple part with Onshape? It is part of the first project we teach our students.

    A 2" cube with two 1" cubes removed from opposite corners. Yes, the innermost corners of the removed 1" cubes are coincident with the center of the 2" cube.

    It is very easy to make in Fusion 360. I am sure there is a fundamental difference in the technologies and I understand there are always advantages and disadvantages.

    But I really want to be able to make this part. 
  • MBartlett21MBartlett21 Member, OS Professional, Developers Posts: 2,025 EDU
    Onshape uses the Parasolid kernel, which means that all parts must follow Parasolid's rules.

    When you try to cut the 1 inch parts out of the two inch parts, it will fail, since the very centre is non-manifold (There is no thickness between the opposite faces at that point)
    mb - draughtsman - also FS author: View FeatureScripts
  • tony_459tony_459 Member Posts: 206 ✭✭✭
    But isn't it a silly limitation? I mean, that boolean would never fail in the real world. It just wouldn't. I can cut parts right at corners all day, but if I try it in Onshape, I hit a wall. I have to go back and add the tiniest amount of thickness just to avoid a boolean error. A quirky kernel is better than no kernel, but man, it's still a quirky kernel...
  • ilya_baranilya_baran Onshape Employees, Developers, HDM Posts: 1,156
    It's not a quirk -- things are similar with ACIS-based kernels, as well as CATIA's kernel.  The already difficult math gets way more difficult as soon as you allow non-manifold geometry, which is why no professional CAD system I'm aware of supports it (or at least not remotely well).
    Ilya Baran \ VP, Architecture and FeatureScript \ Onshape Inc
  • tim_hess427tim_hess427 Member Posts: 648 ✭✭✭✭
    @tony_soares459 - Can you provide an example of something you'd be able to fabricate, but would cause a boolean to fail? 

    If you model two cubes and the only have one single edge that's coincident (as in one of the examples above), that's and infinitely small thing connecting the two cubes. To make such a thing in the real world would be physically impossible. Either the two cubes are connected by something that is measurable, or they're not (which would leave you with two disconnected cubes). The manifold constraints in the kernel are reflecting this physical reality. 

    Its hard to tell from your screenshot above if the boolean is failing in this same way - it looks like it may have been a different issue. Coincident faces shouldn't create any boolean issues. 

    @scott_garman232 - I tried looking at your document, but it looks like its been deleted or its not public. 
  • tony_459tony_459 Member Posts: 206 ✭✭✭
    edited September 2020
    @tim_hess: In the real world, I can always always weld two parts with tangent surfaces---two panels positioned to form a T, say. I've lost count of the times something that trivial failed in Onshape.
    I'm not talking about those cases in which the contact area is zero---you expect those to fail, and those would fail in the real world too, since there is no contact area to join. I'm talking about the cases in which the tangent contact area is decidedly nonzero, yet, the boolean fails---until I extend one surface the slightest tiniest fraction of an inch so that it penetrates the second surface.
    Then, the boolean goes through.
  • NeilCookeNeilCooke Moderator, Onshape Employees Posts: 4,942
    edited September 2020
    A tangent contact area, by definition, has zero volume, that’s why it fails. If you want to simulate welding two parts together while maintaining a zero contact area, use composite parts - that’s what they’re there for. 
    Senior Director, Technical Services, EMEA 
  • matthew_stacymatthew_stacy Member Posts: 430 PRO
    I dare go one step further than @NeilCooke.  The contact area (not just volume) between non-overlapping, tangent surfaces or solids is zero, unless both mating surfaces are locally flat.the contact is a point or a line, neither of which have any area.

    Mention was made earlier in this thread of "welding" two cubes together where they meet at a point (corner).  I don't believe that example is relevant because it relies entirely on the weld fillet to add nonzero contact area.  You can't create a sound mechanical joint between two bodies that meet only at a singularity regardless of whether you're in the garage or using the parasolids kernel.
  • S1monS1mon Member Posts: 1,965 PRO
    PTC's other product, Creo, uses the Granite engine, which can handle at least some of these types of singularities. In Onshape, Solidworks and anything using the Parasolid kernel, it's not possible for the circular hole (below) to be tangent to the rectangular hole (I made them very close, but not touching): 

    This is also why cross sections will sometimes fail - the cutting plane ends up being tangent to some hole or a similar issue.
Sign In or Register to comment.