How Can I create a smooth single surface from polysurfaces?
Create single surface.3dm (3.1 MB)
Hi Sajesh,
I am not an expert. But normally, I would draw curves along the outer four edges of the shape, using InterpCrv. Then Edgesrf to create a single surface, using the four crvs I have drawn.
You wonât get 100% same shape, but something close.
How much experience do you have with Rhino?
The geometry appears to be triangular mesh which was converted to surfaces, possibly using the ToNURBS command.
Patch
may be useful. Curves along the outer edges will also be needed to either trim the results of Patch
or to create a starting surface for Patch
.
Curves along the edges can be created by first joining the surface/polysurfaces into as few polysurfaces as possible. DupBorder
to obtain polycurves around the borders of the polysurfaces. The result will be polylines/deree 1 curves. Explode
the polylines and delete the lines which are not on the border of the object. Join
the remaining curves. FitCrv
to obtain degree 3 curves with fewer control points.
If you have the original mesh then use it as the source of points for Patch
. If the original mesh is not available first Explode the polysurfaces into individual surfaces. Then ExtractPt
the control points of the individual surfaces which for these particular surfaces are the corners. (In general control points are not just the surface corners.) If the extracted points are in point clouds Explode
the point clouds. SelDup
to select duplicate points and Delete
the duplicates.
this will have to be blended or something:
so I avgâed them:
noticing more issues:
Iâm getting alot of weird duplicate curves when trying to pull to these surfaces:
So, that method would be very tedious.
It might be better to convert to mesh and use subD remesh or something. It all depends on design intent.
aprox dist from origin:
these are really weird srfs, I canât quad mesh them and canât pull crvs in a timely manner so taking a break:
really weird. kinda disappointed in my abilities or lack thereofâŠ
Iâll take a look here though. Props to however you did this
although Iâm not seeing the same thing:
I was able to find a scenario where one boundary curve was going in a direction back into itself.
I corrected it by using âdupedgeâ rather than âdupboundaryâ, and finally had a better result:
but due to the foundation polysrf being difficult to conform to, within tight tolerance, this can be very tedious without knowing what the allowance for deviation is â relative to design intent.
basically Iâd continue this process and after a few hours I might have something presentableâŠ
unfortunately, the many triangle srfs and lack of matched edges are creating very tedious natureâŠ
I tried many meshing techniques, but would probably have to use different software in that direction.
My first take on this is stay away from it!! How did you end up with such complicated (disjointed) stuff?
LoL
Hereâs a âquickâ try - maybe itâll trigger some evolution (ideas come once you leave the PC) because itâs not perfect, but itâs a single surface, itâs untrimmed, and you never specified whether it had to follow the other one perfectly - but ot definitely tries to!
try1.gh (772.5 KB)
Let me know what you think.
*Edit:
Try not to mess with it much haha - the MeshMap slider shouldnât really be changed for âtoleranceâ purposes - I had other ideas with contour/intersections/delunay mesh but didnât really take it to town yet - another one could involve a concave hull somehow, some tween curves or more edge surface or network surface - ok time for bed!
Best,
René
I guess I wasnât kidding!
Brand new day, brand new better try, definitely follows your initial shape with more fidelity:
Still using MeshMap to avoid slowness, good hack.
try2.gh (756.0 KB)
Now back to work - Iâll try not to have more ideas.
Best
This method is pretty much a good way to go - then when the Edge Surface results with obvious different shape as you warned, my guess was to âprojectâ it back to the original shape, which doesnât work because the shape is naughty, hence I thought MeshMap could work - crossed fingers and it did. Cheers.
Haha yeah, agree - the first one is brute force, second one is less brute force ? Still seems like a better choice to go back to before this shape was produced to convert it with less discrepancy (if it was a conversion as suspected/explained by @davidcockey)
I found that there were many âsliverlikeâ srfs in some areas causing lots of trouble.
I was finally able to break through the wall I was hitting:
Iâll try showing more info later, but need to take a break. bbl.
Create single surface_emod.3dm (5.9 MB)
beautiful i love it
Hi,
I would like to add something here. You do have 4 edges here which means that you can represent the shape with one single un-trimmed surface.
But (!), this is not what you should always do. Whenever you see two adjacent edges form a sharp angle, you put the surface under very high tension, which leads to very unstable surfaces. This is also true for basically any surface which does not look rectangularish, or fan-shaped.
When you extent such surface, your chances are almost 100 % to produce garbage. Such a surface will produce always problems if you want to work further with it. It depends of the use-case.
What I would do here (and sorry for not deep-diving into this problem), I would create a fan shaped surface around it, fitting it and then simply trim. To fit it to the mesh, I would quickly do it manually, or build a custom annealer in code if required. Where basically you are fitting a simple surface (low cp count) onto the shape and then move cps in normal direction until you deviate not so much anymore. In Rhino this would be a manual process, but by code this is not a trivial thing to do.
And one more thing, you should never perfectly fit a surface. The mesh, e.g. if comes from a scan, could contain errors. And your aim should be to yield clean surfaces.
Excellent advice
Untrimmed surface created ion Rhino using InteprCrv, EdgeSrf, InsertKnot and Patch with starting surface:
Create single surface DC01.3dm (2.3 MB)
The choices regarding the accurace of the edge curves and knots inserted into the starting surface were arbitrary. Someone with knowledge of the overall project would probably make different choices.
Any reason not to use Patch with the starting surface option?
I disagree.
Someone with knowledge of the overall project would probably make different choices.
This is mostly why I disagree. And indeed, the design intent drives everything, whatever that may be.
Of course if NURBS werenât so restricted to rectangles or other shapes with said âtensionâ, then the whole âtrimmedâ vs âuntrimmedâ debate probably wouldnât exist.
image1574Ă749 148 KB
Great, now the surface isnât under âtensionâ, but the trimmed edge is now ambiguously derived from the innards of the âslackâ version.
If the design intent is ok with this, then itâs indeed great.
I guess main issue is @sajesh_pj 's title/request + never returning nor specifying more things? haha
The ask was âa smooth single surface from many polysurfacesâ
Fun stuff.
Cheers
Iâll try showing more info later
And one more thing, you should never perfectly fit a surface. The mesh, e.g. if comes from a scan, could contain errors
I disagree. Thatâs why the scans should be done properly. While reverse engineering, even bad scans, is still important for establishing a principally accurate starting point.
And your aim should be to yield clean surfaces.
Yes, agreed. But the design intent should be the gauge used for these decisions.
At least the foundation (starting point) should always conform to the original data as much as possible, no matter how bad the data is.
From that point, you can do whatever the design intent entails. I suppose if the design intent means, ignore 25% of the scan data, then thatâs another story.
If Rhino/GH had some sort of RE/GUI âeto frameworkâ that had options for choosing a sort of âconformationâ tolerance for calculating the âfitmentâ to said data, then perhaps the user could choose something like 3%-25% tolerance conformation to said scanned data, etc.
And yes, obviously if the given âscanned dataâ was so sloppy that it had gaps approx 0.025mm-0.13mm in some places then perhaps this condones the use of a relatively medium to large tolerance.
And yes, if the scanned data is âdegree 1â and hence faceted everywhere, then surely the conversion into NURBS degree 3 or so, shall condone some sort of smoothing tolerance as wellâŠ
But my RE technique is to take things one step at a time, especially when the design intent isnât well defined; you never know what might be overlooked within any particular stage of the entire sequence of events throughout the workflow from scan-to-production and out in the field during use by the customer, etc.