STIX AP Helper Functions
Changes in release 19.0 (2020-10-01)
- Version 19 release.
- Added functions to create STEP date and time objects from a variety
of inputs, compare them, and perform simple math with them.
- stix_datetime_cmp()
- stix_datetime_diff()
- stix_datetime_format()
- stix_datetime_parse()
- stix_make_date()
- stix_make_date_now()
- stix_make_datetime()
- stix_make_datetime_now()
- stix_make_datetime_now_ms()
- stix_make_timezone()
- Handle null axis placement select in stix_xform_put()
- Added "make" convenient functions for datums and datum systems. The
documentation now has a separate section discussing datum systems.
- stix_make_datum()
- stix_make_datum_system()
- Add datum system version to functions that did not have one.
- stix_tol_add_common_datum()
- stix_tol_add_datum()
- stix_tol_add_datum_modifier()
- stix_tol_get_datum_modifier()
- stix_tol_get_datum_modifier_count()
- stix_tol_get_datum_modifier_with_value()
- stix_tol_get_datum_ref()
- stix_tol_remove_all_datums()
- stix_tol_remove_datum()
- stix_tol_remove_datum_modifier()
- stix_tol_remove_datum_modifiers()
Changes in release 18.1 (2019-10-28)
- Version 18 Service Pack One release.
- Updates for SMRLv8 changes to tolerance with defined unit and defined area unit definitions. The unit size values can now hold either an angle value or a length value. Previously, these only held a length value.
- Changed return type of stix_tol_get_unit_size() and stix_tol_get_second_unit_size() from length measure with unit to the more general measure with unit.
- Changed input value type for stix_tol_put_unit_size() and stix_tol_put_second_unit_size() from length measure with unit to the more general measure with unit.
Changes in release 18.0 (2018-10-01)
- Version 18 release.
- Updates for AP242 DIS. Added functions to ease the transition to
the new select in representation_relationship.
- stix_get_reprel_1/2()
- stix_put_reprel_1/2()
Changes in release 17.1 (2017-12-29)
- Updates for latest EXPRESS class library. No longer using custom all-args ctors internally.
- Updated assembly code to fix bug #4 where mapped_items were incorrectly placed at the inverse transform. Actually, due to the naming of fields, the mapped_item case was correct, but the shaoe_rep_relation case was update, as was the stix_get_transform function. Hopefully most higher level software uses those API calls, and does not compute their own transforms from the origin and target fields of StixMgrAsmRelation.
Changes in release 17.0 (2017-04-07)
- Updating assembly recognition to be aware of the AP242e2 additive manufacturing relationships and be more tolerant of bad data.
- Removed duplicate code for stix_get_unit_numerator/denominator and get_rational_unit. These were moved to the RoseMath library some time ago.
- Updated build config to use new stp_aim unified library. Only building one version now and library name is no longer prefixed
Changes in release 16.15 (2016-11-28)
- Fixed crash recognizing mal-formed units.
Changes in release 16.14 (2016-11-02)
- Update for NCPack 16.22
Changes in release 16.13 (2016-06-01)
- Update for ST-Developer v16 SP4
Changes in release 16.12 (2016-04-18)
- Add shortcut functions to register lookup names for objects, like
the addName() and findObject() but without interfering with P21e3
anchors. Still creates a system section dictionary so object
substitution and trash work properly with the shortcuts. Updated
all internal code to use this mechanism.
- stix_shortcut_put()
- stix_shortcut_find()
- stix_shortcut_clear_all()
- Added stix_tol_get/put_aspect() to set the toleranced shape aspect of a geometric tolerance.
- Updated existing datum functions to handle common datums. These are passed around as a general datum reference pointer. Implemented the previously stubbed out stix_tol_add_common_datum() function. The get datum_ref functions can operate by index for traversing common datums.
- The stix_tol_remove_all_datums() function removes all datum references and modifiers, including any nested common datums.
Changes in release 16.11 (2016-02-09)
- Added functions for traversing over tolerance modifiers. These
functions also understand the old ap214-style modifier and will
automatically translate MMC and LMC into a simple modifier enum.
- stix_tol_get_modifier_count()
- stix_tol_get_modifier()
Changes in release 16.10 (2016-01-27)
- Added functions for traversing over datum modifiers. These
functions also understand the old ap214-style modifier and will
automatically translate MMC and LMC into a simple modifier enum.
- stix_tol_get_datum_modifier_count()
- stix_tol_get_datum_modifier()
- stix_tol_get_datum_modifier_with_value()
- The stix_tol_remove_datum_modifier() function removes a modifier value from a datum while stix_tol_remove_datum_modifiers() removes all of them.
- The stix_tol_remove_modifier() function removes a modifier value from a tolerance, while stix_tol_remove_modifiers() removes all of them.
Changes in release 16.9 (2016-01-25)
- The stix_tol_get_datum() and stix_tol_get_datum_count() easily loop over all of the datums associated with a tolerance. This works with the new datum_system style and old datum_reference styles of file, so you do not need to worry about the specifics.
- Reworked stix_tol_add_datum() to accept a datum instance and create all intermediate datum system, compartment and other objects needed to append the tolerance to the datum list. The return type has also changed and now gives the compartment object so that modifiers can be applied after the datum is added.
- Added new stix_tol_remove_datum() function to remove a datum reference from a tolerance.
- Renamed stix_tol_modifier_value() to stix_tol_get_modifier_value() The -_datum_modifier_value() and -_datum_with_value_modifier_value() functions were similarly renamed.
- Added stix_tol_get_modifier_name() which returns a string from enum, plus -_datum_modifier_name() and -_datum_with_value_modifier_name() versions.
- When creating a tolerance with a defined area unit, the area type is now consistently initialized to null.
Changes in release 16.8 (2016-01-14)
- Revised the tolerance API to focus on the new datum-system approach used to attach datums to a tolerance.
- Added stix_tol_get/put_datums() to handle the single datum_system that holds datums in all ap242-style tolerances.
- Renamed stix_tol_get/put_datum_system() to *_datum_set() to avoid confusion for things that need the raw collection for ap214-style tolerances.
- Added the following string to enum lookup functions
- stix_tol_modifier_value()
- stix_tol_datum_modifier_value()
- stix_tol_datum_with_value_modifier_value()
- Added stix_tol_add_datum_modifier() to put a modifier on an existing datum relationship. Takes the tolerance and datum, finds where it is attached, and adds the modifer if needed. There are versions for a simple flag modifier and for a length value modifier.
- Added stix_tol_find_datum_reference() to find where a datum is attached to a tolerance.
Changes in release 16.7 (2015-11-21)
- Version bump for ncpack 16.16
Changes in release 16.6 (2015-10-19)
- Fixed missing stix_tolerance.h in Windows MSI installer.
Changes in release 16.5 (2015-09-21)
- Added complete new API for creating geometric tolerance objects,
finding their type, getting and putting all of the extra parameters
that they can have. This is much simpler than trying to use the
ANDOR C++ classes for each type.
- stix_make_tolerance()
- stix_tol_add_datum()
- stix_tol_add_modifier()
- stix_tol_geometric_type()
- stix_tol_get/put_area_type()
- stix_tol_get/put_datum_system()
- stix_tol_get/put_displacement()
- stix_tol_get/put_limit_condition()
- stix_tol_get/put_maximum_upper_tolerance()
- stix_tol_get/put_modifiers()
- stix_tol_get/put_second_unit_size()
- stix_tol_get/put_unit_size()
- stix_tol_has_area_unit()
- stix_tol_has_datums()
- stix_tol_has_max()
- stix_tol_has_modifiers()
- stix_tol_has_orig_modifier()
- stix_tol_has_unequal()
- stix_tol_has_unit()
- stix_tol_type()
Changes in release 16.4 (2015-07-24)
- Retired stix_xform.h, stix_math.h, StixMtrx, and StixVctr and
transitioned all transforms and vectors to the RoseMath library,
which is a common basis for geometry and mesh operations. Changed
symbols include the following:
- StixMtrx RoseXform
- StixVctr RoseDirection or RosePoint
- STIX_FLOAT_EQUAL ROSE_FLOAT_IS_EQUAL
- STIX_FLOAT_NOT_EQUAL ROSE_FLOAT_NOT_EQUAL
- STIX_FLOAT_ZERO ROSE_FLOAT_IS_ZERO
- STIX_FLOAT_NOT_ZERO ROSE_FLOAT_NOT_ZERO
- STIX_FLOAT_NULL ROSE_FLOAT_IS_NULL
- STIX_FLOAT_NOT_NULL ROSE_FLOAT_NOT_NULL
- STIX_PI ROSE_PI
- STIX_PI_OVER_2 ROSE_PI_OVER_2
- STIX_PI_OVER_180 ROSE_PI_OVER_180
- STIX_180_OVER_PI ROSE_180_OVER_PI
- stix_is_epsilon_equal() rose_is_epsilon_equal()
- stix_is_epsilon_nonzero() rose_is_epsilon_nonzero()
- stix_is_epsilon_zero() rose_is_epsilon_zero()
- Retired StixUnit, StixValueType, and transitioned unit code to the
RoseMath library. STEP-specific unit functions remain. Changed
symbols include the following:
- StixUnit RoseUnit
- StixValueType RoseMeasureType
- stixunit_* roseunit_*
- stixvalue_* rosemeasure_*
- stixvalue_feedrate rosemeasure_speed
- stixvalue_spinrate rosemeasure_ang_speed
- Added functions
- stix_get_cone_angle()
- stix_get_context_uncertainty_value()
- stix_get_edge_end()
- stix_get_edge_start()
- stix_get_polyline_point()
- stix_get_polyline_size()
- stix_get_trimming_point()
- stix_make_ap3d()
- stix_make_cartesian_point()
- stix_make_cto3d()
- stix_make_direction()
- stix_get_value_type() has been renamed to stix_get_measure_type() and the char* return values for the get_unit_name functions have been made const.
- Changed the signature of stix_get_point_xyz() so that the XYZ values come first, also added a version that takes an array of three elements.
Changes in release 16.3 (2015-04-30)
- Updated stix_geometry to remove some debugging code
Changes in release 16.2 (2014-12-12)
- Brought over the stixmesh_get_transform computation functions from
that library and updated to fix issues with non-trivial target
placements in assemblies. Also implemented the unit param on
stix_get_shape_usage_xform to scale the return coordinates if
requested.
- stix_get_transform()
- stix_get_shape_usage_xform() updated
Changes in release 16.1 (2014-05-23)
- Added stix_get_context_uncertainty() function to return uncertainty measures.
Changes in release 16.0 (2014-03-26)
Changes in release 15.14 (2014-01-30)
- Retired STIX_DLL as a required define. The headers now check for ROSE_DLL and use DLL linkage whenever the ROSE library uses it.
- Shrunk DIV/0 check to look for lengths <= min dbl when normalizing vectors.
Changes in release 15.13 (2013-09-09)
- Added additional make functions for specific measure types and for
qualified measures.
- stix_get_measure_std_uncertainty()
- stix_make_qualified_measure_item()
- stix_make_time_measure()
- stix_make_time_measure_item()
- stix_put_measure_lower_limit_value()
- stix_put_measure_precision_value()
- stix_put_measure_std_uncertainty()
- stix_put_measure_upper_limit_value()
- Changed stix_make_ratio functions so that they now default to stixunit_ratio, since ratio values are normally unitless.
- Corrected DLL linkage for get relating/related pdef functions, stix_find_nested_repitems() and stix_translate_geometry_units()
- Added put functions for product definition relationship selects.
The functions were already in the library, but declarations were
missing from the headers.
- stix_put_related_pdef()
- stix_put_relating_pdef()
- Fixed potential DIV/0 when normalizing vectors.
Changes in release 15.12 (2013-05-20)
- Added stix_find_nested_repitems() to build a list of all rep items owned by a representation. Does not follow mapped items or styled items because those lead to other designs.
- Added stix_translate_geometry_units() to convert all elements of a representation to a new geometric unit. If you have a RoseMark in process, the function will mark objects as they are converted, avoiding double conversion of shared points or surfaces.
- Updated stix_asm header with missing forward declarations.
- Added functions to simplify working with the new styled_item
definition that now references through a select.
- stix_get_styled_repitem()
- stix_put_styled_repitem()
- stix_get_styled_rep()
- stix_put_styled_rep()
- Added an overloaded stix_get_unit_type() that takes a string name and finds the unit matching a known long or short name. Also added a version for value_type. These are brute force implementations so best for occasional use.
Changes in release 15.11 (2013-04-15)
- Updating for the changes in AP242 DIS. The related/relating
attributes of product definition relationship is now a select type.
Use the wrapper functions below to get the value in a portable way.
They return null if the value is not a product_definition.
- stix_get_related_pdef()
- stix_get_relating_pdef()
Changes in release 15.10 (2013-03-11)
- Rebuilt for use with roselib 15.3
- Release now includes DLL versions of the libraries.
Changes in release 15.9 (2012-12-05)
- Added wrappers around stix_make_measure() and make_measure_item that
cast the return value to a subtype for use in places that require
the more specific pointer type.
- stix_make_time_measure()
- stix_make_time_measure_item()
Changes in release 15.9 (2012-10-29)
- Extended the get unit from context functions with overloads that take a rep context as well as the originals that take a rep.
Changes in release 15.8 (2012-10-22)
- Simplified names by changing "stixbase" to just "stix" in the include directory and library names. The longer name was needed during the transition from the v0.xxx STEP-NC software stack.
- Added stix_tag_props() for a consistent tagging convention.
- Added wrappers around stix_make_measure() and make_measure_item that
cast the return value to a subtype for use in places that require
the more specific pointer type.
- stix_make_length_measure_item()
- stix_make_angle_measure()
- stix_make_angle_measure_item()
- stix_make_ratio_measure()
- stix_make_ratio_measure_item()
Changes in release 15.7 (2012-09-27)
- Added stix_get_property_owner() functions for property defs and property def reps. These return a RoseObject because properties can be attached to many different types of things. The _as_pdef() functions are now implemented in terms of these.
- Retired STIX_OPTIONAL_UNIT macro
Changes in release 15.6 (2012-09-24)
- Added StixUnit/StixUnitSet make geometry context functions.
- Shortened stix_make_const_unit() to stix_make_unit()
- Shortened stix_make_const_named_unit() to stix_make_named_unit()
- Updated documentation for context and unit functions.
- Added polyline and trimming select convenience functions
- Added stix_get_measure_current_value(), updated the upper and lower limit functions to do proper unit conversion.
- Changed stix_get_converted_measure() to respect NULL input.
Changes in release 15.5 (2012-09-21)
- Added stix_make_const_named_unit() wrapper to eliminate cast.
- Added stix_get_rep_item() and stix_get_descriptive_* functions to support stixctl porting.
Changes in release 15.4 (2012-09-20)
- Added stix_make_length_measure() function and dropped _with_unit from the general make function which is now stix_make_measure()
Changes in release 15.3 (2012-09-20)
- Forgot stix_geometry.h header in the installer
Changes in release 15.2 (2012-09-20)
- Implemented stix_get_measure_item(), which is renamed from the original stix_get_measure_rep_item. Also renamed the original stix_make_measure_rep_item() into stix_make_measure_item() for consistency.
- Brought over qualified measure functions:
- stix_get_measure_lower_limit_value
- stix_get_measure_upper_limit_value
- stix_get_measure_precision_value
- Added StixUnitSet class to replace the global defaults. Brought in
access functions for the different types and gave each an overload
that takes the unit set. New functions are:
- stix_get_angle_item
- stix_get_angle_value
- stix_get_count_item
- stix_get_count_value
- stix_get_feedrate_item
- stix_get_feedrate_value
- stix_get_length_item
- stix_get_length_value
- stix_get_pressure_item
- stix_get_pressure_value
- stix_get_ratio_item
- stix_get_ratio_value
- stix_get_spinrate_item
- stix_get_spinrate_value
- stix_get_time_item
- stix_get_time_value
Changes in release 15.1 (2012-09-08)
- Added missing stix_defs.h header to the install, also changed so that it includes rose.h.
- Added forward class declarations for AIM pointer types to all header files to simplify include dependencies. Also changed most cxx files to include only the classes that they use for faster compiles.
- Changed stix_classify_* and classify_design to stix_tag_* and tag_design()
- Eliminated calls to List(), Set(), etc. macros that were removed from the ROSE library because of conflicts with VC9.
Changes in release 15.0 (2012-08-03)
- Initial version, merging many utility function previously scattered around the STEP-NC, geometry faceting, and GL display libraries.
- Added first draft of HTML documentation installed in ST-Developer docs under the stix subdirectory.
- The tools subdirectory now contains splitasm, mergeasm, and print apps for both asms and properties. The split and merge tools have a significant amount of code in them, but I have pushed a good bit back up into the stix library, particularly stix_tmpobj, stix_split, and the merge functions for units, contexts, etc.
- Brought over unit handling code from STEP-NC libraries, changed the
names of some of the value types to avoid confusion between linear
and rotational speed. In a machining context, linear speed is
normally called a feedrate or feed and a rotational speed is called
spindle speed or just speed.
rotspeed -> spinrate
- speed -> feedrate
- speed_per_rev -> feed_per_rev
- speed_per_tooth -> feed_per_tooth