MCPcopy Index your code
hub / github.com/bruceborrett/easy-enclosure

github.com/bruceborrett/easy-enclosure @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
109 symbols 294 edges 32 files 1 documented · 1%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Easy Enclosure

EasyEnclosure is an open-source 3D modeling software tailored specifically for designing 3D-printable enclosures. It aims to provide an intuitive interface and a set of user-friendly controls that allow even those with little or no 3D modeling experience to create custom enclosures for their electronic projects, prototypes, or DIY gadgets.

Try it online now

Key Features

  • User-Friendly Interface
  • Real-Time 3D Preview
  • Export to STL Format
  • Save and load parameter presets as JSON

Technology Stack

TypeScript, Angular, JSCAD

Development

Prerequisites

  • Node.js 20+
  • npm 10+

Install

npm install

Run Locally

npm run dev

This starts the Angular app from the repository root and synchronizes the UI version badge from package.json.

Build

npm run build

Test

npm test

or watch mode:

npm run test:watch

Deploy to GitHub Pages

npm run deploy

Deployment publishes dist/angular-app/browser.

Contributions

Buy Me A Coffee

If you find this software useful and would like to see further development please consider donating or sponsoring.

It is very time consuming and expensive to continuously test prints with all the various combinations of settings, so you can also help by printing with as many different settings as possible and reporting any issues you may find.

Pull requests are also welcome!

Notes

  • All measurements are in millimeters
  • Enclosures intended for outdoor use should be printed with PETG filament
  • Waterproof seal should be printed with TPU filament
  • Supports are required for holes
  • Overall height = Base Height + wall thickness
  • Inner height = Base Height - wall thickness
  • Inner width = width - (wall thickness * 2)
  • Inner length = length - (wall thickness * 2)
  • Screws take up extra space in corners, keep this in mind when deciding length and width
  • PCB mount X and Y is derived from center of base

Core symbols most depended-on inside this repo

params
called by 63
src/app/features/params/params-form.component.ts
patchParams
called by 12
src/app/core/state/enclosure-state.service.ts
roundedCube
called by 12
src/app/core/enclosure/utils.ts
cloneParams
called by 9
src/app/core/params.ts
roundedCorner
called by 8
src/app/core/enclosure/utils.ts
updateSurfaceLabels
called by 8
src/app/features/renderer/renderer.component.ts
checkDeps
called by 7
src/app/features/renderer/renderer.component.ts
setParams
called by 5
src/app/core/state/enclosure-state.service.ts

Shape

Method 60
Function 27
Class 22

Languages

TypeScript100%

Modules by API surface

src/app/features/renderer/renderer.component.ts29 symbols
src/app/features/params/params-form.component.ts20 symbols
src/app/features/tools/tools.component.ts12 symbols
src/app/core/state/enclosure-state.service.ts8 symbols
src/app/core/enclosure/pcbmount.ts7 symbols
src/app/core/enclosure/utils.ts6 symbols
src/app/app.spec.ts4 symbols
src/app/features/tools/tools.component.spec.ts3 symbols
src/app/features/sidebar/sidebar.component.ts3 symbols
src/app/shared/funding/funding.component.ts2 symbols
src/app/shared/action-button/action-button.component.ts2 symbols
src/app/core/enclosure/waterproofseal.ts2 symbols

For agents

$ claude mcp add easy-enclosure \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact