  We describe an algorithm for solving an important geometric problem arising
in computer-aided manufacturing. When cutting away a region from a solid piece
of material -- such as steel, wood, ceramics, or plastic -- using a rough tool
in a milling machine, sharp convex corners of the region cannot be done
properly, but have to be left for finer tools that are more expensive to use.
We want to determine a toolpath that maximizes the use of the rough tool. In
order to formulate the problem in mathematical terms, we introduce the notion
of bounded convex curvature. A region of points in the plane $Q$ has
\emph{bounded convex curvature} if for any point $x\in\partial Q$, there is a
unit disk $U$ and $\varepsilon>0$ such that $x\in \partial U$ and all points in
$U$ within distance $\varepsilon$ from $x$ are in $Q$. This translates to
saying that as we traverse the boundary $\partial Q$ with the interior of $Q$
on the left side, then $\partial Q$ turns to the left with curvature at most
$1$. There is no bound on the curvature where $\partial Q$ turns to the right.
Given a region of points $P$ in the plane, we are now interested in computing
the maximum subset $Q\subseteq P$ of bounded convex curvature. The difference
in the requirement to left- and right-curvature is a natural consequence of
different conditions when machining convex and concave areas of $Q$. We devise
an algorithm to compute the unique maximum such set $Q$, when the boundary of
$P$ consists of $n$ line segments and circular arcs of arbitrary radii. In the
general case where $P$ may have holes, the algorithm runs in time $O(n^2)$ and
uses $O(n)$ space. If $P$ is simply-connected, we describe a faster $O(n\log
n)$ time algorithm.
