Surface modeling problem

what am I doing wrong? for weeks I’ve used “surface from edge curves” and always ended-up with a surface that closed with its neighbor.

Art Smith

2p750 elliptical horn for Weber 32-36 Rev A.3dm (1.4 MB)

1 Like

Is your problem with trying to create a surface using these edges and the line?

If so several surfaces are bad objects. I exploded the polysurface and then used SelBadObjects.
What command identifies these as invalid surfaces.

1 Like

David-

Thanks for jumping in! yes, I’ve been attempting to use the three surface edges and the straight line. the surface is created as requested but it won’t join to the initial surface. I’ve been using an extrusion for the lower half of the pocket and a one rail sweep for the surface with problems. is there a problem with the one rail sweep tool or am I not using it correctly?? any thoughts on why the upper surface and flawed lower surface will join yielding a water tight surface less the problem gap?

Art Smith

1 Like

Untrim the 3 bad surfaces and they will be fixed. Super easy and quick.

Bobi-

must be thick tonight…. given I’m starting with a one rail sweep of a 90 degree arc that yields a single surface, what am I trimming the offending surfaces with?

Art Smith

No idea how these surfaces were created, but maybe the join operations caused some issue, so they became bad objects. Untrim them and they will no longer be bad.

I could not reproduce the bad objects here by redoing those sweep1 surfaces.
In any case I would use _Revolve when possible:

4 Likes

Sweep1 seems to work OK. But not really. Rhino’s error detection doesn’t catch the error until the sweep result is joined to its neighbors.
The underlying Sweep surfaces are OK, but the boundary definitions are screwed up.

Here is what List shows the 3d edge curves are before and after untrinmming.

  curve3d[ 0]: TL_NurbsCurve domain(0,0.481703) start(-0.86,-0.36,4.78124) end(-0.86,-0.61,4.78124)
  curve3d[ 1]: TL_NurbsCurve domain(-0.481703,-0) start(-0.86,-0.51625,4.87499) end(-0.86,-0.45375,4.87499)
  curve3d[ 2]: TL_NurbsCurve domain(-0.589049,-0.441786) start(-0.701522,-0.560723,4.78124) end(-0.784052,-0.51625,4.87499)
  curve3d[ 3]: TL_NurbsCurve domain(-0.589049,-0.441786) start(-0.784052,-0.61,4.78124) end(-0.784052,-0.51625,4.87499)

_______________________________________________________________________________________

  curve3d[ 0]: TL_NurbsCurve domain(0.30483,0.405755) start(-0.701522,-0.560723,4.78124) end(-0.784052,-0.61,4.78124)
  curve3d[ 1]: TL_NurbsCurve domain(-0.589049,-0.441786) start(-0.784052,-0.61,4.78124) end(-0.784052,-0.51625,4.87499)
  curve3d[ 2]: TL_NurbsCurve domain(0.441786,0.589049) start(-0.784052,-0.51625,4.87499) end(-0.701522,-0.560723,4.78124)

I tried this on RhinoWIP. I’m guessing its the same in Rhino8 but more likely to be taken seriously and fixed for Rhino9.

Also in theory the result of sweep1 in this case is supposed to be the same as revolve. The underlying surfaces of the sweep are within 12 decimal places of being the same so that’s probably good enough. Although to be more robust Rhino probably should recognize it as a Revolve surface.

To fix the OP’s original surfaces all that is needed is to run Explode, UntrimAll and then Join

3 Likes

In general, Rhino doesn’t work well far from the center origin; you can scale (1:10) up or down to get different solutions, so you should work at the correct size. So there is a very narrow sweep spot space to work in.

thanks guys for the input! attempting to put my new insight to use, the problem persists…… see attached collage below. basic Rhino 8 file remains the same.

Art Smith

1 Like

After Explode, Untrim the bad surfaces, then EdgeSrf, etc.

1 Like

Yes this is a bug in Sweep1 and also a bug in SelBadObjects, but nobody at RMA seems to care.

Sweep1 creates bad edge curves on the 3 surfaces with singularities. You have to explode the result of the sweep and then run UntrimAll on the surfaces. After getting rid of the bad edges by using UntrimAll you will be able to create the surface from edge curves without errors.

2 Likes

The objects in the OP’s file are close to the origin. This problem is not caused by too far from the origin.

2 Likes

Jim, David, et all-

Thanks!! Explode, UnTrimAll, and Join works; water tight surface!!

Art Smith

Solved?
Please mark the best answer as solution so others like me don t need to look into the topic.
Happy modelling - tom

1 Like

I’d be interested to know how to reproduce the bug. If I explode and rebuild the edges, then make new Sweep1 surfaces, and the EdgeSrf, then Join, I get a valid PolySrf without internal naked edges.

1 Like

Gijs-

the construction/sequence I’m using is accurately depicted in the collage posted. I suspect where things are going a stay is my use of a single one rail sweep in a misguided hope that Rhino 8 will “handle” all of the resulting internal edges from the joined curve….. exploding the single surface and then trimming the edges of all of the resulting individual surfaces prior to joining works; ie: yields a water tight surface. its my sense the surface from 4 edge curves isn’t the problem but rather hidden defects in the single one rail sweep surface that SelBadObjects currently misses…… understanding current functionality/limitations, I can get a water tight surface adding an explode and trim all edges to my work flow; at the end of the day that’s all that’s required to ship known good files for CNC machining!

Art Smith

Why are you exploding and rebuilding edges? What does that have to do with the reported problem?

The OP supplied the curves used for the sweep1.

here is the basic problem without all the distractions in the original file.:
Sweep1_Bug.3dm (2.4 MB)

The orange/yellow curve is the sweep rail the black arc is the profile.

Also in the Notes is a macro for the points that List says are start and end points for the 4 3d curves of one of the pointy surfaces that sweep1 makes. Four of the points are not even close to being on the surface.

Edit:
The curve from the original file seems to be derived from the natural edges of the surfaces in the file. When I make a rail from those edges I get the same result as the original rail.

Also if I make the surfaces as five individual sweeps (one for each edge) then join the surfaces it works correctly. You would think the developers would know that is how it needs to be done when the rail is a curve composed of individual curve segments.

2 Likes

I was about to post that. That makes it is clear where the issue is rooted.

RH-90215 Sweep1 results in bad objects

3 Likes

I tried this in Rhino 7. No bad surfaces after joining them all.

2 Likes