This is a React-based canvas drawing application that allows users to draw various shapes, such as lines, rectangles, and circles, on a fullscreen canvas. The application also includes features for selecting and erasing shapes, as well as exporting the drawing as an SVG file.
- Fullscreen canvas with a black background
 - Drawing tools: Line, Rectangle, Circle, measurements
 - Zoom and pan
 - Eraser tool to delete segments
 - Undo and redo
 - Choose angle guides
 - Draw with snap points for
- endpoints
 - midpoints
 - intersections
 - circle centers
 - circle quadrants
 
 - Selection tool to highlight and modify shapes
- Use CTRL to toggle selection
 - Use shift to add to the current selection
 - drag left, to select by intersecting
 - drag right, to select by containing
 
 - Move
 - Rotate
 - Scale
 - Align shapes to each other
 - Array copy linear
 - Array copy radial
 - Import images into the drawing
 - Import SVG files
 - Export to PDF
 - Export drawing as an SVG file
 - Export drawing as an PNG file
 - Save and load drawings from/to json files
 - Select line color and thickness
 - Eraser tool to delete segments
 
- Eraser tool to delete segments
- Max distance to delete
 
 - Layers for drawing shapes in different layers that can be toggled on or off
 - Mirror
 - Offset
 - Add text
 - Ellipses
 - Regular polygons (pentagon, hexagon, etc)
 - Combine lines into a polygon
 - Explode polygons into lines
 - Polygon circumference
 - Polygon area
 - Chamfer, Round corners
 - Draw with snap points for
- circle tangents
 - nearest point on line
 - prioritize certain snap points over others (eg: midpoint over nearest)
 
 - Edit existing lines and circles by dragging endpoints/middle points
 - Hatching and fill areas
 - gradient fills
 - Import DXF files
 - Import DWG files
 - Export to DWG
 - Export to DXF
 - Export drawing to ASCII code
 
- replace react with webcomponents (Lit)
 
- TypeScript
 - JavaScript
 - React
 - NPM
 - HTML canvas
 - SVG
 - SCSS
 - Tailwind CSS
 
Visit https://bertyhell.github.io/openwebcad
- 
Clone the repository:
git clone <repository-url> cd <repository-directory>
 - 
Install dependencies:
npm install
 
Start the development server:
sh npm dev 
Open your browser and navigate to http://localhost:5173
Available Scripts
- npm dev: Runs the app in development mode.
 - npm run build: Builds the app for production.
 - npm preview: Runs the production build in a local server.
 
- src/: Contains the source code of the application.
 - docs/: Contains the github pages site.
 - public/: Contains assets that need to be accessible from the url. Like favicon.
 
Contributions are welcome! Please open an issue or submit a pull request for any changes.
This project is licensed under the MIT License.
