Created a NURBS polysurface, tried to offset Shrinkwrap it, and found that the Shrinkwrap had glitches - places within the concave areas where it would “pond” or waterlevel the concavity, or else it created a bridge plane to span the concavity.
Slicing the polysurface in half in any direction, then using Shrinkwrap, created a proper result.
Any thoughts as to what is causing the glitch / failure to properly Shrinkwrap?
Did you try to create a fine mesh from the polysurface first ?
and then use this mesh for Shrinkwrap ?
what happens if you choose a finer target edge length ?
lol… your glitch is someone else’s feature… that looks so cool… its an autorib tool for 3d printing!
seriously though you have stubbled into the Turing test of shrinkwrap code… and honestly that not bad for shrinkwrap… have you ever tried the Drape command… Shrinkwrap is a multi-dimensional version of that in some ways… so rotating the model in space changes the results…
@Tom_P - my apologies; I knew it would be easier if a file was uploaded, but the polysurface was a single finished project that I was not going to upload, and if I booleaned out part of it, then ShrinkWrap worked properly, thereby negating the bug. Changing the edge length did not correct the results.
@Trav - that’s the solution. This was a closed polysurface, ready for CNC machining. I did not think that it was necessary to UN-check the “Fill Holes” since there were no holes that needed to be filled. But unchecking the Fill Holes made ShrinkWrap’s solution correct when Offset was ON. When there was no offset, having Fill Holes on or off made no difference. Thanks.
It was likely that when the render mesh was extracted and used to form the wrap, that it had a couple of weird edges and Fill Mesh Holes tried to play connect the dots to other places in the model trying to close things up using what it had.
You might be able to use ExtractRenderMesh and take a look to see what ShrinkWrap is working with. Changing the render mesh settings slightly may also fix the problem.
@Trav
… this looks like a nice catch to fine tune shrinkwrap.
Behind the scenes Fill holes should only be applied to open objects.
And maybe the option should then be renamed:
“Fill holes of open input objects”
?
so I was right - shrinkwrap uses the rendermesh ?
so we / the user can improve the result be generating a proper mesh first ? ( edit: and then select the mesh, not the brep of course)
Well that’s just it. The polysurface may have been closed, but ShrinkWrap works by meshing all captured objects and then building around those meshes. If a render mesh is present for an object then it’s used. If those meshes are open and that feature is enabled then it’s going to do its best to close holes, and in some cases, the result can lead to some strange solutions sometimes.