CAD Translation in the Real World, Tips and Secrets
The experience of importing data into SOLIDWORKS can run the gamut from satisfyingly trouble-free to hair-pullingly problematic. We’ve had an article here about how to use 3D Interconnect, which is the way to go when everything goes right. But how often does everything go right in CAD translations? And when things don’t go right, you might need some additional tricks up your sleeve.
The first trick here is to set yourself up for success as much as possible by establishing some import/export best practice suggestions for your suppliers and vendors to use. When it is not possible to get good results, you have to be able to use manual intervention and make the best of the situation.
Let’s first talk about how to set yourself up for success.
Getting Data Out
When saving data out, you need to make sure that you don’t have items shown such as sketches or curves (that could go out as IGES entities) and that you have either consumed or deleted all of your extra solid or surface bodies.
SOLIDWORKS has a set of settings which are good to be familiar with. Each export format has its own settings, and these can control everything from how it deals with assemblies to splitting cylindrical surfaces.
Just as with incoming data, there is a hierarchy of format preferences for outgoing data, from most preferred to least preferred:
- Native format
- Mesh formats
Getting Data In
The real trick with SOLIDWORKS imports is getting the right data from the source. You often have no control over what kind of data you are given, and no idea if the original data was even usable before the translation. In general, here are some best practice tips for translations you can follow (or get others to follow) to increase your chances of getting good data:
- Get native data, whatever the source. Conversion software and services can be instrumental in processing the data as a backup to other translation formats. SOLIDWORKS does read some native formats like Solid Edge (certain versions), NX, Rhino, Creo, certain CATIA file types, CADKEY, Inventor and AutoCAD.
- Make your data provider responsible for providing SOLIDWORKS data. Maybe they can pay for the conversion. You can’t always get away with this but it’s worth a shot.
- Parasolid is the best format to receive. If there is a problem with the Parasolid, there was a problem with the original data. If you are using an old version of SOLIDWORKS, make sure the version of Parasolid is compatible.
- STEP AP214 (brings colors with it)
- STEP AP 203 (no colors)
- IGES 5.3
- Mesh formats in SOLIDWORKS are the least desirable data type because there is not a lot you can do with them and there can be massive performance problems.
There are also guidelines you should follow in any kind of translation:
- Whatever the data type, make sure the provider can “round trip” the data by reading it back in successfully after writing it out. If they can’t do that, how do they expect you to do it?
- Suppress, hide or delete any extraneous bodies, sketch or curve data.
- Do not expect to get mates or features in any kind of translation, including Parasolid.
- Always round-trip your data for out-going translations.
- In all translations, how you deal with assemblies and individual parts will be key—especially with repeated instances of individual parts, so pay attention to the settings and make sure that you round trip your data to verify the results expected on the other end. You may get parts as bodies and they may come as solids or surfaces.
Parasolid comes in multiple flavors, most notably *.x_t (text-based file) or *.x_b (binary file). You might also see extensions such as *.xmt_txt and *.xmt_bin, where the “xmt” stands for “transmit.”
You should also know that the IGES standard has a wide range of interpretations and that not every software package writes IGES data that SOLIDWORKS can read reliably.
When 3D Interconnect Fails
As mentioned, we have covered 3D Interconnect. For those who have not read that article, 3D Interconnect allows you to re-import a part with a new updated file, much like editing a sketch for an extruded feature. This assumes that someone has done repairs or changes to the original part in its native format, and you need to update your references.
If you have originally imported a part using 3D Interconnect, but you want to make changes yourself to the model, you need to break the link. This can be done by right clicking on the 3D Interconnect feature in the tree and selecting Break Link. The result of using Break Link on 3D Interconnect features is the same as if you turned off the 3D Interconnect and just used a basic import.
Evaluating and Repairing Import Data using Import Diagnostics
The software will then show whatever was imported with that particular file. In this case shown below, we got three surface bodies, two of which have errors.
By the way, if you had imported this part with 3D Interconnect, it would have shown you a part without any errors. The errors are still there, you just don’t know about them. This is one of the reasons I don’t consider 3D Interconnect a viable method for real production work.
The first thing you should do if you receive data that has import errors is to run Import Diagnostics. In fact, this option should automatically present itself if you haven’t turned it off. Even if an imported part doesn’t show errors in the feature tree, it may still have some errors, as shown in this part:
Errors in parts can run the gamut from simple gaps between faces to edges that don’t match the surfaces, corrupt entities, missing areas and many more. The part shown above has mostly bad faces, along with some gaps between the faces.
Using the Attempt To Heal All buttons in the interface once or multiple times can eventually lead to a completely repaired model. Sometimes, it’s just not worth the time.
When you get a bad import, you have to decide what you need the model to do. Do you really need it to be a sealed-up perfect solid? Can you deal with it as-is as long as the errors aren’t visible and obvious? Is it for 3D print? CNC? Referencing tooling? Drawings? Maybe just there to look good?
Evaluating and Repairing Import Data Manually
In some cases, the automatic tools will not fix all of the errors. You can go through the list of face errors and research the errors in more detail, or simply delete the bad faces and recreate them using surfacing tools.
As a tip, make sure that you have the setting turned on to make open edges of bodies show in a different color (Tools > Options > System Options > Display > Show Open Edges Of Surfaces In Different Color). This helps greatly when troubleshooting surface bodies that have not joined to make a solid. Edges show by default as a light blue, so a contrasting part color like gray helps.
Sometimes a few surfacing features and a couple of knits can help you put a badly translated file back into service. If you import files frequently, you have to be open to this kind of work from time to time. Surfacing and bodies work is inherent to repairing imported geometry.
Remember that the Bodies folders at the top of the tree are important when trying to understand the results from a faulty translation. You can tell very quickly if you got solids or surfaces.
Also, try to be aware that most SOLIDWORKS users have learned to be a little bit error-phobic in an obsessive sort of way. Any red or yellow marks in the tree tend to drive us crazy. But sometimes there may not be much you can do and little benefit even if you fixed the problems. Learning to live with some errors is not necessarily a reflection on your skills. Sometimes it just means you are good enough at time management and prioritization.
Hack Your Import
Sometimes there are unorthodox or overlooked methods you can employ to fix a bad import. This list is not an endorsement, it’s just a few things that can make imports work under certain circumstances:
- Import in SOLIDWORKS can be done in two ways: One, the normal way, which is to use Open File and change the extension you’re looking for. the second, lesser-known method is using Insert > Feature > Imported, which allows you to import a part at any place in your feature tree, not just the top.
- You can edit things like scale and units in the header of certain text-based files, like x_t and IGES. The source software, file names and paths can also often be found in some format headers.
- Exporting and reimporting through Parasolid or even STEP can fix certain import problems.
- Running an import through another software such as Rhino may give you better results when the data gets to SOLIDWORKS.
- You can name entities (faces and edges) of imported parts that can be used in mates.
- There is a secret about 3D Interconnect. The feature it supersedes (regular import) still allows you to update an imported file. Try this: With 3D Interconnect turned off, just import a file. Then right click on the Imported feature in the tree and you still get the Edit Feature option, which allows you to get an updated translation file. Which makes us think: why is 3D Interconnect useful, again?
These aren’t the kind of things you want to get in the habit of doing—they are certainly not on any best practice list—but when you are desperate and out of options, these tricks can sometimes give you results.
Making Changes to Imported Data
Changes can be made to imported data without adding geometry-creating features. Some features such as Move Face, Delete Face, Scale and even Draft operate on the existing geometry, although they do add history-based features to the tree. For this reason, SOLIDWORKS is said to have some direct-edit type functionality, while not really being a true direct-edit modeler.
Because it’s not a true direct-edit modeler, there are a lot of limitations when it comes to making edits to “dumb” geometry. One of those limitations is how it deals with fillets. You may find that it is easier to work with SOLIDWORKS direct-edit type tools if you first delete fillet faces from around the faces you want to move. Or you can move tangent faces along with other types of faces that you want to move.
For example, this image shows an imported sheet metal part where we want to change the length of the flange. You can either use the arrows and rings to move or rotate the selection visually, or key in numbers to move a set distance. Also available are end conditions such as up to vertex and up to surface.
Imported data doesn’t have dimensions or features to edit, so we have to resort to moving faces to make changes. You can’t just select the end faces to move because they are connected to the tangent fillets, so you have to also select the fillets.
When you do this kind of editing, you need to have a good understanding of how B-rep (boundary representation) and NURBS modeling work. Some faces you can extend and some you can’t. Sheet metal is typically all either flat or cylindrical faces, which behave predictably—so holes will move easily, but parts with organic shapes do not.
If you really need direct-edit type functionality, you can consider other software packages such as Solid Edge, Creo Direct, Key Creator or IronCAD.
Rebuilding Imported Data Parametrically
One of the options that you have when you import data into SOLIDWORKS is to rebuild the parts parametrically with history-based features. Sheet metal parts can partially do this with the Convert To Sheet Metal tool, but this only adds bends that can be flattened; it does not add initial features, holes or anything else.
If you want to go further with sheet metal or other (prismatic) parts, you can use FeatureWorks, a plugin provided with SOLIDWORKS Professional and higher.
If you have the plugin installed and turned on, the option to rebuild the part with FeatureWorks will appear automatically after import. Shown below is a simple part with only a few features, but FeatureWorks recognized it completely and automatically.
There are times when you will have to help it recognize features and other times when it will not be able to recognize anything. The secrets to getting FeatureWorks to function automatically are:
- Fully enclosed solid with no errors.
- All simple prismatic shapes (extrude, revolve, hole, fillet or chamfer features).
- Can also recognize sheet metal features.
- Features should be complete, without intersecting one another.
- When using the interactive recognition wizard, try to work backwards from the last feature you would apply in a normal workflow (fillets and chamfers) to the first feature you would apply (base extrude).
Reverse Engineering Over Imported Data
To be honest, FeatureWorks is best for simple parts and mostly only when you can accept the results of automated modeling decisions. Sometimes you may run into the need to model over more complex or other kinds of data, such as mesh or point cloud data or swoopy organic shapes. SOLIDWORKS does have a plugin called ScanTo3D which can help you get surface data over point cloud, but this is again limited in its sophistication. You may need to bring in other tools to help with this kind of work, such as Rhino, Power Surfacing from nTopology or various offerings of Geomagic Raindrop from 3D Systems, among others.
Of course, there is also the totally manual method of taking slices through geometry to make parametric complex surfaces. Many times, this method is used if you want to create a starting point for your own development from an existing complex model. This can be tedious and require a lot of patience and specialized skills, so just be prepared if you choose to go down this route.
In summary, there are several ways you can set yourself up for success with data translations, especially if you have prior access to the source of your translated data. Make sure the source of any data can round-trip the data. Remember the best practices listed.
If 3D Interconnect does not apply in your situation, or your import has errors, there are several options available to troubleshoot and repair the data and remember that how far you are willing to go to get a solution should depend on what you need the model to do. And lastly, remember it is not always necessary to have a 100% perfect model.