# CAMap Projection-Based CAD/CAM Interface for CNC Machining by [Krisjanis Rijnieks](https://rijnieks.com) and [Lingdong Huang](https://lingdong.works/) ## Introduction Computer-Controlled Machining is nice, but for most people, without the "computer" part in it. The "computer" here being a device with a rectangular screen, a keyboard and a mouse that force people to sit down and hunch over. The CAD/CAM process of the modern day is cumbersome for most. We are working on a remedy. ### The Bodett Problem Tom Bodett, the president of the [HatchSpace](https://www.hatchspace.org/) makerspace, has someting to say about the accessibility of CNC milling today. While trying to make HatchSpace more accessible, he noticed that most people, including himself, have problems with getting into CNC milling due to the complexity of CAD and CAM software today. While some are extremely sophisticated, few offer an simple and approachable starting point to CNC milling. ## A Solution: CAMap CAMap is an integrated projection-based CAD/CAM interface for CNC milling. A spatial input device is used to sketch directly on the material and the computer is made to be as invisible as possible. The result is Spatially-Controlled Machining where the CNC machine dances with light and produces a what-you-see-is-what-gets-milled output.  Result after CNC milling with matching projected paths ### Input Device An active infrared marker stylus is used to sketch directly on the material placed on the CNC machine bed. There is a button on the body of the stylus: when it is pressed, the tracking system picks up its location and registers a touch-down event; when it is released, the system recognizes it as a touch-up event.  CAMap infrared stylus ### Tracking System The tracking system features a Raspberry Pi NoIR camera with a IR-pass filter in front of it. The filter prevents visible light from entering the camera, thus making it easier to pick up position of the infrared marker using computer vision. A simple homography matrix is used to extract the XY coordinates of the input device, that is further used in the system for interaction with the CAD and CAM features.  ### CAD Features The tool is intended to be as easy to use and intuitive as possible. With that in mind, only a few well made sketching features are available. The GUI paradigm is still used here as it provides a mental connection to interfaces used elsewhere. It is possible to switch between several sketching tools, such as line, rectangle, circle and spline. One can undo and clear the canvas. Future versions will allow user to select, move and edit.  Tom using the projection-based CAD interface ### CAM and Machining A web interface is used to produce machine code for loading it into the machine control software. While the machine could be controlled directly by the CAMap system, a sequenced approach takes into account safety protocols that are implemented at a shop space. They may require the use of specific control software so that the same flow is used by all users, including those using more complex CAD/CAM software flows.  CAMap web interface ### CNC Milling The machine code generated by CAMap is then loaded into the machine control software. Before starting the job, it is required to set machine origin points for all axes, with Z origin resting on the surface of the material and XY origin matching the origin of the projected area. The rest has to be done according to the shop safety protocol. And the milling can begin.  CAMap milling process ### Results It is hard to describe the mental benefits of getting a project done. CAMap makes it easier to get started with CNC milling for beginners and provides features that professionals (who never have time) will appreciate as well.  Tom with the result ### Open Source CAMap is designed to be easily replicable in a standard fablab. All design files are made with open source software, such as [OpenSCAD](https://openscad.org/) and [SvgPcb](https://leomcelroy.com/svg-pcb-website/#/home), thus they can be modified by anyone with a computer, no matter what operating system (Linux, Windows or MacOS). All files will be made available at a later stage of the project. ## Contributing Contact Kris if you would like to join in. We will start user testing at some point soon. ## Copyright (c) Krisjanis Rijnieks and Lingdong Huang 2023 ## License No licence at the moment. Contact us for terms of use etc. ## Project status Under development top secret project.