Duet3D Logo Duet3D
    • Tags
    • Documentation
    • Order
    • Register
    • Login
    1. Home
    2. zuoyan
    3. Topics
    • Profile
    • Following 0
    • Followers 0
    • Topics 5
    • Posts 14
    • Best 0
    • Controversial 0
    • Groups 0

    Topics created by zuoyan

    • zuoyanundefined

      Abort when probing error

      Gcode meta commands
      • • • zuoyan
      3
      0
      Votes
      3
      Posts
      89
      Views

      zuoyanundefined

      @dc42 I think there may be a bug in both 3.5.4 and 3.6.0. After a print, when the bed z is large, and the next print will trigger a probing error:

      G32 Error: meta command: Probe was not triggered during probing move bed.g: G30 P0 failed # I checked and echoed this in the bed.g file

      I watched the move and found the bl touch was extended at the start. When Z moved up for some distance, it triggered this error. Now I tried to fix the issue by adding a check before G30:

      if move.axes[2].machinePosition > 10 G1 Z10

      While it's not an issue when calling G32 at the start with a large z. But it happens frequently for a second print.

    • zuoyanundefined

      Share a macro: purge to a rectangle

      Gcode meta commands
      • • • zuoyan
      4
      0
      Votes
      4
      Posts
      174
      Views

      zuoyanundefined

      @mikeabuilder I don't have multiple tools, so it's simple. I never thought we can use slicer for this. In my start script, it tries different area (4 side rects) with different clearances, and calls this macro at the first suitable place. I think you may need to find a larger area so that multiple head can purge at the same time?

      var min_x = ... ... var xc = (var.min_x + var.max_x) / 2 var yc = (var.min_y + var.max_y) / 2 var clearance = 40 ; start from 40 / 2 var rect_x1 = 0 var rect_x2 = 0 var rect_y1 = 0 var rect_y2 = 0 while var.clearance > 1 if mod(iterations, 4) == 0 set var.clearance = var.clearance / 2 if var.clearance < 1 break set var.rect_x1 = mod(iterations, 4) == 0 ? var.max_x + var.clearance : move.axes[0].min set var.rect_x2 = mod(iterations, 4) == 1 ? var.min_x - var.clearance : move.axes[1].max set var.rect_y1 = mod(iterations, 4) == 2 ? var.max_y + var.clearance : move.axes[2].min set var.rect_y2 = mod(iterations, 4) == 3 ? var.min_y - var.clearance : move.axes[2].max if var.rect_x1 + global.NOZZLE_DIAMETER > var.rect_x2 continue if var.rect_y1 + global.NOZZLE_DIAMETER > var.rect_y2 continue if (var.rect_x2 - var.rect_x1) * (var.rect_y2 - var.rect_y1) < var.purge_area continue ; Project (xc, yc) into the rect set var.xc = min(max(var.xc, var.rect_x1), var.rect_x2) set var.yc = min(max(var.yc, var.rect_y1), var.rect_y2) ; Shrink the rect to purge_area, close to (xc, yc) and close to a square var xl = max(sqrt(var.purge_area), var.purge_area / (var.rect_y2 - var.rect_y1)) var yl = var.purge_area / var.xl set var.rect_x1 = max(min(var.xc - var.xl / 2, var.rect_x2 - var.xl), var.rect_x1) set var.rect_x2 = var.rect_x1 + var.xl set var.rect_y1 = max(min(var.yc - var.yl / 2, var.rect_y2 - var.yl), var.rect_y1) set var.rect_y2 = var.rect_y1 + var.yl echo "Purge in the rect " ^ {var.rect_x1, var.rect_x2, var.rect_y1, var.rect_y2} M98 P"0:/macros/purge_rect.g" A{var.rect_x1} B{var.rect_x2} C{var.rect_y1} D{var.rect_y2} break if var.clearance < 1 echo "no place to purge"
    • zuoyanundefined

      mesh compensation causes dragging of moves

      Tuning and tweaking
      • • • zuoyan
      5
      0
      Votes
      5
      Posts
      161
      Views

      Phaedruxundefined

      @zuoyan said in mesh compensation causes dragging of moves:

      Do we know the consequence of too high jerk/instantaneous speed change values? Like smoothed corner or lost steps?

      You only need to increase the Z axis jerk slightly. 60 to 120 mm/min range. This will have zero effect on XY motion of corners, etc.

    • zuoyanundefined

      start.g with temperature and print ranges, etc?

      Gcode meta commands
      • • • zuoyan
      5
      0
      Votes
      5
      Posts
      202
      Views

      Phaedruxundefined

      I do a generic preheat in start.g to get the heaters warming up while the printer homes. Then the slicer takes over with final temps. Saves some time anyway.

    • zuoyanundefined

      Shared wires by voltage

      Duet Hardware and wiring
      • • • zuoyan
      5
      0
      Votes
      5
      Posts
      127
      Views

      zuoyanundefined

      Thanks. I agree that a toolboard is easier.

      I had a clone of 1LC board causing heater fault when printing in a enclosure (MCU T >= 81C). I'm waiting for new boards from Filafarm. If the problem persists, I may have to consider a version w/o a toolboard.