Changes KFLOP and KMotion Released Versions 4.28 -> 4.29 4/17/2012 KFLOP ----- - MoveExp Improved - Velocity is now limited in order to avoid overshoot of the target. Previously for relatively large distances to the target the exponential distance/velocity curve could command a velocity so high that it would be unable to stop using the specified max deceleration without overshooting the target position. The trajectory will now limit the velocity to a point where max deceleration will be able to intersect the exponential curve at the point where the exponential curve is at max acceleration. 2nd order Blended moves between MoveExp / Move / MoveRel / Jog are now allowed. A bug was fixed where after a Jog then next MoveExp might begin at a non-zero velocity. - Multiple Console commands on the same line are now permitted separated by a semi colon. ie ClearBit46;SetBit47 - Encoder Inputs can be muxed from JP7 and JP5 to JP4 and JP6 which allows all 8 Hardware Encoder inputs to be used simultaneously with all 8 Step/Dir Generators (Dual KSTEPS) - Fixed blended motion corruption if blend occurred exactly on Trip state boundary - Added Final Path motion when using Low Pass Filtered Coordinated motion. Small Cubic Spline motion to complete the trajectory is added to the end of a Coordinated Motion Path. Previously due to the small lag introduced by the filtering the motion would not exactly reach the final target and stop abruptly. See the Help - Trajectory Planner - Corner Rounding for more information. KMotion ------- - Config Screen Limit Options now allow upto bit number 255 for KSTEP KMotionDLL ---------- - Fundamental changes to the CKMotionDLL, CCoordMotion, CGCodeInterpreter classes have been made to make things more object oriented. Instead of a relationship where one contains the other, each object is now created independently. The CGCodeInterpreter contains a reference to a CCoordMotion object, and the CCoordMotion Object contains a reference to a CKMotionDLL object. Each CKMotionDLL object is now associated with a specific board. This arrangement allows multiple CCoordMotion objects to access the same board. It also allows a CCoordMotion object to be accessed independently of the associated GCodeInterpreter and so forth. - An Error Message Callback Mechanism has been added to allow User Applications to handle their own Errors. See: int SetErrMsgCallback(ERRMSG_HANDLER *eh); - MainPathRoot now properly reflects location of DLLs in all cases rather than location of calling App - Fix Compiler Memory Leak causing crash after thousands of M code Compiler instances - Return Clearer Error Message if C program can not be compiled due to invalid Thread Number KMotionCNC/CoordMotion/GCode Interpreter/Trajectory Planner ----------------------------------------------------------- - (MSG,XXXXX) GCode Interpreter Message Boxes will now flush all motion and wait till motion finishes before completing The displayed message will also be forced to be on top of all other windows. - Fix KMotionCNC Screen re-sizing from top/left sides - Improve USB throughput by sending multiple Motion Segments and eliminating duplicate data with new LHex1 LHex2 commands - Fix Trajectory Planner bug related to previous optimization for short segments - Fix issue with lost fixture offset changes after Halt - Fix issue with Collinear Tolerance combined vectors resulting in a zero or infinitesimal length segment - Fix KMotionCNC Jog buttons - rapidly pressing buttons caused small reversed motion in certain cases KMotion_dotNet_Interop ---------------------- - Improved Managed Code Wrapper for all KMotion Libraries KMotion_dotNet -------------- - Improved .NET Interface DLL - Major upgrades - MainStatus Supported - MCode Callbacks - New Windows Help File - Added check to only execute C programs that compile with no errors - Fix IO Direction Bits off by one bug - Origin Offsets Expanded to 6 axes KFLOPWebNC Example ------------------ - Added C# example of a CNC application making use of a Web GUI thanks to Brad Murry. The Screens can be designed and changed using a Web Site development tool such as Visual Studio Express as well as numerous others. Basic functionality seems to be working. KMotion_dotNet Console Example ------------------------------ - Updated for new .NET interface - Shows Message Box on any Compile Error DynoMotion VB.net Example ------------------------- - Updated for new .NET interface Mach3 Plugin ------------ - Bug Fix that could sometimes caused a Motor Stall. The plugin identifies points forming small arcs and compresses the points into equations of motion. It is not necessary to have Circles in the GCode to have the problem occur. The bug occurs when points in the xy plane form an arc through the wrap point of -180 to +180 degrees. This results in a huge short duration pulse in the output trajectory. This may result in a motor stall or miss-step. The occurrence is rare but most likely to show up in complex 2D jobs in the xy plane (roadrunner). TCC67 ----- - Fix TCC67 Compiler bug when casting int to double and second reg is already in use User C Programs --------------- - MuxEncoders.c example of how to Mux Encoders to JP4 and JP5 - Tangent.c example tangential knife - CaptureXYZMotionTrigger.c example how to use circular buffer to display history after trigger event - DoGCodeG921.c example of how to send G92.1 GCode to KMotionCNC to clear G92 offsets - KFLOPtoPCGCode.c example of sending GCode to KMotionCNC from KFLOP - CheckResFromKMCNC.c example of requesting KMotionCNC axis resolutions from KFLOP On-line Help ------------ - Updated