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.

Observations on Curvature and Surfacing

S1monS1mon Member Posts: 2,101 PRO
I'm pretty deep into a designing a new electric scooter for my company. There's a lot of surfacing work to achieve the industrial design. I've been taking a lot of advantage of Bézier curves in sketches, Bridging curve, Boundary surface and Face Blend. For the most part these newer tools are game changers for surfacing in Onshape. 


Some challenges:

  1. The curvature constraint in sketcher for Béziers is very "brittle". So many times a small change to the external references will cause a curve to go red. I can often fix it by deleting the curvature constraint and immediately reapplying it. Any time this happens, it means that the D-Cubed solver is not doing its job very well, or perhaps the way that Onshape is interfacing with it is not effective. We also really need a G3 sketch constraint.
  2. Bridging curve is very useful, especially now that it can take edges and surfaces as inputs. However, it also still really needs a G3 option. I wouldn't be fighting with #1 half as much if Bridging curve could do G3.
  3. Bridging curve is pretty slow to react to manipulator/value tweaks or rebuilding. It's not as fluid or interactive as other CAD tools, or even the sketcher. I realize it's often solving things in 3D, but it feels slow.
  4. With seemingly minor or unrelated tweaks to features upstream, Bridging curve often flips direction on inputs or edge direction changes and an edge position needs to be changed from 0.25 to 0.75. I realize that a lot of work goes into making these things robust, but even more robustness and intelligence would help. It seems especially frustrating when the curve you want is close to a straight line, and one or both ends flip and make something that pretty much no one ever wants.
  5. Boundary surface badly needs more upgrades (curvature constraints, internal guides, control over degree). In many cases it's better than Loft or Fill about making cleaner surfaces, but not always. It still sometimes increases the degree of the input curves without any obviously good reason, or it twists up the internal CVs in a way that the other tools don't. I'm also finding weird cases where Loft will take the same inputs and create a surface, but Boundary will just refuse to create anything. The error messages are not always clear.
  6. Face blend is very powerful, but takes a lot to really use its potential. @GregBrown did a good demo video, but as he alluded, there's so many combinations of options, it's hard to fully grasp all the power here.


  • lanalana Onshape Employees Posts: 682
    edited August 18
    Thank you for your feedback. Have you filed bugs with examples of Boundary surface not behaving?  We need real geometry in order to see what is going on.

    Also It would help a lot to see several examples for 
    With seemingly minor or unrelated tweaks to features upstream, Bridging curve often flips direction on inputs or edge direction changes and an edge position needs to be changed from 0.25 to 0.75

    Attach to the ticket a link to the document state in which it breaks - We need to see what sort of changes cause it in order to design a robust reference.

  • S1monS1mon Member Posts: 2,101 PRO

    I’ll try to catch these kinds of things when they happen, but several of these issues are easy to fix when they break, and honestly something that I’ve dealt with a lot in other CAD systems, so when I’m in the middle of fixing a “tree of blood”, my focus is so deep in the model that it’s hard to pull out and document bugs adequately so they can be fixed. I reflexively flip the direction of the tangent in Bridging curve when it does something stupid or I change the edge reference from 0.35 to 0.65 when a downstream surface fails spectacularly. It’s more that all these little things are building up into major frustration. In an ideal world, the parametric changes I was making would trickle down and nothing would break, but the reality is that complex surface models are hard, especially when so many constraints are brittle. This post was an attempt to start the conversation. 
  • S1monS1mon Member Posts: 2,101 PRO

    Here's a really obvious example that happens to me all the time. I create a brand new Bridging curve, each end reference is a vertex and an edge, and the default is to create a curve with both ends going the opposite direction of what I want. It's easy enough to flip the direction arrows, but each end should be able to see that the shortest path with the least tortuous resulting curve is the opposite of what it's doing. Whatever logic is resulting in this behavior is likely what causes it to do similar things when rebuilding and references need to be rethought. I can also try to document this in a support ticket with a more obvious/simple model.

    This example is 3D, but if you were to flatten the curve, in general, I would say that I almost never create Bridging curves which creates an "arc" of much more than 90 degrees. To be safe, maybe there could be an upper limit of 120, but this is close to 180, which just makes no sense as the default behavior. Sure if I'm crazy, and I really want to torture a curve, I should be able to flip the arrows to make something where the tangents are close to 180, but the default shouldn't be to do this.

  • Evan_ReeseEvan_Reese Member Posts: 2,034 PRO
    Thanks for the writeup! I share all of these issues:
    1. Sketch curvature constraint is so brittle I rarely use it.
    2. G3 would be great (Let's pick back up our curve conversation soon)
    3. Slow manipulators - yep.
    4. defining bridging curve directions - I've not used Bridging Curve on edges partly because I don't feel they are going to be stable for me, even though it's powerful. I tend to favor locking them down in a known way which is laborious, but predictable. I'd love for some updates to earn more of my trust here.
    5. Boundary pretty much needs curvature to be something I find myself reaching for. Once it's there, I think I'll use it often.
    6. Face Blend - Yep, I have taken a few hours to play with it, watched the videos, and I still don't really know how to use it. 
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • lanalana Onshape Employees Posts: 682
    @S1mon I appreciate not wanting to pause to file a bug. Maybe inserting a version with a name `Bug this later` is less of a distraction?
    Thank you for the odd direction choice example.  
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 1,992 PRO

    Here's a trivial surface problem to solve with the new curvature algorithms.


    I've shared this with OS support, hopefully you can see it.

    Take a surface and split it:

    Check the 2 surfaces for continuity and it looks good:

    Delete the inner patch and create a new surface with no continuity (none):

    Add tangent continuity:

    Add curvature continuity:

    Continuity doesn't appear to be getting better. I feel I should be able to fill the trim area in without any traces.

  • Evan_ReeseEvan_Reese Member Posts: 2,034 PRO
    definitely a good example of a challenge area. In my mind this kind of issue makes the case for an Untrim tool. I've often wanted that to restore surfaces that were cut back. Extend Surface kinda gets close, but doesn't solve for every area like this unless I'm missing something.
    Evan Reese / Principal and Industrial Designer with Ovyl
    Website: ovyl.io
  • S1monS1mon Member Posts: 2,101 PRO

    In my experience if you select those edges and use the fill tool, you’ll get back the original surface. Loft and Boundary will have varying degrees of success. 
  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 1,992 PRO
    edited August 25
    Fill with curvature continuity:

    S1mon this does look good. It's proof that the other surface techniques could work.

    Measure surface to surface deviation:

    I don't believe these surfaces are the same, they're close but they're not the same. Cadkey & fastSurf could validate these 2 surfaces and show the maximum deviation between them, I wish OS could tell me.

    Evan, I have no idea what parasolids does with the trimmed surfaces. With Pro/e you could untrim surfaces properly but with para-solid, who knows what they're doing? I know it's old but with IGES 144 surface trim definitions, you can untrim the stack because you have access to the base surface & trimming boundaries. Maybe para-solids is more modern?

    As S1mon pointed out, move boundary performs linear extensions and I try not to use them. I agree, they need to be G2 & G3.

    Solidworks could never perform the above exercise accurately either. I've been doing this little exercise for a really long time not knowing what parasolids is up to. I didn't know if I should believe the curvature combs or not. I'm hoping it gets cleaned up.

  • S1monS1mon Member Posts: 2,101 PRO
    In Solidworks, you could untrim, or you could also select interior holes in surfaces and hit the delete key to remove the trim.

    Fundamentally, with NURBS surfaces, there’s always a full surface definition and optionally trim curves (internal and/or external) which define a sub part of the underlying surface. Parasolid definitely lets you untrim things. It’s really a matter of it being supported by Onshape.

    As far as extending surfaces and/or curves, Parasolid has several options for how to do that. With many surfaces (or curves) it’s possible (within some limits) to extend and maintain the degree and shape of the original. For some crazy reason the tools in Onshape are only using the linear extension for curves and the options for surfaces are not always great either. 
  • lanalana Onshape Employees Posts: 682
    edited August 25
    Billy, Thank you for your example. A some-what off-brand use, but Move boundary would remove inner edge loop: 

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 1,992 PRO
    edited August 27
    Didn't think of that one.

    Tangent move boundary:

    Curvature move boundary:

    I'm almost thinking I'd like to see discontinuous curvature combs for the "tangent option" especially now that we have a "continuous option" inside move boundary.

    This example isn't about filling a hole in a surface. I'm using a parametric modeller and I'd suppress the hole to remove it. Also, I normally go to the initializing curves to extend a surface and rebuild everything versus move boundary, it feels like I have more control. Parametrics helps in so many ways to control organic shapes. This example I'm showing is about class A surfaces and trying to cleanup the blends. I'm trying to get the curvature combs to tell me a story.

    I stay away from non-parametric surface modelers. I've never been in a design review when a design didn't change and I don't like starting over to incorporate change. 

    I'm hoping for class A surfaces inside onshape because design work requires parametrics, surfaces & solids and I don't want to pass things around to design a product.

  • billy2billy2 Member, OS Professional, Mentor, Developers, User Group Leader Posts: 1,992 PRO
    edited September 7
    I just read this tip and thought it was useful.


    It explains why a loft won't patch these boundaries and that we should be using boundary surfaces. You can see at the transitions, there's a discontinuity because boundary surface is currently tangent only. I suspect with G2, the curvature combs will become more continuous. This is still a nice representation of what I'm trying to do.

    For fun, I made a copy of the original surface before trimming and I'm showing the 2 surfaces above. You can easily see the before/after operation and that the 2 surfaces aren't the same.

    Thanks for the "tips on high quality surfaces"

Sign In or Register to comment.