Next step is working up a module to handle arcs.

The interface and DXF portion of this are quite simple:

```
module cutarcNWCCdxf(tn, ex, ey, ez, xcenter, ycenter, radius){
dxfarc(tn,xcenter,ycenter,radius,0,90);
}
```

but the actual cutting is a bit more involved — once again, this all raises the question of “What does an algorithm look like?”.

In BlockSCAD:

(this code will work a bit more straight-forwardly in PythonSCAD where it is possible to store the previous position)

```
module cutarcNWCCdxf(tn, ex, ey, ez, xcenter, ycenter, radius) {
dxfarc(tn,xcenter,ycenter,radius,0,90);
for (i = [1 : abs(1) : 90]) {
cut(xcenter + radius * cos(i),ycenter + radius * sin(i),ez);
setxpos(xcenter + radius * cos(i));
setypos(ycenter + radius * sin(i));
}
}
```

Unfortunately, it and a similar module when put together so as to make a semicircle:

```
cutarcNWCCdxf(KH_tool_no, getxpos()-25, getypos()+25, -stockthickness, getxpos()-25, getypos(), 25);
cutarcNECCdxf(KH_tool_no, getxpos()-25, getypos()-25, -stockthickness, getxpos(), getypos()-25, 25);
```

Result in two slightly over-size arcs which do not fit together as expected: