Dynamic update of projected curves on a NURBS surface with control point movement

I am working on a NURBS surface on which several curves are projected with history enabled. So, whenever I make any changes to any control points on that NURBS surface, two things happen in sequence

  1. the surface update itself
  2. then projected curves are also updated.

But, I want the projected curves to be updated dynamically with the movement of control points on the surface. How can I do that?

Hello - you cannot in plain Rhino - the update occurs at the end of the edit.

-Pascal

@pascal Many thanks for your reply.

Can you please describe what shall be the correct way (procedures + tools) of doing that in Rhino. I’ve seen a few videos and can confirm that Orca 3D (a rhino plugin) has this capability. To do a quality check on surface I must need this functionality.

I enjoy programming and have python experience. Is it possible to achieve this using python scripting in Rhino? Please advise.

@menno
I’ve seen a post by you that you have achieved this functionality. Could you please share your method and experience on this specific issue? Thanks in advance.

Hello - I guess you need a display conduit and a function to calculate the projected curve - possibly inside a custom GetPoint() would be sufficient.

https://developer.rhino3d.com/api/RhinoCommon/html/M_Rhino_Display_DisplayPipeline_DrawCurve_1.htm

https://developer.rhino3d.com/api/RhinoCommon/html/T_Rhino_Input_Custom_GetPoint.htm

-Pascal

1 Like

Indeed we have this in one of our plugins. It is done using display conduit and custom object. To get the intersection curves to update with interactive frame rate (at least 20Hz), a lot of specialised code is used to cache curves and only calculate intersections where the surface changes. Intersections themselves are calculated using surface Bézier patch refinement.