I rebuilt the curve on surface to a single span degree 7, with the deviation posted
Ah, got it. Odd though that Jimâs projected curve is degree 3 with 7 points, whereas mine is degree 3 with 16 points, and even odder why Sweep1 only allows selection of one sweep shape. Something dodgy with my V8 version or macOS, or both, I guess.
Yes that is what I use for trimming the large surface with the green curve as mentioned in step 2) above.
For trimming with a surface edge as in the step 3) in my previous post I use this macro called Trim By Edge:
! selnone
-SELNAME âtrimcrv*â pause delete
dupedge pause
setobjectname âtrimcrvâ
EXTENDCRVONSRF pause
-SELNAME âtrimcrvâ pause
simplifycrv
trim pause pause
selnone -selname âtrimcrvâ
delete
Trimming with an edge extension is something I do a lot so it helps to have the macro tidy up by automatically deleting the extended curve. It also deletes any curves named âtrimcrvâ to clean up anything that got left behind when a trim by edge was terminated before the delete at the end
Tried that also, deviation here is even less. Still, once matching G2 with On surface, and using that rebuilt curve, the CVs in the middle are pinched, like before (I worry about the Sweep1 issue later), whereas on Jimâs model, they are rather evenly spaced.
OK I see that.
I must of somehow changed that curve, but that really doesnât make any significant difference. Here is what I get using your original curve
Match On surfacex2.3dm (86.0 KB)
Rebuilding the curve doesnât really make any difference because as I said matchsrf is paying more attention to the surface than the curve.
Youâll get just as good result if you use the curve you projected to the large surface. That curve would be degree3 ugly curve but that is not what matchsrf is really matching. Matchsrf is matching to the best fit of the edge curve of the surface being matched to the other surface. That usually is much closer to the other surface than the curve or edge on the other surface and that is why you have to trim the other surface using the matched edge after matching.
Thanks, I updated Rhino to Version 8 (8.22.25217.12452, 2025-08-05) and, using your latest file, will recapitulate step by step.
Actually I did that in RhinoWIP but just tried it in Rhino8 and SelDup tells me the result is identical. I would be surprised if it was not the same all the way back to Rhino4. Its not as if anybody has been working very much on modelling tools for a couple decades.
Sweep1 has accepted more than one shape curve since Rhino1
As long as all the shape curves have the same degree and knot structure and the shape curves touch the rail curve at knot point(s) you will get a simple surface that inherits the structure from the curves.
So, updating Rhino V8 to a later release helped, and a single-span surface with good CV structure is achievable, and very close to the Alias, ICEM, etc. equivalent.
@jim FYI: for ExtendCrvOnSrf, you donât necessary need to duplicate the edge first
With the method you used it wonât work with a file tolerance of .001.
It makes no significant difference to the outcome if your file tolerance is set to .01 for projecting the curve and making the sweep1 and matching the surface.
The only place file tolerance matters in this process is the trimming and joining part. Your method wonât work with a file tolerance of .001
Now that Sweep1 works, and how to use the On surface option is clear (general observation - in Rhinoâs matching, it matters where one clicks, otherwise surfaces flip, etc.), I replicated this at a file tolerance of 0,001/0,1 (the projected curve is now 3/16 instead of 3/10) and the result is good.
I replicated all with 0,001 file tolerance, and it worked well. Could you explain why you thought it should not have worked?
I thought it would not work because I tried it. It appears you also tried and it did not work.
That .005 is bigger than .001 tolerance
If you trim with the surface edge instead of the curve you matched to, you will get a number smaller than the .001 tolerance. If the tolerance is .01 it wonât matter because .005 is less than .01
edit:
I get .0005 for edge continuity (postional) when trimming with the surface edge in Rhino9 (WIP). I just tried in Rhino8 and Rhino7 and got the same result.
It only takes about 10 seconds. Run Sweep1, then MatchSrf, then Trim By Edge (the macro I posted above).
I see; uh, well, 0,004 mm deviation means âit workedâ, because a colleague with Creo can open and use the part ; )
But now I ran into a new problem - trimming with the surface in the perspective view doesnât work (Rhino V8 macOS, just updated to most recent release). Could that be related to what was said here? Is there a âRhino trimming doâs and donâtsâ?
That raises the question â how did it get into creo?
The surface wonât join in Rhino without overriding .001 tolerance in some way. Did you export as STEP or IGES as loose surfaces and Creo joined them?
Trimming with the surface will always fail for two reasons. First the surface doesnât go all the way across the surface you want to trim (or split). Second in order to trim with a surface Rhino has to calculate an intersection curve. In this example Rhino canât calculate the curve even though the edge is within tolerance.
The only type of tangent surface where trimming with the surface works reliably is when the surface is an arc based surface made by FilletSrf. That has worked since Rhino1
This is where the macro , I posted above, comes in handy. Run it and it will only accept the surface edge as input (so no bother with selection menu or accidentally picking the wrong curve). After the macro extends the edge, the trimming works and it automatically deletes the extended curve.
No, I donât think anything in that thread is relevant to this discussion. Its mostly about trimming with curves that are not within tolerance of the surface.
Trim with ApparentIntersections=Yes applies only to trimming curves and has nothing to do with trimming surface.
- IGES.
- Oops, I missed your macro.
- So, trimming in 3D is working properly after all (using your macro)?
It also works with the macro Gijs posted:
ExtendCrvOnSrf pause pause Trim
I find mine more convenient in this situation. You would have to use the shorter macro if you wanted to trim with the extended curve instead of the surface edge.
Thanks, Iâll try that then. I am new to this macro thing, coming from other software.