← All ideas
  • Published 9 Aug 2021

Export IGES

Hi All, I am an Industrial designer/ engineer with over 30 years of experience in using CAD for Automotive/Industrial design. I have been following the blender project for a long time and advocating the use of Blender in Automotive studios. I am a self taught programmer and never worked in any software firm or open source projects.

Recently more and more companies are adopting Blender into their workflow. I feel that, there are two major deficiencies in using Blender as a full fledged CAID solution.

1, Lack of trimmed Nurbs support: Although, Blender supports the creation and manipulation of NURBS  surfaces, there is no trim support. I don't know if it would be easy to integrate an opensource geometric kernel, like opencascade that FreeCAD uses, to blender?

2, Lack of output compatible to engineering CAD: Most designers, adapt to working with the subdivision method, to overcome the lack of trimmed nurbs. But there is no way to export the data to engineering CAD directly ( engineers do not like to work with mesh data). Currently the mesh data has to be converted to subdivision surfaces in Alias, Rhino or Maya (via OBJ) and then exported out as CATIA/NX/IGES/STEP data.

I have been working on the second problem for some time and have come up with an addon that converts the Subdiv meshes to Bi-Cubic patches and writes the geometry as an IGES file. It is just a proof of concept. Please find more details at digital-sculptors.com/cms/index.php/software/blender-plugins.html

I would like to contribute my findings to the Blender project, but don't know where to start. As mentioned, I am not a professional programmer and my knowledge and availability as a programmer might be very limited.

Let me know your feedback and how to contribute further.

100%

Development Status: Open

Upvote 6 Downvote 0
sculptor
9 Aug 2021

7 Comments

cross_randall

I like the idea and wanted to test. It appears to install, but it does not show up in the Addons Manager afterwards in 2.93.2

andy.engelkemier

it's in the experimental tab.

mikaelfischer

I'm having the same issue. it also doesn't show up in the addon manager. Where is the experimental tab? im on 2.93.6

andy.engelkemier

This is a really tough one, and I doubt it will ever happen. That's not to say it wouldn't, but I wouldn't hold your breath. I haven't used Maya in a long time, but it was pretty limited when I used it because it could use trim objects, but you couldn't stitch them together, so you had to individually tessellate things to be sure you didn't see gaps. Very inefficient doing that. Max, on the other hand....well, it Sort of handles the data. Realistically it doesn't. It's just showing it to you. Again, I haven't used it in a while, but when I was it was just letting you use the CAD objects within max, and it had tools that let you do some things with it. You couldn't create nurbs trim objects within Max. And that's the way I could see blender doing things. If you have something like FreeCAD, you could have blender do what 3dsMax does with a plugin. Show the data in blender, but link back to FreeCAD. It could even do some passthrough of the tools where Really FreeCAD would be doing the lifting for any of the NURBS translation. I like the way 3dsMax shows you the data as NURBS curves by default, and you can only Optionally show the mesh. Huge challenges in all of that, but it can be done. It would be a cool tool, but that would only solve problem1. I guess if it's just a passthrough, and all you're doing is moving things around inside blender, then it does a full loop back to FreeCAD, just adding matching Translations to parts, then great. But if you want to do something like split a surface, do something to it, well then it gets likely unusably complicated again. And also you'd need FreeCAD to play nice.

Based on your plugin, You're onto the start of a nice tool. I'd probably just call it a SubD to Nurbs converter. Currently if I want that, I run the mesh through Fusion. But that sucks because you have to sharpen edges again, because that doesn't translate into Fusion.

The biggest challenge I've found with CAD data coming into blender (or anything really) is the mesh. Rhino has a nice quad mesh output, but it's SLOW, and really only works on one part at a time. Have a giant step file with 900MB of parts using 1.5GB of space once you save it as an exploded Rhino file? You're not going to be able to quad mesh that out. So once you import that mesh into blender, it sucks to work with. It's got custom normals, and even if you spend the time to eliminate long triangles, the data Never came in perfectly cleanly, and you can't edit it as is. You first have to delete all the custom normals, merge all the vertecies that share the same space, recalculate normals based on that, and it's probably a good idea to add a weighted normals modifier (and probably bake it) before you go editing your pieces. You'll notice all the good examples of quad modifier are either nicely organic and have no holes, or are flat sheet metal parts, maybe with holes. It just never works great to get useable mesh out of CAD. There's always some editing to be done.

It would be cool to see an importer though, and then a tool like the one you're making to output to iges. Step might be better. With iges you can include part name and/or color to help with selection as well, since it's all on one layer. Software like Rhino, pretty much hates iges because of that. But software like SolidWorks and ProE will join those into single parts, as they should. So it might be good to figure out the format for having multiple parts within an IGES file from Solid or Pro so you can figure out how to handle that as well. Also figuring out a preview for the export would be helpful. Basically a tool to show you the patches you would get. For instance anything that isn't a 4 pole connection will cause a surface corner, right? And are you able to handle edges marked as sharp as trim surfaces? If not, you'll need to add that if it's to be useful.

SubD surfaces are getting more support in engineering software, so it might be more worth just figuring out a format that actually translates to them, rather than figuring out CAD formats to keep engineers happy. (BTW, they'll never be happy since it's not parametric even if you give them IGES)

sculptor Author

Thank you for the feedback. Yes, infact I have already created a plugin for Alias to export data as a blender file. Please visit digital-sculptors.com/cms/index.php/software/autodesk-alias-plugins/62-export-blender.html for more information.

SubD surfaces are new developments both in Alias and Rhino. As of now they haven't opened up the API to those functionalities.

Also, there is a questions of affordability. Now that software licensing has become subscription based, there are lot of designers around the world who would not be able afford commercial software. If Blender could output CAD nuetral data, it would enable independant designers, especially from the under-developed world, to become truely independant.

andy.engelkemier

It would definitely be useful. For one, you can store a really smooth result while taking up less space. Some printing software lets you imput step or iges now, instead of stl, so that can help with storage as well.

It would be nice if you could figure out a way to have the iges exporter respect creases, because currently it does not, so it only really works well for really smooth things. For 100% creases, you can split your object, but that still may not give the results you need.

I was trying to find a poly format that held creases also, so that I could at least use something like fusion or rhino 7 (again, which i don't have yet) to do the subD conversion there. But so far, no luck.

sculptor Author

The new update supports creases as well as the upcoming Blender 3.0. There were some breaking changes in the Python API. Fortunately managed to make it backward compatible too. twitter.com/DSculptors/status/1454736933339467776