Advanced surfacing question
Advanced surfacing question
Hi guys,
I am tackling a fairly complex surfacing problem. I need to create a surface shape for the bottom of a tortured plywood boat design. This shape has some compound curvature and twist. This surface will be used for many downstream processes, and therefore has to be as "clean" as possible - no singularities, no insanely small radius of curvature, and as natural as possible, so that later operations, such as Thicken, Offset, etc., would not fail. I built some simple 2D sketches that define the region of this surface, as well as a single curve in the middle to constrain it with more control.
Now, what I tried so far is Lofted Surface, Boundary Surface and Fill Surface. Neither of these seem to be doing a good job. Here are the issues:
Lofted Surface:
If produced using the long curves as profiles, and short arcs (at the rear and middle) as guide curves, it produces a singularity at the front tip (all mesh lines converge into a single point, which produces very bad shape there that is later almost impossible to Thicken):
I also tried inverse - loft through arcs to the point at the tip, using long curves as guide lines, but it also produces a singularity:
I also tried a different approach - using loft between curves, but using just a part of the side profile curve as profile, and using it's front part (the roundover at the front of the boat) as a guide curve. This produces a surface without a singularity:
However, Curvature evaluation tool shows that the surface is extremely irregular near the point where that side curve now meets the guide curve:
And if I try to Thicken this surface, it is impossible, showing that weird stuff is happening at the corner.
Boundary Surface:
I tried all these methods outline above with Boundary Surface, and although it produces slightly different shape, all these problems persist. Either a singularity up front, or bad curvature where the side curve transitions into the front rounding.
Filled Surface:
Now, surprisingly enough, this particular feature delivers a better result than either Loft or Boundary, producing no singularity or bad point:
This looks good on the first glance... Unfortunately, if I turn on Surface Curvature Combs, the longitudinal combs reveal that near the front of the boat, the surface turns concave:
This only happens with Surface Fill... That spot is good with Loft or Boundary. This is how it should look - surface convex all throughout:
So, bottom line is.. I can't find a combination that produces no singularity, no weird spots and keeps the surface convex all throughout. If only I could somehow combine the best of Loft/Boundary with Fill...
I am attaching the model (created with SW 2017), with all these attempts included. Could you please take a look and see if there is any way to improve the result? Feel free to delete all these features I created and reuse the sketches, I just left them all there to show how far I got.
P.S. Before you say it... Yes, it is extremely important to get these surfaces perfect. Even for something as crude as plywood construction. The CAD model has to be flawless as far as these complex surfaces are concerned. I suspect someone will try to convince me here that I am being too scrupulous, but I have quite a lot of experience designing and building these boats, and I have made mistake of thinking "it's good enough" in the past and using such bad surfaces in production. It was... Very expensive. So please let's not go there. Please only reply if you have ideas on how to fix these issues Thank you!
I am tackling a fairly complex surfacing problem. I need to create a surface shape for the bottom of a tortured plywood boat design. This shape has some compound curvature and twist. This surface will be used for many downstream processes, and therefore has to be as "clean" as possible - no singularities, no insanely small radius of curvature, and as natural as possible, so that later operations, such as Thicken, Offset, etc., would not fail. I built some simple 2D sketches that define the region of this surface, as well as a single curve in the middle to constrain it with more control.
Now, what I tried so far is Lofted Surface, Boundary Surface and Fill Surface. Neither of these seem to be doing a good job. Here are the issues:
Lofted Surface:
If produced using the long curves as profiles, and short arcs (at the rear and middle) as guide curves, it produces a singularity at the front tip (all mesh lines converge into a single point, which produces very bad shape there that is later almost impossible to Thicken):
I also tried inverse - loft through arcs to the point at the tip, using long curves as guide lines, but it also produces a singularity:
I also tried a different approach - using loft between curves, but using just a part of the side profile curve as profile, and using it's front part (the roundover at the front of the boat) as a guide curve. This produces a surface without a singularity:
However, Curvature evaluation tool shows that the surface is extremely irregular near the point where that side curve now meets the guide curve:
And if I try to Thicken this surface, it is impossible, showing that weird stuff is happening at the corner.
Boundary Surface:
I tried all these methods outline above with Boundary Surface, and although it produces slightly different shape, all these problems persist. Either a singularity up front, or bad curvature where the side curve transitions into the front rounding.
Filled Surface:
Now, surprisingly enough, this particular feature delivers a better result than either Loft or Boundary, producing no singularity or bad point:
This looks good on the first glance... Unfortunately, if I turn on Surface Curvature Combs, the longitudinal combs reveal that near the front of the boat, the surface turns concave:
This only happens with Surface Fill... That spot is good with Loft or Boundary. This is how it should look - surface convex all throughout:
So, bottom line is.. I can't find a combination that produces no singularity, no weird spots and keeps the surface convex all throughout. If only I could somehow combine the best of Loft/Boundary with Fill...
I am attaching the model (created with SW 2017), with all these attempts included. Could you please take a look and see if there is any way to improve the result? Feel free to delete all these features I created and reuse the sketches, I just left them all there to show how far I got.
P.S. Before you say it... Yes, it is extremely important to get these surfaces perfect. Even for something as crude as plywood construction. The CAD model has to be flawless as far as these complex surfaces are concerned. I suspect someone will try to convince me here that I am being too scrupulous, but I have quite a lot of experience designing and building these boats, and I have made mistake of thinking "it's good enough" in the past and using such bad surfaces in production. It was... Very expensive. So please let's not go there. Please only reply if you have ideas on how to fix these issues Thank you!
- Attachments
-
- surface example.SLDPRT
- (210.14 KiB) Downloaded 86 times
Re: Advanced surfacing question
It looks like at the keel of the boat you didn't have a way to control the direction of tangency. Is it dead sharp at the bottom or should it have some angle across the keel? You can set that up with a reference surface or with sketch lines.
Anyway, this is the kind of thing that the Fill surface is made for - removing singlularities.
I think if you add some sort of reference surface at the keel line, and maybe some additional spar sketches your fill surface will behave itself. You can't just give it no information and expect it to magically read your mind. So build a reference surface at the bottom and add some sketches to represent shape at the spars.
Anyway, this is the kind of thing that the Fill surface is made for - removing singlularities.
I think if you add some sort of reference surface at the keel line, and maybe some additional spar sketches your fill surface will behave itself. You can't just give it no information and expect it to magically read your mind. So build a reference surface at the bottom and add some sketches to represent shape at the spars.
Blog: http://dezignstuff.com
Re: Advanced surfacing question
Thank you for your reply, Matt! You are correct about the tangency. Thing is, it is a bit complicated in this case. This surface does need to be tangent at the keel, but only in the aft part of the boat - somewhere up to the middle constrain curve. From there on, it gradually transitions into a sharp wedge, finally arriving to a complete vertical position at the very front.matt wrote: ↑Wed Sep 28, 2022 12:24 pm It looks like at the keel of the boat you didn't have a way to control the direction of tangency. Is it dead sharp at the bottom or should it have some angle across the keel? You can set that up with a reference surface or with sketch lines.
Anyway, this is the kind of thing that the Fill surface is made for - removing singlularities.
I think if you add some sort of reference surface at the keel line, and maybe some additional spar sketches your fill surface will behave itself. You can't just give it no information and expect it to magically read your mind. So build a reference surface at the bottom and add some sketches to represent shape at the spars.
To achieve this, I usually solve it like so: split that keel line curve into two, create an Extruded Surface from the aft part, and use that piece for Surface Fill, specifying Tangent relation, while the rest of the boundary uses sketches with Contact relation:
This does solve the keel tangency. However, that part near the bow is still messed up. I would like to create these spar sketches like you suggested, but I have no idea how to create them in a way that would complement the natural flow of the surface, rather than mess it up even more. By having only one constraint curve, the surface naturally falls into a decently smooth shape (like a Spline with only start, end and one mid point). Adding more points/curves makes it very difficult to keep the curvature consistent. If you have any ideas how to do it, please let me know... Attaching this updated example.
- Attachments
-
- surface example v2.SLDPRT
- (145.99 KiB) Downloaded 46 times
Re: Advanced surfacing question
No, you're not. You're tackling a simple problem in a complicated way. Chop it up into simpler pieces.I am tackling a fairly complex surfacing problem.
B-surfaces play best when 4-sided. You have a awkward, elongated 3-sided topology. Slice it up. I would also make a separate patch for the "square" end as already shown.
Separate the end "triangle" and make it separately. Control the seam with c2 continuity and the world will never see the difference. But your model will behave much nicer.
One thing I noticed about Fill--it's much more robust even for simple 3- and 4-sided lofts. Better algorithm.
Re: Advanced surfacing question
Thank you, this is definitely a good suggestion. I attempted to build this surface like you said. I used Boundary Surface for the rear and middle parts, using Tangent to the keel line for the rear section and Contact to the middle (and Curvature in between to get that c2), and then for the front part, since it is a 3-sided topology, I used Filled Surface to avoid singularity, again, using Curvature relation to the adjacent middle surface.HerrTick wrote: ↑Wed Sep 28, 2022 7:04 pm No, you're not. You're tackling a simple problem in a complicated way. Chop it up into simpler pieces.
B-surfaces play best when 4-sided. You have a awkward, elongated 3-sided topology. Slice it up. I would also make a separate patch for the "square" end as already shown.
Separate the end "triangle" and make it separately. Control the seam with c2 continuity and the world will never see the difference. But your model will behave much nicer.
One thing I noticed about Fill--it's much more robust even for simple 3- and 4-sided lofts. Better algorithm.
image.png
Unfortunately, I can't seem to get that front-most part right. Although I did specify c2 continuity, the transition looks really weird, and the surface is warped near the seam:
I am trying various settings, but Fill Surface doesn't really have a lot to offer. I tried Loft/Boundary too, but they again produce a singularity. Could you please take a quick look, tell me what I'm doing wrong here? Attaching the file.
EDIT: I noticed just now that the second Boundary surface also has bad continuity at the edge of the first one, despite the Continuity relation... I can't seem to fix that either.
- Attachments
-
- surface example v3.SLDPRT
- (194.57 KiB) Downloaded 43 times
Re: Advanced surfacing question
One thing that I often suggest, and there are pros/cons to this approach, is rather than thinking of it symmetrically (i.e. only building half and then mirror) build that surface as a whole thing. This can, at time, take more to set up and would seem like overkill but there are times when having one continuous surface with no seam where the mirror happens than not.
Much of this methodology comes from way back in the day when I use to model cars in Alias and some of us would want the highest level possible. So the hood of the car, the bumper..etc we made sure that it was made as the whole surface not just half. In SW mirroring can lead to having the isoparms/points at the beginning/end of a sketch entity that do translate into the surface which might/can create more problems than not down the road.
Here's a video that shows a bit of what I am trying to describe. https://www.youtube.com/watch?v=Kj0mzojMG18&t=1s. I know this doesn't solve the singularity issue completely.
Also you may have to reside yourself to doing the thicken manually and not by using the command/feature. This is quite often a method that has to be done when the shell tool fails. That could be an entire different thread just explaining how the shell feature works, why it fails, and how to work around it. Some of what we're seeing is just overall Solidworks overall lack of progress in the surfacing features which, one could argue, are towards the higher end needs, but are still none the less severely needed and have been for over 15+ years.
Much of this methodology comes from way back in the day when I use to model cars in Alias and some of us would want the highest level possible. So the hood of the car, the bumper..etc we made sure that it was made as the whole surface not just half. In SW mirroring can lead to having the isoparms/points at the beginning/end of a sketch entity that do translate into the surface which might/can create more problems than not down the road.
Here's a video that shows a bit of what I am trying to describe. https://www.youtube.com/watch?v=Kj0mzojMG18&t=1s. I know this doesn't solve the singularity issue completely.
Also you may have to reside yourself to doing the thicken manually and not by using the command/feature. This is quite often a method that has to be done when the shell tool fails. That could be an entire different thread just explaining how the shell feature works, why it fails, and how to work around it. Some of what we're seeing is just overall Solidworks overall lack of progress in the surfacing features which, one could argue, are towards the higher end needs, but are still none the less severely needed and have been for over 15+ years.
Re: Advanced surfacing question
Even though the front part is 3 sided, don't make it that way. The Fill is the only way to successfully do 3 sided surfaces, and even then, the Fill makes it as a 4 sided patch and trims it back. So why don't you just do it that way yourself. Overbuild the surface to fill your requirements, and trim it back to what you need. That gives you more control and less worry about degenerate points.
Blog: http://dezignstuff.com
Re: Advanced surfacing question
There are special cases where this may not matter, but this does indicate an issue with your source curves. Also, these curves are both parabolas. Almost certainly c2 not possible.
Often, the edges are not what you want driving the underlying surface geometry. Almost seems like this should be a 3-edged patch cut from a 4-sided definition.
Re: Advanced surfacing question
I think HerrTick has the right idea. I would add the suggestion to break the tip into a 4 sided bit.