IGES Library Change History
Changes in release 18.1 (2018-11-15)
- Add igeslib_double_precision parameter for custom write behavior.
Changes in release 18.0 (2018-10-01)
Changes in release 17.3 (2018-01-04)
- Added color support to level_function entity (406 form 3). There
are now color() get and set functions on the class. The spec says
that color is n.a. for that type, but many systems exchange color
information with this entity.
Changes in release 17.2 (2017-12-29)
- Update for roselib ABI changes, and retirement of custom all-atts
ctors. Use the default ctor and individual attribute set functions
to populate objects.
Changes in release 17.1 (2017-11-15)
- Added warning for form numbers out of range on arcs and lines
(entities 100 and 110), and set to zero. The WebFEM system is
writing these with an unknown form 3.
Changes in release 17.0 (2017-04-07)
- Update for major release.
Changes in release 16.6 (2016-07-14)
- Corrected an infinite loop when dealing with certain bad inputs.
Changes in release 16.5 (2016-06-01)
- Update for ST-Developer v16 SP4
Changes in release 16.4 (2016-03-28)
- Fixed reading of strings that have the initial size parameter split
- Fixed reading of strings that have literal newlines embedded in them
splitting the IGES record across lines.
- When encountering bad data and capturing it as a null_entity, the
reader now does a better job of capturing the parameter data, even
it is corrupted.
Changes in release 16.3 (2015-09-21)
- Update for ST-Developer v16 SP3
Changes in release 16.2 (2014-11-18)
- Both integers and floating point numbers can now be read when split
across lines in the parameter section. The number and delimiter are
supposed to be on the same line, but some systems just hard wrap at
the last column no matter where they are.
- Relaxed some of the checking to allow longer DE back pointers if
they are just long because of extra zero padding.
- Changed the handling of entity 402 with a zero or other undefined
form to read as a group_entity. Previously that was handled using
the supertype associativity_entity, which doesn't fhave any parameter
- Fixed several crashes when handling IGES files corrupted by the
Microsoft fuzz testing tool.
Changes in release 16.1 (2014-07-09)
- Adjust reading of floating point values in the parameter section so
that a number can be split between lines (1.234[newline]567) This
should not happen because the IGES spec requires the entire number
and delimeter to be on one line, but some systems write broken data.
Changes in release 16.0 (2014-04-15)
- Code build for use with the final ST-Developer v16 release.
Changes in release 15.11 (2014-02-20)
- Same as the 15.10 release, but built for ST-Developer Beta 6
Changes in release 15.10 (2014-02-20)
- This release built for use with ST-Developer Beta 5
- Fixed problem writing occasional bad line lengths in the parameter
section. The length computations for doubles were not initialized
properly in the rare case of a negative zero or ROSE_NULL_REAL.
Changes in release 15.9 (2014-02-08)
- Changed shell_entity to have an explicit subordinate attribute for
use with open shell. The value defaults to physically dependent, so
there should be no changes needed to existing code.
- Added blank status to level_function_entity as blank() access/update
functions. The IGES spec says the blank status for 406:3 should be
the default (00), but we add explicit control because it appears to
be used in practice to control visibility of level.
- Rebuild for ROSE library updates in Beta 6 / Personal Edition
Changes in release 15.8 (2014-01-10)
- Fixed spurrious trailing decimal when writing numbers with an
exponent but no fractional part ("1D20" rather than "1D20.") Also
reworked the handling of exponents to omit any "+" and initial zero
characters ("1.23D5" rather than "1.23D+005")
- Now digitally signing DLL versions of the library.
Changes in release 15.7 (2013-10-16)
- Changed line_entity to have an explicit form attribute to support
form 1 and 2 of entity 110. Also extended the use_flag enum with a
new "use_flag_construction_geometry" element to cover flag 06 which
is used by the new forms.
- The built-in schemas within the library should now initialize
correctly when linked with other libraries that contain built-in
Changes in release 15.6 (2013-09-10)
- The library should now read and write IGES files correctly even if
the application programmer has called setlocale() to change the
behavior of number formats (123.4 -> 123,4) and such. Previously,
you had to be sure to switch back to the "C" locale before reading
- Updated for use with ST-Developer Beta 5
Changes in release 15.5 (2013-06-06)
- Extended parsing of parameter data to allow delimiters to fold over
to the following line. The IGES spec says that they must stay on
the same line as the value but some systems wrap incorrectly.
- Relaxed handling of entities 502-514 so that they will accept a zero
- Updated for use with ST-Developer Beta 4
Changes in release 15.4 (2013-04-26)
- Updated for use with ST-Developer Beta 3
Changes in release 15.3 (2013-03-11)
- Rebuilt for use with roselib 15.3
Changes in release 15.2 (2012-11-06)
- Reader will now process records that are longer or shorter than 80
characters. Rather than assuming the fixed columns, it searches
backwards from the end to find the sequence number, section flag,
and parameter data DE pointer.
- Reader now accepts parameter data that extends past column 64, but
warns about it.
- Reader is now more tolerant of spacing around delimiters in
free-formated integer, string, and floating point data.
- Reader will now try to detect and correct floating point parameters
that have been damaged by email transit, which can strip or double a
dot ('.') that is at the start of a line. It always handles doubled
dots, and assumes that a dot has been stripped if a floating point
value is at the start of a line, has no dot, and the line is short.
When writing files, a dot is never written in the first column.
- Added "milspec" field to igs_global to cover optional mil-spec field
at end of global section. Updated reader and writer to handle.
- When writing files, the global section now identifies the IGES
version as 5.3 (version=11) rather than 5.1 (version=9). When
reading, the version number contains whatever the file declared
- Fixed memory leak during read of string parameters.
- The iges_read.log and iges_write.log files are no longer generated.
- Added a VERSIONINFO resource to the DLL builds of the library.
- Updated for use with latest roselib that retired Set(), List(),
Bag(), and Array() macros that conflicted with VC9 headers.
Changes in release 15.1 (2012-04-01)
- Added color support to boundary_representation_entity, which
technically does not match the spec since color is n.a. for all
boundary rep types, but many systems exchange color information for
topology. As a result, there are now color() get and set functions
on igs_direction_entity, igs_edge_list_entity, igs_face_entity,
igs_loop_entity, igs_manifold_solid_brep_entity, igs_shell_entity,
Changes in release 15.0 (2012-03-30)
- ST-Developer v15 release.
Changes in release 14.7 (2011-11-28)
- The igs_iges_file::read() and write() functions now expect UTF-8
filename strings and open them properly under windows using wfopen,
so the behavior is now the same under UNIX and Windows. The data
strings in an IGES file are presented as-is, so applications should
convert from local code pages or hex-encoded Kanji data in type 212
notes to UTF-8 if the source data is going into STEP APs.
- Added a root virtual function to directory_entry for the four status
number functions previously defined only on subclasses. This change
allows values to be found without casting to each different subtype.
The functions return NULL_ENUM for entities where the IGES spec says
that the field has no meaning.
- igs_subordinate_switch subordinate();
- Changed error for missing definition in type 402 associativity
instance entity to be non-fatal.
Changes in release 14.6 (2011-10-02)
- Added shared library versions of the IGES library to MacOSX and
- Rebuilt for use with ROSE library 14.4 update.
Changes in release 14.5 (2011-09-14)
- Now reads open shells (type 514 form 2) correctly. As part of
this change, the form() attribute on igs_shell_entity class has
changed from derived to an explicit, settable attribute. It will
contain 1 for closed shells or 2 for open shells.
- Now reads type 102 with incorrect form 1. Will be created as a
normal composite_curve_entity. The form should be zero and will be
written as such.
- Now reads type 314 with incorrect form 1, produced by spGate
translator software. Created as a normal color_definition_entity
The form should be zero and will be written as such.
- Type 406 properties of form 32-36 are now read correctly.
Previously they would be written correctly when created but not
recognized by the reader.
- Improved the documentation to clarify the type/form combinations and
how the library reads non-standard combinations that do not appear
in the specification. Also removed some extraneous supertypes from
the type table.
Changes in release 14.4 (2011-09-09)
- Added FILE* versions of igs_iges_file::read() and write() so they
can be used with windows files opened by wfopen. The const char *
versions just pass their arguments to fopen() so they can be used
with UTF-8 filenames on Linux and other systems.
Changes in release 14.3 (2011-09-06)
- Added DLL version of IGES library to distribution. Build using the
DLL version by adding "/DIGESLIB_DLL /DROSE_DLL" to your defines and
link to "igesdll.lib rosedll.lib" or "igesdlld.lib rosedlld.lib"
instead of igeslib.lib and roselib.lib.
Changes in release 14.2 (2011-09-02)
- Use the igeslib.h header file to bring in all class definitions and
other library functions. Please change any older code that includes
the six separate schema headers. The new header is simpler and also
prepares for the #defs needed for a DLL version of the library.
- The six force load functions for each schema have been combined into
the igeslib_force_load() function. Please remove any old #includes
of the *_ROSE_LOAD.h headers and calls to the other functions.
- Added igs_ prefix to all generated classes. To include preprocessor
defines to help build existing code, define IGESLIB_USE_OLD_NAMES on
the compiler command line.
- Changed the include directory from igescvt to igeslib. Changed the
library name from IGES.lib to igselib.lib as well. This now matches
the naming pattern of the other ST-Developer EXPRESS libraries.
- Extended documentation to include mapping between IGES entity and
form numbers and the EXPRESS definitions, as well as more examples.
- The compiled EXPRESS for the IGES schema is now built-in so that
applications based on the library do not need ST-Runtime. Call the
igeslib_create_builtin_schemas() function near the start of main.
- Retired the iges_cvt executable and replaced it with separate
iges2step and step2iges executables rather than script wrappers.
This should be clearer and simpler to understand. The -o option
also works better because the new execs use the name verbatim
instead of trying to replace extensions.
- Corrected packaging problem with HTML EXPRESS schema documentation.
Changes in release 14.1 (2011-04-07)
- Packaged up as MSI, added basic docs for the class library.
Changes in release 2.2
- Corrected a bug introduced by the double reading logic below, which
shifted the record causing subsequent fields to be corrupted.
- Removed an error report when reading floating point values written
as integer. ie, the file contains "1" where spec says that it should
be "1.0". This is against the spec, but many systems do it.
- Extended the double reading code to recognize lowercase 'E' and 'D'
usage in scientific notation. This does not match the spec, but
many systems do it.
Changes in releases prior to 2.1
- Changelog and version numbering not maintained
Copyright © 2021 STEP Tools Inc. All Rights Reserved