Week15. Wild Card¶
Assignment | |
---|---|
group | - |
individual | Design and produce something with a digital fabrication process (incorporating computer-aided design and manufacturing) not covered in another assignment, documenting the requirements that your assignment meets, and including everything necessary to reproduce it. |
Photo of the week¶
Lecture Notes¶
Idea¶
Fig. Design of the leg supports in scale 1:5.
To design support holders for the final project scaled gridshell in scale 1:5. The holders were designed to be possible to fit the structure legs into them or (for some unknown reasons occurring during physical assembly) if this would be not possible, they can keep the structure from unfolding staying on the outside.
First Print¶
Fig. Design of the leg supports in scale 1:5 for plastic robotic extrusion.
Grasshopper file: gh -file Robot Path: src-file
Fig. Initial excitement - thinking its going well!
Fig. Huge contraction of plastic and failoure.
Fig. Some notes on Robot Printing.
Bottom Design¶
The second leg was meant to be printed with the bottom, therefore I explored a few strategies. Firstly I added a catenary loft to the geometry of the support-leg. However this didn’t work as the robot needs to have closed curves at each printing level.
The bottom of the print needs to be double-curved to keep the closed curves as isolines.
All of the below calculation are made on the assumption that extruded plastic is of 2.5mm diameter.
Fig. 1- initial piece, 2 - grid at the bottom surface, 3- FDM found geometry (funicular shape like bricks structures that can be build without support), 4. Slicing 2.5mm.
Isolines with the same height can be too far from each other to be printed.
Fig. 1- initial piece, 2 - bottom outline curve, 3- curves offsetted 2.2mm, 4. Vertical series move with 1.18mm between layers (calculated from Pitagoras).
The corner points still are too far.
Fig. 1- bottom outline and desired top outline, 2 code below, 3. generated polylines by iterative moving of the points from bottom outline, 4. render, assuming circural cross section of 2.5mm from extruder.
Fig. Bottom design with iterative point movement.
The isocurves generated by iterative movement with clamped 3D vector works fine.
Path generation trials: gh-file The python Grasshopper code for generating the points based on the bottom outline and desired top outline.
- x - points on the bottom outline
- xx - points desired top outline
__author__ = "judyt"
__version__ = "2023.05.15"
import rhinoscriptsyntax as rs
import ghpythonlib.components as gh
import math
import clr
from Grasshopper.Kernel.Data import GH_Path
from Grasshopper import DataTree
def nestedListToDataTree(nestedlist):
dataTree = DataTree[object]()
for i,item_list in enumerate (nestedlist):
path = GH_Path(i)
dataTree.AddRange(item_list,path)
return dataTree
height = math.sqrt(d**2 - offset**2)
print height
xpoints = []
points = x
pointsX = xx
for i in range (y):
newpointsX = []
newpoints = []
center = gh.Average(points)
for j in range(len(points)):
#vecXYdir = gh.Vector2Pt(points[j], center, True)
vecXYdir = rs.VectorUnitize(rs.VectorCreate(pointsX[j],points[j]))
vecXY = gh.Amplitude(vecXYdir, offset)
vecZ = gh.UnitZ(height)
vec = rs.VectorAdd(vecXY,vecZ)
newpoint = gh.Move(points[j],vec)['geometry']
newpointX = gh.Move(pointsX[j],vecZ)['geometry']
print newpointX
newpoints.append(newpoint)
newpointsX.append(newpointX)
xpoints.append(newpoints)
points = newpoints
pointsX = newpointsX
xpoints = nestedListToDataTree(xpoints)
Fig. Left: bottom curve and desired top curve, Right: results of the iterative point movement with different offset values.
Fig. Left: bottom curve and desired top curve, Right: results of the iterative point movement with different XY vector generation (top: equal division of curves, bottom: the closes point to the desired curve).
Final Design¶
Bottom cone geometry generated with the script, with 5mm offset (XY distance between layers) and 2.5 height (in this case it was constant). In this example also offsetting and moving curves would work the same.
Fig. Design of the vase based on circle and sinusoid following circle.
Fig. Design of the vase based on circle and sinusoid following circle.
Design & path generation: gh-file
Robot path - vase with bottom: src-file
Fig. Bottom print.
- 1st layer, 300C, 10% speed
- 2-7th layer 300C, 20% speed
- 8-15th layer, 240C, 20% speed (but extruder was cooling down slowly, therefore the temperature between these layers varied between 300 and 240)
Fig. Bottom print with walls. Due to the wider bottom layers it failed - arm was moving the print trying to fit the first wall layer around.
Fig. Vase wall was printed separately.
- 1 layer - 300C, 20% speed
- 2- end layer, 300C, 40% speed
Robot path - vase walls only: src-file
Final Video¶
Takeaways¶
- extruded plastic contracts a lot, linear elements almost impossible
- avoid sharp corners
- amount of extruded plastic varies depending on the speed of the robot arm (the extrusion speed constant)
- below 240C temperature extrusion makes problems for extruder
- if the lenght of consecutive layers is small (less than 10-15cm) with 20 or 40% of speed, the plastic is still to liquid to form base for the next layer
Files¶
The 3D base:
Grasshopper file: gh -file Robot Path: src-file
The vase: Design & path generation: gh-file
Robot path - vase with bottom: src-file Robot path - vase walls only: src-file