Sweep1 wrong results

See this:

The result is wrong and produces defective surfaces.
The defective surfaces are valid for Rhino - they are not.

Small.3dm (23.5 KB)

Any reason you don’t join the two curves before sweeping?

By using the option “Untrimmed miters” I get a valid result.

Thanks Martin, I know several solutions.
I wanted to point out that Sweep1 produces bad objects that are considered valid.

The reason why the curves are not joined is because of an other try.
I know, that’s lazy, but the real geometry has far more corner situations.

The result is unusable.

BTW, the final result shall be this:

If you know a method without fiddling with _SweepX and _Revolve, tell me :slightly_smiling_face:

Will you CNC engrave or what are the requirements?

The task is to model what IS already engraved.

In fact the modeling becomes harder as the engravings are on curved surfaces.
This happens in 3 axes only, the Z axis is fixed.
Projecting the flat geometry to the curved surfaces is not really correct.
Still thinking about it.

Hi Charles -

In Rhino 8, the BadObject warning pops up when creating that surface.
Apart from that, I’ll get the example on the list to see if anything can be done to not produce a bad object. → RH-68941

I tried using @pascal ProjectObjects.
Not the correct result.
But that’s another story…

Thanks @wim
That was exactly my point.

Not in here.
(8.0.22152.4305, 2022-06-01)

Thanks. I’ve added some notes to the YT item.

I would probably explode the polylines into segments and then create individual parts you can subtract from the stock material. You need two different cutters due to self intersection proiblems when subtracting geometry later on.

It seems the cutters you were using on the curved surface do not stick out of the surface. Intersections are better if the cutter does not have vertices exactly on the surface.

Actually an extruded, straight cutter and a revolved corner cutter would solve the problem.

The straight cutter can be oriented and 1D scaled to the curve segments.

If the corner cutter is aligned with the seam facing inwards at the end of the polyline, the ends look nice. That and the seam of the corner cutter aligned with the miter on corners should get you minimal surface count.

Good Martin!
It’s easy with straight segments…
For curves segments it’s different.
And that on curves surfaces.
Still thinking.

Post an example file with a curved surface.

Are you using Grasshopper?

Small.3dm (117.9 KB)
Unhide the curved surface.

The cutter outline was extended a bit.
The center line was projected to a parallel surface.
This is where the cutter tip moves along.
Just to illustrate I made the correct shape along the longer curve.
Now the trouble starts.
How to make the geometry on the shorter curve correct?
Yes, a bit fiddling to align the cutter outline would work somehow.
I’m looking for a simpler solution.
Think of not one corner only but dozens.

What you showed in your last picture is not the correct solution.
The cutter would have to tilt into normal direction.
The cutter doesn’t do that as it’s fixed in Z axis direction.
See here, red = wrong, green = ok.

Up to now I don’t use Grasshopper for this task.
First I need to now how to make it step by step.

Is the CNC cutting done with a 3-axis or 5-axis machine?

If 5-axis, then we need to create normals on the surface.

If 3-axis, the depth is challenging

As said 3 axis.
The tool doesn’t tilt.
Yes, challenging…

Here’s a kind of correct solution.
See the TestTool layer.

Small_Ready.3dm (1.7 MB)

I did similar 3-axis cnc simulation for slightly more complex freeform surfaces a few years ago.

In my case, the tool had to meet a boundary condition and due to the non spherical shape I had to correct the height for each position.

I used a loop in Grasshopper (Anemone) to subtract the millbits. The endresult was an optimized toolpath.

I rebuilt the section of the cutter to avoid problems with the boolean difference.

No height correction yet.

Small_Ready.3dm (162.1 KB)

mrtn_cnc_3-axis.gh (20.4 KB)

Hi Charles - there is not enough to go on in the file above - feel free to send me the inputs to ProjectObjects…


Hi @pascal

ProjectObjects works ok.
In order to be able to trim the surface, I only have to set a high XY count.

It’s just not the correct tool for the desired result.

Anyway, here’s the file:
Small_ProjectObjects.3dm (242.4 KB)