Initial Graphics Exchange Specifications (IGES) (.igs, .iges)
File Exchange Steps
For information on specific IGES file exchange details, see the white paper on the Rhino Wiki web site
Simple IGES export options
Select an IGES type.
Or click Detailed Controls.
Author, Organization, Sender’s product ID, and Receiver’s product ID
These are text fields in the IGES file that can be used for identification purposes.
In general, the IGES tolerance should match the absolute tolerance setting in Rhino, taking account the possible unit conversion.
The IGES tolerance does not affect the accuracy of the geometry.
The units used for the IGES export.
Include notes in the IGES file
Check to save notes in IGES start section. Otherwise, the IGES start section is a blank line.
Render color as IGES entity color
Check to use the render color of objects as the IGES entity color. Otherwise, Rhino uses the layer color of the object as the IGES entity color.
To customize the IGES export options
In the IGES Export Detailed Options dialog box, click Edit types
to edit and create new IGES export types.
When Rhino reads an IGES file using the Open
command, the Rhino units are set to those in the IGES file and the Rhino system tolerance is set to the IGES file tolerance, with some adjustments made to keep Rhino from setting a too small/big tolerance based on a bogus IGES file tolerance.
When Rhino reads an IGES file using the Import
command, the Rhino system tolerance is never changed. The tolerance used in rebuilding bogus IGES trims is automatically computed and is always smaller than or equal to the Rhino system tolerance. If the IGES units do not match the Rhino units, the user gets informed and is given the option of scaling the imported IGES geometry so that it matches the current Rhino unit system.
Polygon meshes are not exported to IGES file. If you import a 3DS file (which is a polygon mesh file) and write out an IGES file, the IGES file will be empty.
IGES only supports the printable subset of ASCII characters from character 32 to 127. This causes layer names to be truncated at the first occurrence of a non US character (like é).
When merging an IGES file, you should save your work first.
After a large IGES import, it is recommended that you save your work, and then restart MAX.
There may be some instances in which the IGES import is trimming the wrong portion of the surface. In this case, select the surface, make it independent, select the trim curve, and flip the trim.
The IGES importer uses IGES group and level information to distinguish between objects. All data that is not grouped, and that resides in the same level, will import to the same object. To distinguish between separate entities, you should use groups or levels when exporting from the originating application.
For the fastest import, change your viewport layout to a single viewport, and set the display to wireframe
MAX4 has two places where you can set the units: Customize > Unit Setup, and Customize > Preferences. Set these to match the units in the Rhino file.
There are now two types of solids modelers: surfaces and solids. Use the surfaces type when exporting a single surface to those products. Use the solids type when exporting anything you may want to join back together.
If a surface is closed (like a cylinder) and Split closed surfaces=Y, the surface will split into two halves in the IGES file. If a surface is closed in both directions (like a torus) and Split closed surfaces=Y, then the surface will split into four quarters in the IGES file.
If a surface has poles at both ends (like a sphere) and Split bipolar surfaces=Y, then the surface will split so each half has just one pole.
A possible drawback of splitting is if you have a closed surface and want to deform it in some other application, then splitting it in half will make it harder to get nice deformations.
Exporting From Mechanical Desktop R2.0
The best way to get geometry from Mechanical Desktop (MDT) Release 2.0 into Rhino is to use the MDT IGESOUT command. To get the best results, you may need to adjust the MDT IGES export options.
In MDT start the IGESOUT command.
In the Autodesk IGES Translator R14 – IGESOUT dialog box, click Edit options.
In the IGESOUT Options Editor dialog box, click Start and Global.
In the IGESOUT Start and Global Options dialog box, set IGES Version to either 5.2 or 5.3.
Version 5.3 stores years as 4 digit numbers. Version 5.2 stores years as 2 digit numbers, and click OK.
In the IGESOUT Options Editor dialog box, click Structure.
In the IGESOUT Structure Options dialog box, set Map Layer Names to Level Property (4063) and click OK.
In the IGESOUT Options Editor dialog box, click Geometry.
In the IGESOUT Geometry Options dialog box, set 3D Solid/Designer part mapping to Surfaces, and set Trimmed Surface Mapping to Bounded surface (143) and click OK.
In the IGESOUT Options Editor dialog box, click DE Mappings.
In the IGESOUT DE Mapping Options dialog box, check Color Definition Entity (314) and click OK.
To save these settings, in the IGESOUT Options Editor dialog box, in the Description box, type a description and click Save As. Save the options in a file called something like MDTtoRhino.opt.
There are two types of solids modelers: surfaces and solids. Use the surfaces type when exporting a single surface to products that allow surfaces. Use the solids type when exporting anything you may want to join back together.
Many MDT IGES options are not mentioned in the discussion above.
With Pro/E version 20, when exporting to IGES, use the All Parts option.
To optimize export of Pro/E files into Rhino, use these settings in the Pro/E config.pro file or save them as rhino.pro file. Read it in before exporting.
Prior to constructing any geometry, you should set your absolute tolerance to something lower than the default 0.01 units; somewhere around 0.001 to 0.0001 will produce good results. Anything lower than that tends to slow Rhino down.
If you set your tolerances right, you should only have to perform a minimal amount of manual stitching once inside Pro/E.
For the solids modelers like Pro/E, there are now two types: surfaces and solids. Use the surfaces type when exporting a single surface to those products. Use the solids type when exporting anything you want to be able to join back together.
If a surface is closed (like a cylinder) and Split closed surfaces=Y, the surface will be split into two halves in the IGES file. If a surface is closed in both directions (like a torus) and Split closed surfaces=Y, then the surface will split into four quarters in the IGES file.
If a surface has poles at both ends (like a sphere) and Split bipolar surfaces=Y, then the surface splits so each half has just one pole.
The drawback of splitting is that if you have a closed surface and want to deform it in some other application, then splitting it in half will make it harder to get nice deformations.
There are two types of solids modelers: surfaces and solids. Use the surfaces type when exporting a single surface to those products. Use the solids type when exporting anything you want to be able to join back together.
Rhino -> SolidWorks
For SolidWorks post-IGES “knitting” to succeed, you may need to tweak the IGES unit system and/or tolerance. Experiment with different settings for optimal results.
To make more watertight geometry in Rhino, set the Rhino absolute tolerance
to a small number like 0.001 or 0.0001 before building the geometry.
SolidWorks -> Rhino
SolidWorks Standard IGES export type uses analytic surfaces. To export models to Rhino, use one of the other IGES types like SURFCAM or Mastercam that use NURBS
Type a name for the IGES type.
Choose between IGES version 5.2 and 5.3.
The difference is 5.2 stores years if you use two digits and 5.3 if you use four digits.
Text file type
Choose between MS-DOS, Unix, and MacOS style line endings.
MS-DOS uses carriage return + line feed (CRLF), Unix uses LF, and MacOS uses CR.
Set the default scale factor for the IGES type. The number must be bigger than zero.
In most cases, this number should be one.
Points and Curves
Point objects can export as separate IGES 116 point entities, and all points on a single layer can export as a single IGES 106-2 point set.
Choose between no maximum degree, maximum degree 3, and maximum degree 5.
If the max degree is set to 3, all NURBS
curves with any degree higher than 3 are approximated with non-rational cubics to the specified IGES tolerance.
If the max degree is set to 5, all NURBS curves with degree higher than 5 are approximated, in non-rational quintics, to the IGES tolerance you specify.
Composite curves as single B-spline
Curve made from two or more B-splines can be exported as an IGES 102 (composite curve) entity or as IGES 126 entities.
Use simple entities when possible
Use this setting to export NURBS curves that are lines, arcs, or circles (within the IGES tolerance) as IGES lines, IGES arcs, or IGES circles.
Fit rational curves
With this setting all rational curves (curve objects and trim curves) are approximated, in non-rational cubics, to the tolerance specified as the IGES tolerance.
Clamp end knots
With this setting periodic NURBS curves are exported as NURBS curves with clamped end knots.
Solids can be exported as separate surfaces, IGES 184 entities, IGES 186 (Manifold BRep) entities, or IGES 402-7 (Unordered group) entities.
Open polysurfaces can be exported as separate -2 surfaces or IGES 402-7 entities.
Surfaces can be exported as IGES 128, IGES 143 and IGES 144 entities.
IGES 128 means all trimmed surfaces are exported as untrimmed surfaces.
Choose between no degree limit, maximum degree three, and maximum degree five.
If the max degree is set to three, when possible, all NURBS surfaces with degree higher than three are approximated, in non-rational cubics, to the specified IGES tolerance.
If the max degree is set to five, when possible, all NURBS surfaces with degree higher than five are approximated,in non-rational quintics, IGES tolerance you specify.
Use simple entities when possible
With this setting NURBS surfaces that are planar (within the tolerance specified as the IGES tolerance) export as IGES planes or IGES trimmed planes.
Fit rational surfaces
With this setting, when possible, rational NURBS surfaces are be approximated with non-rational cubics to the tolerance specified as the IGES tolerance.
Clamp end knots
With this setting periodic NURBS surfaces are exported as NURBS surfaces with clamped end knots.
Split closed surfaces
If a surface is closed (like a cylinder), the surface will be split into two halves in the IGES file. If a surface is closed in both directions (like a torus), the surface will be split into four quarters in the IGES file.
Split bipolar surfaces
If a surface has poles at both ends (like a sphere), the surface is split so each half has just one pole.
To create a new IGES type:
In the IGES Export Types dialog box, click New.
Set the options for the IGES type.
To create a new IGES type based on existing type:
In the IGES Export Types dialog box, select an IGES type and click Copy Type.
Set the options for the IGES type.
To edit an IGES type:
In the IGES Export Types dialog box, select an IGES type, and click Edit.
Set the options for the IGES type.
To delete an IGES type:
In the IGES Export Types dialog box, select an IGES type, and click Delete.
If you read IGES files created from Rhino into another product and some surfaces are missing, try the following test.
Export your geometry using the “Test 143″ export type.
Export the same geometry again using the “Test 144″ export type.
Try to load both files into your product.
If you get better results with one export type, post the results to the Rhino newsgroup news//news.rhino3d.com/rhino
so we can document this file format.
Your meshes do not export to the IGES file.
The IGES file format does not support meshes.
You read an IGES file and nothing appears in the file.
If you read an IGES file and nothing is imported, Rhino displays the IGES Import Summary Information message box that says:
Rhino found nothing to import from this IGES file.
This happens when an IGES file has no valid independent geometry.
A summary of the file’s contents is printed in the command history window.
Type “CommandHistory” to view the entire summary.
The IGES file may contain usable IGES geometry entities that are not marked as geometry. To see if this is the case, you need to do a bit of sleuthing. When Rhino reads an IGES file, it prints a summary of the IGES file’s contents in the command history window.
(F2) to view the data.
You’ll see a report that looks similar to the this:
IGES global section settings in “myfile.igs“
Author’s organization: …
Sender model name: …
Receiver model name: …
Sender file name: …
Sender system ID: …
Sender IGES preprocessor: …
IGES file created time: date month year hour:minute:second
Model created/last modified time: date month year hour:minute:second
Unit system: millimeters
Unit system name: MM
IGES tolerance: 0.01
Maximum coordinate: 101
Scale: 1 model units = 1 world unit
IGES file contents summary
Number of invalid directory entries: 0
Null entity count: 0
Transformation matrix entity count: 1
Attribute information entity count: 0
All other entities:
Category (independent count/physically dependent/logically dependent/total count)
Other (0/0/0/ No)
2d Parametric (0/0/0/0)
Construction Geometry (0/0/0/0)
Imported 0 entities from IGES file myfile.igs.
If the Geometry(…) line looks like Geometry(0/…/…/n) and n is not zero, then it may be that valid geometry is in the IGES file, but that geometry is incorrectly marked as dependent. If one of the Annotation(), Definition(), Other(), or Logical/Positional(), lines has (…/…/…/n) and n is not zero, then it may be that there is valid geometry in the IGES file that is incorrectly marked as something besides geometry.
If you think there is a chance that an IGES file contains valid geometry that is not being read because the IGES file has put the geometry in the wrong category, then you can use an advanced Rhino command to attempt to read this IGES file.
The ReadEveryIgesEntity command tells Rhino that the next time an IGES file is read, it should ignore all category settings in the IGES file and try to read everything.
Import all IGES entities, regardless of type.
Open the questionable IGES file.
If there is any geometry at all in the IGES file, It will be read. You might, however, get lots of geometry you didn’t want and have to dig through the pile to find the items you need.
The ReadEveryIGESEntity command only effects the next IGES file that is read. If you do something like:
Rhino attempts to read every entity only from beta.igs.
Rhino reads alpha.igs and gamma.igs normally, accepting only entities marked as geometry.
Examine specific entities in an IGES file by limiting which portions of the IGES directory are parsed.
This command is for users familiar with the structure of IGES data files. No technical support is available for this command. The IGESStudy command is for expert users who need to dig through large IGES files on piece at a time. Again, expert knowledge of IGES file structure is required.
Every entry into an IGES file also has directory entry (DE). The information that a DE stores determines if the corresponding IGES entity (curve, surface, solid, color, layer name, etc.) gets read. To further understand the importance of not blindly reading every entity in an IGES file as a top level piece of geometry, do this test:
Use the BooleanUnion
command to make a multi-faced solid from a box, torus, and sphere.
Export the solid to an IGES file.
Read the IGES file back in. You will get an exploded version of what you started with.
Delete all the stuff you just read in.
Run the ReadEveryIGESEntity
Read the IGES file again. You will get lots of extra curves and surfaces.
The extra curves and surfaces you got in step 6 provide the information you need to create trimmed surfaces. These curves and surfaces were imported in step 6 because the IGES reader ignored to DE information that flags the corresponding entity as a part of some “top” level object. The ReadEveryIGESEntity
command is used as a last resort to get information out of IGES files that have “top” level objects that have been flagged as parts.
You read an IGES file and it looks like some information is coming in damaged. The first thing you need to find out is the DE of the damaged objects. Run the IGESStudy command and turn the Label option on.
IGES debugging options (DEtest=Off FirstDE=1 LastDE=0 ReadEveryEntity=Off Label=On)
Read the file again. This time, every object you read has its Rhino name set to “DE N”, where “N” is an odd number. The directory entries in an IGES file are labeled 1, 3, 5, 7, and so on. Select the bad objects and make a list of the DE’s that are troublesome. Let us say 13, 137, and 9025 were coming in as bad objects.
Now you use the IGESStudy command to read just the problem entitles, one at a time.
IGES debugging options (DEtest=On FirstDE=13 LastDE=13 ReadEveryEntity=Off Label=On)
You verify that DE 13 is coming in as junk. Then, look at the IGES file (in a text editor or a program like IGESure) and see what DE 13 is supposed to be. If you understand the entity, you can use the IGESStudy command to read in the parts that are used to make the entity. For example, you can look at the base surface and trimming curves to see what might be going on. As you do this, you will find blocks of entities you need to read. In those cases, you can use the IGESStudy command to read chunks of the file. For example:
IGES debugging options (DEtest=On FirstDE=123 LastDE=199 ReadEveryEntity=On Label=On)
will read every entry with DE number between 123 and 199. If you only want to read top level entities you set ReadEveryEntity=Off.
Controls the correspondence between Rhino layers and IGES levels on IGES import and export from the command line or a script.
IGES “levels” are like Rhino layers, except they use a number as an identifier instead of a text name. If you have layer standards for products that use IGES to exchange data, you will need a way to define a correspondence between Rhino layer names and IGES level numbers. Rhino has a layer to level function.
To set up correspondence between Rhino layers and IGES levels:
Create a text file like the following example:
;IGES level translation rules
“Default” = 0
“Larry” = 13
“Curley” = 7
“Moe” = 32000
“Default” = 0
“Orange” = 9876
“Apple – Delicious” = 13
“Apple – Granny Smith” = 7232
“Grape” = 1
This file defines rules for mapping Rhino layers to IGES level numbers that will be used during IGES export and for mapping IGES level numbers to Rhino layers that will be used during IGES import.
This example file defines two sets of Rhino layer-IGES level correspondence rules (flavors) named “3Stooges” and “FruitStand.”
Select the map file you created.
Select the flavor option.
For example, if your file is called “iges_level_mapping.txt” and you want to use the “FruitStand” type, set the Flavor option to FruitStand.
In general, it is a good idea for Rhino’s “Default” layer to correspond to IGES’s level 0, but this is not required.
This file can contain multiple flavors. A flavor has a name enclosed in square brackets [ ] followed by lines that look like:
“<RhinoLayerName>” = N
where N is a non-negative integer (0, 1, 2, 3,…).
The Rhino layer name appears between the quotation marks.
A flavor is terminated by a blank line.
The converter/map program ignores spaces and tabs.
The converter/map program ignores lines that begin with semi-colon (;).
If an imported IGES file contains a level number that is not listed in the set of rules and does have a IGES level name, that level will automatically import to a layer called “IGES_LEVEL_N”.
If an exported Rhino layer name is not listed in the set of rules, an IGES level number is automatically selected.