
Note! I am aware of several bugs in the code at this point, but these bugs are related to the snap and selection tool, and do not affect the overall design. Copy of selected object (for now, only when moving). Snap is used to precisely attach a draw object to another object.
Basic draw tool: line, circle, and arc. Select enclosed objects (when moving left to right) or select any partially enclosed objects (moving right to left). Using world units and a coordinate system instead of screen units and a coordinate system. So, what I have implemented so far is the basic framework and only the most basic tools, but it does demonstrate how a CAD application could be implemented. Now, implementing a fully functional 2D CAD is a tremendous task for a single person, and not something that can be completed in just a couple of months when only working on it on and off in the evenings.
Have you ever wondered how a 2D CAD application is designed and implemented? I have, so I decided to sit down and write one.