Hi, it seems that the Surface.Extend method is very different from the ExtendSrf command in Rhino.
I want to shrink a surface on one side/edge with negative length inputs just like the ExtendSrf command, is there a way to do this with the rhinocommon?
the surfaces stacked in the middle are the original, one made with rhino ExtendSrf and one made with the RhinoCommon Surface.Extend() Method
The three to the sides are my approaches. I mainly tried to take the control points and make NURBS-curves from them to extend them with the ExtendCurve. I think the best surface came from taking the wireframe of the surface and use the isocurves with extend, but itâs still different from the original surface.
Not all commands can be found in Rhinocommon SDK.
They might include the same keyword (extend here).
But it is totally common that commands in Rhino uses different core as Rhinocommon ones.
1: untrim and use surface.extend
2: from your GH file, you can use extend curve, but it has to be the right override, and also pay attention to the degree, your patch is 3 degree. ext.gh (9.3 KB)
first of all thank you and sorry for the late response.
The goal here is to do literally the same thing as the Rhino ExtendSrf command, I am relatively satisfied with what the Surface.Extend() method does, but I want to make a plugin that does the same as the negative input part of ExtendSrf.
From what I have observed this command does the following with positive inputs:
choose a subsurface edge and move it on top of the NURBS Surface
if you move the trimmed edge outside of the NURBS Surface, it will automatically use the Extend() method to keep the Trim on the surface
Generally the RhinoCommon Method of Extend does the same thing as ExtendSrf just without trimming
for negative inputs:
choose a subsurface edge and move it on top of the NURBS Surface
moving it to âshrinkâ will compress the affected IsoStatus direction without changing the NURBS surface geometry in a meaningful way
I think this compression happens through some kind shrinkFace method, not too sure though.
I just checked magicteddyâs component, it does shrink the subsurface, but I really want to compress the NURBS surface under it too.
E: I think your approach is really close to what I was looking for. It never occured to me that there was a CP Loft component.
I will try to program a gha out of this next monday and come back to this ext2.gh (14.5 KB)
There is a Shrink method in RC - equivalent to Rhinoâs ShrinkTrimmedSrf command.
If you want to have an untrimmed surface at the end, youâll have to split by isocurve instead of an offset. So youâll lose the ability to define a precise length.
I just call it shrink, because the official documentation for Rhino 7 calls this negative input âshrinkâ
But I still think, that they used some kind of combination of subsurface trim and shrink to create a smaller surface, I will try to come up with something on monday.
Sooo, I am still working on the VS implementation.
Both solutions in this are pretty good at manipulating the NURBS-Surface, the only difference, is that the first one builds a complete new surface from the same information and the second one uses the shrink function to approximate the subsurface changes.