I am trying to reproduce the result of the BlendSrf command using the RhinoCommon API method Rhino.Geometry.Brep.CreateBlendSurface
. As a simple test, I created a circular surface, split its perimeter into two halves, and then attempted to blend these two edges in order to reconstruct the original circular surface.
While the BlendSrf command successfully recreates the circular surface, CreateBlendSurface
does not produce the expected geometry. I’m not sure whether there is a bug in the CreateBlendSurface
function or if there is an issue with my code. I would greatly appreciate any insights or suggestions from those who have encountered a similar situation.
Below is a simplified version of the code I used:
import Rhino
edges = surface.Edges
edge0 = edges[0]
face_index_0 = edge0.AdjacentFaces()[0]
if face_index_0 is None:
raise ValueError("Edge does not have a valid face.")
face0 = surface.Faces[face_index_0]
domain = edge0.Domain
middle = (domain[0] + domain[1]) * 0.5
interval0 = Rhino.Geometry.Interval(domain[0], middle)
interval1 = Rhino.Geometry.Interval(middle, domain[1])
rev0 = False
rev1 = True
continuity = Rhino.Geometry.BlendContinuity.Position
patched_surface = Rhino.Geometry.Brep.CreateBlendSurface(
face0, edge0, interval0, rev0, continuity,
face0, edge0, interval1, rev1, continuity
)
Has anyone else experienced this behavior or can suggest a different approach to achieve the expected circular surface using CreateBlendSurface? Any advice or guidance is much appreciated.
Reproduced Results via API
Expected Results
surface-test.gh (18.3 KB)