  We present a method for enforcing manufacturability constraints in generated
parts such that they will be automatically ready for fabrication using a
subtractive approach. We primarily target multi-axis CNC milling approaches but
the method should generalize to other subtractive methods as well. To this end,
we take as user input: the radius of curvature of the tool bit, a coarse model
of the tool head and optionally a set of milling directions. This allows us to
enforce the following manufacturability conditions: 1) surface smoothness such
that the radius of curvature of the part does not exceed the milling bit
radius, 2) orientation such that every part of the surface to be milled is
visible from at least one milling direction, 3) accessibility such that every
surface patch can be reached by the tool bit without interference with the tool
or head mount. We will show how to efficiently enforce the constraint during
level set-based topology optimization modifying the advection velocity such
that at each iteration the topology optimization maintains a descent
optimization direction and does not violate any of the manufacturability
conditions. This approach models the actual subtractive process by carving away
material accessible to the machine at each iteration until a local optimum is
achieved.
