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.
Observations on Curvature and Surfacing
S1mon
Member Posts: 2,804 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.
However...
Some challenges:
However...
Some challenges:
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
Tagged:
6
Comments
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
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.
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.
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.
Thanks for the writeup! I share all of these issues:
Website: ovyl.io
Thank you for the odd direction choice example.
Here's a trivial surface problem to solve with the new curvature algorithms.
https://cad.onshape.com/documents/1341644703882265a8ee39ce/
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.
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.
Website: ovyl.io
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.
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.
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.
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.
https://learn.onshape.com/learn/article/tips-for-high-quality-surfaces
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"
Regarding "Sketch curvature constraint is so brittle": this might be common knowledge, but for tangent continuity (G1) you need one free (unconstrained) control point after the endpoint. And for curvature continuity (G2) you need two unconstrained control points. If the control points next to the end point are too constrained, then the curvature constraint will not be satisfiable.