Creases in quad meshes - any way to import to F360?

Creases in quad meshes - any way to import to F360?

GRSnyder
Collaborator Collaborator
1,497 Views
2 Replies
Message 1 of 3

Creases in quad meshes - any way to import to F360?

GRSnyder
Collaborator
Collaborator

I recently discovered Quad Remesher, which does an amazing job of converting arbitrary polygon meshes to a sensible and nearly flawless quad mesh. Way better than any other remesher I'm aware of. For example:

 

QuadRemesher.png

 

(It's not free, but it's relatively inexpensive: $60 for personal use, about double that for pro. And it's a plugin, so you have to use it within Blender or another polygon-based app.)

 

Since Fusion 360 is able to convert quad meshes directly to T-spline objects and thence to BRep solids, I was hoping this would open the door to easy reverse-engineering and modification of random STL files from repositories such as Thingiverse.

 

It kind of does! But there's a snag: I haven't been able to get Fusion 360 to honor edge creases in .obj files. For example, this quad mesh in Blender

Screen Shot 2020-11-29 at 6.23.27 PM.png

imports into Fusion 360 as the mesh object below. Here, I've turned on flat shading, so it looks very similar to the version displayed in Blender. The edges do look slightly heavier, which makes me think Fusion 360 might actually know they're edges. But here, it's just shading the whole thing as a collection of flat, disjoint polygons. If you turn off flat shading, it doesn't display any sharp edges at all. 

Screen Shot 2020-11-29 at 6.26.05 PM.png

When Fusion 360 converts this mesh to a T-spline, it assumes all edges are smooth, yielding this inflated-looking T-spline object:

Screen Shot 2020-11-29 at 6.24.25 PM.png

Fortunately, the geometry itself remains untouched. You can go in with the Crease command in the Form environment and manually reconstruct all the creases. Unfortunately, this is a tedious and error-prone process, and even this trivial test object requires 14 creases. If you select with the Crease command active, Fusion 360 is very slow because it's constantly trying to warn you about certain mesh regions that won't crease naturally. If you select all the creases before invoking Crease, you run the usual risk of misclicking and losing all your selection work at once.

 

The result is admirable, though:

Screen Shot 2020-11-29 at 6.26.37 PM.png

Fusion 360 doesn't just transport the raw geometry into BRep land; it uses the normals in the .obj file to reconstruct the smooth surfaces that the original polygon mesh was only visually simulating. When you convert to a BRep solid, you get bona fide curved geometry. It's perilously close to "do what I mean." And of course, the T-spline gets simplified to remove redundant geometry, simplifying the BRep as much as possible.

 

Really nice! But the creasing issue is significant. Is there any way around having to make the creases manually?

 

I've looked over the .obj file format, and it appears that there is no particular marker for sharp edges. Instead, each face declares its vertex locations and the normal for each vertex. When the same vertex is mentioned by adjacent faces but with different normals, that seems to be the implicit marker for an edge.

 

In Blender, I believe that Mark Sharp on an edge is the signal to split the normals. (There is also an option to guess which edges are sharp by inspecting the face angles, but I don't think this affects the mesh itself.) The sharpness information does seem to make it to the .obj file, as evidenced by the fact that if you reload the .obj into Blender, it shows the same marked, sharp edges.

 

So, I think Fusion 360 has all the information that it would need to detect creases. It just doesn't seem to be paying attention to it.

Accepted solutions (1)
1,498 Views
2 Replies
Replies (2)
Message 2 of 3

TrippyLighting
Consultant
Consultant
Accepted solution

Nice find! I had not seed quad-remesher.

 

Fusion 360 does indeed not read the creasing info from a .obj file.

 

Also, FUiosn 360 does not really simplify the geometry. It simply creates a contiguous NURBS surface without seam where it can. However, if you look at the control point density using, for example, Autodesk Alias, you'll find that it is much higher than an equivalent "native" NURBS surface.


EESignature

0 Likes
Message 3 of 3

GRSnyder
Collaborator
Collaborator

@TrippyLighting wrote: Also, Fusion 360 does not really simplify the geometry. It simply creates a contiguous NURBS surface without seam where it can. However, if you look at the control point density using, for example, Autodesk Alias, you'll find that it is much higher than an equivalent "native" NURBS surface.

Wow, I had no idea! So I guess there's still quite a bit of value in keeping the input mesh as sparse as possible.

 

The creasing issue seems like it might be amenable to some kind of scripting solution, although I'm sure once you get to the T-spline domain the math gets hair-raising. I might take a look at the API and see if anything obvious pops out.

 

The other lingering issue with these mesh conversions is that the resulting BRep solids have no surfaces that are formally flat. Even a simple cube (with all creases restored) ends up as six apparently-non-flat faces. It's possible that rounding creates slight distortions that aren't directly visible (and thus that the BRep surfaces truly aren't flat). But it seems more likely to me that there's a flag somewhere that explicitly marks flat patches as being flat, and that the mesh converter doesn't even try to set this flag appropriately.

0 Likes