The RepRap Post Processor is Broken

The RepRap Post Processor is Broken

eratus
Participant Participant
355 Views
1 Reply
Message 1 of 2

The RepRap Post Processor is Broken

eratus
Participant
Participant

G28 is not used by the firmware in the way it is implemented by the post processor and Clearance Height does nothing.

 

The RepRap Post Processor uses G28 to return to a saved home position. RepRap firmware uses G28 to run a file that homes all of the axes to the switches.

 

https://docs.duet3d.com/User_manual/Reference/Gcodes

 

G28    ; Home all axes
G28 XZ ; Home the X and Z axes

"The X and Z parameters in this example act only as flags. Any coordinates given are ignored. For example, G28 Z10 results in the same behavior as G28 Z."

 

Clearance Height is the frequently recommended option to use when people complain about G28. The problem here is the RepRap Post Processor has Clearance Height as a menu option, but the code doesn't do anything with it, except check for the possibility of an error and output an error message it the condition exists. Before claiming otherwise, please read the code and/or try it yourself.

 

I've wasted hours upon hours adding up to days of my life trying to figure this out because your experts can't be bothered to check before claiming flat out they are "fine and working properly". I came here for support as a novice, not to find and and fix your broken BS, or to mockingly be told to RTFM.

 

https://forums.autodesk.com/t5/fusion-360-manufacture/gcode-begins-with-move-before-raising-spindle/...

 

 

0 Likes
356 Views
1 Reply
Reply (1)
Message 2 of 2

serge.quiblier
Autodesk
Autodesk

Hello @eratus 

 

as the firmware settings can be edited at compilation time, we can't guess how a specific machine using an hobbyist firmware will react.

Your are complaining that this is not functionning on your so you can eventually edit your post processor.

Using any text editor open the cps file, search the onSection function inside.

then alter the code to look like this

  var initialPosition = getFramePosition(currentSection.getInitialPosition());
  if (!retracted) {
    if (getCurrentPosition().z < initialPosition.z) {
      writeBlock(gMotionModal.format(0), zOutput.format(initialPosition.z));
    }
  }
  if (insertToolCall) {  // Code added
    zOutput.reset();  //make sure Z will be output always
    writeBlock(gMotionModal.format(0), zOutput.format(initialPosition.z));
  }   // end of code addition
  if (insertToolCall || retracted) {
    gMotionModal.reset();
    writeBlock(
      gAbsIncModal.format(90),
      gMotionModal.format(0), xOutput.format(initialPosition.x), yOutput.format(initialPosition.y)
    );
    writeBlock(gMotionModal.format(0), zOutput.format(initialPosition.z));
  } else {

 

Hope it will fix your issue, before we eventually change the post behaviour.

 

Cheers.


______________________________________________________________

If my post answers your question, please click the "Accept Solution" button. This helps everyone find answers more quickly!



Serge.Q
Technical Consultant
cam.autodesk.com
0 Likes