From ZBrush to T-Splines to Rhino Closed Solid Polysurface


There’s a good explanation of MeshtoNurb here

There’s no interpolation of the surface happening, so essentially you end up with what you started with, with each triangle or quad being converted to an individual nurbs surface.

Quads that are not coplanar will be converted to a nurbs surface that has some curvature.

Subdivision surfaces use quads to achieve smoothing, and many of the applications that convert polygonal geometry to nurbs are using subds in the conversion to make surfaces that have tangency or continuity with adjacent surfaces. I don’t know how T-Splines does it.


I’m looking at ZBrush to do exactly the same thing that you are experimenting with. I need to do some complex (as far as NURBS is concerned, anyway) organic modeling and feel like I’ve taken T-Splines about as far as I can with its tool set. I’m looking for something that makes organic modeling a little easier, but it needs to come right back into NURBS so I can pass it along to SolidWorks to be incorporated into a tool for manufacturing. I’ve looked at Modo with some plug-ins like MeshFusion and the PowerSubDtoNURBS tools. That looks powerful, but I’m not sure if that’s the best option. ZBrush is what I’ve been looking at more closely. Starting in Rhino, exporting in ZBrush to do some of the tricky (in CAD) parts, then exporting back to Rhino as a quad mesh and using T-Splines to convert back to NURBS. I could imagine another workflow could be to create something in Rhino, a 3D text logo for example, but not worrying about trying to apply all of the needed fillets. Instead, exporting a mesh, use ZBrush to convert to a quad mesh and bring it back into Rhino and convert with T-Splines to soften and blend the logo for thermoforming. I have a customer that always wants soft “bubble” letters and I always struggle with creating that effect in CAD. I think the Rhino/T-Splines/ZBrush combination might save myself a lot of grief. Have you ever tried something like this?


If you want to thermoform you could skip the Typlines/Nurbs conversion bit entirely, this should make the whole process greatly more straightforward. Start in Rhino and go as far as you can. Export a dense mesh as an obj to Zbrush, do your thing here – the software will allow your to soften your Logo to hearts desire. Turn the model into a dynamesh if required, Zremesher /quad-conversion rather won’t be needed, export out as .obj or .stl, decimate the mesh if too large and mill or 3D print your core for thermoforming.


That’s not really an option for us. Working from an STL has been suggested to us in the past, but so much other work needs to happen to create the tooling, as well as combining it with other cavities and/or components that working with a STL file is something our tooling CAD guys don’t want to deal with in SolidWorks. That’s not to say that it can’t be done, our dieshop/tooling CAD department hasn’t had luck with it in the past and it’s apparently just a big hassle for them to work with.


I might note that T-splines for Rhino 5 recently went to version 4 (from 3.5), which is always good news.

Another command from Rhino 5 that I use is “QuadrangulateMesh”

I have tried endless combinations of import and export using all three applications, or just Rhino and ZBrush back and forth. My biggest problem is reaching some proficiency with ZBrush (it has some depth and its models are called tools (to add to the mystery)). Also getting just the right level of quad polygons (not too dense, but still affording good detail) is key.

Getting the right mesh level and using the mesh rather than the converted closed polysurface made the mesh commands (like “meshbooleansplit”) work. As the file from the polysurface is 4 times larger (or more) than the closed mesh I worked with for this CNC project.


[quote=“mcramblet, post:24, topic:15175”]
our dieshop/tooling CAD department hasn’t had luck with it in the past and it’s apparently just a big hassle for them to work with[/quote]

Being stuck to a Nurbs based milling process on the other hand causes a lot of unneeded hassle for the modeller :o).

Tsplines or any other automated process for Nurbification weren’t designed for conversion of very dense and detail rich meshes as Zbrush and the like produce. Even if you get it to work the process will be lossy and resulting polysurfaces due to their patch layout and density won’t be useful for subsequent surfacing operations. In that situation a manual reverse engineering on top the High Poly mesh exported from Zbrush seemed more appropriate to me.


