Announcements
Autodesk Community will be read-only between April 26 and April 27 as we complete essential maintenance. We will remove this banner once completed. Thanks for your understanding

Additive Manufacturing, Go to park position

michael
Contributor

Additive Manufacturing, Go to park position

michael
Contributor
Contributor

I tested the new feature of slicing in Fusion,and  it worked. I could also adopt the generic post processor to my custom printer, but there is one thing, that makes it useless at the moment: At the end of each print the Gcode tells the printer to go to the park position. This means it has to go up to the top of the printer after each print. I have a custom printer with high resolution z-axis, so I have to wait a long time for the printer going first up, and then for the next print going down again. In my slicer I can make custom Gcodes as ending scripts to allow the printer to move with relative coordinates 30mm over the highest actual print. This saves much time. In the post it is IMHO not possible to fix that. I can manually set the Gcode all the time before printing, but that is not productive. It would be nice to have the possibility to change the park position to relative, the minimum should be to disable the got to park position.

0 Likes
Reply
615 Views
4 Replies
Replies (4)

Anonymous
Not applicable

I solved this in my post script for an ender 3 pro by using my Z max and the current commands Z: 

 

function onRapid(_x, _y, _z) {
    var x = xOutput.format(_x);
    var y = yOutput.format(_y);
    var z = zOutput.format(_z);
    if(z && z > printerLimits.z.max) {
     // insert something else or do nothing to remove the Z park
    } else if (x || y || z) {
      writeBlock(gMotionModal.format(0), x, y, z);
    }
}

 

There is likely a better way to do this.

0 Likes

michael
Contributor
Contributor
Thanks,


is this an & Sign?

And where to put the code in the post?

Also What to do, so that there is no park postion, as mentioin in comments??

Regards

Michael

0 Likes

Anonymous
Not applicable

Are you asking about the if(z && z > printerLimits.z.max) ?

If so yes that's an & symbol

 

If you want to remove the park completely you could check for the gcode that's being written and remove that specifically. your case may change with different printers.

Here is how I saw it work in a simple test, you would need to make sure it made valid gcode if you tried that and doesn't strip anything needed. 

 

 

function onRapid(_x, _y, _z) {
  var x = xOutput.format(_x);
  var y = yOutput.format(_y);
  var z = zOutput.format(_z);
  if(x == "X0" && y == "Y0" && !z){
      // check for not Z because the home command is G0 X0 Y0 with no Z0
	  // otherwise just leave this blank to remove the gcode for home
  } 
  else  if (x || y || (z && z < printerLimits.z.max)) {
	//everything less than the max Z gets written, if its over skip writing it to avoid the Z move on home
    writeBlock(gMotionModal.format(0), x, y, z);
  }
}

 

 

And where to put the code in the post?

This shows the js api and the available overrides.

https://cam.autodesk.com/posts/posts/guides/Post%20Processor%20Training%20Guide.pdf

the onRapid function goes in your post script like the other functions and that gets called by fusion.

0 Likes

matty.fuller
Collaborator
Collaborator

I've just implemented a fix for this issue that may be of some use/interest.

 

Using the dumper post you can see that it first calls the comment 'move to park position' before issuing a rapid to either the park position or the max Z, whichever is lower (in this case 400):

153108: onComment('move to park position')
153109: onParameter('feedRate', 7200)
153110: onRapid(-6.305398941040039, -2.2059953212738037, 400)
153111: onRapid(100, 100, 400)
153112: onComment('--------------------------------')

 

I modified my writeComment function to check for the text "move to park position" and set a flag accordingly:  

function writeComment(text) {
  if(text == "move to park position"){
    parkingActive = 1;
    writeln(";Ignoring parking!");
  }else{
    writeln(";" + text);
  }
}

 

I then modified onRapid to do nothing if the parking flag is set to true:

  if (x || y || z || f) {
    if(parkingActive == true){
      // do nothing
    }else{
      writeBlock(gMotionModal.format(settings.useG0 ? 0 : 1), x, y, z, f);
      feedOutput.reset();
    }
  }

 

And then added appropriate commands for the homing/shutdown sequence I want.

0 Likes