Hi all, I have a closed polysurface model upon which I’ve applied multiple materials using sub-surface select and I really would like to mesh this model/export as an OBJ (for full color 3D printing on a Bambu printer). Unfortunately, every time I export the model as an OBJ, all the textures/materials disappear, even when I’ve made sure to save the textures and make sure a .MTL file is exported. Additionally, if I try to extract a render mesh, the mesh is completely blank and rendered in white, and the same thing happens when converting to a mesh. Does anyone know how to work around this, or if it is even possible?
Hi @Christina_Shivers ,
Can you post a simple example 3dm file and the resulting Obj?
@BrianJ , thank you for your reply, the files are pasted above
Hi @Christina_Shivers ,
You can’t use sub-object material assignment here. You’ll need to do a custom UV unwrap (Unwrap command) for the Obj file to have the texture map present after export. You’ll also need to use ExtractRenderMesh on the polysrf after it has the custom UVs and export that as the Obj.
For future reference, use the Export command in Rhino to save only the currently selected objects as their own 3dm file. This will make it easier to know which objects to look at.
@BrianJ thank you for your reply. I’m a little confused on what you mean by not being able to use sub-object material assignment. It’s my understanding that the only way apply multiple materials to a closed object is to use sub-object select, is there an alternative I can use? The issue I’ve run into is that to use multiple materials, I can use sub-object select (which causes this problem) or I have to explode the object, assign the materials, then join–however, once I join, rhino render assigns one material to the object and destroys the custom uv mapping.
I’ve attached a file in which I’ve unwrapped the object and created a custom uv map on mapping channel 2, however, it appears that no material is present. Additionally, once I extract render mesh, it does not include materials again. Is there something I’m missing? Thanks.
If your target software supports glTF you should be able to export with multiple materials applied via sub-surface selection.
edit: nvm, I missed that this was for 3d printing. You can ignore me.
You are correct in terms of sub-object material assignment on a NURBS polysrf. The problem is that this method of material assignment doesn’t save out to your single closed mesh, an Obj file in this case, that you’ll need for color printing. You’ll have to create one texture map that has all of the marble swatches you want to use in it. Then UV unwrap your whole polysrf as you have done in custom mapping channel 2 OR more simply in a model like yours, use default surface mapping so each srf is it’s own island already. Then assign your material with that texture map in it’s color channel to the whole polysrf and edit the UV islands to be over the areas you want showing each marble swatch. In this way, you’ll maintain one closed model with no sub-object material assignments. You can then export the ExtractRenderMesh result as an Obj file. Don’t forget this last step as otherwise it won’t work fully. I suggest you try it with a small test to make sure this is working for you all the way through the last step of using your printer.
CS_test.obj (2.8 MB)
CS_test.3dm (3.8 MB)
@BrianJ Thank you so much! This addressed the problem and I’ll go ahead and try it out. Thanks again for all of your help.