5321-5327 Core: Fix the case where write_sysvar() was not actually writing to the sysvars when the toolpath was generating. This affected cutte comp tool paths. Core: G02/G03 now return NCE_R_I_J_K_WORDS_ALL_MISSING_FOR_ARC when no I, J, K, or R is specified on the block when in G02/G03 mode. Core: More system variable (#vars) notification consistency changes. Core: Add REG_TYPE_NO_ASYCH_NOTIFY attribute for registers. Core: Add MSG_MOTION_SYNC message Core: Switch mutex types in the register notify queue to increase performance. Core: Update all interpreters to use write_sysvar() when writing to any system variable that is also reference by a pointer. Core: Remove compile warnings in TrapazoidPlanner.cpp Core: Added ABC to CV Blending 5306-5320 Core: Add joint layer module. Core: Code cleanup and initializations. Core: Tempest code cleanup. Core: Add wxJointArray Mach4GUI: Working multi-instance tool paths. Mach4GUI: Semi-working multi instance TP code. Core: Update shadow parameters for the Tangential interpreter. Core: Added PV_TANG_LIFT_MCODE 512 and PV_TANG_DROP_MCODE 513 to set the Mcodes for tangential up and down. They both must be set to get the knife into this mode. This will only do the pick in the middle of Gcode moves. Core: Move the cycle planner mutex back to a nfMutex. Core: Make G64 load the table it needs to run if it is using CV table. Core: ProcessInverse() LUA function defined. Core: Debuggng REM of code for G18 cycles removed.. Now G18 drilling cycles work again. Core: Start switching to std:shared_mutex where possible. 5297-5305 Core: Code analysis changes. Core fix Enigma vs. M$ RTVP issues. Core: Add lua hook to the probe file recording. Mach4GUI: If the core is hacked, you can see it in the System Information window. The Core Plugin will NOT be valid. Core: Add %#VAR(nnnn), #TIME_STAMP, #STRIKE_STATUS, #PROBE_INDEX, and #INST to the ProbeFileOpen() format string variable substitution. Mach4GUI: Tool path colors by tool now take "#RRGGBB" html syntax or "rgb(r, g, b)" CSS syntax as well as decimal values. Mach4GUI: Optimize the tool path color by tool feature. It was calling mcToolGetDataExInt() for every entity which did a file open, read, and close for every call! Core: Put the correct log category on the blending log messages. 5288-5296 Core: update build process to inhibit RTVP false positive during the enigma process. Mach4GUI: Fix the regular buttons (not adv GUI buttons) to use the new BotMapBundle classes and remove the wxButtonHack.h hack. Mach4GUI: Fixed wxBitmap to wxBitmapBundle error. Core: Added Parameter 1814 (PV_PROBE_FILE_BEHAVIOR). 0 = write all, 1 = only write probe strikes. Default 0. CoreConf: Try and get rid of the debugger error when shutting down after running CoreConf. Mach4GUI: mcLog Dialog: Fix the file type passed to wxRichTextCtrl::SaveFile() so that it properly saves the log as a text file. 5256-5287 Mach4GUI: Fix EnableByState(). It was broken with multi-instances. Core: Fix the probe strike status flag. Also fix showing G68 rotations (Param 1800 == 1) in the probe position variables when G68 is NOT in effect. Core: Enforce MC_LOG_PLUGIN. Mach4GUI: Fix crash when trying to add more than one virtual multi-instance profile. Mach4GUI: Fix spurious select cell wxGrid events with the new wxWidgets 3.2. MAch4GUI: Update the German .po files. Shuttle Pro: Had to change the code to see if it was enabled to allow Coms. Mach4GUI: Added the fix for the tabs for people that need to hide controls and reshow them. Core: Decouple the G code interpreter thread from the scaling thread on the output queue. Now only the output queue ID is protected by a mutex. This greatly increases the turbo encabulator's performance by bolstering the mazzleflan. Core: If the TC number is 0 with tcFlag == TC_IS_UNSET and exOutputQueueHolding != EX_NONE, then fire the coordinated output. Core: Add mcMotionReadSyncOutputEx() API function call. Sim: Update diag window with more coordinated output information. Mach4GUI: Fix crash on tab page chage if there is a script for that event. ShuttlePro: Prevent from running if the plugin is disabled. Core: Scale the laser output from 1% to 100% between Laser Min (parameter 1812) and Laser Max (parameter 1813). Core: Laser Interpreter: Prevent a S0 from scaling to power. Core: Adjust the exact stop mode to allow the move to come to a full stop. Core: Fix tool changes in the Lathe Interpreter. They were broken with build 5193 during the addition of M61 (set current tool). Core: Disable the length check in the CV for the Raster mode. Core: Fix the missed output queue conditions. Core: Add M39 to enable laser raster mode and M38 to cancel raster more in the laser interpreter. Core: Make moves that are in the same vector have CV enabled regardless of the mode the machine is in. This is for Raster mode only. Core: CV Raster mode to disable CV when the vectors are bending. Core: Add trajectory planner raster mode setting. Core: More CV Laser Raster Testing. Core: Planner output queue testing. Core: Planner test code. Core: Handle Reset after Feed Hold better. Core: Further optimize coordinated output queue code. Velocity scaling is now integer based. 5246-5255 Core: Optimize coordinated output queue code. Lua Modules: Reenable module DLL binding in genmodulebind.lua after the wxLua update. Core: Added coordinated Outputs that scale with velocity. Mach4GUI: Fix the MDI control's extra CR after hitting . Core: Laser timing of the analog outputs to work with CV Core: Update wxLua property sheets. build: Update the VS2017 solution mcLuaEditor: Help find the ScreenIPC.lib library. build: Update to use the 64b cross compiler to 32 bit. 5235-5245 mcLuaEditor: Help find the ScreenIPC.lib library. build: Update to use the 64b cross compiler to 32 bit. Mach4GUI: Reduce the size of the pre-compiled header file. All: Making wxWidgets 3.2.3 changes. mcLua: Include wxPropertyGrid bind header file. mcLua: Update wxLua binder. Mach4GUI: Include wxPropertyGrid bind header file. Mach4GUI: Reverse the code that allowed a control to be un-hidden even if it wasn't displayed. Built-Tools: Update wxLua binder. Core: G5.1 Finished and tested on a machine. R0 now will run like G64 with no CV angles. R1 will run like CV with angles Projects: Make vc17 solutions and projects. 5222-5234 mcLuaEditor: Making wxWidgets 3.2.3 changes. mcLua: Making wxWidgets 3.2.3 changes. Mach4GUI: Making wxWidgets 3.2.3 changes. Mach4GUI: Prevent a huge backlog of log messages from freezing the GUI. Mach4GUI: Add /p0 parameter for multi-instance consistency. Mach4GUI: Removed the criteria for an object to be on the current page to be enabled. Mach4GUI: Use wxWidgets version checking during update from wxWidgets 3.1.2 to wxWidgets 3.2.3. Mach4GUI: Making wxWidgets 3.2.3 changes. Core: G5.1 spec changed again after reviewing a Gcode manual . Range needs to be 1-10 with 1 being fast and 10 being precision. default is now 10 CORE: Arcs intersection calculation for CV blending speed fixed Core: Update to the G5.1 CV settings Now full speed is R10 and Exact is R0. Decimal values are now supported so the user can do R5.1 to get exactly what they want. for a blend value. If no R value is given it will default to R10. Mach4GUI: Include the control type as one of the parameters to be sent when calling a script. This was added to allow events to be called in the new screen set. Core: After several preparations (A though G) on the whole, preparation H feels good. Mpg Soft limits overrun is fixed. mcXhcMpg: Take the test code out. 5202-5221 mcXhcMpg: Take the test code out. mcXhcMpg: Fixed issue where the plugin would not work when MPG0 was chosen. Mach4GUI: Log window Clear All button on multi-instance is now working. ALL: switch from std::deque to boost::container::deque. Core: Fix a condition where if the machine was disabled during processing of Macro Script, it would re-run the macro if you jogged after re-enabling the control. Mach4GUI: Fix DRO edit but no change LUA script error if the format of the DRO contains "%%" to display a Percent sign. Core: Fix code formatting. Core: The rest of the files for CV Core: Update to Tangential planner CV Mach4GUI: Log now scrolls all of the way to the bottom to make sure that the last log message is visible. Changing to wxRcihTextCtrl broke this. mcMonitor: Notifications test working-ish. Errors but the notifications go through. Core: Added code for softlimits to only check an axis that is being moved Core: Allow S commands to be done without pausing motion in the Tangential planner. Core: CV Update for ABC axis to allow them to do CV while the XYZ can have CV limits set. Buffer size increased to .3 sec for single block from .06sec allowing blending of the rotary axis to work. Can be changed with the mcCntlGetValue VAL_LOOKAHEAD_TIME parameter. Core: Mill has G5.1 added to allow user to scale from one CV setting to another. CV angle velocities are set with mcMotionSetCvAngleExact(MINSTANCE mInst, int angle, double Feedrate) for the close tolerance work and the old way is for fast loose work. Mach4GUI: Use the new Modules/SysPaths.lua/c file if it exists. Otherwise, the old hard coded method of providing base system paths is used. 5195-5201 Pmc: Fix delay timer bugs. Now we can do proper way oiler timers. Update and Modify scripts now pass a string parameter with "update" or "modify" as an additional function argument. Sim: Synchronized output logging was added to the waypoints in the Sim diagnostic dialog. Core: Add mcMotionReadSyncOutput() API function so that the synchronized outputs can be snooped. Core: Log FIFO now uses a std::deque instead of std::queue. This give access to the elements between the front and back elements. Core: Fix end of line characters. Mach4GUI: Log Window now uses wxRichTextCtrl. 5185-5194 Core: Add M50, M51, M53, and M61 to mirror what Linux CNC does. build: fix mcEnigma.exe Core: Spindle mode for the Laser interpreter. M28 or M28 P1 turns spindle mode on. M28 P0 turns spindle mode off. License: Add the ability to change the number of days of a trial license. Core: Fixed a hang if cycle stop was pressed and a probe strike immediately followed. Core: Fixed condition when cycle stop was pressed during a rapid move, if an M code existed after the rapid move, it may have been executed. Mach4GUI: mcLog now uses a wxTextCtrl instead of a wxListCtrl. You can now select text and copy it to the clipboard! Core: Fix cycle stop when it is a controlled stop when probing. 5181-5184 Core: Implement Threaded Lua Register Pairs for SwiftCut. Zerobrane: Copy a clean ZeroBrane source before I go changing things for the Function Framework. Zerobrane: Update to 0.71 Mach specific. Core: Prevent the race condition if Cycle Stop (with controlled stop checked) is pressed on a decel move before an M code. 5171-5180 Core: Fix a hang when Cycle Stop is pressed while decelerating with "Cycle Stop is a controlled stop" checked in the general configuration. Core: Fix synched outputs queue bug. ZeroBrane: Add extention .pst to user.lua Core: G64.1 blending messes up the synchronized outputs. So now the core output them by position instead of by TC. Core: G64.1 added to the laser interpreter to try and blend G01 with G00 and synchronized analog outputs. CoreConf: Deleting CoreConf now hides enable screen edit check mark. Core: Full Arc move with comp fix Mach4GUI: Fix the Select Profile dialog box return values after the addition of the edit mode checkbox. 5154-5170 Mach4GUI: Get rid of ID_CHECKBOX conflict. Mach4GUI: Add the ability to enter screen edit mode from the Select Profile Dialog. Core: DEV_TYPE_RTAP2 fixes. It was broken during the look ahead/single block updates. Sim: Fully Working DEV_TYPE_RTAP2 example. Core: Log Laser Interpreter S word events. Sim: Fix synced digital output crash if the diagnostic window was not open. Core: Laser Interpreter Spindle Speed Override overrides the analog value from the S word. Core: Reset Caono's HadMovement flag on CycleStop. Core: OSIG_RUNNING_GCODE now stays high from StartCycle/StartMDI to Idle. CORE: Cut recovery needed to have resolution code added to the radius calculations to allow low resolution machines to work. Mach4GUI: Fix the multiple freeing of the Select Instance submenu memory. Mach4GUI: Command line now accepts the virtual profile names for multi-instance use. Mach4GUI: Implement a means of creating a multi-instance virtual profile in the profile selection dialog. Mach4GUI: Finally found and fixed the stack overflow at shutdown when running multiple instances. CORE: Cut recovery Arc restart fixes 5137-5153 Sim: Fix stuffing a string into a bool in SimConfig. Core: Fix and error where loading a G code file would also change the jog units mode according to G20/G21 words in the file. The jog units should not change until the file is run. Core: A M68 will always set the value of an analog output regardless of if the register already equals that value. CoreConf: Fix bug where the REG_TYPE_GENERAL registers were not also viewed as output registers. Mach4GUI: Toolpaths were not honoring the border property. Core: Fix M67 via S word for Laser. Sim: Make m62/63/67 update the SimDiag window. Core: Update mcIoSyncSignal() ZeroBrane: Update wx.dll Core: Update Laser interpreter to use parameters 1810 for the analog output number that is attached to the S word and parameter 1811 for the analog output ratio to be applied to the S word value. Core: Implement a Laser interpreter. CSPlugin: Update to modern DllExport. Sim: Add time metrics that are posted to Mach registers. They will be a good indication of how well a particular PC can run Mach. Update the CSPlugin sample project. Mach4GUI: Add a "Clear All" button to the logging window for multiple instances. SDK: Update SkelMotion plugin example to use 64 bit compatible API function parameter types. 5107-5136 Core: Make some multi-path sync fixes. Core: Add multi-path test files. Core: Multi-instance M code synchronization is working and honors parameter 8103 and the NOWT signals. Sim: Fix multi-instance configuration. Mach4GUI: Logging with multiple instances now has a combined log that contains all of the instance messages. Mach4GUI: More multi-instance fixes. Mach4GUI: Try to separate GL contexts by instance/path. Mach4GUI: Update mcShutdownDialog.cpp for heap diagnostics macros. Mach4GUI: Add the "Enable With Machine" property back. Mach4GUI: Update GuiSettings.cpp, mcGauge.cpp, and mcLists.cpp for heap diagnostics macros. Mach4GUI: Init DataTypes struct in definition. Core: Improve probing performance. Sim: Fix probing flag not getting reset quick enough. Core: More multi instance fixes. Core: incorrect offset was being sent to Arcs when building the toolpath. Mach4GUI: Make Mach4GUIR build after the toolpath mods. Mach4GUI: Relocate the mcModulePaths.lua hook in the screen load script to just after all of the path and cpath variables have been set. Mach4GUI: Implement no "Active Instance" instance property choice for toolpath and luapanel screen controls. Core: Implement the ISIG_HEAD2 signal. Mach4GUI: Fix custom LUA Cut Recovery Dialog implementation. Mach4GUI: More Multi-Instance changes. Core: Update the planner for Tangential , Needed to be done to follow how the newer versions work. Mach4GUI: Status history now can be copied to the clipboard. Mach4GUI: Multi-Instance bug fixes for the screen elements. Mach4GUI: Fix the update events for the various control in the GUI bases on the state of the machine. Previously it was a single variable and now the variable is an array. Mach4GUI: Fix multi-instance control enable by state flicker due to a flag variables needing to become arrays with elements for each active instance. Mach4GUI: Disable closing tabs on the log viewer dialog. Mach4GUI: Retrieve the existing value of the __MINSTANCE__ global lua variable before setting it so that __MINSTANCE__ can later be restored. Mach4GUI: Add Laser product icons. Manuals: Added a note about gcodeexcutewait and G04 5069-5106 Build: Update build script to include mcModulePaths.lua. Mach4GUI: Add mcModulePaths.lua processing in the screen script. Core: Added VAL_TOOL_TIMES and VAL_TOOL_DIST Calling a mcCntlSetValue will run everything and then a mcCntlGetValue can be preformed to get the length of the toolpath and or the time to run the toolpath. This is for feed per min and not for feed per rev because we have no idea what the true RPM can do. Tangential can now use #599 to set the dwell time for a change from xy moves to Z axis moves. Core: Find and fix multiple instance shutdown crash. Core: Make GetApiCaller() static. Mach4GUI: Fix license requirement failure after the Instance count functions were moved. Core: Revamp instance handle mapping. Mach4GUI: Add button codes that affect multiple instances. Mach4GUI: More multi-instance fixes. mcLua: Add override for mcMotionGetLookaheadBufferTime(). MAch4GUI: Move all scripting functions in the GUI from MachControl.cpp to Scripting.cpp Mach4GUI: Fix a tone of multi-instance errors. mcSerial: Fix spelling error. Mach4GUI: Correct spelling error in the DRO codes. MACH4GUI : Added color for each tool and QR code to vision as VISION_QRCODE type. Core: Set the buffer looahead time back down to 60 ms for default. Core: Added functions to get and set the lookahead time for blending: mcMotionSetLookaheadBufferTime() and mcMotionGetLookaheadBufferTime() Core: Update to better blend the ABC axis with the XYZ axis. This change will only effect CV. SDK: Make the MachAPI.cs file build without errors. MAch4GUI(R): update to OpenCV-4.7.0 SDK: Use a string constant for the DLLImport in C#. ScreenAPI: Upgrade build tools. Core: Added the code for the Run from here Dialog. Also added OSIG_OFF ( 0 ) OSIG_ON ( 1 ) to help turn IO on and off ... Core: Add parameter PV_G53_NATIVE_UNITS_ONLY (1801) that you can set to get pre build 3304 G53 behavior. Core: Correct Spelling error in the spindle speed check thread name. Sim: Try to finish the G84.2 rigid tapping type 2 example. Core: Add mcCntlSet/GetInstanceCount() API functions. Mach4GUI: Add scr.GetInstanceCount() LUA function. Plugins: All plugins now show the profile and the instance in the title bars of their respective configuration and diagnostic dialogs. Core: Fix another probing thread race condition. Core: Fix probing thread race condition. 5058-5068 Mach4GUI: Get rid of conflicting dialog IDs. Core: Fix running scripts with mcCntlExecuteGcodeWait() after a cycle stop. Core: Implement M6 start script. Core: Back out the dry run tool number restoration change. Core: Add Axis::IsStill() and Axis::IsMarkedStill() distinction. Mach4GUI: Run From Here dialog update to allow the user to see that the tool needs to be changed and to restart the spindle. Core: Added VAL_GET_SETUP_SPINDIR, VAL_GET_SETUP_SPINSPEED, VAL_GET_SETUP_MIST, VAL_GET_SETUP_FLOOD, VAL_GET_SETUP_TOOL To the header file to allow us to get the data from the master setup. This is needed for the Run From Here Dialog. This will also allow LUA to do the same functionality. Core: Add "Spindle Stable" output signal. Core: Don't log "Get" API functions! :( Sim: Fix spelling in comments. Core: Update to the Run From here to not change the current tool. The only way the tool can change is by using the tool change macro. NOTE The Run from here dialog MUST be updated to show the tool change that needs to be done before running. 5052-5057 ZeroBrane: Update wx.dll for LUA 5.3 Core: When complete, dryrun restores tool numbers to what they were before the dryrun was started. Sim: Make it clear with a comment that only one stop report request is acked per motion loop. Core: Fix a race condition then the user pressed cycle stop to stop a file and then reset and pressed cycle start to run the file from the beginning AND a macro used mcCntlGcodeExecuteWait(). Core: Dryrun now detects G code errors puts them into the status history. It puts the error code in param1 of MSG_DRYRUN_DONE so the GUI can act on the error condition. Core: Dryrun now handles block deletes properly. Mach4GUI: If MSG_DRYRUN_DONE param1 has an error code, display a message box about the error instead of running the Run From Here dialog. Core: Add mcDryRunCancel() API function. 5044-5051 Core: Fix a condition where mcAxisIsStill() failed to report the axes as not moving if an uncontrolled stop cycle was performed. Core: Fix MPG jog issue when motion plugins are a bit slow to give position feedback. Core: Interpreters use macro definitions for M codes. Mach4GUI: Add "Current Instance" to the Instance Property dropdown. Core: Add mcCntlGetInstanceCount(). 5029-5043 Core: Make a global Selected Instance register. /core/global/SelectedInstance Core: Remove stop report request at the end of a probe move if mcMotionSetProbeComplete() was called. Core: No Feed Hold during threading. Core: Implement OSIG_MOVING_X/Y/Z/A/B/C. Core: Fixe ISIG AND OSIG start and end macro definitions. GUI and Plugins: Use a macro for the logging functions to let the new GUIs and plugins work with an older core. Plugins: Configuration dialogs are now truly modal to the GUI. See Sim.cpp simControl::Config() for details. Core: Fix a sporadic issue when MDI is run after a Cycle Stop on a running G code file. CoreConf: Implement signal logging configuration. Core: Add mcSignalGet/SetLogEnable() API to facilitate granular Signal logging. Mach4GUI: Use macro to do the right thing if the core doesn't support mcCntlLogEx(). Core: Increase general input and output signal counts from 64 each to 128 each. 5001-5028 Plugins: Configuration dialogs are now truly modal to the GUI. See Sim.cpp simControl::Config() for details. Core: Fix a sporadic issue when MDI is run after a Cycle Stop on a running G code file. CoreConf: Implement signal logging configuration. Core: Add mcSignalGet/SetLogEnable() API to facilitate granular Signal logging. Mach4GUI: Use macro to do the right thing if the core doesn't support mcCntlLogEx(). Core: Increase general input and output signal counts from 64 each to 128 each. Plugins: Use mcCntlLogEx() instead of mcCntlLog(). Mach4GUI: Enable log setting in the logging window. Core: Implement log categories. Core: Implement SetStill() race mitigation code. SDK: x64 platform on the IPC Skeleton sample. Core: Update to the feed calcs for rotary axis velocity work. Mach4GUI: Add the option to regen the toolpath when the current fixture offset changes. Mach4GUI: The second parameter of MSG_GUI_LOADED is the language ID that the GUI is using. Mach4GUI: MSG_GUI_LOADED is now sent with the first parameter set to 0 when the GUI is shutting down. Mach4GUI: Implement tool path gen/regen suppression based on the number of G code lines in a file. CoreConf: Use default background color for the Defaults tab. SDK: Update SDK Core: MSG_GCODE_LOADED param2 now contains the number of lines in the loaded G code file. Core: Add mcGuiGetNoRegenAfterLoad() Core: MSG_GCODE_LOADED now sets param1 = 1 if tool path regen is not desired after a file is loaded. Mach4GUI: Honor MSG_GCODE_LOADED param1 (param1 == 1 if tool path regen is not desired after a file is loaded.) SDK: Add Motion plugin skeleton SDK: Add Ipc Skeleton app. Core: Added a correction for the Polar coordinates (G16) when doing an Arc with a fixture offset active. mcLua: Allow the user to set the size of the response buffer of the mcRegSendCommand function. Return is now the following: response, return(error), Bufferlength Core: Added DryRun Rapid Rate. Core: Set Rotational Velocities based on distance from Z axis Zero (Fixture) if the user selects this velocity mode Use GetValue and SetValue to change the settings. VAL_AXIS_VALTYPE Core: Add Laser Signals Core: Build file update Mach4GUI: consolidate touch screen WM_TOUCH message handling code. 4999-5000 Core: Fix GUI hang if retract was running movement from an M code script and the machine was disabled. Core: Cycle Start is now threaded off in certain conditions. Core: Feed Hold revamp to work better in canned cycles. Core: mcFileHoldRelease() now runs the correct state machine events. Core: Do not wait on the spindle to stop when disabling the machine. Mach4GUI: Smooth the tool path panning. Mach4GUI: Several screen API functions now take and instance parameter. Mach4GUI: Add an operator menu item to export the strings from a screen set in order to facilitate language translations of the screen set. Mach4GUI: POT files for PoEdit are now in the distribution. Core: Parameter 1804 (PV_EQ_TOLERANCE) is applied to G code EQ, NE, GT, LT, GE, and LE. Core: Rapid Rate Overrides now operate correctly in canned cycles. Core: Feed Rate Override no longer has an effect on Rapid Rate Overrides. 4994-4998 Mach4GUI: The most recently used file is always at the top of the MRU list. Mach4GUI: Some Screen APIs have been added to take an instance parameter. ExecMidInst(), DoFunctionNameInst(), and DoFunctionCodeInst(). Core: The joggable flag on a motor object was incorrectly initialized to false on startup. Sim: Update with a better example for processing motor stop report requests. Core: A position sync is now done after a start cycle coming out of MDI File Hold state just like File Hold State. Core: Use the CanJog() mitigation to eliminate any possibility of a runaway jog after receiving the error code MERROR_NOT_NOW. Build Tools: Update the build scripts for the new documentation source paths. Core: Implement "Ref On Startup" parameter 1807. Core: Fix the case of not ever allowing Feed Hold after FeedHold() was called when feed hold was not allowed to begin with. Now there is a distinction in the core for why feed hold is not allowed. Core: Prevent feed hold deferral if in single block mode. Core: Fix G98/G99 and tapping. 4889 - 4993 Mach4GUI: Fix recent file dialog size saving and restoration. Core: Investigate G52 offsets getting set to 0 with ResetControl(). Nothing found. Cleaned formatting. Core: Tapping cycles will feed to R plane and then rapid to initial Z if in G98 mode. Core: Parameter 1806 now works as advertised. Core: A parameter that isn't found now gets created with a NIL value. 4981 - 4988 Core: Fix YZ plane cycle initial Z vs. R plane. Core: No stop report for feed hold while probing. mcModbus: Fix functions that were not working. Combo box for serial baud rate. Core: Prevent User Interrupts and/or Retract during cycles. Build Requirements: Add the BOOST environment variable. mcMonitor: Initial changes. Core: Added parameter 1806, Error on movement of disabled axes. 0 = disable, 1 = enable, default 1. 4959 - 4980 Core: Fix profile based subroutines. Plugins: Add mcMonitor Plugin. Libraries: Move the lib directory as an external repo. Build: Update to automatically copy the PDB files. MAch4GUI: Modify to use the WM_TOUCH messages for buttons on multi-touch touchscreens. Core: Improve writing probe points to a file. Core: Rename the lib directory in preparation for the repo split. Core: Fix a race condition when calling mcCntlCycleStop() and then trying to run an MDI command afterward. Mach4GUI: Fix line endings. Core: Add mcGuiSendSyncMsg() to MachIPC. Mach4GUI: Finalize Gesture Events in G code list and the tool paths. Lib: Update RCF library. Build: Update build script. Mach4GUI: Prevent gestures on gesture compatible touchscreens from screwing with the main MachGUI frame. Mach4GUI: Add gesture support to G code lists and tool paths. Mach4GUI: Include the PMC directory in a packaged profile. Build: Update the build scripts to facilitate building the installer WITHOUT building all of Mach. Mach4GUI: Fix a one time memory bloat. In other words, this would not cause an eventual crash like a memory leak. Core: Code update for the memory debugging tools. 4949 - 4958 Core: Motor code cleanup. Mach4GUI: Finally fix the bitmap sizing on toggle buttons for some PCs. Mach4GUI: Switch to wxAuiNotebook instead of wxNotebook permanently. Mach4GUI: Label codes code cleanup. Mach4GUI: G68 X and Y DRO codes now return the units properly. Mach4GUI: Try to fix bitmap sizing on toggle buttons for some PCs. Core: Get rid of deadlock delay after retract. Core: G88 milling cycle now takes R word for a retract plane even though it is a manual retract cycle. Mach4GUI: Hide Tabs (not finished yet, but close). Core: Fix blank line eater. :) 4931 - 4948 Core: Fixed SB not holding up on M codes inside subroutines. Mach4GUI: Gcode List line number is always updated with the new gCodeExe and Single Block. Core: GcodeExec now "eats" empty block lines after processing a G code block. Core: Fix improper MDI exit when a M code script disables the control. Sim: Add the option to simulate the spindle, or not, in the plugin configuration dialog. Core: Fixed spindle stabilize when calling mcSpindleSetSensorRPM() from LUA. Make the distinction between stabilize and speed check more clear. Mach4GUI: try and prevent a race condition on a toggle button that drives a signal. Core: Prevent messages to a plugin when the plugin is being unloaded. Core: Fix feed hold for tapping. Core: Fix MPG jogging past soft limits. If anything, supper fast spinning of an MPG handwheel will result in stopping a bit BEFORE the soft limits now. Mach4GUI: Sending a "\b" with mcCntlSetLastError() will clear the status history line. Core: Fix G76 cycle not turning the spindle back on after orientation. This was actually because manually orienting and pressing cycle start cleared the canon buffer! Core: Fix Feed Hold prevention for cycles Core: Add mcAnalogSyncValue() API call. Core: Update Tangential planner with the planner buffer time fix. Core: GcodeExec comments. Core: The time of a move that has has not started is now added to the amount of time in the buffer. This was needed for single block. Core: Enable debug output on G code executor. Core: Remove soft Sync to allow retract to run. it was clearing the planner and causing the move not to be finished . 4831 - 4930 Mach4GUI: Add scr.ClearStatusHistory() screen API function call. Core: Try to make fixture offset changes stick after retract. Core: Fixe race condition with the new time based lookahead buffer. Core: Make a soft sync happen after a Macro hold has been done. This is to fix manual tool changes that people Jog around. Mach4GUI: Make the enlarged shutdown dialog cover the whole of the GUI. Core: Fix stall at the end of jogs for tangential. Mach4GUI Fix the regular button foreground color. Core: Added Cut recovery for Tangential Core: Added side by side sub searching. Core: O8001 retract sub can now call other subs and macro calls. Mach4GUI: Fix the phantom foreground color on some controls. Core: GetIpAdaptersInfo() improvements. Core: Fix Run From Here position display. Core: No more G code line number funny business when retract is started. Mach4GUI: Shutdown screen options added to the Operator menu. Core: Allow convert_stop() M code macros to have parameters and comments. Core: Prevent MDI from working in Retract or User Interrupt mode. Core: Fix retract for Tangential. Core: Update to the planner and interpreter for Tangential. This was to fix a few errors with the LastPosition and Single block. Core: More GcodeExecuteWait() improvements. Core: Added FLOOR[] (same as FIX[], CEIL[] (same as FUP[]), and % (same as MOD) Core: Added SIGN[] unary function. It returns 1 if the argument is positive and -1 if the argument is negative. CoreConf: Now saves the size of the dialog when closed. Mach4GUI: Mimic the old feed hold state so that older screens don't have issues when in feed hold. Core: Get Retract back working. Mach4GUI: More DRO font resize issues fixed. Explicitly remove the wxTC_PASSWORD bits from the style flag. Core: Zero the memory allocated to for the IpAdapterInfo_t buffer. It was causing a random crash. Core: Added a way to wait in the FeedHold function (only if wait was set) this will allow retract to paus the motion to start the retract process. Core: Fix a condition where multiple GcodeExecuteWait() calls in a script would cause all but the first call to fail. Mach4GUI: Fix DRO font sizing. Scaling also works to a certain extent. Your mileage may vary. Core: Fix G code error after running a file, hitting stop, then hitting reset. Mach4GUI: Fix units flicker in DRO for machine coordinates when current units mode is different than the defaults units mode. Core: remove dead code. Core: prevent lockup when stop and reset are called one after another. Mach4GUI: Reorder shutdown events and include a shutdown dialog. mcRaycus: Implement pulse mode. Need to send a J at startup because some of the power supplies need it. Have not seen a problem with sending the command. Mach4GUI: Revert DRO font sizing to old style if the Font Scaling is not used. Mach4GUI: Fix units in the DRO flicker when the machine is metric running in inch mode. Core: Fix mcGet/SetFixtureOffset logging format crash. Core Revert back to nfMutexes. Core: Use contention free shared mutexes in the LoadLookahead execution path. Core: Added a VAL_LOOKAHEAD_TIME to set the lookahead time with the mcCntlGetValue and mcCntlSetValue Core: Optimize G code interpreter for block processing time. Core: Final SB refinements. Core: Single block seems to be working bit it is loading 2 moves and I think it is a race condition causing it. Investigation in how the moves are looked at when they are loaded is needed. Core: Added DEBUG_TIME define to show how much time is being used by the m_cs->LookAheadWait(); command. If this like is commented out it will run the file at the correct speed Core: Now builds in Release mode. Core: More Lookahead code cleanup. core: Shadow Parameters are now working. Core: More code cleanup. Inlined a lot of function for speed during CyclePlanner() Core: Major cleanup of GcodeExec, ControlSet, and CyclePlanner() Core: Time based lookahead. :) Core: Added a call to send the tpSetCVtime to be use in the new time lookahead code (to make the needful!) Core: Lookahead signals are now common in the control set. There is still a race though. But I think this will work. Core: More lookahead work. Core: Save parameters on shutdown is fixed. Core: Added a profile write to the Enable and disable so the dialog will show the needful Core: Add handshake to the lookahead mechanism. mcSurfaceMap: Change error messages for clarity. Modules: upgrade luasec Core: Release now builds with new inline functions. Core: MDI is now working with the new lookahead. Build Tools: Add luac.exe Core: Add mcCntlGetAdaptersInfo() API and LUA binding. Build: update mkapi. mcLua: Handle AdaptersInfo_t mkapi: Handle size_t * Core: New IpAddress stuff. Not working yet. Core: Get IP address information. Core: Single Block working with new lookahead. Core: Probe Stop fix with controlled stop. Core: Single Block caused every move to be an exact stop move. Core: G code lists lines no longer play who's on first. Core: Single Block is now working with tapping cycles. Core: Implement single block with the new look ahead. Core: Add axis moving output signals. The signals are NOT active yet. CORE: Added Waiting to the call to release the lookahead. This was done to allow the Gcode interpreter to tell when planner needs to send more data (because it is waiting). CORE: Release lookahead Core: GcodeExec::Waiting() function added to use in the planners. Core: Test of the new lookahead releasing the moves Core: Add PlannerReleaseLookAhead() for the planner to call when it needs another G code block. Core: Test of the seeing the number of cycles before we are about to stop Core: new mcGuiMsgFilterGetEntry() API. Core: New Lookahead thread running G code now. Core: New dynamic LoadLookahead() and ProcessBlock() Core: Fix Single Block backout collateral damage. :) Core: Single Block removed in prep for the new, new way of holding the buffers to allow Single block Core: Spindle wait improvements. Sim: Improve simulated spindle with a speed variance. mcXhcMpg: Rename the main thread. Core: SingleBlock Testing... We will see if it's going to work Core: Update to the single block code. needs to have a new type added as a marker in the trajectory planner. Testing by using the sync markers shows it will work. Core: Singleblock and Feedhold seem to be working but it is time to test on a machine. Much code must be removed but that will happen after testing. Core: SingleBlock and FeedHold architecture change. The Single block and feed hold states are now passed down per trajectory. This allows the actions of them to be planned before the user wants to use them. Feed Hold still needs work in can... 4819 - 4830 Core: Parameter 1805 controls whether or not mill G84 tapping waits on the spindles upon retract. Default is 0 (do not wait). Core: More surface map config changes. Core: Run the spindle speed check thread!!! Core: Put the spindle stabilize stuff in its own thread. Core: Look at spindle and tapping. Test a tap code change. Core: Fix machine time (hours) rollover issue. #3002. Core: Cleanup analog objects return codes. They match the documentation now. Docs: Analog object API help docs. Core: Use a boost circular queue for the Mach log. mcRaycus: Modify for the old Raycus RS232 protocol. mcSurfaceMap: Fix base 0 vs. base 1 error. LUA is base 1. mcSurfaceMap: Add an enabled state to maps. And add a command set to manipulate the state. 4747 - 4818 Core: Cap incremental jogs at the increment if the timeslice * velocity calc exceeds the increment. CORE: Tangential Interpreter had the current A axis updated for the end position that was done with Tangential active. This was effecting rapid moves and causing the Tangental head to rotate to much from start to start of multiple paths. Core: Add a GUI message filter mechanism. CORE: TangentalInterpreter.cpp *_setup->LastPos_A put where Current A was used. Changing this fixed the error with the Tangential not preping at the correct angle CORE: TangentalInterpreter.cpp Changed from current x,y to last x,y. This fixed the error of the move not knowing what the start angle should be. Core: Fix MPG ignoring softlimits if the pulses come super quickly. PLUGIN mcXbox: Update to the names of some of the controls in the drop down menu Core: Update Tangential parameter constants. Core: Fix MPG ignoring softlimits if the pulses come super quickly. Core: Retract and user interrupt subs are now closed when the main file was closed. Mach4GUI: Add Retract and User Interrupt button codes. Core: Fix MACRO B in the retract and interrupt subs Core: Fix distance to go for the Z axis in the cut recovery point. Core: Enable retract for Tangential interpreter. Mach4GUI: Eliminate the mcLists control automatic sizing according to the number of list elements. Core: Fix the new lockable parameter implementation. Core: Implement shadow parameters in the mill interpreter. Core: mcMotionSetProbePos() code path is all doubles and no longer contains any integers. Core: Fix the crash caused by adding the G code complete signal. Core: Fix comp issue when gcExecuteBlock() was accidently removed from BuffereNextMove(). Core: Allow rotary axis probing setting (defaults to true). Core: Fixed typo OSIG_GCODE_OMPLETE -> OSIG_GCODE_COMPLETE Core: Fixed typo OSIG_GCODE_OMPLETE -> OSIG_GCODE_COMPLETE Core: Fixed typo OSIG_GCODE_OMPLETE -> OSIG_GCODE_COMPLETE Core: take the Z offset out of the cut recovery position. Mach4GUI: Try and prevent the initial image sizing issue on toggle buttons. mcRaycus: Parameter parsing. Mach4GUI: Fix DRO borders. mcRaycus: tests after opening ports. mcRaycus: Fix the data buffer issues. mcRaycus: AppendData methods. CORE: Added an output signal OSIG_GCODE_OMPLETE to tell when a Gcode file hit the M30 / M2 at the end of the file. mcRaycus: Clean up the tree. mcRaycus: Use wxMemoryBuffer instead of wxString for serial operations. mcRaycus: Fix port configuration settings in the profile. Core: Change probing comment text. Plugins: Add mcRaycus Mach4GUI: Font scaling for DROs. CORE: Update to the positive and Negative screw mapping. VAL_SCREWMAP_PERCENT_PER was added to use SetValue and Getvalue to set the amount added to the percent of each map being used . It will change the rate of time to swap from one map to... CORE: Multi direction screw map is now tested. Addition of the blending to zero map at the end of the mapped section is now being added. A small error has been detected and requires further analysis. Update to the dual screw mapping code Not finished but at a testing point Core: Create LoadRegenTime registers in the core to time the initial G code load and display file creation. Core: Reduce calls to GetControlSet() Core: Inline a few functions to see if we get a speed increase. Core: Reduce calls to GetControlSet() Core: Retract/Interrupt code to get the G code source is only called on SETSUB and RETSUB. Mach4GUI: Add scr.DoCutRecovery() API call. Core: Do Not Send MSG_GCODE_VAR_CHANGED messages during g code file load. Mach4GUI: Multiple Instance debug dialog. Core: Fix possible probe race condition. Screen Module: Include BT_* defines in the scr namespace for scripting. Core: Try to see why retract is not working in Tangential. Plus try to sync the interpreters and planners. Mach4GUI: Include BT_* defines in the scr namespace for scripting. mkapi: Allow multiple include files on command line. CORE: Screw mapping added boundary checks, This may need some modification for angular axis. Mach4GUI: Multi-instance changes. mcXhcMpg: Fixed typo. Core: Fix lockup with stop cycle (with controlled stop) was issued while a G0 move was in the deceleration phase of the trajectory. Sim: update for a probing test. Core: New Ex versions of the system parameter API functions that take an instance param. I got to feeling bad about breaking the API. :) Core: All system parameter API functions now take an instance param. Core: Spindle functions return MERROR_NOT_NOW if the spindle object hasn't been initialized. Sim: Probe simulation support from any input that is mapped to a probe signal. Sim: Implement a better simulated spindle and include at speed and at zero spindle inputs. Core: Make sure the line number is included for error reporting. Core: Remove gesture test code from the gcode list control. Core: Jog detection improvements. mcXhcMpg: Add variable speed jogging on the continuous jog with the right switch on the "Lead" position. Sim: Disable will now abort rigid tapping. Core : Made the Fuzz factor for jogging not depend on the Acceleration and Time slice. This was needed for the very long time slices. mcXhcMpg: Add probe Z functionality. 4741 - 4746 Core: Fix MPG initial soft limit violation. Core: Fix isHomingFlag when homing all axes. Core: M67 was breaking CV. It should act just like M62/M63, which do not break CV. Core: Add mcMotionCyclePlannerEx2() API call. Sim: Revert back to DEV_TYPE_THREAD. Core: Add mcMotionCyclePlannerEx2() API call. 4716 - 4740 Core: Handle the case where the user aborts the retract or user interrupt. It is unrecoverable. Use Reset to clear. Core: All cycles will wait for a motor stop request before proceeding to the next hole. This keeps Single Block from getting confused. Core: FRO and SRO properly disabled during cycle operations that do not allow them. Core: FH properly deferred during cycle operations that don't allow FH. Core: Single Block will no longer interrupt a cycle operation mid cycle. Mach4GUI: Add the code for Vision to Rotate and flip the image to match the machine motion Core: Remove SoftSync() calls on mcGcodeExecute/Wait() API functions. Core: Cutter Comp fix for the Mach Motion files. The issue was with the Arc Arc intersections. Also enabled the linear set over. Core: 4718 attempted to prevent a stop request report storm when checking the spindle speed. Revert that back to the original code because it was causing no stop report requests before M codes. Core: Gracefully handle the case where there is no group 4 stop M code at the end of a file. Core: Map order is now descending for the SETVN variable names. Core: Test text based G code variables max length to min length. Core: Retract no longer messes up the G code list, file number, and line number. Core: Retract rewrite with eventual support for user interrupt routines. Mach4GUI: Update to the Video player project so it will now compile with the new WXwidgets. Also have added a check so it will no longer try to start a 2nd instance of mach4 it is looking for Mach4GUI application name. mcSurfaceMap: Surface map now supports load and unload command registers mcSurfaceMap: Update to the command register for getting the current names of the maps Mach4GUI: Update to make sure Inc Jogging is matching what is in the jogging array Core: Work on multiple thread info structs for G76 and DEV_TYPE_THREAD2. Core: Start making retract code wait on Feed hold proper. Core: Fix multiple thread info retrievals. Core: Fix initial axis planner goal position of 0 on startup. It was preventing a positive jog after homing when all machine coordinates are negative and softlimits are enabled. Core: More DEV_TYPE_THREAD2 work. Core: Use floor instead of round for incremental pos calcs. Core: Log WAITONMOTION events and try to keep the spindle speed check from killing us with copious stop report requests. Sim: Try to make Sim DEV_TYPE_THREAD2 compat. Core: More DEV_TYPE_THREAD2 interface work. 4695 - 4715 zbstudio: New Mach4 interpreter. Core: AbortCutterComp() instead of executing G40 as a disable or cycle stop changes the state. Core: More DEV_TYPE_THREAD2 changes. Sim: UTF8 enable. CoreConf: GetRid of empty strings. Core: Fixe IPC server data format error. MAch4GUI: Correct screen IPC Makefile.api CORE: Added the first stage to Machine Vision. We have the tools to look for Circles. Mach4GUI : New script added and called on every frame that we are doing Vision with. Mach4GUI: Instance configuration is now in place. Core: 5399 -> SV_WAIT_RESULT Core: Fix initial jog units initialization. Core: Kinematics work mcXhcMpg: Fix User G code INI section spelling error that prevented user G code from working. Core: More DEV_TYPE_THREAD2 interface work. mcXhcMpg: Fix MPG ID dropdown if MPG# == 0. Plugins: Member variable initialization work. Fix ShuttlePro losing configuration. Core: Don't run Mpg::MoveCounts() unless the machine is enabled. Mach4GUI: Fix DRO min/max. Core: Clear MPG odd counts on the first machine enable to clear any trash encoder data from the plugins. Core: Fix DEV_TYPE_THREAD2 thread parameter constant definition error. Mpg: Fix counts per detent > 1 issue. 4613 - 4694 Core: Fix a chicken and egg thing with feed hold and a probe strike. :) Confirmed. Core: Seek and destroy uninitialized member variables. Fix bad wxTreeId error on the Update UI event. mcXhcMpg: Fix new registration case. Core: Try to solve the FH right next to a probe strike puzzle. Mach4GUI: Don't resize bitmaps in the OnPaint() events. Mach4GUI: Remove superfluous OnPaint() call. StateMachine: Some sate machine mods for probing and feed hold. Still more left to do. Sim: Fab up for DEV_TYPE_THREAD2 testing XhcMpg: Fix no config in the profile case. Core: Add the concept of feed hold allowed vs. feed hold enabled. Same for FRO and DRO. mcXhcMpg: Prevent crash on shutdown. Build: Include mcXhcMpg plugin. Mach4GUI: Add min and max to DROs. Build: Fix more issue in the parallel build script. mcHxcMpg: Cleanup at shutdown. Build: Build script update. Core: make parameters thread safe. Plugins: Add XhcMpg plugin. Build: Parallel build final tweaks. Mach4GUI: Fix the modify script bug I introduced when "making things better". LOL Lib: Update hidapi library Plugins: Add XhcMpg plugin. Core: Fix mcAxisRef() and mcAxisRefAll(); Plugins: Add XhcMpg plugin. lib: add hidlib MachGUI: Add the Toolpath positions to the GUI. Click in the toolpath can get the position message. The MouseCapture Mode must be selected Core: Added the toolpath mouse down to the core so we can save the position of where the user pressed the mouse in the toolpath Build: Parallel build final tweaks. Mach4GUI: parallel screenlib stuff. Build: Parallel build final tweaks. Build: Fix Link dependencies in the Industrial Release build. Build: Fix more race conditions and paths with spaces errors. mcSurfaceMap: Prevent double dipping into the map. Build: Get rid of some race conditions in the build process. mcSurfaceMap: Fix crash on exit. Core: Back to just plain Mach4Core.dll without d or fd suffixes. Core: Prevent plugins from changing the current working directory and not changing it back. Core: Improve the MachAPI.lib stub library. Mach4Core: If update/modify script returns "nil", them the DRO keeps the original value. Build: rewrite build script to parallel a lot of the build processes. Build: Improve parallel build. Core: Disable the new non buffered MPG code until we can fix it. Build: Improve parallel build. mcXbox 64 bit targets. build: Keep mcHuanyang from messing up the build process. build: updates scripts to better take advantage of the Tread Rippers. Core: G18 Drill cycle update MachMaster: fix build order Parse error with msgfmt. mcLua: update build script. mcHuanyang: Ready for testing, again. mcHuanyang: Now using wxMemoryBuffers for all serial comms. wxString had a hard time supporting binary data. mcHuanyang: Debugging... mcHuanyang: Ready for testing. mcHuanyang: More dev. Core: Message functions param1 and param2 changed from long to MCPARAM type. Plugins: Add mcHuanyang VFD plugin. 4585 - 4612 Mach4GUI: Prevent a blank expression in a DRO from causing a LUA chunk error. Mach4GUI: take out the wxMutexLocker out of mcCamera::DelVideoPanel() and replace it with explicit locks/unlocks. Core: Change the MACRO_DIR macro to take and argument of the mach directory (m_MachDir) instead of using the Current Working Directory. Just in case some plugin changed the CWD. mcXBox: Add to build and installers. Core: Update Aux Encoder Position. mcKeyBoard: Added the mouse to the KB plugin so the mouse wheel can be used as an MPG globally Core: MPG's using encoder registers buffer clearing when the user stops turning Core: A way to cancel the messages for the Home switches (using the SetValue and Get Value with VAL_IGNORE_LIMIT_MSG) Core: Profile tool API enhancements. Core: Revert to void * on ioinf_t struct. Core: More auxiliary encoder magic. Core: Update so the INI if doing a peek in will automatically add the wxCONFIG_PATH_SEPARATOR the the beginning of the section. Core: Axis planner now allows the MPG's to be shut down if they are buffered up. ToDo move into the core, test was done in the screen to see the axis stop when MPG stopped turning . Core: When motors are registered, write the entries to the profile immediately. Core: mcProfileTool now can include the base modules directory. Core: mcMotorGetInfoStructEx() API. Core: DEV_TYPE_THREAD2 structure was not completed. mcLua: mcMotorGetInfoStructEx override. Mach4GUI: Help->Support->Package Current Profile now uses mcProfileTool() API. wxLUA: Fix auto deletion of wxTranslations. Core: move back to wxFileConfig. boost::property_tree is slower and empirical testing hasn't revealed that boost::property_tree is any better as far as INI file corruptions is concerned. Core: Add code to handle the case where the R is lower than the depth and they started above. (this has no practical use and is purely academic) Core: Added the mcMpgGetShuttleMode to the overrides 4571 - 4584 Core: Remove the position sync after jogging in macro hold. It is not needed anymore and it was actually causing a position error (jump). Core: Auxiliary encoders can not be mapped through the configuration dialog so as not to require scripting. Mach4GUI: DRO codes updated to include auxiliary positions. Core: Add API functions to allow using any encoder register as an auxiliary position. Core: 64 bit IPC libraries. Build: Rename release targets so that the msbuild process doesn't get confused. mcRegFile: Flush the profile config because we are not doing it on Mach shutdown now. mcModbus: Flush the profile config because we are not doing it on Mach shutdown now. Core: Make INI parser case insensitive (test). Core: Add mcProfileTool() API. Sim: Code cleanup. Core: Change the Plugin unload timing. Core: Prevent CyclePlanner() functions from actually cycling the planner during the configuration state. Core: Modularize reporting changes to G code variables. Initialize the jog types in the header. Core: Fix crash on M62/M63 when the M code fell on an empty TC. Just roll it forward until the TC is no NULL. 4564 - 4570 Core: Change run timer characteristics to: 1. clear upon reset 2. clear upon file load. 3. clear upon rewind/run (M99) 4. clear upon cycle start after rewind. 5. clear upon cycle start in MDI. Core: Update G_0 constants in MillInterpreter.cpp Core: Keep TLM from counting tool life when loading a file or regenerating a tool path. Core: Make OSIG_MACHINE_PROBING work in MDI as well. Core: Prevent tool path regens and file loads from incrementing the part counter. Mach4GUI: Try to improve the message allocation system. Core: Sync inputs on the first enable because some plugins don't update the inputs statuses quick enough for the Sync in Controller::InitInstance(). 4541 - 4563 Mach4GUI: Install a message event allocation mechanism backed by a thread. Core: Message storm from loading a large G code file was preventing the tool path generation progress from updating. Core: Prevent deadlock during G76 threading while waiting for spindle speed stabilization. Mach4GUI: Finish hooking up the mcLists properties. Add register capabilities for the selected text and selected index. PMC: Remove "(" from input path string. MAch4GUI: Programmatically compile the LUA event scripts just after they have been edited to test for syntax errors. mcSurfaceMap: The plugin was not converted to use the pushall filter method. It now works. Mach4Core: Add MSG_GUI_LOADED. Plugins can check param1 (1 or 0) for the status. Mach4: Prepare for 64 bit applications. Lib: Prepare for 64 bit libraries. Lib: wxLua 64 bit prep. Mach4Core: Fix Core closing while single block is active. Mach4Core: Fix Single Block on file start issue. Mach4GUI: Add a message script. Mach4Core: More MSG_GCODE_VAR_CHANGED. Mach4Core: Allow periods (full stop) in profile path and key names. 4530 - 4540 Mach4Core: Add MSG_SAVE_DATA and mcCntlRequestPluginDataSave() API function. Sim: Add MSG_SAVE_DATA message processing example. Mach4Core: More mcFileconfig fixes. Mach4Core: Fix compile time warning in mcFileConfig.cpp. Mach4Core: mcProfile*() API calls return MERROR_NOT_NOW if the core is in the process of shutting down. Mach4GUI: Allow NIL to be typed into a DRO. Mach4Core: Add wxFileConfig style escaping to mcFileConfig. RegFile: Use MSG_CORE_SHUTDOWN to close the diagnostic dialog if it is open. Mach4Core: A new mcFileConfig using boost.property_tree. Mach4Core: Revert back to wxFileConfig. Mach4Core: Fix performance problems with the new mcFileConfig class. Mach4GUI: Fix the "Status" property on the mcTimer screen control. Mach4GUI: implement -dcr command line switch to disable the crash reporting at runtime. 4518 - 4529 Mach4GUI: Finish mcFileConfig subclass. Mach4Core: mcFileonfig subclass of wxFileConfig that uses the WINAPI GetPrivateProfile* functions. Mach4GUI: Enumerate all sections in an INI file by passing NULL to the section param with mcProfileEnumerateSection(). Coreconf: Fix Apply button not enabling on changes on some tabs. Mach4GUI: enable a custom jog increment via the Current Jog Increment DRO. Mach4GUI: complete screen timer control. Enigma: Change a string from untranslated to translated. Mach4Core: Don't spam FH disabled signal. Mach4Core: Add VAL_COMMANDED_FEEDRATE for mcCntlGetValue() Mach4Core: Add mcAxisRef(), mcAxisRefAll(), and mcAxisRefAllEx() Sim: Make the initial input state configurable for input 0 to 3. Sim: Add an input state control to the diag window. Mach4GUI: Fix crash when closing due to an animation control on the screen. 4489 - 4517 Mach4GUI: Fix font saving on the new list controls. Mach4GUI: Fix parameters on the tab enter and exit scripts. Core: Only set the spindle override signal if spindle override is allowed. Mach4GUI: Backout slider changes to get a build out. Mach4GUI: Add a list screen control. Includes dropdown, combo, and list. Mach4GUI: Add Page Changing and Page Changed event scripts to the notebook control. Mach4GUI: Add pam gesture events to the G code list control. Mach4Core: Allow DRO edits of the next (selected) tool. Mach4Core: Fix feed hold in single block stoppages when the move will end before the feed hold completes. wxLua: Add wxTranslations and friends. Sim: Fix home in place. Core: Add some fixture offset API calls. See MachAPI.h Add "long long" type to the binding generator. Fix new lua binding generator. Modbus: Add a few more MB functions for 32bit and float. Fix the existing float functions showing up in the resources view. Mach4Core: Fix feed hold in single block stoppages when the move will end before the feed hold completes. Mach4Core: Add shadow sysvars 2001-2200 and 2201-2400 for H offsets and H wear. Mach4Core: Move old sysvars from the 2000-2500 range. Moved to the 1000 range. Mach4Core: AND, XOR, and OR are now bitwise in the G code interpreters. Mach4Core: Update interpreter Macro B expression parsing for a previous unhandled case.. Mach4Core: Writing a number to #3000 now adds 3000 to the given number. Fanuc compat. Mach4Core: Add mcCntlSaveSysvars() API call. Mach4Core: Add shadow sysvars 2001-2200 and 2201-2400 for H offsets and H wear. Mach4Core: Move old sysvars from the 2000-2500 range. Moved to the 1000 range. Mach4GUI: Fix off by one with radiusd button's background and border. Mach4GUI: Fix MDI where left click didn't activate the control. Mach4GUI: Add Analog Input and Output capability to DROs. Mach4GUI: Fix status history position and size save and restore. mcLuaEditor: Update Makefile.lang Mach4GUI: Update Makefile.lang Lang: Update the German translations. Mach4GUI: Implement screen control translations. Build: Generate MachIPC.cs and MachIPC.vb SDK library files. mcLuaEditor: Update language files. Build: Generate ScreenIPC.cs and ScreenIPC.vb SDK library files. MkApi: It now generates .cs and .vb IPC files. Mach4GUI: Add the ability to export all of the strings from the GUI screen set. For NLS purposes. Mach4GUI: Update language files. 4471 - 4488 Mach4GUI: Fix MDI control's up and down button index. Mach4GUI: Implement MachMotion language catalog patch to enable them to have some custom NLS definitions. wxWidgets: Merge 3.1.3 translations.cpp/h into our 3.1.2 tree. Sim: Fix home in place. Modbus: Fix register spam on error. Modbus: Change "scan denominator" to the correct "scan multiplier". Core: Improve Macro B parsing and operator precedence. Core: Improve G code error reporting. IPC: Fix message subscription. Lib: BuildingBlocks updated to VS2017 Lib: Update to wxLua-3.1.4.0. Docs: Update API documentation 4447 - 4470 Core: Fix logic for testing for a passive motion device. Mach4GUI: Fix a spelling error. Core: Single Block states are only used when the motion has stopped. So technically, we don't have a Single Block state that remains in effect for the duration that single block is enabled anymore. Probably for the best. Modbus: Fix some assert messages introduced with the recent changes. Build: Update mkapi.exe PmcEditor: Fix load duplication bug. PmcEditor: Enable running scripts in live simulation. Libs: Newer luars232.dll ZeroBrane: update the function template to include mcGetInstance(). Core: Enable more than two instances of the core via the license. LicenseApp: Add the ability to add instances al la carte. PmcEditor: Fix Coil scripts. Modbus: Add the ability to reduce the scan frequency for a function by a factor of the device scan time. Mach4GUI: Fix G code list instance parameter. License App: Get rid of old include directories. Modbus: Improve the control register interface. Allow starting/stopping/restarting the plugin, per device, and per function. Core: Fix incremental moves after a probe in the lathe interpreter. It was treating the incremental move like an absolute move. PmcEditor: Include the user description in Core Output signals. Mach4GUI: Try to detect a corrupt profile and restore the last know good Machine.ini. Core: Re-enable saving statistics on shutdown. Mach4GUI: Calling mc.GetInstance() in the sig lib script now yields the correct instance for multi instance configurations. Mach4GUI: Improve multi-instance features. 4437 - 4446 Core: Sync other interpreters to Mill with regards to synchronized outputs. Core: Reimplement OutputQueue creation and deletion. Core: Fix error in the new mcMotionGetSyncOutputEx() API call. Core: Remove config save on shutdown. Core: Add mcAnalogInputGetInfoStruct() and mcAnalogOutputGetInfoStruct() APIs PmcEditor: Add core analog capability. PmcEditor: Save and Restore some dialog's size and position. PmcEditor: Add user description from the core signals in the dropdown boxes. Mach4GUI: Save and Restore some dialog's size and position. PmcEditor: Fix Editor crash when adding a coil object. Core: Add Analog objects that overlay registers. The analog objects deal with voltages rather than raw DAC or ADC values. Core: Update the cut recovery to take the X Y tool offsets into account. Core: Protect the M62/M63 output queue with a mutex. 4409 - 4436 Core: Update build script to include the new docs. Core: Rearrange M62/M63 code a bit. Core: Russian language update. Core: English language update. Core: German language update. Core: Revamp M62 & M63 All: Remove LTCG from the release targets. Lib: WxWidgets 3.01 and 3.1.1 removal. PMC: Add lua code execution during live simulation. PMC: Add LUA script capabilities the PMC file load process and to the end run coil object. PMC: Add JogActions. PMC: Add Scripting for a coil. PMC: Fix live simulation on output coils. Core: Add API mcJogGetType(). Core: Fix doubling of the lathe X pos (diameter mode) when probing and the probe does NOT strike. Build: Update for Ecat build Core: Fix signal wait race condition. Core: Ecat != Industrial. Core: Make sure Expert has all the Industrial features. Mach4GUI: Ecat product definitions. CoreConf: Try to get rid of a grid auto size column assert message. PmcEditor: Revert the dynamic changes. Those changes broke the editor! Sim: Remove wxLua.props from the Sim project. Core: In the lathe interpreter, prevent G50 S... from actually setting the spindle speed. Core: More feed hold during probe madness. Core: More feed hold during probe madness. 4386 - 4408 Core: Make cut recovery work with G68 rotation in effect again. Core: Cut recovery now sending the distance when testing the end of the entity. Preference is for a point on the side of the path. IF that is not found it will measure to the end of the moves and return the closest end point within the distance. Core: Correct cut recovery Z exclusion. Core: Add some more logic for lines on cut recovery... This to make sure it gets the correct end if it is a real short move. Mach4GUI: Add timer xpm images. Core: Look for the start and the ends of the moves in cut recovery. Core: Remove planner sync for MPG moves. It is not required. Core: Try to make Cut Recovery start at the very beginning of a path. Core: Fix error where subroutines were filling up the TC queue when generating a toolpath. Core: Improve the error message when a sub program cannot be located. Mach4GUI: Add mcTimer control. Not tested yet... Core: Added some fuzz for the cut recovery and found that the Arc code did not know about Arc Direction. PmcEditor: Revap code in preparation for running free form LUA code. Mach4GUI: Add hooks for the custom cut recovery process. Mach4GUI: Add bitmap support to the LEDs. Core: Fix condition where if E-Stop was pressed in the config dialog, the control would hang. Sim: Fix possible buffer overrun. Core: Get the cut recovery process working again. Core: Dryrun moved from API to internal. Core: The instance sanity check was missing for mcAxisGetProbePos(). CoreConf: Implement a new cleaner way of using wxWidgets dialogs in a DLL. 4370 - 4385 Core: Add signals for when Rapid Rate Override, Feed Rate Override, and Spindle override are in effect. Core: Add signals for when Feed Hold, Feed Rate Override, and Spindle override are in disabled. Mach4GUI: Add an "Invert State" property to the LED control. Core: Fix FRO and SRO in Lathe Threading. Core: Make sure all memory is freed upon shutdown. Core: Remove the now defunct mcVideo plugin from the build. Core: Explicitly set the locale to en_US. This has NOTHING to do with translations. Core: All motor objects are now freed upon shutdown. Sim: Add memory leak detection code. mcModBus: Fix memory leaks during shutdown. Mach4GUI: Add memory leak detection code. Mach4GUI: Remove assert messages for slider controls in Debug builds. MAch4GUI: Explicitly set the locale to en_US. This has NOTHING to do with translations. Mach4GUI: Add Date and Time label codes. CoreConf: Reduce the memory leak dump when the Mach is closed for Debug builds. 4354 - 4369 Core: Add a parameter (1800) that determines if DROs and probe positions include G68 rotation. Core: Chang some internal defines to enums. Core: Lathe Cycle G83 rappid to start cutting was in the the wrong direction. Core: Use an instance handle instead of an instant number if using API functions internally. Core: Fix message format for Z min notification. Core: Use Controller function instead of API functions internally. Core: Trim the arameter string when looking for NIL, NILL, NULL or NONE Also added NONE as a new parameter not set type. Mach4GUI: Add "Value" property to the MDI control. Mach4GUI: Add Multi-line support in the keypadAlpha. Mach4GUI: Add Keypad Editors to the MDI control. Core: Fix Feed Hold during Probing on Lathe. mcLua: Turn off assert messages in Release mode. Mach4GUI: Turn off assert messages in Release mode. Core: Numeric register double read patch Core: Begin making modal info system variables read only. Core: Mill comp fix for z axis shifts... had to take the Z out of the distance calculations Core: Rename GetSignalHandle() -> GetSignalObject() Core: Fine tune feed hold during probing. Core: Install guard function for detecting if feed hold has been initiated. Add to MDI states as well. 4344 - 4353 Core: latch feedhold requested during tap holes so that a feedhold will happen immediately after a hole is tapped. Finished all tapping cycles. Core: Better NIL parameter detection. Detects NIL, NILL, and NULL. Core: Log API calls to mcSignalGetHandle(). Sim: Count homing axes and clear the internal motion buffer when the homing axis count reaches 0. Core: Emit warning when the Z position is capped by the Z minimum parameter (1801). Docs: Update probing programming documentation. Mach4GUI: Add mcTestGLCanvas for testing OpenGL capabilities. Mach4GUI: Add MillGLCanvasNew class derived from mcGLCanvas to eventually house the OpenGL core shader based tool paths. Mach4GUI: Fix motor count DRO codes. Core: Install guard function for detecting if feed hold has been initiated. This will prevent a cycle start during this state. Core: Make Feedhold latch between tap holes. 4323 - 4343 Mach4GUI: Changed the MDI editor to allow an enter to be done anywhere so you can edit without deleting everything to add a line. Core: Try to resolve homing with Sim and the Core. Mach4GUI: Remove all line width caps from the tool paths to get to build 3322 and prior operation. Mach4GUI: Remove glLineWidthCap(). Core: Fix the discrepancy between the mcAxisGetProbePos() API call and the corresponding G code variables when using axis filters. Core: Added to the pathsegments array in the beginning rather then add and check in multiple places. This was done because Arc's where not processed. Must be tested Mach4GUI: Working GL3.3 shaders for the tool path line width. Core: Add mc mcCntlGetParameterExists() API function. Core: Added a new feature to the Mill interpreter to make a z Value less them Parameter PV_ZAXIS_GCODE_MIN_VAL (1801) that it will change the Z to the value in the parameter. If the parameter is not in the parameter.ini it will do nothing..... Core: Propagate the MSG_CONFIG_END to the GUI. Core: Fix no movement case for WaitOnMacro(). Mach4GUI: Apply patch that fixes memory leak on a mcBitmapButton control when the bitmap is repeatedly changed. Core: Add mc mcCntlGetParameterExists() API function. Mach4GUI: Use OpenGL shaders for greater line width choices. Core: import GLM. Mach4GUI: Start investigating shaders for use in the tool path. PmcEditor: Fix internal relay use. It was broken with with instance update. 4311 - 4322 Core: Fix override axis sync issue. Lathe: Get G92 simple threading cycle working and document it. Core: Provide a way to set the machine time. mcCntlSetValue(VAL_MACHINE_TIME, 0, 0.0). The value is in hours. Core: Apply MM filter pop all patch. Core: Patch from MachMotion fixing hitting cycle stop when in G10 from M code executing G code. Mach4GUI: Past tool path updates. Mach4GUI: Small update to the toolpath for the past moves. Mach4GUI: Update copyright years. Mach4GUI: Change how past moves are put into the buffer. This is for the toolpath in the GUI. Much more efficient!! Core: Change how past moves are put into the buffer. This is for the toolpath in the core. Much more efficient!! 4301 - 4310 Build: Fix Release and Symbols target. Core: Keep the machine hour meter timer from resetting when the file is rewound. Mach4GUI: Ignore expression errors during DRO expression entry. Just default to the original value of the DRO. Core: Prevent lock when loading a G code file with M0 in it. Mach4GUI: Prevent flicker in log window with the new Freeze/Thaw mechanism. Core: Make the new probe G codes stick! Core: Fix a hang in the code path where cycle stop is pressed when a macro initiated a probe move. Mach4GUI: Include the base port on the ZeroBrane command line. Core: Increase message queue size. Core: Prevent stopping during a probe (or even if the lookahead saw a probe) from freezing the system. Core: Add some new signals OSIG_MACHINE_IDLE and OSIG_MACHINE_PROBING to better reflect the control's state. 4272 - 4300 Core: Get comp working in Tangential Mach4GUI: Fix message event allocation error. Core: Add mcMotorGet/SetReverse() API call. Tempest: Fix local variables that hide member variables. Mill: Changed the comp to use the new Lathe way of doing it... Core: Add probe signals 4 to 9. Core: Implement core messages. Mach4GUI: Use pre-allocated mcGuiMsgEvents. Mach4GUI: Freeze() and Thaw() the log list. Lathe: Change how the modal label is made... if we have a Gcode come back as -1 we do not display it. Lathe: Make it so Lathe has it's own code to report it's modal state. Also any that are not used report back -1 ... Why... seemed logical Sim: Took out the fudge factor in Sim... it is not needed, it was making others report the wrong velocity Pmc: Fix Makee spelling error. Build: Update build scripts. Core: Add licensing for TLM and EtherCAT. Core: New mcCntlSetOffsetIndex() API function. IPC: Make sure there are remote subscribers to GUI messages before posting the messages. IPC: API function name changed. Mach4GUI: Make sure message are allowed before posting them. License: Update for EtherCAT product. Core: Look for memory leaks. Lang: Try to correct the locale discrepancy. Mach4GUI: If the GraphicsContext isn't there, don't reference it. 4260 - 4271 Pmc: Allow loading files where the coils are not mapped. // Found by Ya-Nvr-No Lang: Fix misspelled strings. Lang: Update language files. Mach4GUI: Enable proper shutdown even if the camera thread has died. Lang: Make the language dialog show the current language. Mach4GUI: Fix a condition where the operator lockout could be reset after the core config dialog is closed. Core: Fix mcSignalWait() when a timeout of zero is used. Mach4GUI: Clean up the video control. If the specified camera isn't there, then don't show the view panel, etc... Mach4GUI.exe: Do not link with libjpeg-turbo.lib. It causes existing JPG images to crash. 4207 - 4259 Core: Ensure proper mutex locking on the stop report request mechanism. Mach4GUI: More video changes. Core: Fix axis count bug from the new filter code. Core: Implement new axis filter paradigm. mcSurfaceMount: Convert to the new axis filter paradigm. mcVideo: Convert to OpenCV 4.1.0 mcLua: Add mcCntlGetResetCodes() override Mach4GUI: Add video to the GUI. Libs: Add OpenCV 4.1.0 Core: New Lather tool tip comp code. OpenCV: Mod to make VRMagic cameras work. OpenCV: Remove unnecessary binaries. OpenCV 4.1.0 Core: Make the spindle wait timeout settable in the profile. Core: Add mcCntlGetResetCodes() API function. Core: Patch (MachMotion) to exit the state change loops when the machine is disabled. CoreConf: Audit grid creation code. mcShuttlePro: Put dead band in the outer dial (for worn out shuttles). Core: Fix probe signal check option handling in the state machine. (Mach Motion patch) Core: Make the shared mutex unique locks more granular. Core: Fix newlines. mcRegfile: Better delete icon. Core: Add path synchronization infrastructure. Mach4GUI: Fix garbage in the ZeroBrane editor log window. Core: Implement shared system variables al la Fanuc parameters 6036 and 6037. Mach4GUI: Add scr.GetLanguageId() and scr.GetLanguageName() CoreConf: Fix G force calc when the native machine units are metric. Core: Tangential planner is working now. Core: Diff out Tang and trap planners. Mach4GUI: Fix multipos DRO offset entry when the native machine units differ from the current units mode. Core: Fix time and spindle statistics. Core: Fix distance statistics. Core: Fix machine run time (#3002) Core: Make the lathe set the position of the axis when comp starts. This should make it so you don't need to have both an X and Z offset on the Comp On line. Core: Added some fuzz to the sensing of the end calculation for the end termination. This will only effect Lathe with a line line condition 4163 - 4206 Mach4Ipc: Fix old Windows SDK reference. LatheInterpreter: Update setup struct for incremental comp. Core: Add MachIpcSharedLibrary.h Core: Add SceenIpcClient.h Core: Add ScreenApiSharedLibrary.h Sim: More license call examples. PmcEditor: REG_TYPE_NUMERIC_* register were not listed. Mach4GUI: Add FramTach license processing code. LicGen: Update for Solution Family. BuildTools: Update mkapi Mach4GUI: Refactor ScreenApi filenames. Core: Refactor MachApi filenames. Lib: Upgrade to RCF-3.1 Lib: RCF preparing for 3.1 Sim: Apply velocity patch from Mach Motion. mkapi: Update for RCF 3.1 Lang: Add Russian translations. Because we aren't scared of colluding with them! :) Core: Remove SoftSync() from cycle stop. It is not needed anymore. Sim: Add a motion buffer. Core: Mach Motion JogAbs patch. Core: Log Soft Syncs Core: Mach Motion radius mode probe patch. Toolpath mouse buttons for the GUI toolpaths... Mach4GUI: Add overrides for getting the current mouse button configuration for Left Right and Both. Mach4GUI: Added right and both mouse click settings. Core: Fix erroneous EX_DWELL movement type marking. (Motion plugins should not even use the movement type flag for normal operation!) Core: Registers now use a shared mutex. Core: Fix return code in mcJogSetFeedRate(). MM found this. 4133 - 4162 Core: Update build script. Core: Movement Filter list protected with a shared mutex. mcLaserPower: Initial commit. Libs: Remove old 3.2.x OpenCV. Core: Call a macro script if it exist on system M codes. Core: Implement Io/register/plugin window list mutex patch. MachIPC: allow re-calling mcIpcInit() after mcIpcCleanup(). Lib: Add OpenCV-4.0.0 Core: Allow multiple level deep mcWin paths. Build: Keep PDB files for releases. Mach4GUI: Plugin panel unload timing change. wxMach: wxBRUSHSTYLE_XXX and wxPENSTYLE_XXX conversion. libs: fix newlines Core: Fix IPC libraries when used on remote machines. Mach4GUI: Exporting the status history to a file now includes EOL characters. Mach4GUI: Make the MDI control accept for a new line. So now Shift-Enter and just enter will add a new line. Mach4GUI: Make cut recovery cross units aware. Mach4GUIR: Don't write remote screen to the main profile! :) Core: Fix Makefile.api. Core: Fix G18/G19 planes for dry run. Mach4GUI: Enable cross unit run from here dialog. 4125 - 4132 Core: Prevent the home all thread from trying to keep going after a mcCntlCycleStop(inst) or mcCntlEnable(inst, FALSE) Core: Fix the planner sync issue after jogging in a macro hold. CSPlugin example: Update to VS2017 Mach4GUI: Remove gesture support from the main window until their operation can be more fully understood. Mach4GUI: Update GUI header for C++ 11 style variable initializations. Lathe: default to G18, even without a reset. mkapi: Improve C# and VB API binding output. Add VBGui sample to the SDK 4116 - 4124 SDK: Cleanup the VB interface and provide a VB based GUI example. Core: Fix core based tool paths. Mach4GUIR: Get the remote interface going. mcKeyboard: Remove active window text functionality and make the plugin respect if it is enabled or disabled. Mach4GUI: Add scr.GetActiveWindowText() API Update VB plugin example to VS2017 Core: Fix race condition on G28.1 home operations. Mach4GUI: Make loading a screen also close the G code file and associated display files. Core: Lathe interpreter now waits for G28.1 homes to complete. 4093 - 4115 Mach4GUI: Fix program extents registers after a file is loaded. CoreConf: Make toolpath useFrame FALSE by default. Docs: Update mcCntlGcodeExecuteWait() documentation. Mach4GUI/Core: Trying to get all forms of loading G code (GUI, GUI-in screen editor, and API) working. Maybe... Core: Add G28.1 Axis ref with P word (0 to 11) for Lathe. Mach4GUI: Fix single instance checker. Core: Removed unused timer objects. Mach4GUI/Core: Fix GUII based G code load and subsequent tool path generation after the API based load broke it. :( Mach4GUI/Core: Fix API based G code load and subsequent tool path generation. Mach4GUI: Improve scr.RefreshScreen() API with a delay parameter. Mach4GUI: Make tool paths use panels, by default. Mach4GUI: Fix initial display of the first visible tool path. Mach4GUI: Fix for the toolpath by wxButtonHack.h ExtFloodFill - Is suspect and may be stomping on TP, We have installed preparation H and on the whole it seems to feel good! Core: Make TC queue equal the look ahead lines. Core: Improved memory allocation. mcGLCanvas: wxFULL_REPAINT_ON_SIZE Mach4GUI: Defer GL canvas creation until the 1st render when the tool path is visible. Mach4GUI: More code cleanup. Mach4GUI: Fix for more Intel GPU issues. Mach4GUI: Rewrite tool path code (crappy Intel GPUs). 4076 - 4092 MAch4GUI: Make slider run the modify script when the user is sliding it. Mach4GUI: Fix fancy button backgrounds when the button has a corner radius. CoreConf: Removed the tool path color settings, as they are now in the GUI tool path properties. Mach4GUI: Added the option to draw the tool paths on a frame or not (a panel). Core/Mach4GUI: Update for VS2017 15.9.7 Libs: Update fieldtalk Core: update cmake-gui.bat Build: Update build script. Mach4GUI: Fix wxWidgets-3.1.2 compat issue in TLM dialog. Lib: wxWidgets-3.1.2 - Add G code lexer. Lib: wxLua - fix for wxWidgets-3.1.2 Lib: wxWidgets-3.1.2 - Add targeting XP. Lib: wxWidgets-3.1.2 - Add FastDebug target. Lib: Add wxWidgets-3.1.2 4066 - 4075 Core/Mach4GUI: Make the advanced GUI a license feature. License: Update license app for ADVGUI. Core: Mitigate hang when feed hold is pressed in a dwell. Core/MAch4GUI: Make externally closing a G code file seamless. e.g. just call mcCntlCloseGCodeFile() from some place other than a macro script (PLC or PMC). Mach4GUI: Prevent G code files with no movement from crashing Mach (in the tool path code). mcKeyboard: Prevent the foreground window register update from freezing Mach. Mach4GUI: Implement per tool path follow mode. Mach4GUI: Force an update of DRO if the modify script changes the value the user entered. 4055 - 4065 Core: Eliminate jog jump. Core: Jogs without motor stop report requests. Mach4GUI: Bitmap button mouse capture added. Core: Fix home order enforcement after the switch to VS2017. Sim: prevent race condition on the motor position while simulating motor homing. Core: More jog fixes. CoreConf: Try and fix button scaling when a different font size is used. Core: Attempt to fix a jog runaway when dancing on the jog buttons in soft limit mode. Core: More Lathe Inctermential Gcode comp fun. Works with the test file I was given but now needs testing Mach4GUI: Add scr.EnableButtonHover(BOOL enable) API. Mach4GUI: Keep regular buttons from highlighting when the mouse hovers over them. 4050 - 4054 Mach4GUI: Prevent excessive CPU utilization with the new GUI based tool paths. Core: 0 -> FALSE in MachAPI.cpp Core: Get rid of the per signal wait mechanism and replace it with a per thread/signal combination wait mechanism. Core: Get rid of the global signal wait mechanism and replace it with a per signal wait mechanism. Core: Cleanup Axis and AxisPlanner jog rate and jog accel. 4023 - 4049 Libs: Fix GraphicsMagick libs to do animated GIFs properly. MAch4GUI: Enable setting the tool path's left mouse click function. Mach4GUI: Tool paths now clear when a G code file is closed. Core: Comp Fixed , Somehow the code setting the intersection point from an arc to a line was taken out. Put it back in and we have working comp! Libs: import GLUT static libs. Mach4GUI and Core: Switch to GLEW. Libs: Import GLEW. Mach4GUI: Toolpath shows limits and axis lines on startup. Core: The GUIs no longer need to exercise the core based toolpaths during regen. mcKeyboard: fix shift jog case where the jog rate never returns from max to normal. Mach4GUI: Keep jog rate slider from moving on individual axis jog rate changes. Core: Fix diagonal jogging issues, again. Core: Type on setting up the velocity calculations for Arcs mcKeyboard: Fix assert message when adding a key mapping. Core: Fix diagonal jogging issues. Mach4GUI: Lathe tool path now renders the cut path. Mach4GUI: Fix tool path arc color issue. Core: Fixed jogging with a 0 jog feed rate (why would you even do that?!) Core: Diagonal jogs into the soft limits would sometimes casue the control to stay in the JOG state. Mach4GUI: Fix display file contention issue when using the lathe canned cycles. Mach4Core: Use separate OpenGL color buffer for each tool path. mcRegFile: Fix adding a new register after the mod to mcRegRegister to error on a blank register name. 3883 - 4022 Core: update the build scripts. Lathe: Update to MM 5.3 version of lathe cycles. Mach4GUI: Update lathe toolpath to use control properties. Core: Fix blank PCID in the About dialog. Lua modules: Make XP compat. Mach4GUI: Implement tool path colors, line widths, and drawing options in the tool paths' properties. Core: Registering a register without a name is now an error. MachMaster: Add CompiledLuaScripts project. Mach4GUI: Screen scripts, along with profile and global module code, will now do *.mcc (compiled lua) files. Mach4GUI: Load Wizards will now do *.mcc (compiled lua) files. Mach4GUI: Fix the tool path layering problem. ZeroBrane: Make the skip compile package only affect the Mach4 interpreter. ZeroBrane: Add a skip compile package. Gcode Files: Added a bug file. Mach4GUI: Remove tool path initial delay. Mach4GUIR: Make it build after the local tool path was put in Mach4GUI. Core: NLS updates. Core: Correct register notifies. Mach4GUI: A working toolpath! ZeroBrane: working 5.3 version. wxMach: Fix asserts in led.cpp ZeroBrane: Update ZBS to use our compiled lua53 binaries. Lua modules: Update luasockets. mcModbus: Check if the windows com port registry key exists before trying to open it. Some machines don't have a comport and the key will not exist! Until you plug a USB com port in or add a real one. Mach4GUI: ToolPath in GUI. Round 6. Mach4GUI: ToolPath in GUI. Round 5. Mach4GUI: ToolPath in GUI. Round 4. Mach4GUI: ToolPath in GUI. Round 3. Mach4GUI: ToolPath in GUI. Round 2. Core: CR/LF correction Mach4GUI: ToolPath in GUI. ZeroBrane: Update. Mach4GUI: Try a fix for the missing tool path caper. :) wxMach: Convert font functions to new wx-3.1.1 style. Reduces compile warnings. Mach4GUI: Fix mcCntlSetLastError() UNICODE issue. Mach4GUI: Convert font functions to new wx-3.1.1 style. Reduces compile warnings. Core: SSL update to 1.1.1a. Core: Add a unique string array. It prevents duplicate strings from being in the array. :) mcVerify: SSL update to 1.1.1a. Libs: SSL update to 1.1.1a. Libs: Tamper update to SSL 1.1.1a Everything: For some reason, wxFFile is no longer safe to use when reading a file (after wx-3.1.1), at least on DOS files. So change to use wxFile when reading a file. We can revisit this issue when wx-3.2.0 come out. Core: Remove old boost. Everything: Update the copyright to be up to date (2018) Everything: More VS2017 & Lua 5.3 updates. MachAPI link library: Code to allow a VS2013 and lower compiler to link with a VS2017 SDK. ScreenIPC link library: Code to allow a VS2013 and lower compiler to link with a VS2017 SDK. mcRegFile: Add FAST_DEBUG preprocessor definition. Core: More VS2017 updates. Core: New build-tools directory. Core: More VS2017 & Lua 5.3 updates. Core: Add wxWidgets 3.1.1 Everything: VS2017 push Everything: Add latest wxLua (3.1.1.1). Core: New boost! VS2017 project files. Take 2. :) VS2017 project files. Libs: Prepare Widgets for VS2017, updated headers to include vc15. Libs: Prepare Widgets for VS2017, project files migrated. Core: Add API function for Rufi. PmcEditor: Add menu items to turn on Live Simulation. PmcEditor: Live simulation code. PmcEditor: Make instance aware. Mach4GUI: Fix the object names. Table Map: Finished the ramping into the map, Also the corners are filling in Mach4GUI: Add #vars and parameters capability to slider, angular meter, and gauge controls. Docs: Add error code documentation. Table Map: Added a new ZOFF_REPORT for the command register. needed this to show where we are taking measurements on the map when we have an X Y offset Core: Add LUA to the core for multiple purposes. :) Core: Check for a NULL function pointer on the plugin entry point. Core: Fix override axis removal after the addition of movement filters broke it. Core: Implement Mach messages from the GUI context. Core: Flush parameters to disk as soon as they are modified. mcModbus: update for numeric only registers. CoreConf: Split General tab into Defaults and General tabs. Allows the configuration dialog to fit in less then 600 pixels high screen. 3871 - 3876 Core: Implement fast numeric only registers for use in the Modbus plugin. Core: More testing of the G68 Core: Add return of No error if SetLeft Mouse Click works Core: More G68 fun 3859 - 3870 Core: Fix hang when demo mode times out. Build: Include mcSurfaceMap plugin. Core: Make MDI bail out of a sub if the sub is stopped prematurely. Core: Add in the tools to put rotations back in on the fly because it is needed for the Probe to work Core: Defer feeds holds when in dwell. Core: Fix feed hold while in dwell problem. Core: Current position when probing in G68 mode must be unrotated after the move is issued. Mach4GUI: Refine the custom cut recovery dialog interface. Core: Move the tangential settings to the parameters.ini [500] Desc=Tangential Lilft Angle Type=2 Value=20 [501] Desc=Tangential Lift Height Type=2 Value=.5 [502] Desc=Tangential On / Off Type=2 Value=1 [510] Desc=Tangential Ignore Angle Type... Mach4GUI: Make a LUA customizable cut recovery dialog. mcRegFile: Fix crash when double clicking a #var item in the diagnostics dialog. Tangential: Fix G10 L50 3806 - 3858 Core: Reverse logic from previous commit. Core: Added a check to see if we need to use the Aux positions when drawing the axis lines... mcRegFile: Make the diag window handle command registers. mcSurfaceMap: Remove superfluous command register. mcSurfaceMap: removed some test code from the map mcSurfaceMap: Implement command ZOFFSET. mcSurfaceMap: Trying to get the command register to work so we can test the map data. mcRegfile: Implemented register path grouping in the diagnostic dialog. mcRegfile: Added copying the register's path to the clipboard in the diagnostic dialog. The full path is also displayed in the status bar. mcRegfile: Implemented a com... Core: mcCntlReset() returns MERROR_NOT_NOT if the state is MC_STATE_FRUN or MC_STATE_MRUN. mcSurfaceMap: Make the configuration dialog useful. Core: Added unit conversion to the incremental G68 X and Y calls mcSurfaceMap: Add to repository. Core: Add PLUG_TYPE_FILTER interface. Core: Rotate through Fixture changes... We are getting crazy! Core: Tangential update G68 update... Testing needed! Core: Added Softlimit Line weight to all the OpenGl tool path types Added the removal of the Triad for Tangential and Mill toolpath displays Core: Added config for removing the Triad from the toolpath and setting the line weight of the Softlimit bounding box Core: Clear any rotations if they change where or how much Core: Increment the rotation center with G68 command in INC mode ... bad idea but what they want... Core: More tweaks for G68 Mach4GUI: Make scr.SetProperty() accept UTF8 strings. Core: Fix non zero table position start in the movement filters. Core: Added G68 updates to the Tangential interpreter. This code needs testing in Tangential Removed some old unused code in the Mill interpreter Core: Change to Mill interpreter, Force the distance mode before rotations are done. Core: Fix "Empty Parameter" Core: Speed Check LED and Signal fix . Core: Update to the table map and the signal for the speed check Core: Added Log messages showing the at the Speed check has been changed with the API call. Added an output to show that speed check is active so MachGUI can show the state with an LED. Core: Fix movement filters. Finally! Core: New sync with axis filters. Breaks incremental jogging! Core: Fix table map filter. It should be renamed Z level filter. Core: Table map update, Now having a nonzero based map works. Also the map file when it loads will set zero to be the highest point in the map on load. Core: Working Z table map. Core: Add table map filter. Core: Skip a REFWAITON if we are building the display file when running the Cannon buffer. Core: Prevent TC queue overrun error. Core: Revamp movement filter. Core: More G68 rotations code, Now we want to turn on rotation do no moves but ABS. Core: Initial movement filter interface. It will most likely evolve. Docs: Doc update Core: Allow G53 with the G68 active. Core: More changes for the G68. Will remove rotations to the current positions as soon as a G69 is issued. Core: Sync and Soft Sync when in G68 now set the _setup->rotationAppliedY = true; and _setup->rotationAppliedX = true; So the interpreter will not try to un do the rotation. Core: Trying to get the machine out of the feedhold state after the user presses Stop or Reset when a Macro was running Core: Fix random tool changer type. Core: Set axis jog units after the config state. Core: Make jog units mode selectable. Mach4GUI: Fix button codes for the individual jog increments. Core: Add option switch to make probe positions follow G20/G21 instead of always being in native units. Core: Add mcSignalHandleWait() API function. 3788 - 3805 Update screens for release candidate. Lua: correct module library function signatures for ZeroBrane. Mach4GUI: Fix scr.GetCtrlParent() Mach4GUI: Add the screen object to the Mach object list so that it can be used as the parent to enumerate its' children. Mach4GUI: Add operator lock menu items patch from Mach Motion. Build: Update build script to include the latest document versions. API Docs: Update indexes. Mach4GUI: Add editor accelerators. Core: Fix G10 for Lathe when it doesn't use the L word. Doc updates Core: Fix tool path Min/Max zoom. Core: Do not overwrite parameters.ini if it exists. 3785 - 3787 Core: Prevent F from being affected by a unit conversion if it is used on a line with a rotary axis ONLY. Core: Prevent rotary axis unit conversion. mcAxisSetPos() would do a units conversion on any and all axes. But mcAxisGetPos() always returned the axis position in native machine units. mcAxisSetPos() was changed to always use native machine units (the original design intent). Mach4GUI: Prevent rotary axis unit conversion. All DRO display and entry unit conversions are handled in the GUI. Core: Add mcMotorSet/GetCountsPerUnit API. Core: Spindle wait functions now return a timeout error code if they indeed timeout. Update API docs. 3776 - 3784 Fudge Sim's velocity calculation. Core: Fix G65/G66/G66.1 Core: Add BIN[] and BCD[] functions. Core: Add G10 L50. Core: Parameters can be treated just like doubles. Core: Add mcCntlGetParameter() and mcCntlGetParameterBit() API calls. Mach4GUI: Added support for system parameters in mcDro and mcStaticText. Core: Move parameters out of system variables. Core: Change internal read_parameter_* function names to read_sysvar_*. In future builds, system parameters will be different than system variables. Core: Increase the max interpreter operation precedence level from 5 to 10. Core: If a #var is used as a value to a G code word and the value is NIL, make it a no op. (Fanuc compat). Core: Improve the CheckBit() macro. Core: Use definitions instead of numbers in Controller::SignalWait(). 3714 - 3775 Core: Added mcCntlMacroAlarm() and mcCntlMacroStop() APIs Mach4GUI: scr.Exit() now posts a message to the Mach4GUI to shutdown. This allows scr.Exit() to be used from IPC. Core: Add mcCntlErrorString() API Core: (Lathe) If no slide direction is set, default to primary. Core: Prevent ISO tool path view from spinning the path. Core: Lathe Tip comp update to allow Inc moves to use Comp. Mach4GUI: Make double clicking the tools paths go to the initial view property's setting. Core: Implement the tool path default view SANE! It never was finished and crashed on Lathe. Core: Obey parameter 6001 for clearing local and common variables. Mach4GUI: Add scr.GetScreenName() to get the root control name. Mach4GUI: Feedrate label now shows correct feed rate in metric mode. Mach4GUIR: Add Lathe TLM files Core: Update Tangential and RP interpreters for G10. Mach4GUI: Update for lathe style TLM. Mach4GUI: Added VAL_ZOOM_MAX and VAL_ZOOM_MIN to mcCntlGetValue() and mcCntlSetValue() to set the max and min amount of zoom the user can do with the mouse or by using the mouse wheel. Core: G10 fix for bad G10 W value. Core: G10 revamp for Lathe. Plus full documentation. Core: Added TLM for Lathe. G10 revamp for Mill. Plus full documentation. ZeroBrane: Update to rev .50 Mach4GUI: Apply screen element alignment patch from Mach Motion. Build: Change "Release Industrial" target name to "Industrial Release". Mach4GUI: Fix OEM icons. Core: Fix mcCntlWaitOnCycleStart() when running a file. Core: Finalize the file dounload and upload interface via IPC on the client side. Mach4GUI: Patch for adv gui buttons. (From Mach Motion) Core: File upload and download (Mach side). Core: Move tool descriptions from the setup struct to the base GcodeInterpreter class. (Drastically improves load times.) Core: Implement pub/sub RCF for GUI messages across IPC. CorConf: Add A rotation axis Core: Update RCF to 2.2.0.000. Core: Gcode from String command fix so it will not start a new line if we have a space. mcCntlLoadGcodeString is the function affected. Core: M19 clarifications. Core: Changed G13 and G12 to do the same depth of cut for every pass.. Calculates the number of passes and changed the stepover to fit some multiple. Core: Add the table map to the project and take the OEM subs up to 100 for MM Core: Finalize cut recovery. (No cutter comp allowed. Yet...) Core: Start to the table mapping code to allow the Z axis to follow a table that is not flat. Mach4GUI: Fix RCF IPC definable port error. Mach4GUIR: Fork off Mach4GUIR. Mach4GUIR: Initial import of the remote interface. Core: Arc intersection math fixed for cut recovery Mach4GUI: Add object name and event type to button as parameters to button event scripts. Use LUA select() to access. (name, event) order. Core: Bug in the adjusting of the line width in the TangGLCanvas. Now it will use the settings rather than doing it's own thing. Core: Revamp cut recovery, again... Core: Loop to copy double values instead of memcpy() Core: Fix mcAxisIsMoving() for OOB axes/motors. Core: Added Arc to point test function for cut recovery Core: Added a function to see how close a line is to a point in controller. Core: Swap the function of VAL_DRYRUN_ENABLE and VAL_DRYRUN_RATE in the code to reflect the names. mcModbus: Add 32 bit writes and Float Reads/Writes Mach4GUI: Fix main frame icon. ZBS: Add some packages. 3709 - 3713 Core: Make multi-byte char aware. mcModbus: Make multi-byte char aware. Mach4GUI: Make multi-byte char aware. CoreConf: Make multi-byte char aware. wxMach: Add Utils.cpp/h ZBS: Update to .40 ZBS: Add some useful plugins. 3704 - 3707 Mach4GUI: Fix script file permissions. Mach4GUI: Add "Open Script Editor" to the Operator menu. Mach4GUI: Finalize screen script debugging. ZeroBrane: Update to .30 rev. 3694 - 3703 Build: Include ZeroBrane Studio. mkapi: Add ZeroBrane API template files. mkapi: Generate ZeroBrane API files. CoreConf: Implement ZeroBrane Editor mcLua: Implement ZeroBrane Editor Mach4GUI: Implement ZeroBrane Editor Mach4GUI: Fix font issue. (not saving Bold, etc...) Core: Make loading tool table a bit faster. 3664 - 3692 Core: Add option to check probe signal before a G31. Otherwise, do like Fanuc. Default is to check. Core: Run G84.2/3 as trun cycles for the lathe interpreter. Core: Added the toolpath line width code to the Lathe and Tangential display's . Core: Commit jog patch from Mach Motion. Core: Clean up Brian's custom OEM G code stuff. Mach4GUI: Updates for OEM versions. Core: Changed it so only the axis lines have the width changed based on the Axis Line width. The rest of the features are done using the Path Line width . CoreConf: Made the settings so they will change the state of the Apply button. Core: Added a place to change the width of the lines in the toolpath in the config dialog. Core: Update for the screw up with the license for the OEM Subs like G65. Core: Apply AxisPlanner.cpp patch. Mach4GUI: Add option for buttons to raise the up event if the mouse is moved off of the button. Mach4GUI: Undo all lost focus/gain focus events. License: Added some more features to the license Generator Core: Added the OEM Subs to allow the OEM's to make Gcodes. Core: Add shutdown message. Core: Fix feed hold while probing. Mach4GUI: Correct event handler for generic timers. Plugins: Wait on the event loop to start. Prevents a plugin from hanging when Mach is starting. Core: Code cleanup. Core: Set the line width to the Smooth line setting rather than the AntiAliased, Test for Mach Motion Build: buildrelease-vc12.bat now uses the windows defined NUMBER_OF_PROCESSORS environment variable. Build: Add a list of build requirements. Mach4GUI: Added /m command line switch to Mach4GUI that starts with the menu hidden. Mach4GUI: Video used to Start Mach4GUI for OEM's Core: Isolate profile write memory alloc/dealloc. Core: Added mutex to config flush. CoreConf: Fixed plugin deletion. 3654-3663 Mach4GUI: Lost/Gain focus events on selected screen elements. PMC: Add core value reads/writes via scr API. Core: OpenGL Milltoolpath changed to better support newer graphics cards. Trying to get smoother and better minimum line with by using the newer calls. OpenGL 1.1 or greater so no pushing to far Core: Allow homing of an out of band axis in any state (coordinated axis must be in idle) Mach4GUI: Implement in situ DRO expression calculator. Mach4GUI: Add screen based timers. Mach4GUI: Added scr.IsLoaded() API. Mach4GUI: Prevent crashing is if the screen specified in the profile does not exist. Mach4GUI: Fix hang while closing caused by mcLuaPanels. 3644-3653 Build: Include machipc and screenipc Lua modules in the build process. LuaModules: Include mcIpc function bindings. LuaModules: Include scIpc function bindings. Core: Add screenipc Lua module. Core: Add machipc Lua module. 3631-3643 Mach4GUI: Fix in screen editor crash on scr.EditorLoadFile(). Mach4GUI: Fix register updating mcTextCtrl. Core: Add mcFeature*() APIs. Core: Prevent stepping into encrypted subs. Core: Add support for encrypted G code subs. Mach4GUI: Try and fix LUA panel closing issues. Mach4GUI: Added scr API calls for turning the AUI bar at the top off and a call to use some of the functions to do the commands in the bar. Mach4GUI: Add EditorLoadFile() in the scr API. Core: Fix auxiliary positions for user coordinates. mcLua: Fix override bindings. Core: Implement auxiliary position that DROs and tool paths may use, if required. Core: Do not allow motion with G28.1 when loading a file. 3523-3630 Mach4GUI: More efficient fix for the advgui toggle button image not clearing if the image has a transparency. Mach4GUI: Fix advgui toggle button image not clearing if the image has a transparency. Mach4GUI: Add scr.EditorGetFileName() Core: Fix register hang. Mach4GUI: Fix debug assertion with fonts. Mach4GUI: Fix mcTextCtrl LUA memory leak. Core: Newline consistency. Core: Registers are no longer capped for string lengths. Core: Reduce memory requirements. Core: Fix MST blocking for conditional Macro B statements (IF/WHILE). wxWidgets: Fix GDI handle error in tool tips. Core: Make IPC base port configurable. It now defaults to 48000 and can be set with Preferences/BaseIpcPort in the profile. mcLuaEditor: Prevent thread messages at shutdown by preventing multiple call to shut down the debugger threads. Mach4GUI: Make popup alpha keyboard work with text controls. Core: Dummy motor on axes are now automatically removed if a real motor is mapped to that axis. Mach4GUI: Remove "Text" from uninitialized static text controls. Mach4GUI: Add scrGetCtrlType() scrAPI. Mach4GUI: Add scr API calls to get parent and children of a control. Mach4GUI: Fix over-converting units (mm/in) in DROs. Modbus: Use registry to enumerate com ports in Windows. Core: log mcSignalWait() API LicenseApp: Add OEMIcon16 Update wxNumberFormater to 3.1.0 Mach4GUI: Fix header define. Mach4GUI: Build with new wxPropertyGrid. Mach4IPC: Add memory leak checking. wxWidgets: Upgrade wxPropertyGrid to 3.1.0 Mach4GUI: Lua Panel improvements. Mach4GUI: Add background image scale methods to mcPage, mcGroup, and mcNotebookPage. mcLuaEditor: Debugger update. mcLuaEditor: Fix crash at end of debugging session. Core: Make IPC errors graceful. Shorten IPC connection timeout when executing on the local host. mcLuaEditor: Auto load needed files during debugging. mcLuaEditor: Use the graceful IPC error handling. Core: Added a call in the Gcode interpreter for a Stop function Comp position. Vars are now flushed when a Stop is issued. Reset will set comp back to OFF and flush all vars Mach: Add BuildingBlocks CCDK libraries. Core: Fix for cutter comp with full circles Core: Probe number added for DEV_TYPE_PROBE2 Mach4GUI: Fix DRO editing when it is mapped to a G code. Core: Fix the bug introduced when adding the mutex on the G code file operations. Core: Added a mutex to protect the memory mapped file operations. Core: Added code to allow Gcode from a script with a probe move to run after the G31 Command. It would stop before and not execute anything after if it was part of the same string (multi line) Core: Added the tools to allow more than one tool call on a line of Gcode for Drill bank heads in Industrial. Core: Added a way to put scripts in to the config menu to help with support. Sim: Fix mcNativeParentHelper.h with regards to the size message. Mach4GUI: Fix Plugin Panel Window Messages. Build: PDBs to SDK Mach4GUI: Fix static text label/register bug. Mach4GUI: Add G code variables to static text labels. Core: General cleanup to find Axis NAN problem. 3486-3522 Core: New plugin panel interface implemented. MUCH easier! Mach4GUI: New plugin panel interface implemented. MUCH easier! Sim: New plugin panel interface implemented. MUCH easier! Core: Added the over ride for the mcMpgGetShuttlePercent(int, * percent function) Core: Added the code to set the default toolpath to be the selection that the user would like. Now the defaut is the selection Shuttle mode now has API calls to set the velocity. Core: Adjustments to cut recovery. Core: Finalize cut recovery check routines. Core: Add Cut Recovery output signal. Core: Update operator= for PmPoint. Mach4GUI: Disable OK button on Cut Recovery dialog until machine is in position. Mach4GUI: Add cut recover cancel button code. Core: Needed to add a new dot product for all 6 axis Core: Added more code to test if the point is on the Arc. The code is in for testing but is not used in the check. Core: Fix StateInterface with regards to cut recovery. Core: Stubbed out point on line check. Core: Added overloaded operators to PmCartesian. Core: Added a test to see if the point is on the arc. This is a simple test to see if it has the same Rad first. The next test is to do an angle check. Mach4GUI: update Tracking Buffer Sim: Add SIZE and REFRESH plugin panel messages. Core: Implement CutRecovery. Mach4GUI: Make wxBitmapButton Core: Implement TrackingBuffer in CyclePlanner(). Core: Add TrackingBuffer class. Mach4GUI: Try to prevent a NULL brush and a NULL graphics path in wxGradientButton. Core: Retract no longer tries to move disabled axes. Core: mcSignalWait() can not use all signals instead of just GP inputs and outputs. Mach4GUI: Enable crash reports. Build: include PDB files in SDK. Mach4GUI: Fix state label flicker. Installer: Fix build script to include screen designer docs in the SDK. 3475-3485 Build: Include screen designer docs. CoreConf: Added a popup dialog to tell the user they have selected units for setup and default that are not the same. This has caused issues in the past and should help support. Core: Prevent mcProfileSave/Flush() from working before MSG_CONFIG_END. They return MERROR_NOT_NOW if used before MSG_CONFIG_END. Mach4GUI: Fix disk logging file name. Mach4GUI: DRO values are now forced to update on startup. Default was zero for the value and now we have it set to an unset value. Core: Add shadow variables for old style Fanuc offsets. Core: Added a bool to the TpAddTc function that allows the goal position not to be set. Also made where we set the last position before the Gcode move was sent in all functions to make it consistent for all moves. Core: Change the position the planner uses as the start of the move to account for rotation... Mach4GUI: Enable logging to a file. Core: Added a check to see if the PCID is the same in the license file as the PC. We now show an error and don't load the license if they don't match Core: Get the start of the move set when every TC is initialized 3468-3474 Mach4GUI: Add unhandled exception report generator. Core: Add unhandled exception catcher. Core: Fix starting position for dwells. Mach4GUI: Fix debug assertions in mcStaticBitmap. Core: mcMotorGetPos() no longer truncates the double to an integer. Router Screen: Fix update scripts in the DROs. 3419-3468 Core: Problem with G28 and the Z axis .. The code was changed to not need the ! (Not) operator and one was missed Core: G code check for moving a disabled axis. Core: G code error strings are now translatable. Mach4GUI: Fix bitmap button enabled/disabled discrepancies when launching dialogs from the button down event. Core: Retain signal user descriptions. Mach4GUI: Run From Here dialog caused hang on exit. mcSerial: mcPluginUnload() was never called. (not exported from plugin). Core: protect the tc queue with a mutex. Mach4GUI: Make the static bitmap accept new images at runtime. Mach4GUI: Fix bitmap button disabled image problem. Core: Start spindle changed timer in the main thread. Core: Correctly implement wxFileConfig in Load/SaveFixtureTable(). Core: Fix default var screwup on mcStaticText. Mach4GUI: Small typo for the inc jogging with the KB Core: Send MSG_TIMEOUT to plugins. Core: Changes made to the tangential interpreter to allow the user to set the amount they don't care about the blade being in position... for example if the blade is out 1.5 deg when it starts is that Okay ? Mach4GUI: Change base class of mcBitmapButton from wxBitmapButton to wxWindow. mcShuttle: Fix the Shuttle pro being on something other than Encoder Number 0 or 1 Core/IPC: Add mcIpcGetLastErrorMessage() and mcIpcGetLastErrorCode() to facilitate IPC debugging in the LUA environment. Mach4GUI: Streamline control update and edit scripts. Info in Mach 4 screen editor manual. Core: Make the SETVN ranges settable. CoreConf: Make the SETVN ranges settable. 3418-3403 Core: Add mcAxisRemoveOverrideAxisSync() API call Core: Prevent MPG in feed hold state! Docs: Update and clear up override axis API functions. Core: Fix mcAxisRemoveOverrideAxis(); mcKeyboard: Look at Keyboard plugin to see if anything changed. There was one change having to do with c# compat. This change was improved. Sim: Add output register for PMC testing. PmcEditor: Fix register read writes so that they allow floating point numbers. PMCEditor: Correct parameter for write (-> bool read = false) for SetPmcDevs in ShowRegisterDialog(). mcSerial: Added some tools to allow polling of the port. More of a test than anything Core: Need to get the ABS of the angle when checking.. Killed moves in the reverse direction. Core: Fix for Tangential interpreter stopping on moves that don't move the A axis Mach4GUI: Keep bitmap button from shrinking when the down event script is used incorrectly. Mach4GUI: Correct angular meter control mapping. Mach4GUI: Wire the DRO codes to the angular meter control. Mach4GUI: Make angular meters available in Hobby. 3402-3384 Mach4GUI: Add bezel and face image capability to the angular meter control. Mach4GUI: The needle will now not move passed the meter start and end ranges. However, the digital value will still show a value that is over or under the meter ranges. Mach4GUI: Fix angular meter disposal of the graphics context. Mach4GUI: Init meter control to sane values. Mach4GUI: Add angular meter control. Core: Header comment spelling correction. Core: Add mcCntlconfigStopEx() Mach4GUI: Font resize bug. Mach4GUI: Add font property to notebook control. Mach4GUI: New font mechanism implemented. Core: Allow 2 consecutive comp moves moves with the same vector. Core: Fix G68 with cutter comp. Mach4GUI: Add a font handling class. Mach4GUI: Get rid of unpainted pixel line on some scaled buttons. 3383-3377 Mach4GUI: Fix tool path not showing if it was a child of a group box in an initially shown tab. Docs: Add the extended tool table API functions. Core: (Mill) Add P parameter to G28.1 to allow homing OB axes. Mach4GUI: Reduce screen refresh flickering. Core: Specifying P or X with a G code variable implies a decimal. Core: Fix setting outputs with #1100-#1131 3376-3369 Core: Early app events in the Core could cause a startup crash if the app object's event handler wasn't running yet. Mach4GUI: Ensure 0 corner radius by default. Mach4GUI: Advanced GUI button rework. The buttons can now have no border, a simple border, or a OS themed border. The corners can have a definable radius as well allowing for round buttons, if desired. Mach4GUI: Add "Border" property to advanced GUI toggle buttons. Mach4GUI: Allow advanced GUI components in the Industrial Demo. Mach4GUI: Industrial Mach4GUI will not run with a Hobby or lesser license. Mach Config: Fix crash case when no motors are mapped to any axes. Core: Make build script use the new Industrial installer. Mach4GUI: Gradient button update. 3368-3355 Core: Correct incremental jogging for metric machine with G21 startup. Mach4GUI: Detect IPC initialization failures and exit gracefully. Core: Correct mcCntlInit() return code information. Core: Enable motors even if the axis that they are attached to isn't enabled. Core: Make OB axes more like coordinated axes. Home capability, axis output signals, etc... Mach4GUI: Ensure there is an Instance of at least 0 for the control Instance property list. Even in Demo mode. Mach4GUI: Scale image on group control. Mach4GUI: Add background color and image properties to the group control. Mach4GUI: Add "No Border" property for group control. Mach4GUI: Add menu items to open the Docs folder and the support website. Core: Add API function to get the HMCPLUG from a HMCDEV (mcDeviceGetPlugin()) Mach4GUI: Do not show disabled plugin motion devices in the device selection dialog. Core: Commit for dry run and the and scr.GetHistory 3354-3345 Core: Fix sync override issue. Core: Add TLM to Tangential interpreter. Core: Added The API call to set and get what the Left mouse button will do. This was to help with touch screen operations. The following commands where added: mcToolPathSetMouseLeftClick(MINSTANCE mInst, int click_func); mcToolPathGetMouseLeftCli... Core: If API is used in the core, make it use a HMINSTANCE so that we know the core called the API. Mach4GUI: Fix Keypad locations on the right edge of the screen. Core: Single block won't tear up cutter comp. Mach4GUI: notify user that the demo timed out with a message box. Core: Add Tangential Planner. 3344-3337 Core: Really really disable single block before running macros! Core: Fix G68 single axis callout with offsets. Core: Try to make plugins load in Windows 10 Creator. mcKeyboard: Make compatible with C# frontends. Build: include lua52.dll in Plugins directory. Core: One final fix for G53 in G68 mode. 3336-3315 Core: Even though G53 while in G68 mode is not Fanuc compat, allow it. Core: Fix M30 issue when in single block. Core: Fix potential M30 crash. Core: Single Block eats blank lines now. Core: Move gcRotate and unRotate to GcodeInterpreter.cpp. Core: Fix entering feed hold state when single block is active. Core Single block update for the case when single block is pressed during a tapping cycle. Core: Disable single block when running G code in macros. Core: Fix single block when stepping over sub calls when tool changes and probing are in the sub. Core: Make jog units track G20/G21. Core: #5041-#5046 now returns the current ABS position, not the last output of the G code interpreter. Core: Implement G28.1 in the Mill interpreter. Core: Made the new register to tell the application that has focus use a time instead of the on idle event. The idle event was not getting called if Mach4 did not have focus. This fixed the issue. Core: Add G28.1 for Mill. Sim: Add probe simulation. mcKeyboard: Debugging output only if the key is defined. Core: Add mcSpindleWaitForeSpeed() and mcSpindleWaitForStop() API calls. Core: Add probe strike setting to MDI. Core: Fix MDI when all exact stop moves are used. 3314-3234 Core: Retract again... G53 mod for G68 was incompatible. Core: Add core/global/GuiName register. Mach4GUI: Put GUI window title in core/global/GuiName register. wxMach: Put GUI window title in core/global/GuiName register. Core: More retract fixes. (I hate retract!!!) Mach4GUI: Fix Find/Replace in Industrial G code screen editor. mcKeyboard: Added a register telling the current window that windows is pointing too... This is to help the people that want magic! Core: Retract: Added RetractExitCode for turning coolant and auxiliary functions on. Core: More fun with G68 and moving in machine position... Core: G68 allowing a sync to axis moves that where done in G53. Sim: Changed how a motor still is done in Sim. The error was it would report still if it had any zero velocity.. Now it has to be stopped for a full update. Core: Retract rework. Added a machine state and OSIG_RETRACT signals. Core: Fix issue on screens without a toolpath display. Mach4GUI: Add NoteBookPage text height parameter. Sime: Change the way Sim determines if motion is stopped. PmcEditor: Allow negative numbers in math and comparison ops. (For Tom). PmcEditor: Fix match op highlighted state display. Core: Added 2 functions to rotate and un-rotate G68 to allow Dist to go to work. Core: Add var #3103 read only that reflects the state of the control. Core: We where getting a negative angle and the math down stream can only deal with positive... Added code to look at - angles and convert them to positive. Only effects tangential ToolPath: Added line number parameter to gcodeerror.mcs. MillInterpreter: Fixed comp error message. Core: Inch and mm jogging. Added mcJogSet/GetJogUnits() Core: Jog with a feed rate instead of a percentage of max axis velocity. mcJogSet/GetFeedRate() Core: Absolute position jogs. mcJogAbsStart/Stop() Core: Fix file hold locking issue. Core: Get out of band axes and override axes working. Mach4GUI: Add DRO codes for out of band axes. (Machine pos only). Sim: Handle OOB motor movement. mcLua: More logging for scripts that fail to compile. mcKeyboard: Add KeyboardControl/Enable register. CoreConf: Fix project file. Core: Add mcCntlGetHdId() API function. Mach4GUI: System Information will now include the hard drive IDs. Core: Add a configurable number of profile backups. Core: Make UVW on mill units aware. Mach4GUI: Add UVW DRO types. Mach4GUI: Fix crash on script edit (due to new HMINSTANCE type). Core: Fix incremental jog planner for low velocity small increment jogs. Mach4GUI: remove FromUTF8() conversion. Core: Added macro call for #3006 Stop Macro. Core: Add Educational and HMI license types. Mach4GUI: Fix industrial feature buttons. Docs: Plugin probing procedure updated. Core: Remove default space from the signal user descriptions. Core: Add a user description to the Mach core signals. (For those that don't want to make wiring diagrams for their machines!) Docs: Add mcCntlGetInstanceHandle() Core: Added mc.mcGetInstanceNumber() LUA function. Core: mc.mcGetInstance() can now take an optional string parameter to name the instance user for API tracing. Core: Fix API logging parameter errors that caused crashes. Core: Add API tracing via a variant of MINSTANCE called HMINSTANCE. mcCntlGetInstanceHandle(inst, "owner desc", &hinst); You can then use hinst as the instance parameter to all API functions. IPC: Enable error message box. Core: mcCntlProbeGetStrikeStatus() API function added. Mach4GUI: Fix issue where if a LUA panel was on a tab page, the tab control would ignore the "default tab" property and display the LUA panel tab instead. Mach4GUI: Fix tool path not showing initially when it is on a tab within a tab. Core: Input Signal #0 high prevented MDI from running. mcLua: Fix mcLua editor. Core: Add tempest planner to the source tree. Mach4GUI: Add command line switches to startup with a G code file in a desired instance. -o -i ie. Mach4GUI -o roadrunner.tap -i 0 GUIs: Update for OEM Registration in the About dialog Core: Encapsulate trajectory planners. Core: mcCntlGetStateName() returns too few values (omits state name) 3233-3226 Mach4GUI: Tool offset dialog will support radius or diameter values now. Core: Enable radius entries in lieu of diameter in the tool table. Mach4GUI: Fix tool offset table control. The AUI toolbar wasn't working correctly. Changed to buttons instead. Core: Prevent feed hold on cycle stop for states like tapping and threading. Core: Setting SV_MODAL_GROUP1 to SV_MODAL_GROUP25 now does the right thing. Core: Pressing cycle stop during a tapping move with RTAP2 locked the interface. GLee: Fix bad VBO detection. Mach4GUI: Remove useless "restore Settings" menu item from the operator menu. 3225-3207 Core: Add DEV_TYPE_CORE_LIMITS to the plugin device type flags. This should be defined by the motion plugin if it wishes the Core to handle stopping the motion when a limit is hit. Core: For DEV_TYPE_RTAP2, sync the position after the stop report request has be acknowledged. Core: Added AbortGcode() so mcCntlGcodeExecute will return an error if the motion was stopped by softlimits. Core: Fix initial motion syncing issue when the motor positions are first reported as non zero. Sim: Provide a means to allow Sim to startup with an offset other than zero for the motors. Core: Fix axis motor swapping via API calls. Installers: Added full to the build name of the FULL install Core: Cleanup uninitialized variables. Installers: Add HobbyBuilder. Core: Protect users from themselves and allow multiple T call outs before a M6. Core: Only one T code per block! Core: T codes now handle "repeater" T calls where the same T code is called out twice in a row. Mach4GUI: Had the wrong index into the Icon... Now is using zero as it should Installers: Update to the industrial installer. We needed to have the loader name changed so we can have Hobby and industrial on the same machine. Also changed the Icon for Mill to the industrial Mill icon. Core: Removed spindle control from rigid tapping DEV_TYPE_RTAP2. This will allow the motion controller to have full control. 3206-3140 Core: Fix a race condition that caused the core to halt on M codes. The race condition was created by the addition of the retract (tool inspection) functionality. Installers: Create build targets for Industrial and modify the Industrial installer. PMC: Make decimal division possible. Core: Undo retract MST checking. Core: Typo that was allowing the plane selection to change when you enter the config. Core: Add signals for multi-path control. Mach4GUI: Enable multiple core instances. Core: Finish remote IPC and enable 1 to 25 IPC clients. Core: Enable remote machine client abilities in the IPC library. Core: Fix FH retract hanging if M5 had a macro script backing it. Mach4GUI: Operator lock also locks config object. Mach4GUI: Get rid of PMC message when opening the screen editor. CoreConf: Fix spindle range revered flag not sticking. Core: Fix hang when spindle rate override is used during feed hold. Core: More probe logging. Core: Implemented comment debugging with (MSG,) Core: More probing changes. Streamlined the interface in the probe strike condition. Core: Fixed an issue in the tool path generation thread when processing G code doesn't necessarily output a tool path. Core: Made a change so <=0 will set the default values for the pullback and start offset for the G73 in Mill... Profiles needed to have -1 to use defaults and this would allow illogical values to get in. This will only allow values that work now. Core: G31 probe move was not updating the current positions in the setup struct. This had the effect of making incremental moves AFTER a G31 impossible. Core: Group 0 G codes will also cancel a modal G10. (Along with group 1 G codes and ... Core: New retract fixes. Core: Finalize retract code. Core: Jog updates SV_CURRENT_ABS_X - SV_CURRENT_ABS_C when complete. GUIs: Prevent DialogBlocks code generation from removing INDUSTRIAL icons and graphics. Core: Make the tool on the tool change like the tool it is changing too... Why this is not the default I have no idea! This is going to make support issues Core: Installer update for the Hobby land... New icons for Lathe Mill and Router CoreConf: Fix ID clashes. Core: No more jogging in feed hold. It is now a special retract function that uses the contents of /core/inst/RetractCode to move the spindle head to a desired location when the ISIG_RTRCT signal goes high. Installers: Update to the industrial wxIndustrial.set Core: Added inc moves for the C axis More updates for Industrial Core: Improve feed hold jogging. Added spindle control options. CoreConf: Add feed hold spindle options. Core: Enable jogging during feed hold. Core: Introduce the ControlSet class. Installer: new screen set for industrial Core: State machine re-vamp. Adds source and target state detection. Core: "gcoderror" to "gcodeerror" Lua Modules: Add LuaSec library. Core: Add mcCntlGetLocalComment() API call. Core: #6000.5 set steps into subprograms. Not set steps over subprograms. Core: Work on jogging in feed hold. Mill: G80 will not cancel modal group 1. Core: Add OEM license info for Demo version. Core: #3001 is now modifiable. Core: Macro call with G code and M code. Sub call with M code. (Industrial only) Core: If a G code error occurs when loading a file, a script named gcodeerror.mcs is executed (if it exists) with a single parameter containing the G code error number. Core: Writing to #3000 will execute a script named macroalarm.mcs (if it exists) with a single parameter containing the value of #3000. Core: Spindle speed script has a new second parameter. It will be set to 1 if the speed script was called from a G code S word. 0 if from spindle override. Core: Make sure correct tool change type is discovered. Core: Fix runaway look ahead. Core: Fix release build crashes. TLM: Keep CheckTcArrival() from checking unmanaged tools. Core: Fix tool table control update issue. Mach4GUI: Recurse into tab and group controls to init all tool paths and LEDs. Mach4GUI: Fixture offset control now updates the offsets. (Instance var was not initialized!) Core: Spindle override timer fires every interval instead of resetting the interval upon a change. Modbus: Add return code and error text registers to modbus device and functions. Core: Metric CSS was off by a factor of 10. should have been 1000 not 100 Mach4GUI: TLM only for Industrial. 3139 - 3113 Core: Tool life management RC1. Core: First semi-working tool life management. Docs: mcSignalWait() API correction. License App: Finalize ModuleWorks license settings. CoreConf: Additions to include TLM. Mach4GUI: Better Image management. Mach4GUI: Fix problem when tab control is the first item placed on a blank screen. Mach4GUI: MDI control improvements: Allow bitmaps for the buttons and allow the buttons to be sized. Mach4GUI: Industrial toggle button allows a pressed effe... Add LuaSQL library. Core: Fix subs from MDI. Core: Tangential seems to be working now Mach4GUI: Add G code editor control. (scr.* API) Core: Tangential update, to allow X and Y offsets to be used in the interpreter Core: Fixed a few issues in screw mapping. mcMotorMapGetStart was not returning the starting point. Core: Typo fixed in the tangential interpreter, effected toolchange because it was not looking to see if the T valse was set in the block. Looked and this seems to be the only one with this error. Core: Fix spindle mode default for Mill. Core: Added an API call to turn the motor map on and off Core: Added an API call to turn on and off the screw mapping... this was needed to be able to correct a map of the screw Core: Screw mapping seems to be working but Inc jogging needs a bit of work. 3041 to 3112 PmcEditor: The actions actions dialog not populating the list upon first entry. Mach4GUI: Now can process a solid tool path simulation license. Mach4GUI: Tool Table and Fixture Offsets controls only available in Industrial. LicenseApp: Update to include the solid tool path simulation. PmcEditor: Fix literal value identification. Lathe: Probe on lathe with U V and W Core: Fix VAL_MAX_TOOL Core: Clear any axis jogging states when the planner is cleared. PmcEditor: Make coil and contact dialogs remember the last device/object. PmcEditor: Fix LUA code output for MPG functions. PmcEditor: Set LUA output as default. Mach4GUI: Add fixture/work offsets control. Mach4GUI: Finalize tool table screen control. Mach4GUI: More tool table control enhancements. Mach4GUI: Add an AlphaNumeric keypad for Text controls. PmcEditor: Separate core output signals "F" from device inputs "X". PmcEditor: Separate core input signals "G" from device outpts "Y". PmcEditor: Group PMC object variables into one local table. The tool table Measure command was not working as it should. It needs to be tested more now but I think it is fine now. GUI Common: fix bug in ttField tool table shadow object. Mach4GUI: Add missing control icons. Core: add core/inst/State register that shadows the machine state. Mach4GUI: Add button code BT_RESET_CONTROL. Installer: Add Pmc directories. Core: Fix MSG_WORK_OFFSET_CHANGED constant. PmcEditor: Fix MRU. PmcEditor: Add most recently opened files to the File menu. PmcEditor: Add usre's manual. Installer: Make it remove lua52.dll Mach4GUI: Fix max axis variable initialization in the tool table control. Core: Detect tool comp memory location modifications and send MSG_TOOL_OFFSET_CHANGED message to the GUI. Mach4GUI: Update the tool table control and dialog based on MSG_TOOL_OFFSET_CHANGED. Mach4GUI: Add tool table control. Still needs work though... Mach4GUI: Improve PMC integration. Core: Register handling finalized. Installers: Include Pmc directory. PmcEditor: Allow core outputs #0-63 to be coils. Mach4GUI: Integrate PmcEditor Core: Add mcGuiSendMsg() API Sim: Show enables and outputs on diag window. PmcEditor: Added Core/Device register reading/writing. PmcEditor: LUA and ANSI C generator improvements. PmcEditor: Horizontal scrolling done. PmcEditor: Vertical scrolling done. PmcEditor: Fix code generator selection. PmcEditor: Fix tab traversal and key detection in the contacts and coil dialogs. PmcEditor: More multiple selection options. PmcEditor: Shit + select will select elements on a circuit up to the selected item. PmcEditor: Add ability to insert a parallel circuit across selected items. PmcEditor: Fix delay timer simulations. Core: Update to the override. added the mcSignalGetNextHandle() to LUA. This was needed for Brett... PmcEditor: Rearrange menus. PmcEditor: Add check.pmc that generates check.c for the unit test program. Core: Make the elapsed timer not count on startup Core: A condition was found to get an angle that killed the acos() function... Added a test to look for that and simply set it to be 180. Core: For G68 take the G52 offset into account The shift has been moved around to account for an X Y offsets Core: CV angle fixed the end vector for G3 moves Mill: Add error checking for G54.1 P word values. Mill: Add error checking for G59 P word values. Mill: Implement G59.1, G59.2, and G59.3 Core: Add VAL_ORIGIN_INDEX for use with mcCntlGetValue(). (returns 1-106). 2981 to 3041 CorConf: Fix ID clash on a text box. Mach4GUI: Retain current jog increment across Mach configurations. Bob :) Sim: Prevent Sim from consuming M62/M63 output queues if it is not the selected motion device. Core: Prevent velocity blending from discarding M62/M63 output queues. Core: Add mcMpgGet/SetReversed() APIs. Mach4GUI: Make DROS that are mapped to registers aware of the units mode (in or mm). Mach4GUI: Try to force the init of the OpenGL tool paths so that blank tool paths do not happen upon startup. Docs: Correct and embellish threading documentation. Core: Changed the CV angle code. Now when you are doing a straight line move that is Zero deg and if you reverse that is 180. The angle can be thought of as the amount of bend in the toolpath. Update to doing Comp with full Arcs and Arc Arc intersections. CoreConf: Make spindle ranges and step/dir spindle settings profile based. CoreConf: Add field for setting spindle override delay time. (anti-API spamming). Core: Update MachAPI.h with correct comments. Core: Do not enter feed hold on controlled stop if FRO is enabled and FRO = 0% Core and GUIs: Fix fixture offset split brain from last build. Set the bottom toolpath in lathe so it looks at the axis from the other side. This will allow the user to make it look like a rear turret machine Core: ISIG_JOG_INHIBIT fix to allow and existing jog to stop. Core: ISIG_JOG_INHIBIT and ISIG_MPG_INHIBIT input signals added. Fix string editor reads on the tool table extensions. CoreConf: Try to slim the dialog to fit portrait view monitors. Fixed the naming of the CV angles "Angle_ RegFile: Fix persistent flag toggle in the configuration grids when adding a new register. Core: Add mcMpgGet/SetEnabled() APIs. Core: Finalize extendable tool table fields. Core: Max tools for the machine is settable in the profile. Core: Enabe running GUI without a tool path. Core: Inform user of a soft limit violation. Core: Relocate tool table system variables to Fanuc tool table memory type C locations. Core: Increase max system variable to 20000. Core: Increase max tools to 999. Core: User definable tool table entries. Core: Add mcToolGet/SetProperty... Lathe: Update to the Lathe INI Lathe: Added Turn to the installer Core: OSIG_FEEDHOLD now honors the feed hold state. Core: Setting #3004 in G code now works correctly. Core: Fix Rapid override race condition. Core: Fix subroutine nesting. Core: Init all local vars to NIL for G65, G66, and G66.1 Core: Make feed rate/rapid rate override act like the spindle speed override. The user can change the override value even if feed rate override is disabled. Core: Reset run timer when the control is reset. Core: Fix CNTL1 and CNTL2 setting. Lathe: Group 1 modal cancels a group 9 cycle. Mach4GUI: Fixed display issue on elapsed time label. incorrect unit conversion (ref: p. 176; Smid, Peter. Cnc Programming Handbook: A Comprehensive Guide to Practical Cnc Programming. New York, NY: Industrial Press, 2008. Print.) Courtesy of Todd! LO... Setting parameters #3003 (SV_CNTL1) or #3004 (SV_CNTL2) breaks the CV chain. ScreenSets: Loop of death for the hobby button fix... The output signal was getting triggered if anything toggled the signal... Lathe: Fix G92 threading cycle. Lathe: G50 caps spindle speed. Mach4GUI: Make sure plugin panel objects are properly released when loading another screen set. Mach4GUI: Try to eliminate display issues with "View->Load Screen". mcRegfile: Make window sizes/positions/attributes sticky. mcModbus: Make window sizes/positions/attributes sticky. Mach4GUI: "View->Load Screen" now defaults to the Screens directory. mcLuaEditor: Enable multiple frame position/size profiles set by -fn (frame name) switch. G68 Rotation to get the commanded position. 2979 to 2981 Core: Implement spindle override delay to keep slider controls from spamming the API. Added the arc speed override for the A axis when tangential is being used. Mach4GUI: Add scr.Exit(bool force) screen API call. It shuts down Mach cleanly. It can be used in the plc script and operate off of an input signal, etc... Since 2950 to 2978 Installers: Update programming manuals. Lathe: Single line G76 uses M23 to turn on thread finishing and M24 to turn it off. Lathe: Add single line G76 threading cycle. Core: Implement Haas style dwell. P address with a decimal is seconds and P without a decimal is milliseconds. G04 and cycle dwells. Core: Implement Fanuc style X and U address dwell in seconds. Only for G04. Lathe: Implement Fanuc style parameters for 2 line G76 threading cycles. P, Q, and R addresses take no decimals in accordance with the Smid book. Decimals are assumed to be 4 places for INCH mode and 3 places for METRIC mode. However, if a decimal number is provided, they will be taken literally. Core: Init origin mode to G54. Modal group block for the G76 threading cycle so no other motion calls will be done. Adding of some threading test Gcode files Update for some tangential code, Getting ready to get Arcs to readjust the feed for the A axis blending Fixed the part counter running with a M99 Fixed the cycle time for that Tom... Core: Put G76 threading cycle in modal group 0. Core: Fix up lathe cycles when using incremental addresses. Lathe: Fix unit conversion issue for G76 threading cycle. Core: Add system parameter #5101 to control Q shift direction and axis in G76/G87. Tangential now can take the shortest path without getting in trouble with wrapping. Circle for CV Testing.TAP added to test CV with arcs ~Carl with MachMotion Tangential Test file.tap added as a simple test file Core: Correct #4014 for all interpreters. If #4014 == 54.1, then the P vaule can be found in #4130. Core: Canned cycles moved to modal group 9 for Lathe. Core: Fix spindle orientation in cannon. Had to set the straight feed moves and rapids to use the setup that is in the cannon buffer.. they had some of the old code that was looking at the global setup. This was needed for distance to go in can cycles.. This could also be used as ... Had to set the current position in the setup before adding the move to the cannon buffer. This needs to be done so Distance to Go will work on the drill cycles. This was changed in cycle_traverse() and cycle_feed() Added the ability to do a Q for the G10 command... I think we have an issue with the G65 macro B now.. Why in the heck is this in the code.... Do we care that much about Q Core: Mill canned cycle rework. Some work on the Distance to Go... This is going to need lots of testing! Mach4GUI: Add /f startup switch to startup in full screen mode. Lathe Comp swap G41 G42 to change when swapping Primary to secondary tool direction Since 2914 to 2949 Mach4GUI: Allow DROs to take a blank background color. This allows for them to take on the background color underneath them. Mach4GUI: Add "Editor Fg Color" and "Editor Bg Color" properties. Mach4GUI: Prevent lathe diameter mode from hal... Lathe: Turn tool tip directions updated. Mach4GUI: Get scr.ShowPage() back in. The LUA binding was dropping the last alphabetical entry! Mach4GUI: Add "Value" property to the text box control. mcRegFile: Fix duplicate grid cell editor reference. Lathe: Added a flip for the tool direction with comp... CoreConf: Prevent changing a device in the mapping grids from producing out of bounds index errors. Mach4GUI: (Industrial) Make toggle button images work. Mach4GUI: Eliminate border appearing on a depressed bitmap button. Mach4GUI: Eliminate unneeded calls to refresh the screen editor properties window when the screen editor is not act... Tangential: Update for the tangential. Mach4GUI: Fix issues with scale mode in bitmap button and static bitmap controls. CoreConf: Config dialog now handles large fonts. CoreConf: Warn users about setting soft limit MIN > soft limit MAX. Lathe: Turn Comp Test from Mach Motion... r2914 Mach4GUI: Fix soft limit signal going high when the user attempts to enable soft limits on a config that doesn't have soft limits enabled. Mach4GUI: Add "Scale Method" property to controls that have images. This allows the user to tune the scaled image quality vs. performance. Core: Fix a second race condition in Single Block. It looks good now. Lathe: Comp in turn from primary and secondary sides update Lathe: G68 rotation DRO added X and Y tool offsets for Mach Motion Core: Added values to get the current dwell time and the time that has been done. This was done for Tom to add a Dwell count down timer. Core: Fix race condition in Single Block Core: Disable Single Block during M6. Core: Fix M62/63 missing the first occurrence after the control was started. Core: (All interpreters) M30 executes stock actions only if a M30 macro does not exist. Lath: Small update to lathe for Comp testing. The ending of the comp moves in turn needs work if the user is not going to pull out as comp is on Mach4GUI: Fix tool path init after a screen edit. Core: Add mcCntlGet/SetEnableFRO() and mcSpindleGet/SetOverrideEnable() Core: Prevent EX_PROBE from emanating during tool path generation. Mach4GUI: Allow runtime setting of the "Hidden" property. Lathe: Update to the tool table to allow the selection of primary tool direction Probing: Brett's and mine's example from working with Coroutines. This allows users to make make Gcode moves and wait for them to finish without locking up the GUI Lathe: Changed the wording in the tool offsets table to show primary and secondary tool directions Core: Fix metric/inch conversion on subsequent canned cycle passes. Mach4GUI: Handle starting in E-Stop by notifying the user of the condition. Since 2872... Installer: Clear tool table data. Core: Fix MDI issue when probing and probe signal is active. Mach4GUI: All controls are enabled when in screen editor. Mach4GUI: Add default tab to tab controls. Mach4GUI: Try to address Industrial button refresh issues. Mach4GUI: Put plain button icon back. Mill Test for the G83 cycle.. the delta for the peck was in the wrong direction CoreConf: Call mcProfileFlush() on OK. Core: G20/G21 re-evaluates the F word if on the same line. Core: Calling mcProfileSave() no longer clears the child motors of the axis. Mach4GUI: Implement screen API DoFunctionName() and DoFunctionCode() so that screen scripts can call the canned button functions. Mach4GUI: Remove conflicting JPEG library. Core: Added the code to inhibit motion if the motion inhibit signal is high.. Seems to work in my tests! More testing needed... Mach4GUI: Remove Z order. Like it never even happened... Mach4GUI: Include mcButton2 class in the button click, up, and down event simulator functions. Core: Try importing a group into a group. Core: Fix signal mapping and enabling. Docs: Correct bad entry for mcProfileReload(). Core: Implement ISIG_MOTION_INHIBIT Core: mcProfileReload() only in idle state. Core: Implement mcProfileFlush() and mcProfileReload(). Core: Fix G65 parameter passing. Core: Renamed previous signal shadowing to more Fanuc style names SV_INPUT0 -> SV_UI0, etc... Mach4GUI: Rewrite Plugin configuration interface. Each plugin that exports a config dialog will have its own menu item. This removes the modal plugin config dialog and allows plugins that export plugin panels to the GUI to also have a con... Implement system vars that shadow input signals 0-31 and output signals 0-31. mcSerial: Remove deadlock condition. Core: Spindle speed override now calls the spindlespeed.mcs script. Mach4GUI: Correct control dragging in the editor when in scrolled window mode. Mach4GUI: Fix DRO code for gauge controls. Mach4GUI: Fix ID clash that prevented G code list from accepting clicks sometimes. CoreConf: Increase plugin config dialog size a bit. Mach4GUI: Fix sizing issue with the Recent Files dialog. Mach4GUI: Animation control only for Industrial and Expert. Mach4GUI: Tab controls stay on the current tab after a resize. Mach4GUI: Scaling to animation control. Core: Add GraphicsMagick library. mcSerial: Switch register notifies from Async to Synch. Mach4GUI: Add tool tips to the tool bar buttons that didn't have them. Mach4GUI: Remove icon thumbnail image that didn't need to be in the source tree. Mach4GUI: Add animation control. Mach4GUI: Fix gauge thresholds.