I’m searching and am willing to look at anything (within reason) to make my life easier. I wished there was a “holy grail” of organic modeling in the CAD world, where I’m stuck. We’ve looked at GeoMagic Freeform Plus, which at one time I thought might be that “holy grail”. We had some outside work done for us using this and although the sculpting and tool set for manufacturing is awesome, it too suffers from the conversion to NURBS, despite it’s huge price tag. :disappointed: We had some great people doing the work for us, but the resurfacing after the sculpting took just as much time as the sculpting itself and the resulting surfaces required some clean-up before SolidWorks would accept them.

I know ZBrush won’t cure all of my problems, but I’m hoping it gives me a few more tools and options in dealing with this type of modeling/work. I’m open to any other workflow ideas, too.


Until now there simply is no automated process to convert a very detailed, yet perfectly editable mesh to an equally clean layed out Nurbs polysurface, which is ready for Nurbs based manufacturing preparation.
It doesn’t exist, at least not outside of marketing brochures.
One had to look at the specific problems you need to solve for more meaningful comments – but if a sculpting app allowed you create an accurate 3D template rapidly, which afterwards got reverse engineered by a Surfacer and post-processed by a Toolmaker this doesn’t sound too bad to me. On the other hand – people like these guys mill and create molds directly from Zbrush meshes.


Milling directly from meshes are ok as long as the meshes are smooth enough.

Z-brush has a good retopology tool that can be used to make a unified skin of a set of objects, or to just remesh an object. I think this shouldbe able to return a descent mesh for further work in T-splines.


Unfortunately many tool makers will refuse a mesh/triangulated file.


Well, then they just need a bit of convincing.

What kind of files do you need to mill?


I wish it were that simple.

In my own experience, I know that its possible to machine from meshes especially when surface finish and high accuracy are not an issue.

Some shops are just locked into the high accuracy/surface finsh mode and won’t consider anything else.

Very few machining applications will generate an arc or spline toolpath from a nurbs surface. Most machining software produces a tessellated version of the nurbs surface (essentially it is a mesh) and generates G1 (straight line moves) based on the tessellated representation.

Then the CNC controller software can interpret all the line segments as a series of splines, and instruct the machine to move smoothly through each interpolated spline, rather than hundreds or thousands of tiny straight line motions. I believe this is what is referred to as optimization.

I suspect a nurbs file with a very large number of surfaces that do not have tangency would present the same problem for optimization as a mesh. There would be a large number of discontinuous (break in tangency) moves that could not be reduced to a small number of splines.

I would love to generate a nurbs version of a mesh to give to someone next time I hear “can’t do it from a mesh”. I don’t have the software now to do that now. I had someone run a mesh relief with a high level of detail through Geomagic Studio. It produced 20,000 nurbs patches from a few million triangles. I am pretty sure I would get some complaints about that file, even though it is nurbs.


To be sure, a NURBS solid doesn’t necessarily cure all ills. Being on the “creative” side of design, I don’t work with SolidWorks. But I’ve worked with resurfaced files that Rhino doesn’t have too much issue with, but after my part is done and I send them down to the SolidWorks guys, they have nothing but problems. Surfaces that are too dense, with too many control points can bring SolidWorks to a standstill, once it starts keeping track of all of the history, as they are working with the files. Guess who gets to try to clean up and simplify those files? That’s why I like workflows where I can use T-Splines as the method of converting to NURBS, for me at least, it does a very good job at keeping the surface patches and point density at a manageable level.


A really fine mesh can be within the tolerance of the steppermotors and produce a result close to the same quality as a smooth Nurbs, but it requires a really high quality mesh and depends on what you are going to mill.

So what kind of objects are you going to mill? Any examples?


I have received rejections on multiple occassions concerning the use of a mesh for CNC machining (milling). Nurbs appears to be an industry standard for tool making.

What I have been told is that a mesh, regardless of quality, cannot be optimized in the same way that a nurbs file can be. (Perhaps the info I have been given is not accurate, but these machining services tend to be silent about their methods, so when do get some rare, specific info I try to corroborate it in other ways.)

