Added stix_xform2d_put() functions with support for axis placement
2D and 2D cartesian transformation operators.
Add create/recognize STEP units for recently added mass and area
density units: kg per cubic meter, gram per cubic centimeter, ounce
and pound per cubic inch, and pound per cubic foot. Area density
units are the same except for square instead of cubic length.
Add create/recognize STEP units recently added RoseUnit defs: mass
units, mg, gram, kg, tonne (metric ton), oz, pound, ton, and long
ton, kilonewton and remaining SI quantities: ampere/current,
becquerel/radioactivity, candela/luminous intensity, coulomb/charge
farad/capacitance gray/absorbed dose, henry/inductance,
joule/energy, lumen/luminous flux, lux/illuminance, mole/amount of
substance, ohm/resistance, siemens/conductance, sievert/equivalent
dose, tesla/magnetic flux density, volt/voltage, weber/mag flux.
Added support for triangulated_face instances.
Add support for spline curves trimmed by points (rather than param values).
Add support for styled (thick) lines:
Added stix_presenct_curve_width function.
Get data from stp_curve_style instance, and populate rosegl style info from
that.
Changes in release 20.1 (2023-08-10)
Accommodate rosemath 20.1 changes.
Added callout functions and surface texture support for callouts.
Added stix_face_find_outer()
Support for laminate "assemblies". Allow root shapes in child
pdefs. Added stix_asm_find_product_root_shapes()
Changes in release 20.0 (2023-03-10)
Version 20 release.
Added stix_unit_make_select() function for more convenient creation
of units wrapped in the select type.
Added missing named/derived/MWU versions for unit name and fullname
functions.
Added optional label parameters to functions that construct
representation items.
stix_measure_make_item()
stix_measure_make_qualified_item()
Updated functions for AP context, product contexts, and product
definition contexts so they can use appropriate string values for
each of the different supported schemas.
stix_ap_find_context()
stix_ap_find_definition()
stix_ap_make_context()
stix_ap_make_definition()
stix_pdef_find_context()
stix_pdef_make_context()
stix_product_find_context()
stix_product_make_context()
Added versons of stix_present_color() for various types of
presentation assignment objects. These work directly, without
needing to tag presentation data.
Changes in release 19.1 (2022-02-01)
Version 19 Service Pack One release.
Changes in release 19.0 (2021-07-19)
Version 19 release.
All STEP meshing and extensions are now in a single library. The
separate stixmesh library has been retired. Meshing API has been
greatly simplified, see stix_mesh_make() and stix_mesh_make_all()
for details.
Added StixAsmProductIndex and StixAsmShapeIndex for much easier
traversal over STEP assemblies. No more recursive code, assemblies
can be walked with a simple loop.
Added functions to create STEP date and time objects from a variety
of inputs, compare them, and perform simple math with them.
stix_date_cmp()
stix_date_diff()
stix_date_format()
stix_date_make()
stix_date_make_now()
stix_date_make_time()
stix_date_make_time_now()
stix_date_make_time_now_ms()
stix_date_make_zone()
stix_date_parse()
stix_date_parse_time()
Revised the function names so to group topically. Headers have
defines for the original names, so old code still compiles. Disable
the old names by defining STIX_NO_DEPRECATED_NAMES.
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_tol_make_datum()
stix_tol_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()
Retired STIX_DECLARE_MANAGER macros. Use ROSE versions instead.
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:
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