Weave & Zigzag
CNC Virtual Milling
Course: VIS 2225 Digital Media: Design Systems
Instructor: Sawako Kaijima
Collaborator: Candice Wu
Date: Feb.-Mar., 2021
This assignment is to design a 3 axis CNC milling pattern by developing a simple algorithm to describe a tool path over the grid(s). In this document, “physical” refers to virtual milling that is analogous to physical milling. The target should rely on two things: the tool path and the material layout of the block to be milled.
KEYWORDS:
CNC Milling, Tool Path, Material Layout
OBJECTIVES
1. The tool path needs to be a single polyline.
2. The milling bed is 2 meters by 1 meter. (the base file is in centimetres)
3. The tool head is a spherical mill head where students can specify the
radius. (select one radius for the entire tool path)
4. The block needs to be a Cuboid and should fit within the milling bed.
5. The milling path should not create any undercuts (in case you plan to move
the milling path along the z-axis)
6. The maximum time for milling is limited to 1000 min which is calculated by
the total length in centimetres * 1 min + the number of turns it takes*3 min.
Precedent
Tessellation Pattern
The phenomena of “tessellation” can be observed in nature and our daily life. For instance, the pineapple has a skin that is tessellated with the shape of polygon units. Inspired by this precedent, we explored the virtual milling by tessellation logic.
Methodology
3 Axis CNC Milling
Experiment
Algorithm in GH C#
Geometric Logic
The aim is to create a tessellation pattern of rx columns and ry rows of diamonds. The diamonds are defined by a centroid and two parameters of diagonal length (la & lb). Since the centroid’s location are determined by the two bounding points and row/column counts, it is independent of la & lb, which gives the opportunities for diamonds to overlap and create sub-patterns.
Grid Construction
The grid is constructed in quads, starting with a reference point determined by the distance between centroid and the index of points. The four-point set is constructed in sequence by simply adding calculated distance to the previous point. The rows are constructed in alternating directions for a smooth transition.
Path Generation
The path of the diamond consists of two parts. First a loop function that generates a diamond shape at every fourth point. The diamond top and bottom corner both refer to the centroid for location, which makes the code more efficient as it needs less points. When the index numbers are not the point for a diamond, every point is added to create a continuous path.
Experiment
Line-based Prototype
Experiment
Drill Head Size Test
Dill Head Size Variations
X count (rx) = 3
Y count (ry) = 7
X Length (lb) = 4.00
Y Length (la) = 3.10
Dill Head Size Variations
X count (rx) = 3
Y count (ry) = 7
X Length (lb) = 5.28
Y Length (la) = 1.31
Dill Head Size Variations
X count (rx) = 8
Y count (ry) = 3
X Length (lb) = 1.44
Y Length (la) = 5.80