This distinction does not make a whole lot of sense to me if the nurbs file is being converted to a mesh anyway prior to generating a toolpath.

If the optimization happens AFTER the toolpath is generated, then at least in my understanding, there should not be a huge difference between the toolpaths if the nurbs surface is fairly close to the original mesh.

My client does not want the work shown so I cannot post any specific examples. They are bas-reliefs with high detail. Like trees or landscape (high frequency detail) in the background and larger objects, figures or vehicles in the foreground.

(Gustavo Fontana) #36

I asked those questions to our machinists here and there ls a good reasons why they want nurbs: They have to create tool paths, those paths need to follow curves, typically surface edges (either natural boundaries or trim curves on-surface). And the also want to snap to things like center points of cylinders, corners, etc.

When we give them a mesh none of that data exists, only facets and edges that all have the same importance in a file. So all they can do is surface mill a blob think like scanning the topology ans trying to follow the topology by sections in an arbitrary linear direction. We had tried to work some things with the guys from HSMworks where they were looking at identifying edges from a mesh (based on angle dirrecence of normal) to try to bring curves back, but then ASDK bought them up,… so never mind!

I honestly prefer now converting to nurbs from Modo, but it’s true that teh geometry can be quite heavy, especially in things like sculpting.

…Now that I think having a mesh file along with a wireframe of patch edges as an iges) might me something worth playing with. I have to add it to my list of tinkering with our modelmakers. They love me when I come in asking them to try some new weird shit with them :stuck_out_tongue_winking_eye:



It would be interesting to find out what G-codes your machinists are sending to the CNC machine.

(Gustavo Fontana) #38

they are hititng ‘print’ from Mastercam. Anything more specific I should ask?


This is still just a question of CAM software AND the users of said CAM software. There are a bunch of CAM software packages out there that can take meshes as input, and another bunch that cannot. More important is if the operator of the software knows how to deal with mesh models - or if they even want to. Many people in the “mechanical” field do not, because meshes do not represent the way they look at the production world. Their world is defined by lines, arcs, planes, fillets, and the like. Many are working with “feature recognition”, which needs surface edges to figure out what is a pocket, a drill hole etc. Meshes will not do for this type of approach.

For milling on meshes, you often need to invent your own machining strategy instead of relying on those traditionally guided by surface edges and the like. That sometimes implies creating your own set of guide geometry such as drive curves, etc. in order to determine how the tool passes over the mesh.

If the mesh is too coarse, you will see facets in the finished product - there is no “smoothing”. So the mesh does need to be smooth enough for the type of material and surface finish. There is a huge difference in what is required for machining a carved wood object as opposed to a high-polish plastic or metal object.

99% of CAM programs use meshes anyway to run toolpaths - even if most of the time the users aren’t aware of the fact. The reason is that in order to generate 3D toolpaths, the finish surfaces first need to be offset by the tool radius - the tool runs on it’s “centerline”. These offsets are done behind the scenes, the user never sees them. The toolpaths are then created on those offsets. Offsetting arbitrary geometry is very difficult to do reliably with a surface model, it is much more reliable with meshes. So the surface model is usually converted to a mesh anyway for offsetting (again, behind the scenes, the user doesn’t see this).

On top of that most machine controls still only understand straight lines for surface machining. These days, with high speed data transfer and high speed management of toolpaths and servo loops, this is not a problem - you just throw a fat stream of tiny straight paths at it, and the control handles it and turns it into smooth motion.

For 2D geometry, there is no substitute for good curves, however. If you need precise curved/circular pockets, you will need to have those curves in the file, otherwise you will end up with facets - and probably will not be able to take advantage of any automatic routines the CAM software might have for pocketing, etc.

I too prefer the precision of a surface model for creating toolpaths. However, there are a number of types of objects I do that are simply not possible to do well if at all with surfaces - terrain models, for example… Meshes save the day.



It’s probably much more complex than that…