reprappro / RepRapFirmware

OO C++ RepRap Firmware
Other
143 stars 120 forks source link

what's the g-code for color? #81

Closed columbus1231 closed 9 years ago

columbus1231 commented 9 years ago

I am wondering how color is represented in g-code after conversion from an amf file. For example, just like a straight linear movement is represented in g-code as G1 Xnnn Ynnn Znnn Ennn Fnnn Snnn. How is the red green blue (rgb) color code read in g-code by a 3d printer in a section?

RRP-support commented 9 years ago

Colour is not represented in the gcode file at all... yet. This is mainly because the standard .stl file type does not support colour. All the gcode file can do is change tools, for different stl parts. It is up to you to put the correct colour for the specific part of the print in the right tool (ie, different hot end). Then the gcode changes tool, to use a different extruder/hot end. If mixing hot ends, ie a single nozzle fed by multiple extruders, become common place, there will have to eventually be some mechanism for this. Our firmware does at least allow you to set up any number of tools, with any mix of extruders (different tools can use different combinations of the same extruder), feeding a single hot end. I'm not sure if you can specify tools with different percentages for extruders (ie rather than 50% extruder 1, 50% extruder 2, you mix 20% and 80%, to get a wider variation of colour), but that is anticipated. You can also manually change the gcode to set different extruder motor speeds, to get different colours, and graduated mixes of colours, but there's no native file format or slicing program that can do this. In the end, the hardware is there, and it's a software problem. How do you create blended colour in a CAD file, what format do you output to, and how do you slice that object to represent the colour and/or material you want, for the printer firmware to understand?! Tricky problems to resolve!

Ian RepRapPro tech support

RRP-support commented 9 years ago

Also, you wouldn't mix Red, green and blue; this is a transmissive colour palette. You would mix White, Cyan, Magenta, Yellow and Black, which is a reflective colour palette (like paper printer print) to get a wide range of colours for 3D objects.

Ian RepRapPro tech support

columbus1231 commented 9 years ago

Thanks for your help. I will try your suggestion and see on my printer.