Pull curve to mesh - artefacts

Version 8 (8.25.25328.11002, 2025-11-24) on mac intel

_pull command is not very smart when pulling a simple continuous curve to a rough mesh.
maybe we need some more options to not get more expected (human/design) results ?

As the result is a Polyline - i would love to have a “max number (one ?) of segments per face / edge” approach. Maybe a minimum segment-length ?

Some more background info (and maybe influence) on how the sampling is done would be helpful.

thanks - kind regards - tom

PullCurveToMesh.3dm (2.9 MB)

the green polyline is more or less what i would expect from a human / visual point of view - interpreting the mesh as a approximation of a smooth surface.


and for curve-mesh interaction it would be great to have the possibility to get this orange version - one segment per face.

@scottd are you the right person to discuss this ?
thanks for digging in.

PullCurveToMesh_02.3dm (2.9 MB)

The Pullback uses the normals of the mesh. But project uses the direction that is more consistent. In this case does Project not work?

Smoothing out normals across the mesh would need to use an arbitrary

thanks for having a look.

i have to split a more complex mesh and project will mean the same direction for the entire “pulling”.
this will not work.

for the green curve i use some script with Mesh.NormalAt(Meshpoint..) which is “barycentric” / smoothed…

this also gives much nicer results for later split/trim of the mesh. still have to do some clean up…
and there is maybe to many special cases…

i hope i can manage to at least show a nice usecase and an improved result.

cheers -tom

@scottd
hopefully the following 2 examples show more precisely what i am after.
The project I am working on is some medtech-data, the issue is about preparing mesh data further construction / geometry can relate to.

the samples are simplified but show the issues i see with smaller deviations / scales:

continous curve cuts zick-zack

input data / setup: a “smooth” curves cuts a “smooth mesh”
(_splitMeshWithCurve)


after splitting and triangulation i get those ugly steps in the edge of the new mesh:

the result i would expect should be similar to this.
still missing a tolerance and minimum edge length setting
still missing to handle some special cases

cut out a 4-sided patch

same effect here



thanks for having a look at it.

SplitMeshWithCurve_bug.3dm (3.7 MB)

kind regards - tom

I would do this to contiue to have a smooth domain to split with, an offset and a loft:

But we can look a little closer to it. I can ask around.

Dear @scottd
thanks

workaround

splitting with a helper-Surface - i would call it workaround. and that s exactly what i recommended my customer.

For this specific case also _extrudeCrvToPoint (the center of the sphere) does a nice job.
For other scenarios Sweep1 would be a nice choice… but i came along this bug.

(i did a small script that does “piece/segment”-wise sweep1 's …)

Is there any documentation which tessellation is used, when a mesh is split with a nurbs surface ?

future development

i think there should be an option “pull to smoothed Mesh Angle Threshold in degrees”…
PullToSmoothMeshAngle = 180 would be the current behaviour - all mesh edges are considered as sharp and face normals are used. And would allow best Performance (Mesh Closest Point).

PullToSmoothMeshAngle = 15 would be be what i need / question - with less performance - but all edges < 15 degree would be considered as smooth.
PullToSmoothMeshAngle = 0 is what i implemented as a fast c# prototype. looks quite promissing…

to be continued

thanks again - kind regards - tom