MAT 238: GCode Assigment

by alexrasla in Workshop > 3D Printing

259 Views, 0 Favorites, 0 Comments

MAT 238: GCode Assigment

FGRDY01L2G5TEQ1.jpeg
FIYA6F8L2G5TEPX.jpeg
FQFOC0AL2G5TEQ2.jpeg

In this assignment, we were tasked with creating an object the is created using custom made gcode.

Test Prints and Object Idea

Screen Shot 2022-04-23 at 3.15.48 PM.png
IMG_1340.jpeg
IMG_1339.jpeg

In order to get comfortable with the grasshopper and gcode files that were provided, I first decided to do a few test prints by modifying the parameters of the Takahashi and Kim grasshopper files. I printed one shorter one (6 pillars) with a large base (6.0x1.0), and one longer one (20 pillars) with a smaller base (1.0x0.5) to feel their flexibility and structure. From this experiment, I decided to built upon the longer one with a smaller base because it was more flexible and its design was more intriguing.

Extending Object

Screen Shot 2022-04-23 at 4.35.33 PM.png
Screen Shot 2022-04-23 at 4.57.11 PM.png
Screen Shot 2022-04-23 at 4.06.47 PM.png
Screen Shot 2022-04-23 at 4.59.22 PM.png
Screen Shot 2022-04-23 at 3.32.45 PM.png
Screen Shot 2022-04-23 at 5.27.06 PM.png
Screen Shot 2022-04-23 at 5.47.06 PM.png

Using this longer shaped design, I decided to create a square structure where the corners of the square were the outer pillars of the original grasshopper files. In order to do this, I first needed to duplicate and rotate the geometry 3 times to obtain the four sides of a square. I started by connecting the base geometry and a number slider to Unit Vector and a Move node to duplicate and displace the base along the x-axis. Next, I performed a similar operation along the y-axis, but also included a Rotate node to rotate the bases 90 degrees. Once I had a set of nodes that were able to correctly displace the base of the structure 3 times, I grouped the nodes to create a cluster so I could duplicate each geometry respective geometry (base, outer pillar, center pillar).

Hair Duplication

Screen Shot 2022-04-24 at 11.24.53 AM.png
Screen Shot 2022-04-24 at 11.31.12 AM.png
Screen Shot 2022-04-24 at 11.33.54 AM.png
Screen Shot 2022-04-24 at 11.34.08 AM.png

Once my structural supports were generated, I proceeded to duplicate and rotate the hair lines. Since these were not geometries but points that were fed into the Python Gcode Generator, I first added the same values from the previously created cluster to the hair points using a Unit Vector along the x and y axis. Then, in order to rotate the points, I created my own Python script that iterated through each of these new hair points and rotated them about the z-axis.

GCode Generation and Debugging

Screen Shot 2022-04-24 at 3.57.58 PM.png
Screen Shot 2022-04-24 at 4.13.29 PM.png
Screen Shot 2022-04-24 at 4.13.45 PM.png
Screen Shot 2022-04-24 at 4.17.41 PM.png
Screen Shot 2022-04-24 at 8.38.33 PM.png
Screen Shot 2022-04-24 at 8.38.43 PM.png
IMG_1332 2.jpeg
IMG_1333 2.jpeg
IMG_1326 2.jpeg
IMG_1343.jpeg
IMG_1341.jpeg
IMG_1342.jpeg

Once I finally had my desired geometry in Rhino, I tried to print my object. However, I quickly noticed that there was an issue with the height of the Outer Pillars. It appeared that with the addition of every new Outer Pillar, the height would half. After numerous attempts to debug the gcode and cluster's myself, I reached out to Mert who noticed that the Outer Pillar clusters were designed to only take in two meshes, not four. He provided me a simple work around that simply duplicated the Outer Pillar clusters, and fed both those tree values into the Python GCode Script. Using this workaround finally gave me the desired height of the cluster, but printing the geometry still had issues because of solid extractions when moving between the outer pillars.

Printing

IMG_1355.jpeg
IMG_1354.jpeg
IMG_1352.jpeg
IMG_1353.jpeg
IMG_1351.jpeg
IMG_1348.jpeg
IMG_1344.jpeg
IMG_1346.jpeg
Screen Shot 2022-04-25 at 11.57.46 AM.png
Screen Shot 2022-04-25 at 8.55.44 PM.png
IMG_1350.jpeg
IMG_1349.jpeg
IMG_1347.jpeg

After many unsuccessful printing attempts and GCode debugging throughout the previous step and this one, I was finally able to notice where the solid lines between two Outer Pillars were being generated. The gcode file only was designed to perform a retraction every len(OuterPillarList) / 2, and I was printing 4. Thus, I had modifications in order to retract every fourth of the length, not half. However, for some reason, there were extra points that were included in the OuterPillarList in the gcode file, and I had to make some subtractions from these fourth values. I determined these values by just looking through the gcode on NCViewer. It was an extremely tedious process, but I was finally able to get rid of the solid outer walls and generate my desired object.