1. Got a question or need help troubleshooting? Post to the troubleshooting forum or Search the forums!

Solved Multi color

Discussion in 'General Questions' started by spankurmonkey, Jan 10, 2017.

  1. spankurmonkey

    spankurmonkey Member

    Joined:
    Dec 26, 2016
    Messages:
    102
    Likes Received:
    3
    I am sure this has been asked before but I am still struggling with it.

    I want to do a print but use two different colors at various layer heights.

    I have S3d and understand I can set the print process by layer height or stop at a specific layer height.

    However, to resume the print I need to make sure that the print resumes where ti left off even if I have moved the axis in order to change the filament. So I am not sure if I need special g code for this or not but need to be sure that when it resumes that it does not try bed leveling or any command that would cause the hot end to depress into the print that is already on the bed.
     
  2. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    Ask @danzca6 he has played with the filament change function probably more than anyone else.
     
    Geof and mark tomlinson like this.
  3. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,914
    Likes Received:
    7,338
  4. danzca6

    danzca6 Well-Known Member

    Joined:
    Jul 27, 2015
    Messages:
    2,161
    Likes Received:
    1,077
    There are so many ways to go about this. Since you have S3D, you have an advantage. There are two options I normally steer folks to using. Both incorporate the use of the M600 command. You do need to have an LCD controller in order to use these though. An LCD is so cheap, really everyone should have one for their Robo for what features it unlocks for you. M600 moves the nozzle up and out of the way then retracts the filament. It then waits for you to change out the filament with the steppers locked. It will beep at you until done. Then you let the LCD know you are done and it will extrude some filament to flush out the old color. It even gives you an option to extrude more if needed. Once that is done, it moves back to where it left off and prints. Super simple.

    The first method is to slice the object as usual and save the gcode to a file. Then use http://www.prusaprinters.org/color-print/ to define your layer heights. That site will inject M600 commands at the set layer heights and save off the customized gcode. Pretty simple.

    The other method is to go under the Scripts tab in your print process in S3D and on the first tab, enter the following in the post processing box at the bottom. You define what layer you want to do the switch and it will do a replacement inject the M600 into the gcode at that point(s). So if you want to change color at layer 6 and layer 10, the string would look like the following.

    {REPLACE "\n; layer 6, Z = " "; layer 6\M600\n; layer 6 "}
    {REPLACE "\n; layer 10, Z = " "; layer 10\M600\n; layer 10 "}

    Another option is to use the LCD menu to select the change filament function at the point you want to switch, but that takes you watching the print up to that time.

    Other youtube videos I have seen split the model into multiple gcode files and mess with the start and end gcode for each process/file. Then they print it out as multiple prints without removing the part from the build plate. Not ideal at all. Especially with the Robo and having the nozzle has the bed probing device.

    Let me now if you have any questions. Once you do it, it makes a lot of scenes and is very fun to see the results.
     
  5. spankurmonkey

    spankurmonkey Member

    Joined:
    Dec 26, 2016
    Messages:
    102
    Likes Received:
    3
    Yes, I want to do it all in S3d... I tried this on a simple print but it just printed all the way through.... {REPLACE "; layer 5\n" "; layer 5\nG28 XY\nM0\n"} . I need to be able to move the X in order to change the filament but need to be sure it resume right where it left off.
     
  6. spankurmonkey

    spankurmonkey Member

    Joined:
    Dec 26, 2016
    Messages:
    102
    Likes Received:
    3
    I tried this... {REPLACE "\n; layer 5, Z = " "; layer 5\M600\n; layer 5\nG28 XY\nM0\n "}

    It stopped at layer 5 but the Z height was not high enough for me to change it.... so I guess I need z to come up and I need X to be in the middle in order to change filament. Not sure what commands are needed for that...
     
  7. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,914
    Likes Received:
    7,338
    with an LCD you can move the steppers around, but you need to make a note of exactly where they are so that you can move it back before resuming the print. I never run mine with the cover/top on the printer so it is never in the way :)
     
  8. spankurmonkey

    spankurmonkey Member

    Joined:
    Dec 26, 2016
    Messages:
    102
    Likes Received:
    3
    Can't I just add g code to bring the z and x to where I need it and then it can resume after the fact?

    I noticed on my lcd that once I pushed the button it resumed... in order to get into the menu to move the axis I have to press the knob.
     
  9. spankurmonkey

    spankurmonkey Member

    Joined:
    Dec 26, 2016
    Messages:
    102
    Likes Received:
    3
    So here I thought on the print I wanted I should stop at layer 15 but that was totally wrong....

    in S3D how do you dissect to see what each layer is printing?
     
  10. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,914
    Likes Received:
    7,338
    You can use the preview window to select layers and see what each one is.
     
  11. spankurmonkey

    spankurmonkey Member

    Joined:
    Dec 26, 2016
    Messages:
    102
    Likes Received:
    3
    In preview mode if viewing by layers... it says like 0 to 19, etc.... does this mean its the start of Layer 19 or the End of Layer 19 ?
     
  12. danzca6

    danzca6 Well-Known Member

    Joined:
    Jul 27, 2015
    Messages:
    2,161
    Likes Received:
    1,077
    Ok my bad. I missed a letter in my last post.. However, you don't need G28 at all in the REPLACE script. Also, how high Z goes up is all firmware driven and something you could change. I actually changed mine so that the X was in the center of the bed and the Y was kicked all they way back so I didn't bump it during changing. If you want to know how to do that, let me know.

    For layer 5 filament change:
    {REPLACE "\n; layer 5, Z = " "; layer 5\nM600\n; layer 5 "}

    Ignore my starting script. I'm running a special setup, but just wanted to document where the REPLACE string goes for others.
    filament change M600 Replacement in S3D.PNG
     
    mark tomlinson likes this.
  13. spankurmonkey

    spankurmonkey Member

    Joined:
    Dec 26, 2016
    Messages:
    102
    Likes Received:
    3
    What is the code to place x middle and y all the way back?

    I have the XXL LCD Controller and did a filament change and the darn thing buzzed at me.... didn't know it had a buzzer....

    can we call out the buzzer in gcode so I know when to swap out my filament?
     
  14. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
  15. danzca6

    danzca6 Well-Known Member

    Joined:
    Jul 27, 2015
    Messages:
    2,161
    Likes Received:
    1,077
    Yep the M600 will beep/buzz at you until you are finished. So when this happens during the print you can hear when it is time to come over and change things out.

    What version of firmware do you have? Have you ever gone through the process of updating it? If so, it is a change in Configuration_adv.h that you set two variables. I've been using the latest version of Marlin firmware. It has more options for the filament change feature than the older version Robo is supplying. Still able to be done, just need to know what you are using since the variable names are different.
     
  16. spankurmonkey

    spankurmonkey Member

    Joined:
    Dec 26, 2016
    Messages:
    102
    Likes Received:
    3
    Lastly, is there a g code that can be added to the end to shut the printer down ? Or is the only way to shut it down is with the power switch on the bad side ?
     
  17. WheresWaldo

    WheresWaldo Volunteer ( ͠° ͟ʖ ͡°)
    Staff Member

    Joined:
    Feb 18, 2015
    Messages:
    5,905
    Likes Received:
    3,593
    No there isn't, Although @mark tomlinson has done some work with power off. There actually is a gcode but it only works on an ATX power supply. Also after a print you do not want the extruder fan to shut off immediately. That will result in heat creep and possible filament jams.
     
    Geof and danzca6 like this.
  18. Rigmarol

    Rigmarol Well-Known Member

    Joined:
    May 14, 2016
    Messages:
    544
    Likes Received:
    280
    Sorry if you've heard it from me before but I use a lamp timer (under $5) and set it for about an hour longer than Cura says the job should take. I'm happy with it and have been using it for a number of months now.
     
    Geof likes this.
  19. mark tomlinson

    mark tomlinson ༼ つ ◕_ ◕ ༽つ
    Staff Member

    Joined:
    Feb 21, 2013
    Messages:
    23,914
    Likes Received:
    7,338
    There are unused I/O ports/pins on the RAMPS. You can turn these on/off with GCode in Marlin.
    Hook up a relay and you can build your own shut-down-box :)
     
  20. spankurmonkey

    spankurmonkey Member

    Joined:
    Dec 26, 2016
    Messages:
    102
    Likes Received:
    3
    Can you make the XXL Smart Controller LCD display the current layer the printer is currently printing?
     

Share This Page