From GCode to 3DPrint

by reevamish in Workshop > 3D Printing

352 Views, 1 Favorites, 0 Comments

From GCode to 3DPrint

IMG_3334.jpg
If things are not failing, you are not innovating enough! - Elon Musk

I could totally relate to this during this assignment!

As a part of 4th week's assignment, we had to design and 3D print from GCode.

So, we will see how to get started with the process.

Software Used:

1. Rhino6

2. Printer Used: Creality Ender Pro 3

Designing a Basic GCode

IMG-3265.jpg
IMG-3273.jpg
IMG-3271.jpg

So, to understand how my 3D printer understands generated commands, I wrote a small gcode for a square and a triangle manually.

G21 ; set system to metter (10 mean 10mm)
G91 ; set to incremental ( x10 mean move 10mm on axe x)
M83 ; Set extruder to asolute ( E10 mean 10mm wire on extruder)
G28 ; Go home all axes (X,Y,Z)

;Go to coordonate 10,10 without wire
G1 X10 Y10 

;Make a square 30x30mm with 1mm/cm wire
G1 X30 Y0  E3
G1 X0 Y30  E3
G1 X-30 Y0 E3
G1 X0 Y-30 E3
Z0.2

;Make a square 30x30mm with 1mm/cm wire
G1 X30 Y0  E3
G1 X0 Y30  E3
G1 X-30 Y0 E3
G1 X0 Y-30 E3
Z0.2

;Make a square 30x30mm with 1mm/cm wire
G1 X30 Y0  E3
G1 X0 Y30  E3
G1 X-30 Y0 E3
G1 X0 Y-30 E3
Z0.2

;Make a square 30x30mm with 1mm/cm wire
G1 X30 Y0  E3
G1 X0 Y30  E3
G1 X-30 Y0 E3
G1 X0 Y-30 E3
Z0.2

;Make a square 30x30mm with 1mm/cm wire
G1 X30 Y0  E3
G1 X0 Y30  E3
G1 X-30 Y0 E3
G1 X0 Y-30 E3
Z0.2

G28 ; Go home all axes (X,Y,Z)
M84 ; disable all steppers

In this we are looping around a square 5 times, each time increasing the nozzle height by 0.2 units relative to previous position. Similarly, I wrote for triangle as well.

Variable Parameters which are responsible here:

1. E (Factors in the form of line width, nozzle diameter and layer height can influence the calculation process) For more information: https://www.cnc.com/parameter-e-in-gcode/

2. Distance of the Nozzle from the origin. In the above case I first moved the nozzle to (10,10) before extruding filament. This usually helps to catch mistake sooner.

After a couple of prints, I could get a smooth texture.

Printing the Basic GCode

IMG_3325.jpeg

In this step, using Jennifer's code, I input surfaces from Rhino to generate a slicing structure. I experimented with various structures to get to know my filament properties better.

Trust me, you learn only if you do!

Here, the input surface was a hollow sphere. However, towards the top it can be seen the filament doesn't adhere to base and we can find concentric circle rings.

3D Fabric and Takeaways

IMG-3284.jpg
IMG_3304.jpeg

This was important! While printing Jennifer's sample code, the extrusion from the nozzle was not even. The primary observation was filament would stop at preliminary step, right before printing starts.

The troubleshooting for this took maximum time!

Things I learned as a part of this process:

1. The default nozzle diameter that comes with Ender3 Pro is 0.4mm. It can be increased or decreased as per need with guidance from: https://all3dp.com/2/ender-3-nozzle-size-which-si...

2. clogging of nozzles: https://all3dp.com/2/3d-printer-nozzle-cleaning-t...

3. Distance between nozzle and bed: https://all3dp.com/2/ender-3-bed-leveling-all-you...

4. Increasing the extrusion amount in the code to get firmer lines but not too much as it might clog the nozzle

5. Checking filament input into the nozzle (It should hit the nozzle through the pipe): After a couple of prints with retraction parameter and amount, the filament had gone way back in the pipe. So, this needs to be checked time to time

6. Finally, the solution: M83 after G90

Why?

Solution: https://marlinfw.org/docs/gcode/G090.html

It was because G90 was setting everything to absolute, including the extruder. SO, that had to be overwritten by M83.

Finally the Print

IMG_3328.jpeg
Screen Shot 2021-04-27 at 8.38.06 AM.png

So, I printed the basic model for fabric texture I tweaked the layer, hair and base parameters to enlarge the fabric. It is still in the printing stage. This is very flexible and can have numerous applications.

Unfortunately, I ran out of time to print a presentable fabric before this class as most of my time went in debugging the possible scenarios responsible for such behavior. I shall update this after the print.

Failed Prints

IMG_3331.jpeg
IMG_3329.jpeg

While exploring the machine, I played around with GCode to understand it better and the takeaways were really great. Through every failed prints, I understood my printer parameters better.
Had I not faced the issue with filament and printer, I would not have learned about the printer to this great detail. The learning experience from this assignment was really great!