G-Code for powder bed printing

Home Forums 3DP printing G-Code for powder bed printing

Viewing 4 posts - 1 through 4 (of 4 total)
  • Author
    Posts
  • #2093
    ezrec
    Participant

    I think I almost have a working model for multi-color resolution-independent G-Code for my BrundleFab, and though it might be useful for others.

    The basic principle is to use T1..T16 as individual ‘spray tools’, and use the P Q R parameter variables to define up to 72 bits of nozzle control bitmap, and the S parameter to control the ‘spray rate’ (in pulses per minute).

    Currently I only have one printhead, but this technique should allow me to control all 8 colors on my i9900 independently, and in a more compact GCode format than the current ‘N’ nozzle control method.

    ‘Soak’ of the binder can be controlled both by the Tool’s ‘S’ parameter (ink pulses per minute) and the ‘F’ feed rate of the move. In my system, the ink sprayer is only enabled when in G1 motion.

    Example (comments added for clarity, printing a cylinder):

    
    ; Print /home/jmcmullan/Desktop/slices to the BrundleFab
    G28 ; Home all axes
    G91 ; Absolute positioning
    M226 ; Wait for manual fill operation
    G92 ; Reset zeros after fill operation
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000001FFFFFFFFFFFFFFE000000
    ; 00000000FFFFFFFFFFFFFFFFC00000
    ; 00000003FFFFFFFFFFFFFFFFF00000
    ; 0000000FFFFFFFFFFFFFFFFFFC0000
    G1 X3.150000 Y7.350000 ; Line 23
    T1 P2048 S6000.000000 ; Pattern 800, 60000 pulses/minute
    G1 Y14.962501 F30000.000000 ; Spray pattern
    T1 P3072 ; Pattern C00
    G1 Y16.012501 F30000.000000 ; Spray pattern
    T1 P3584 ; Pattern E00
    G1 Y17.325001 F30000.000000 ; Spray pattern
    T1 P3840 ; Pattern F00
    G1 Y33.862503 F30000.000000 ; Spray pattern
    T1 P3584 ; Pattern E00
    G1 Y50.400002 F30000.000000 ; Spray pattern
    T1 P3072 ; Pattern C00
    G1 Y51.712505 F30000.000000 ; Spray pattern
    T1 P2048 ; Pattern 800
    G1 Y52.762505 F30000.000000 ; Spray pattern
    T1 P0 ; Pattern 0
    G1 Y57.750004 F30000.000000 ; Spray pattern
    ; 0000001FFFFFFFFFFFFFFFFFFE0000
    ; 0000003FFFFFFFFFFFFFFFFFFF0000
    ; 0000007FFFFFFFFFFFFFFFFFFF8000
    ; 000000FFFFFFFFFFFFFFFFFFFFC000
    ; 000001FFFFFFFF80007FFFFFFFE000
    ; 000001FFFFFFF0000003FFFFFFE000
    ; 000003FFFFFFC0000000FFFFFFF000
    ; 000003FFFFFF000000003FFFFFF000
    ; 000007FFFFFC000000000FFFFFF800
    ; 000007FFFFF00000000003FFFFF800
    ; 000007FFFFE00000000001FFFFF800
    ; 00000FFFFFC00000000000FFFFFC00
    G1 X6.300000 Y5.250000 ; Line 35
    T1 P2048 ; Pattern 800
    G1 Y10.500001 F30000.000000 ; Spray pattern
    T1 P3840 ; Pattern F00
    G1 Y11.025001 F30000.000000 ; Spray pattern
    T1 P4032 ; Pattern FC0
    G1 Y11.550001 F30000.000000 ; Spray pattern
    T1 P4080 ; Pattern FF0
    G1 Y12.075001 F30000.000000 ; Spray pattern
    T1 P4088 ; Pattern FF8
    G1 Y12.600000 F30000.000000 ; Spray pattern
    T1 P4092 ; Pattern FFC
    G1 Y13.125001 F30000.000000 ; Spray pattern
    T1 P4094 ; Pattern FFE
    G1 Y13.650001 F30000.000000 ; Spray pattern
    T1 P4095 ; Pattern FFF
    G1 Y17.850000 F30000.000000 ; Spray pattern
    T1 P2047 ; Pattern 7FF
    G1 Y22.050001 F30000.000000 ; Spray pattern
    T1 P1023 ; Pattern 3FF
    G1 Y22.575001 F30000.000000 ; Spray pattern
    T1 P511 ; Pattern 1FF
    G1 Y23.362501 F30000.000000 ; Spray pattern
    T1 P255 ; Pattern FF
    G1 Y24.412502 F30000.000000 ; Spray pattern
    T1 P127 ; Pattern 7F
    G1 Y25.462502 F30000.000000 ; Spray pattern
    T1 P63 ; Pattern 3F
    G1 Y26.512503 F30000.000000 ; Spray pattern
    T1 P31 ; Pattern 1F
    G1 Y28.350002 F30000.000000 ; Spray pattern
    T1 P15 ; Pattern F
    .... SNIP SNIP SNIP....
    ; 00000000FFFFFFFFFFFFFFFFC00000
    ; 000000001FFFFFFFFFFFFFFE000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    G1 X28.350000 Y8.400001 ; Line 119
    T1 P1 ; Pattern 1
    G1 Y17.325001 F30000.000000 ; Spray pattern
    T1 P3 ; Pattern 3
    G1 Y33.862503 F30000.000000 ; Spray pattern
    T1 P1 ; Pattern 1
    G1 Y50.400002 F30000.000000 ; Spray pattern
    T1 P0 ; Pattern 0
    G1 Y56.700005 F30000.000000 ; Spray pattern
    ; Perform layer operations
    T0 ; Select no tool
    G0 Y0 ; Reset ink head
    G0 X180 ; Finish the layer deposition
    G0 Z.50 ; Drop the build layer
    T20 ; Select heat lamp tool
    G1 X0 Y0 ; Dry the layer
    T0 ; Select no tool
    G1 X-195 Y0 ; Move to feed start
    G1 E.50 ; Extrude a feed layer
    G1 X0 Y0 ; Move to print start
    ; Print as we feed powder
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    ; 000000000000000000000000000000
    
    #2094
    ezrec
    Participant

    Obligatory github link to my firmware and post-processor for repsnapper’s “Slice to SVG (multiple file)…” output.

    https://github.com/ezrec/BrundleFab

    #2096
    dragonator
    Keymaster

    Just so I fully understand,

    Tn is the printhead that is being called.
    Pn is a predefined pattern of some sorts?

    There are 0’s and F’s that define the shape, but they are commented, so I guess that they are there to show what the thing is that you are printing.

    #2097
    ezrec
    Participant

    Yes, Tn is the printhead, Pn..Qn..Rn.. is the nozzle pattern (up to 72 nozzles, given the limits of accuracy with parsing P/Q/R as floats, only about 24 bits are reliable).

    And yes, the ; 00000FFFF0000 lines are just debugging comments.

Viewing 4 posts - 1 through 4 (of 4 total)
  • You must be logged in to reply to this topic.