Added STIXCTL_DWELL event which is generated by feedstop toolpaths
in the same way that STIXCTL_MOVE events are generated by the curves
in the more cutter location paths. Added functions to the Cursor
for the time parameter. Added behavior to the Generate to emit G4
codes for dwell events.
getDwellTime()
getDwellTimeUnit()
Fixed crash when formatting negative small number that rounds to
zero when requiring a minimum number of digits.
Added StixCtlGenerate MoveIsModal flag to control whether G0/G1
command is treated as modal or must be issued with every move even
when following moves are of the same type.
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.
Added StixCtlGenerate flag to linearize all arcs and helixes. This
uses a series of linear moves instead of the circular interpolation
codes (G2/G3) for the format. The chord tolerance parameter
controls how fine the curve is faceted.
getChordTolerance()
getLinearizeAllCurves()
setChordTolerance()
setLinearizeAllCurves()
Fix missing M5 (or equivalent) when turning spindle off by setting
speed to zero.
The cursor applies the workplan.toolpath_orientation if present.
APT output messages as PPRINT, extended ncfuns as INSERT
Retired stix_export* functions used by the maker library.
Changes in release 18.2 (2019-10-28)
Version 18 Service Pack One release.
Added StixCtlGenerate::exportCNCFile() function as a simple wrapper
that creates a cursor and writes a codes to the named file using the
current settings.
StixCtlGenerate functions to give IJK values and angles separate
digits of precision from the rest of the position values. Added
convenience wrappers for catNumber() to use each of the different
digit settings.
catNumberAsAngle()
catNumberAsFeed()
catNumberAsIJK()
catNumberAsSpindle()
catParamAsAngle()
catParamAsFeed()
catParamAsIJK()
catParamAsSpindle()
getAngleDigits()
getAngleMinDigits()
getIJKDigits()
getIJKMinDigits()
setAngleDigits()
setAngleMinDigits()
setIJKDigits()
setIJKMinDigits()
Changes in release 18.1 (2019-04-05)
The cursor now emits a TOOL_CHANGE event for load tool and unload
tool NC functions. It first emits the EXEC_NCFUN event, as before,
followed by the TOOL_CHANGE event.
Skip comment when generating an extended nc function with an
"INSERT/" statement.
Invert axis for APT circle output.
Changes in release 18.0 (2018-10-01)
Version 18 release.
Change Siemens helix output to use angle rather than centerpoint.
Marking workingstep transitions on siemens by incrementing STPWS
Add G64 to Siemens program start.
Clear Fanuc probing variables at program start.
Added STPWS count variable to siemens-traori and renishaw output and
similar #185 variable to the imts-fanuc output.
Now emitting extended NC functions that have an "INSERT/" prefix.
The prefix is stripped and the rest is inserted verbatim. This is
now the default behavior for all code styles.
Adding STOPRE before variable assignments in Siemens to keep from
early execution.
Now generating CYCLE800 tilted plane instructions on Siemens for
five axis and non axis aligned probing operations. The CYCLE800
calls request that the tool tip be adjusted instead of retracting.
In the control, under the page for machine configuration / Kinematic
channel1 / Swivel mode, "Track tool" must be set to "Yes".
Changes in release 17.3 (2018-02-28)
Reworked G-code generator so that you can easily use your own codes
alongside the ones that we generate. Walk the program with a cursor
and get codes for each event as a string from the new StixCtlFormat
class. Print the codes to a file, or mix in your own codes.
When generating five axis moves on Fanuc or Siemens, the IJK axis
values are now normalized.
When generating five axis moves on Fanuc TCP, all IJK components are
generated. Giving only one or two may be misinterpreted by the
control.
Checking whether a circular move is a full circle now takes place at
the effective output precision. We had been checking at a tighter
internal precision and would sometimes miss splitting some arc moves
that rounded to a full circle.
Changes in release 17.2 (2017-12-30)
Fixed length units for arc positions in cursor. Were not being set.
Updates for latest EXPRESS class library. No longer using custom
all-args ctors internally.
Changes in release 17.1 (2017-07-14)
Generating Rennishaw vector probing cycles for both Siemens and
Haas. The Siemens can do a 3D probe while Haas can only probe in
the XY plane or in Z. Siemens probing tested in 5-axis ORIWKS,
works well enough but the probe prepositioning moves to minus the
ball radius seem to be in the part coordinate system rather than the
native one. Also added L9800 before every workplan to force reset
the Rennishaw internal variables in case a measurement had been
interrupted and left bad data there.
Added feature UUID and probing counts to the Rennishaw output.
These set variables that are expected to be defined as global on the
control. The variables are STPFEAT, STPFACE, STPNUM, STPMAX, STPX,
STPY, STPZ, and STPCT.
Probing motion direction was not getting the setup transform.
Now able to disable tool change and spindle macros for Siemens.
Added siemens-dmdii style which does not use those macros and uses
the Rennishaw macros.
Initial support for the Canonical Robot Control Language (CRCL)
Added StixCtlCursor, a new process cursor that handles all of the
traversal duties previously hidden in the StixCtl class. It will
step through the process and pause at events, such as a position
change, beginning of a toolpath, end of an operation. This will
make the process more accessible as we reorganize the library so
that MCD interfaces are customizable with .NET or NODE.
Added new package documentation and examples for StixCtlCursor.
Changes in release 17.0 (2017-04-07)
When five-axis toolpaths are present anywhere in the output, we
initialize the tool axis to (0,0,1) after a tool change, even if the
first toolpath after the change is just a three axis move.
Added additional checks and comments on feed override processing.
Changes in release 16.18 (2016-09-09)
Now looks for mist and through-spindle coolant settings in the
machine functions. Uses M08 for flood and M07 for mist on most
configs, has special codes for through spindle on Okuma and Haas.
Other configs just emit a comment for through spindle.
Changes in release 16.17 (2016-07-25)
NCPack release 16.21
Changes in release 16.16 (2016-06-01)
Update for ST-Developer v16 SP4
Changes in release 16.15 (2016-04-25)
Minor API change to support program id setting.
Changes in release 16.14 (2016-02-10)
Changed default behavior for fanuc and haas output. Now always uses
a decimal point for feeds and coordinates, even when the value is an
integer. This avoids ambiguity because some controls interpret a
value without a decimal point as a count of least input increments.
This means that X10 could be 10mm or 10 ticks (maybe 10 * 0.001mm)
depending on how the control was configured.
Changes in release 16.13 (2016-01-04)
Version bump for new ARM library in ncpack 16.17
Changes in release 16.12 (2015-11-21)
Version bump for new ARM library in ncpack 16.16
Changes in release 16.11 (2015-09-21)
Update for ST-Developer v16 SP3
Changes in release 16.10 (2015-07-24)
Release and rework for rosemath
Changes in release 16.9 (2015-06-02)
Update for stpman, SP2
Changes in release 16.8 (2014-12-12)
Added tracking and search capability for block N-numbers in addition
to the basic block count stuff.
Changes in release 16.7 (2014-11-18)
Rebuild for ST-Developer SP1 update.
Changes in release 16.6 (2014-08-04)
Adjusted curve parameterization for via point arcs, which should
result in better toolpath tracking on the CNC in STEP-NC explorer.
Changes in release 16.5 (2014-07-17)
Okuma tool changes now check if the tool is already in the spindle
to avoid a complaint from the control. Tool changes also reset all
modal codes just to be sure.
Now checking arc moves for precision underflow on the radius.
Changes in release 16.4 (2014-05-23)
Forced Okuma spindle speeds to be integer values (no decimal).
Added functions to manage the correlation between STEP-NC data and
the block numbers from the last G-code export.
Changes in release 16.3 (2014-05-23)
Changes in release 16.2 (2014-05-22)
Changes in release 16.1 (2014-05-13)
Refresh for updated ARM library
Changes in release 16.0 (2014-03-26)
Updated test program to handle wide command line input
Updated version.mak to latest conventions
Changes in release 15.5 (2014-02-07)
Rebuild for ROSE library updates in Beta 6 / Personal Edition
Changes in release 15.3 and 15.4 (2013-12-31)
Packaging update to add Visual Studio 2012 libraries
Changes in release 15.3 (2013-12-13)
Rebuild for recent changes to the ST-Developer libraries.
Changes in release 15.2 (2013-09-30)
Rebuild for ST-Developer v16 beta 5
Changes in release 15.1 (2012-12-03)
Rebuild for recent changes to the ARM and STIX libraries.
Changes in release 15.0 (2012-09-27)
Port to the new stpman code stack based on the stpman_arm and
stixbase libraries. This required reimplementing STEP-NC traversal
code from the old stixlib (access functions and cursors) using the
newer ARM class methods. The end result will integrate much better
with the STEP-NC DLL and other applications that use ARM classes.
Most of the reimplemented functions are declared in stixctl_utils.h
Changes in release 1.107 (2012-03-29)
Rebuilt for ST-Developer v15
Changes in release 1.106 (2011-11-10)
Rebuilt for stixlib 0.41 and roselib 14.5 updates.
Changes in release 1.105 (2011-11-10)
Rebuilt for stixlib 0.41 and roselib 14.5 updates.
Fixed some signed char string processing code that would break if
given a utf8 string with high bits set.
Changes in release 1.105 (2011-10-14)
Rebuilt for stixlib 0.40 and roselib 14.4 updates
Changes in release 1.104 (2011-08-24)
Rigid tapping on Fanuc and Haas now use G84/G80 blocks.
Use style function is now case insensitive.
RPI Haas style now uses whitespace for better readability.
Changes in release 1.103 (2011-08-12)
Rewrote style selection to be table-based, retired old Esprit
verifier code style. Added rpi-haas style.
Added ability to specify minimum number of digits for precision
as well as the maximums.
Reorganized the test files to be grouped by style rather than file.
This scales better as we add more styles. This needed a major CVS
reorg in the tests subdir.
Began work on Fanuc/Haas G84 rigid tapping. Needs code reorg to
handle modal stuff for patterns.
Changes in release 1.102 (2010-10-15)
Now stripping STRLs from workingstep names in the output comments.
Changes in release 1.101 (2010-10-11)
Corrected extraneous linear moves after Fanuc-style helix export in
fanuc, okuma, and haas output.
Changes in release 1.100 (2010-10-08)
Allowing for up to five degrees of slack in the determination of the
helix working plane to account for setup compensation adjustments.
Changes in release 1.99 (2010-10-05)
Built for ST-Modules 1.54.
Changes in release 1.98 (2010-09-15)
Built for ST-Modules 1.53.
Changes in release 1.97 (2010-09-15)
Built for ST-Modules 1.52.
Changes in release 1.96 (2010-09-05)
Built for ST-Modules 1.51.
Changes in release 1.95 (2010-09-03)
Built for STIX 0.38 and ST-Modules 1.50 which add new closed-loop
programing AIM and ARM constructs.
Changes in release 1.94 (2010-08-20)
Final build after roselib usedin corrections, for use with
ST-Developer 14 libraries.
Changes in release 1.93 (2010-08-17)
Correct installer problem.
Changes in release 1.92 (2010-08-17)
Built for ST-Developer 14.
Changes in release 1.91 (2010-07-01)
Added guard code to the helix processing to watch for degenerate
planar cases and generate plain arc moves instead.
Rebuild for ST-Modules.
Changes in release 1.90 (2010-06-10)
Now forcing a hard stop M00 whenever the setup changes.
Added basic framework for generating tapping operations using the
parameters in the operation and feature locations, plus specific
code for G331/G332 rigid tapping operations on Siemens.
Changes in release 1.89 (2010-06-04)
Rebuild for ST-Modules.
Changes in release 1.88 (2010-04-16)
Rebuild for ST-Module 1.39
Changes in release 1.87 (2010-03-23)
Built for ST-Developer 13.
Changed the behavior of stixctl_is/set_enabled() so the enabled
status is now kept in persistent STEP data, using the TC1 enabled
property on executable.
Moved some functions over into stixlib. Corrected code issues from
build testing on VC9.
Corrected failure to suppress unchanged Z on some Heidenhain arcs.
Changes in release 1.86 (2009-09-15)
Added support for Selective program elements. Generates code for
the first enabled workingstep it happens to find.
Changes in release 1.85 (2009-09-11)
Fanuc and Haas output now explicitly declare units using G20/G21
Added support for Siemens G700/G710 unit declarations.
Changes in release 1.84 (2009-09-10)
Now using the digits of precision rather than a fixed epsilon to
detect and suppress repeated coordinates on Fanuc, Siemens, Haas,
Okuma, Heidenhain, and MDSI.
Changes in release 1.83 (2009-09-09)
Corrected the output of arc moves when a setup transformation is
present. In all output styles, transformations were not applied
properly to the Z axis of trimmed circles, and when outputting MDSI
style lathe code they were being applied when they should not have
been to the tool axis direction.
Extended Siemens output for G2/G3 to emit A3/B3/C3 axis directions
to specify the plane of the circle when not in the XY plane.
Changes in release 1.82 (2009-09-02)
Transformations were applied in the wrong order when a setup
placement on a workplan and a toolpath placement on a workingstep
were both present in the data. The code was applying the toolpath
transform to the setup one, rather than the other way around. This
affected the Boxy data and should now be corrected.
Fixed case where we were not transforming the toolaxis when the
toolpath did not provide an axis curve, was just passing through the
default 0,0,1 axis untransformed.
Moved the StixCtlTiltAxes enum into the StixCtl class, changed the
name to StixCtl::TiltAxes, and shortened the enumerators. Also
added a TiltAxes_none value to force three-axis behavior.
Added ability to control output of comments for toolpaths,
workingsteps, even points. Controlled by the trace_comments()
function on StixCtl. Gets and takes an enum that calls for comments
on each workplan, workingstep, toolpath, or point. Also added the
following for DLL use. It takes the integer value of the enum.
stix_export_using_comments (int level);
Changes in release 1.81 (2009-07-29)
Changed the comments at program start for all known styles that
support comments so that they include the STEP-NC source filename
before the timestamp.
Eliminated do and don't execute lists from the StixCtl object and
converted everything to use the stixctl_is_enabled() mechanism.
Reworked StixCtl so that it can be used as an execution cursor by
doing a special cursor style and replacing selected hooks with user
functionality. Hooks can now be given a special SKIP value that
will cause them to not be called.
Changes in release 1.80 (2009-07-02)
Added functions for querying flute count on tools, as well as
getting and setting a nonpersistent current flute count.
Adding constant chip load feedrate optimizations using the current
tool parameters to adjust the spindle or feedrate.
Changes in release 1.79 (2009-05-08)
Added block number upper limit capability to wrap sequence numbers
that exceed an upper value, such as N99999 for Okuma.
Added support for Okuma output using O238 and OTCG macros for the
program start and cleanup as well as tool changes.
Changes in release 1.78 (2009-04-14)
Added G56 tool offset in Z to Okuma tool changes. Also broke out
the Okuma-specific code into okuma.cxx.
Changes in release 1.77 (2009-04-14)
Added G90 and clear work offset to Okuma startup.
Changes in release 1.76 (2009-04-10)
Added G15 work offset support and G20/G21 support to Okuma output.
Added a descriptive comment before each tool change listing the
tool parameters (length,diameter,etc) in the STEP-NC data.
Changes in release 1.75 (2009-03-18)
Rebuild for stmodule 1.37
Changes in release 1.74 (2009-03-04)
Rebuild for stmodule 1.36
Changes in release 1.73 (2009-02-27)
Rebuild for stmodule 1.34
Changes in release 1.72 (2009-02-05)
Changed helix output on siemens so that the center coordinates are
tagged as absolute values.
Changes in release 1.71 (2009-01-26)
Updates for stix v0.34.
Changes in release 1.70 (2009-01-22)
Updates for stix v0.33.
Changes in release 1.69 (2008-10-07)
Corrected checking in G0/G1 code for situations where no actual
location change would occur. The IJK fixes in v1.67 revealed some
weaknesses in this code, resulting in axis moves that simply repeat
a previous position (from X0 to X0) or possibly malformed moves when
suppressing axes as in the MDSI turning codes.
Updates for stix v0.32. Removed temporary code that compensated for
missing or changed utilities.
Changes in release 1.68 (2008-09-29)
Moved M6 to separate line in siemens-traori style.
Changes in release 1.67 (2008-09-25)
Changes to boeing-fanuc style to force IJK components.
Added a siemens-traori style to handle Siemens TCP control by
calling TRAORI(1) directly without any of the WSMODEON/OFF macros.
Added code to use/supress speed curves for individual workingsteps.
Changes in release 1.66 (2008-09-23)
Added a boeing-fanuc style to test special tool calls and C axis
unwind between workingsteps.
Updated the enable/disable code to handle entire workplans.
Changes in release 1.65 (2008-09-17)
On Heiedenhain, added M126 code after tool changes to correct
problems with Vericut simulation. Not clear whether it has any
effect on an actual run since we already explicitly move the C axis
along the shortest traverse.
Changes in release 1.64 (2008-09-11)
Changed handling of C axis on Heiedenhain to eliminate sudden
wraparound. The axis is no longer limited to -180 to +180, but
moves the shortest distance, possibly winding up to multiple full
revolutions.
Changes in release 1.63 (2008-09-08)
Tool direction vectors are now properly transformed by the
destination transform. Previously, only the tool location was being
transformed.
Changes in release 1.62 (2008-09-02)
Added support for the toolpath orientation transform on a machining
workingstep, which moves the given toolpaths to a new location.
Changes in release 1.61 (2008-08-28)
Built with ST-MfgARM v1.24
Changes in release 1.60 (2008-08-28)
Built with ST-MfgARM v1.24
Changes in release 1.60 (2008-07-31)
Built with ST-MfgARM v1.21
Changes in release 1.59 (2008-07-31)
Built with ST-MfgARM v1.20
Changes in release 1.58 (2008-07-25)
Built with ST-MfgARM v1.19
Changes in release 1.57 (2008-07-11)
Built with ST-MfgARM v1.18
Changes in release 1.56 (2008-07-02)
Added work offset support for the Fanuc and Haas outputs.
Changes in release 1.55 (2008-06-30)
Updated the default tool change behavior to to G43Hx when TCP is
disabled.
Changes in release 1.54 (2008-05-12)
Updated APT export style to declare tools using TLDATA command.
Changes in release 1.53 (2008-05-09)
Added export style for APT text output. The style name given to
stix_export_as_style is 'apt'.
Changes in release 1.52 (2008-05-08)
Added support for index table function on Heidenhain. Outputs a
comment on all other platforms. Also added placeholder for index
pallet and exchange pallet.
Changes in release 1.51 (2008-05-05)
Built with ST-MfgARM v1.16
Changes in release 1.50 (2008-04-04)
Added support for surface normal curves that are represented as
trimmed curves when used with trimmed arcs.
Built with ST-MfgARM v1.14
Changes in release 1.49 (2008-03-06)
Now queueing G40 for issue with the next move.
Restructured surface normal analysis and G41/42 output for cutter
contact toolpaths to be more robust in the face of corners and other
cases where the normal changes between paths.
Changes in release 1.48 (2008-02-27)
Added support for variable feed within a toolpath controlled by a
speedprofile curve. Also supports the other speedprofile option, a
single feed multiplier that applies to the entire toolpath.
Added output option to disable use of the speed curve and force the
base feedrates only. By default the speed curve will be used.
stix_export_using_speedprofile (int yn)
Removed extra comment when setting tool corner radius compensation
on the Siemens 810.
Changes in release 1.47 (2008-02-19)
Improvements to the Siemens traceabilty output.
Updated Siemens 810 output to adjust the $TC_DP compensation
parameters for corner radius when the STEP-NC file contains a
current value for it.
Changes in release 1.46 (2008-02-18)
Corrected doubled spindle commands when the operation has a
different technology from the first toolpath in the operation
Added output option for traceabilty timing. Only available with
Siemens output. Enable using:
stix_export_using_traceability (int yn)
Changes in release 1.45 (2008-02-14)
Release engineering problem with 1.44
Changes in release 1.44 (2008-02-14)
Minor fix to Siemens 810 compensation.
Changes in release 1.44 (2008-02-14)
Updated Siemens 810 output to adjust the $TC_DP compensation
parameters for length and diameter upon tool changes when the
STEP-NC file contains current values for these.
Changes in release 1.43 (2008-02-07)
Updates to logic for cutter contact code generation to handle
transition from cutter location to cutter contact paths. Also
more robust when given unrealistic numeric values.
Changes in release 1.42 (2008-01-31)
Now generates code for helixes on all controls, Siemens and
Heidenhain use distinct notations, while Fanuc, Okuma, and Haas
appear to share the same notation.
Changes in release 1.41 (2008-01-29)
Update to via arc output to address boundary cases.
Changes in release 1.40 (2008-01-29)
Now generates code in all output styles from arcs described using
the via-point method. Helixes using via points are not supported
yet but are generated as linear moves between the vias.
Changes in release 1.39 (2008-01-22)
Tool change now clears the position and issues a move to the
complete XYZ start point of the next toolpath. Previously it
expected that after the toolchange the tool was located at the
endpoint of the previous workingstep and only issued moves for axes
that changed in the first point of the next workingstep.
Changes in release 1.38 (2008-01-15)
Updated DMIS output to declare and use the final datums when the
underlying feature is measured. Corrected missing datum on the
declarations of some tolerances. Added tolerance declarations for
linear distance dimensions.
Updated for use with STIX 0.31
Changes in release 1.37 (2007-10-26)
Declaring DMIS tolerances with the features, added additional probe
declarations and other setup boilerplate at the start of the
program. Generating manual mode initial declarations for all datums
on the workpiece.
Changed DMIS output logic so that it emits moves for any workplan
that contain any nested probes. Workplans that do not contain any
probing are ignored.
Corrected placement of Cylinder features in DMIS output.
Changes in release 1.36 (2007-10-19)
Changed the DMIS manual output so that the position and normal of
the features are transformed properly when the workpiece contains
assembly placements.
Changes in release 1.35 (2007-10-15)
Changed the DMIS manual output so that we measure known features
directly (PLANE,CYLNDR) rather than create many point features and
construct from them. This simplifies the DMIS tremendously. We
still define point features if the STEP-NC feature is based on an
geometry type that does not map to a DMIS feature.
Changes in release 1.34 (2007-10-11)
Issue G43 as prefix to next move and force that move to contain a Z
move in non-TCP fanuc output.
Changes in release 1.33 (2007-10-10)
Added G43 tool length compensation to non-TCP fanuc output
Added UNIX makefiles and did build testing on several platforms,
correcting various compile issues. Renamed StixCtl.export() to
export_program() to avoid reserved word conflicts.
Changes in release 1.32 (2007-10-05)
Corrected botched installer that used outdated MSMs.
Changes in release 1.31 (2007-10-05)
Added some no-op functions for disabling things in the DMIS
interface
stixctl_do_tool_none()
stixctl_do_spindle_none()
Fixed problem with Fanuc comment display and made use_tcp operate
properly with the Fanuc G43.5 output.
Changes in release 1.30 (2007-09-12)
Transition to install on ST-Developer 12.
Fixes to Heidenhain iTNC530 output. Converted probing output to use
G427 but not emitting Q260 clearance parameter since we do not have
that explicitly. Now canceling M128 before tool change. Added an
M30 at program end (otherwise the last M129 code is not executed)
Updated do_comment functions to strip newlines and other control
characters.
Changed strcat_number code to catch minus zeros resulting from
rounding or decimal suppression.
Changes in release 1.29 (2007-08-27)
Updated to build against STIX 0.27
Changes in release 1.28 (2007-06-25)
Reversed B angle in Heidenhain iTNC530 output.
Changes in release 1.27 (2007-06-14)
Fixes to Heidenhain iTNC530 output. Line numbers were the default,
but could be turned off by the STEP-NC explorer. Now permanent on.
Was not numbering the initial call to G90.
First attempt at Heidenhain probing output, using the MEASURING
cycle. The maximum move distance is 110% of the nominal value and
the retract after touch is 10% before it rapids back to the start
point. The probing feed is 100mm/min.
Changes in release 1.26 (2007-06-13)
Fixes to Heidenhain iTNC530 output. Forced block numbers, and
whitespace between control words for improved readability. Tool
change no longer uses M6, and includes a G17. Forced absolute
coordinates at start with G90, as well as another G17, and that
spindle and coolant are off at the end. Switched the spindle speed
S word and M3/M4 order so that the speed now comes first.
Changes in release 1.25 (2007-06-08)
Added Heidenhain iTNC530 output for a BC machine.
Changes in release 1.24 (2007-06-07)
Changed handling of rotational axes for Heidenhain iTNC530. The C
axis was measured from +X rather than +Y and the A axis was tilting
in the wrong direction.
Stubbed out message handling on Heidenhain iTNC530. Manuals do not
document how to do it.
Let Z component be optional on arc moves for Heidenhain iTNC530.
The docs imply that arcs are only usable within the XY plane, or
possibly when tilting the working plane with a G80.
Corrected old calls to ROSE.error that were exiting and preventing
the throw/catch exception mechanism from working properly.
Changes in release 1.23 (2007-05-23)
Added export style for Siemens 810D, based on the 840 code but
without any of the WS macros.
Added export style for Heidenhain iTNC530 with TCP programming
handled by using M128 on an AC configuration.
Some final adjustments to the ESAB output to disable M77. Some
analysis needs to be done on paths before that can be used.
Changes in release 1.22 (2007-05-08)
For the ESAB output, changed the transform for cutting and marking
on the near side to normal XYZ axes an offset of (+3,-3-(max Y dim))
for near side work, and normal X->X, Y->-Y, Z->-Z axes with an
offset of (+3,+3+(max Y dim)) for far side marking.
Added M77 before every M75 laser on code to improve speed.
Changes in release 1.21 (2007-05-03)
For the ESAB output, applied transform X->X, Y->-Y, Z->-Z and an
offset of (+3,-3) for near side work, and normal XYZ axes with an
offset of (+3,+3) for far side marking.
For the ESAB output, changed M65 to M70. Corrected initialization
problem that was resulting in missing G0/G1 on the first move of far
or near marking.
For the ESAB output, modified G0/G1 so they always emit both X and Y
coordinates rather than supressing unchanged ones. Also forcing at
least one decimal digit in all floating point values. Tracking head
state to supress head off commands (M75) when already off. Changed
default file extension to .cnc.
Put together separate set of functions for inserting linear or
tangential lead-ins/lead-outs to workingsteps. Used to prepare
plate cutting data for actual plasma cutting.
Changes in release 1.20 (2007-04-26)
Began work on Heidenhain output style.
ESAB output generates G92 to compensate for plate registration
offset, M67 to set kerf left before turning on cutting, part id
marking now uses the proper workpiece id string.
ESAB output generates M176 before setting the head angle to turn on
the plate riding height sensor and M177 when going back to straight
cutting to turn on the arc voltage height sensor. Now generating
G141 to set the line type when LFONT commands are seen.
ESAB output generates M145D1 to turn on bevel land correction when
making a beveled cut and M145D0 to turn it off when returning to
straight cuts.
ESAB output generates M63/M64 to enable head rotation during
beveling and during all marking.
ESAB output now emits three separate files, one for cutting, one for
near side marking and one for far side marking. Also ignoring dummy
cycles.
Changes in release 1.19 (2007-04-20)
Minor change in DMIS unit declarations.
Updated ESAB output to eliminate comments, wrap text marking in a
D003/D004 block, and output a feedrate before marking.
Added do_project hook to customize top level logic.
Changes in release 1.18 (2007-04-19)
Added DMIS manual mode that simply exports the point and feature
definitions.
Changes in release 1.17 (2007-04-16)
Improvements to DMIS output. Now generating a series of PTMEAS
commands followed by the construction of a DMIS feature from the
points if the probing operations share a common STEP-NC feature.
Currently only works for planes. Also generating GOTO commands
toolpath probe positioning motions, and setting UNITS correctly.
Added do_goto hook to customize linear motion and broke apart
previous monolithic code.
Added do_goto hook to customize workplan handling.
Changes in release 1.16 (2007-04-12)
Updated to allow probing after a workpiece complete probing, and to
transform the probing start point if a destination xform is set.
The probing direction is NOT transformed, because that could push
the motion of the probe off the X or Y axis, which is not supported
on the siemens.
Changes in release 1.15 (2007-04-12)
Improved ESAB full circle output, extended the output to handle NC
functions for turning the plasma or marking head on/off, controling
bevel cutting as well as marking cycles for scribing geometry, part
labels or other text characters.
Changes in release 1.14 (2007-04-05)
Initial work on DMIS output.
Initial work on ESAB plate cutting output.
Added STIXCTL_HOOKFN to simplify addition of new hooks, and added
do_toolpath hook to support DMIS GOTARG, but as it turns out, we do
not need that at the moment.
Added do_feed hook to customize feed behavior.
Added do_arc hook to customize circular motion and broke apart
previous monolithic code.
Added stixctl_use_style() function as a central place to set the
output style using a string style name. Now used in the DLL as well
as the stepnc_load exec.
Added regression test suite to test all output styles.
Changes in release 1.13 (2007-03-19)
Source changes for STIX v0.26, mostly restructuring the export
functions and updating to revised function names.
Changes in release 1.12 (2007-03-12)
Centralized control of block numbers so they can be turned on and
off as desired using the call below. By default, block numbers are
now turned off.
stix_export_using_blocknums()
Changes in release 1.11 (2007-03-09)
Forgot a WSMODEOF call after toolchange in previous release.
Changes in release 1.10 (2007-03-09)
Added TCP on/off flag to control output in probing demo. Still need
to integrate to Fanuc code and warn if there are 5axis moves.
stix_export_using_tcp();
Refinements to the Siemens output. Now turning off coolant and
spindle at the end of a program. Moved the probing DEF INT _LOG to
be above the first Gcode in the file.
Changes in release 1.9 (2007-03-09)
Refinements to the MDSI lathe output. Putting T0000 before each
tool change rather than just at the start. Also reversed spindle
sense from the STEP-NC file and the use of G2/G3
Changes in release 1.8 (2007-03-08)
Added query functions for debugging.
stix_export_get_transform()
stix_export_has_transform();
Changes in release 1.7 (2007-03-07)
Supress probing operations if a workpiece complete probing operation
is in the file. Temporary behavior for NIST demonstration.
Changes in release 1.6 (2007-03-07)
Fixed problem with empty log file and added some formatting to make
it easier to follow.
Added stix_export_using_transform() to permit access to the
dst_xform functionality.
Fixed problem detecting probing operations within a program.
Changes in release 1.5 (2007-03-06)
Fixed problem with stix_export_using_digits()
Changes in release 1.4 (2007-03-06)
Fixed problem with as-is work offset and made "as-is" the default
for generating.
Added export option functions to place optional stops between
workingsteps, override the number of digits, and to set a program
identifier.
stix_export_using_digits()
stix_export_using_program_id()
stix_export_using_stop_after_workingstep()
Added "asis" as an option for stix_export_using_unit() and merged
code into the StixCtl class to identify the default unit from the
toolpaths in the file.
Changes in release 1.3 (2007-03-06)
Revised work_offset_frame() behavior to allow "as-is" where we do
not try to change any of the work offsets.
Added stix_export_as_style() function which takes a string
description of the desired output style. A more expandable option
that all of the as_fanuc, as_siemens, etc. functions.
Logfiles created by stixctl_log_open() strip the extension before
adding cnclog resulting in "foo.cnclog" rather than "foo.nc.cnclog"
The do_probe() code now checks the type of probing operations and
calls hook functions depending on the type. Default no-op functions
are used for now.
stixctl_do_probe_workpiece_default()
stixctl_do_probe_tool_len_default()
stixctl_do_probe_tool_rad_default()
Changes in release 1.2 (2007-03-05)
Added work_offset_frame() parameter on StixCtl to select the
preferred work offset frame to use in generated code. Offset 0 is
no work offset, 1 is the first on the machine, and so on. Used by
Siemens only at the moment. Also added the following function to
set a default for the stix_export_* functions.
stix_export_using_work_offset (int ofs);
Changes in release 1.1 (2007-03-05)
Forgot to backport the stix_export_using_unit() function.
Changes in release 1.0 (2007-03-05)
The Haas and Okuma output now use the plain T<n>M6 toolchange rather
than the Fanuc TCP one.
Siemens macro declarations are now unnumbered and the probing log
declaration has been moved to the start of the program.
Created a new package called stixctl that merges code previously
split between the stixlib and cncload packages. The package has a
single StixCtl class to hold configuration and state information and
several StixCtlDest classes to handle communication with the code
destination (file, online control, simulated control).
Restructured the tool change functionality to use hook functions and
broke the previous monolithic code into the following.
stixctl_get_toolnum()
stixctl_do_tool_fanuc()
stixctl_do_tool_siemens()
stixctl_do_tool_mdsi()
stixctl_do_tool_default()
Restructured the spindle functionality to use hook functions and
broke the previous monolithic code into the following.
stixctl_do_spindle_default()
stixctl_do_spindle_siemens_macro()
Restructured the coolant functionality to use hook functions and
broke the previous monolithic code into the following.
stixctl_do_coolant_default()
stixctl_do_coolant_siemens_macro()
Restructured the comment and display message functionality to use
hook functions and broke the previous code into the following.
stixctl_do_comment_default()
stixctl_do_comment_none()
stixctl_do_comment_parens()
stixctl_do_comment_parens_uppercase()
stixctl_do_comment_semi()
stixctl_do_message_default()
stixctl_do_message_none()
stixctl_do_message_comma_uppercase()
stixctl_do_message_okuma()
stixctl_do_message_siemens()
Replaced the open() and close() functions with begin/end program
hooks and split the previous behavior into:
stixctl_do_program_begin_default()
stixctl_do_program_begin_fanuc()
stixctl_do_program_begin_heidenhain()
stixctl_do_program_begin_mdsi()
stixctl_do_program_begin_okuma()
stixctl_do_program_begin_siemens()
stixctl_do_program_end_default()
stixctl_do_program_end_fanuc()
stixctl_do_program_end_okuma()
stixctl_do_program_end_siemens()
Restructured the probing code so that it uses hook functions rather
than style variables and member functions. Also added hooks for the
start and end of the program to complement the previous start and
end of the workplan: