CS291I Week4 Project Gcode Generation

by Huake He in Workshop > 3D Printing

165 Views, 0 Favorites, 0 Comments

CS291I Week4 Project Gcode Generation

Screen Shot 2021-04-24 at 7.35.12 PM.png
IMG_3184.JPG
IMG_3203.jpg

I decided to do a 3d printed textile in this project. Starting from the code provided by Prof., I modified several parameters to ensure that the generated gcode can actually be implemented by the 3D printer to get the final product with the exact shape as in Rhino. After getting a textile with suitable parameters, I looked into the HairPoints cluster and make modifications to design the hair pattern to be of different density. I met some problems and am still finding the reason behind it. Besides the textile, I got to explore writing slicer from gcode generation.

Supplies

Rhinoceros, Grasshopper, 3D Printer

Adjusting the Parameters for Printing

IMG_3185.JPG
Screen Shot 2021-04-24 at 7.35.55 PM.png

Starting from the given grasshopper file on this texture, I printed out the first version without any modification, which is the rightmost one. Seveal situation makes this failure. Firstly, the temperature of the bed is below the default (50 instead of 60), and the thickness of the base is too thin (maybe just one layer of printing), which makes the base detached from the printing bed along the process. Secondly, the overall volume of the design is too small, which makes any minor malfunctioning of the nozzle detrimental to the output. In the following trials, I enlarged the output by increasing the pillar interval size, number and height of the pillars, and amount of material of the hair to make the textile more sturdy. I also increased the bed and nozzle temperature by 10 degree to ensure the flow of filament and the fixation of the textile on the bed.

Modifying the Shape of the Hair

Screen Shot 2021-04-24 at 7.35.12 PM.png
Screen Shot 2021-04-24 at 7.36.19 PM.png

In order to alter the pattern of hair, I looked into HairPoints module and studied its functionalities. Two sets of sin-shaped curves are combined using Weave to form the inter-connection structure, and this structure of curves is divided into points and is fed to the final python gcode generation part. The pattern of the 5 densor area of hair is implemented using five Series with gaps of equal distance. For Series function, it is similar to for/while loop, S means starting point, N means step size, and C means count. By decreasing the step size and increasing the count, a densor area of hair is generated. By setting the starting point of each Series apart, the alternating pattern of hair is accomplished.

Problems in Gcode Generation

IMG_3186.JPG
Screen Shot 2021-04-24 at 7.37.04 PM.png

However, I met some problem in the gcode generation part. No matter how I modified the hair curves, the hairlist in the python gcode generation part does not change, and only produce the result before my modification. Only the parameters outside the modules can influence the final outcome. I tried to only keep one hair component by making the Series object's count to 1, but the gcode generated does not change at all. I then disabled the weave function and only connect one input to the Weave component to the HairPoints output. The resulting textile indeed only have half of the hair, but the thicker part is not converted to the gcode.

Exploring the Slicer

IMG_3204.jpg
Screen Shot 2021-04-27 at 12.27.00 AM.png
IMG_3203.jpg

I started by printing a sphere, which the number of column (count in the divide curve component) matters. Initially I set count to 30, and the preview shape is hardly a circle from the top view. Another mistake I made is that the center of my circle is at (0,0,0), and it is converted as the absolute coordinate in gcode generation. Instead of having Cura3D allowing me to center my fabrication on appropriate places on the printing bed, I actually printed a quarter of a sphere (postive xyz values). After modifying the parameter of column number to be 200 and moving the center to include the design in printable location, I am able to get the final fabrication using this custom slicer. I also made a brep that the side surfaces are tilting, and the slicer also works.