# 5. CNC Cut Outline Details¶

## 5.1. Introduction to the automated cutting technology¶

Computer numerical control (a.k.a. CNC) lets cut material directly from computer design file (dxf, stl, g-code ...). This ensures precision, reproducibility, shape-complexity and automation.

- The 3-axis CNC can process:
- 2.5D : xy-path at z constant
- 3D: xyz-path in case of well adapted router_bit and path

- Cutting technology:
- laser cutter (Only 2D: cutting and engraving)
- water jet (Only 2D with a 3-axis machine)
- mechanical router_bit (2.5D and 3D depending on shape and router_bit shape)
- electrical discharge machining

## 5.2. 2D path constraints¶

- Minimal curve radius constraint:
- laser and water-jet requests no specific constraint
- For mechanical router_bit, inner curve must have a curve radius bigger than the router_bit radius.

So inner corner can not be cut with router_bit. They must be replaced by inner curve. Tight inner curve must be smoothed to respect the minimal curve radius constraint.

### 5.2.1. Coplanar fitting¶

If you want a perfect fitting between two coplanar shapes, then outer corners and outer curves must be rounded to get a minimum curve radius bigger than the router_bit radius. For a perfect fitting, two coplanar shapes must be complementary.

### 5.2.2. Incoplanar fitting¶

If two parts, made out of 2D shape cut in a plan, are not coplanar, then rounding corner doesn’t help the fitting of the two parts.

For fitting not coplanar shapes, we need to enlarge inner corners.

## 5.3. Coplanar fitting details¶

For fitting two coplanar shapes, the inner and outer corners must be smoothed.

This section details the calculation related to *smoothed line-line corner*. To get the calculation related to *smoothed line-arc corner* and *smoothed arc-arc corner*, check the *SVG* files *docs/smooth_corner_line_arc.svg* and *docs/smooth_corner_arc_arc.svg*.

```
(D1), (D2) : two straight lines
A : intersection of (D1) and (D2)
(C) : circle or radius (r) tangent to (D1) and (D2)
E : intersection of (C) and (D1)
F : intersection of (C) and (D2)
O : the center of (C)
(EAF)=a is the angle between (D1) and (D2)
(C) is tangent to (D1), so (D1) is perpendicular to (EO)
(C) is tangent to (D2), so (D2) is perpendicular to (FO)
FO=EO=r, so O belongs to the bisector of (EAF)
We have AF=AE and (FA0)=(EAO)=a/2
AEO is right triangle in E
tan(EAO) = OE/AE
AE = r/tan(a/2)
sin(EAO) = OE/AO
AO = r/sin(a/2)
Knowing Gx,Gy,Ax,Ay,Hx,Hy, we want to calculate: a
(xAG) = atan((Gy-Ay)/(Gx-Ax))
(xAH) = atan((Hy-Ay)/(Hx-Ax))
a=(EAF)=(GAH)=(xAH)-(aAG)
a=atan((Hy-Ay)/(Hx-Ax))-atan((Gy-Ay)/(Gx-Ax))
```

Other method with the law of cosines c²=a²+b²-2*a*b*cos(C)

```
In the triangle GHA:
h=AG=sqrt((Gx-Ax)²+(Gy-Ay)²)
g=AH=sqrt((Hx-Ax)²+(Hy-Ay)²)
a=GH=sqrt((Hx-Gx)²+(Hy-Gy)²)
a=(GAH)=acos((h²+g²-a²)/(2*g*h))
Knowing Gx,Gy,Ax,Ay,Hx,Hy,a we want to calculate: Ex,Ey,Fx,Fy
Ex=Ax+(Gx-Ax)*AE/AG
=Ax+(Gx-Ax)*r/(tan(a/2)*sqrt((Gx-Ax)²+(Gy-Ay)²))
```

```
I is the intersection of (C) and (AO)
(D3) is the straight line perpendicular to (AO) and including I
K is the intersection of (D3) and (D1)
L is the intersection of (D3) and (D1)
The triangles KAI and IAL are similar so AL=AK
(LAI)=(IAK)=a/2
AI=AO-IO=r/sin(a/2)-r=r*(1-sin(a/2))/sin(a/2)
AK=AI/cos(a/2)=r*(1-sin(a/2))/(sin(a/2)*cos(a/2))=r*(1-sin(a/2))*2/sin(a)
AJ=AK+AL=(AI+IL)+(AI+IK)=2*AI
AI=(AK+AL)/2
Kx=Ax+(Gx-Ax)*AK/AG
```

```
Knowing Gx,Gy,Ax,Ay,Hx,Hy,a we want to calculate: Ix, Iy
With E,I and F, we define the arc than can be build with a router_bit of radius r.
```

## 5.4. Incoplanar fitting details¶

For fitting two not-coplanar shapes, the inner corners must be enlarged.

This section details the calculation related to *enlarged line-line corner*. To get the calculation related to *enlarged line-arc corner* and *enlarged arc-arc corner*, check the *SVG* file *docs/enlarge_corner_arc_arc.svg*.

### 5.4.1. Angle types¶

#### 5.4.1.1. Case of an inner obtuse angle¶

#### 5.4.1.2. Border case of an inner right angle¶

#### 5.4.1.3. Case of an inner acute angle¶

### 5.4.2. Calculation¶

```
Let's consider three points A, G and H.
(D1) is the bisector of (GAH).
O is a point of (D1) such as AO=r
(C1) is the circle of center O and radius r
E is the intersection of (C1) and (AG)
F is the intersection of (C1) and (AH)
(D2) is the straight line perpendicular to (D1) and including O
K and L are the intersection of (D2) with (C1)
Let's calculate AE:
OA=OE=r
We define I, the orthogonal projection of O on (AE)
AI=EI because AEO is isosceles in O
AI=AO/cos(a/2)=r*cos(a/2)
AE=2*r*cos(a/2)
```

```
(D3) is the straight line perpendicular to (D1) and such that the length MN is equal to 2*r with M the intersection of (D3) and (AG) and N the intersection of (D3) and (AH).
P is the intersection of (D3) and (D1).
AM=r/sin(a/2)
R is the middle of [AM]
S is the middle of [AN]
V is the intersection of (D2) and (AH)
W is the intersection of (D) and (AG)
AK=AR-AS+(AV+AW)/2
AR=AS=r/(2*sin(a/2))
AV=AW=r/cos(a/2)
```