Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/partcad/partcad

The first package manager for CAD models and a framework for managing assemblies.
https://github.com/partcad/partcad

3d 3d-models build123d cad cadquery mechanical-design mechanical-engineering modelling openscad python

Last synced: 2 months ago
JSON representation

The first package manager for CAD models and a framework for managing assemblies.

Awesome Lists containing this project

README

        

# PartCAD

[![License](https://github.com/openvmp/partcad/blob/main/apache20.svg?raw=true)](./LICENSE.txt)

[![CI on Linux, MacOS and Windows](https://github.com/openvmp/partcad/actions/workflows/python-test.yml/badge.svg)](https://github.com/openvmp/partcad/actions/workflows/python-test.yml)
[![CD on Linux, MacOS and Windows](https://github.com/openvmp/partcad/actions/workflows/python-build.yml/badge.svg)](https://github.com/openvmp/partcad/actions/workflows/python-build.yml)
[![Deployment to PyPI](https://github.com/openvmp/partcad/actions/workflows/python-deploy.yml/badge.svg)](https://github.com/openvmp/partcad/actions/workflows/python-deploy.yml)
[![Documentation Status](https://readthedocs.org/projects/partcad/badge/?version=latest)](https://partcad.readthedocs.io/en/latest/?badge=latest)
Discord

[PartCAD] is **the first package manager for CAD models**
and a framework for managing assemblies.

It aims to complement Git with everything necessary for hardware development
to substitute commercial Product Lifecycle Management (PLM) tools.
It's a free versioning and change management solution for all your CAD needs,
built around your CAD artifacts instead of being built into your CAD tool.

Browse [our documentation] and visit [our website]. Watch our 💥💥[demos](https://youtube.com/@PartCAD)💥💥.

## Join us!

Stay informed and share feedback by joining [our Discord server](https://discord.gg/zdwyxkGM).


Subscribe on [LinkedIn], [YouTube], [TikTok], [Facebook], [Instagram], [Threads] and [Twitter/X].

## Features

- Multiple OSes supported
- [X] Windows
- [x] Linux
- [x] MacOS
- Collaboration on designs
- [x] Versioning of CAD designs using `Git` _(like it's 2024 for real)_
- [x] Mechanics
- [ ] Electronics _(in progress)_
- [ ] Software _(in progress)_
- [x] Automated generation of `Markdown` documentation
- [x] Parametric (hardware and software) bill of materials
- [x] Publish models online on PartCAD.org
- [ ] Publish models online on your website _(in progress)_
- [ ] Publish configurable parts and assemblies online _(in progress)_
- [ ] Purchase of assemblies and parts online, both marketplace and SaaS _(in progress)_
- [x] Automated purchase of parts via CLI
- Assembly models (3D)
- [x] Using specialized `Assembly YAML` format
- [x] Automatically maintaining the bill of materials
- [ ] Generating user-friendly visual assembly instructions _(in progress)_
- [ ] Generating with LLM/GenAI _(in progress)_
- Part models (3D)
- Using scripting languages
- [x] [CadQuery]
- [x] [build123d]
- [x] [OpenSCAD]
- Using legacy CAD files
- [x] `STEP`
- [x] `STL`
- [x] `3MF`
- Generating with LLM/GenAI
- [x] Google AI (`Gemini`)
- [x] OpenAI (`ChatGPT`)
- [x] Any model published to [Ollama](https://ollama.com/) (`Llama 3.1`, `DeepSeek-Coder-V2`, `CodeGemma`, `Code Llama` etc)
- Part and interface blueprints (2D)
- Using scripting languages
- [x] [CadQuery]
- [x] [build123d]
- Using legacy file formats:
- [x] `DXF`
- [x] `SVG`
- Other features
- Object-Oriented Programming approach to maintaining part interfaces and mating information
- Live preview of 3D models while working in Visual Studio Code
- Render 2D and 3D to images
- [x] `SVG`
- [x] `PNG`
- Export 3D models to CAD files
- [x] `STEP`
- [x] `STL`
- [x] `3MF`
- [x] `ThreeJS`
- [x] `OBJ`

## Installation

Note: It's not required but highly recommended to have [conda] installed.
If you experience any difficulty installing or using any PartCAD tool then make sure to install [conda].

### Extension for Visual Studio Code

This extension can be installed by searching for `PartCAD` in the VS Code extension search form, or by browsing [its VS Code marketplace page](https://marketplace.visualstudio.com/items?itemName=OpenVMP.partcad).

Make sure to have Python configured and a [conda] environment set up in VS Code before using PartCAD.

[![PartCAD Visual Studio Code extension](./docs/source/images/vscode1.png)](https://marketplace.visualstudio.com/items?itemName=OpenVMP.partcad)

### Command-Line Interface

The recommended method to install PartCAD CLI tools for most users is:

```shell
pip install -U partcad-cli
```

- On **Windows**, PartCAD must be executed inside a [conda] environment. Also set `LongPathsEnabled` to 1 at `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\FileSystem` using `Registry Editor`.
- On **Ubuntu**, try `apt install libcairo2-dev python3-dev` if `pip install` fails to install `cairo`.
- On **MacOS**, make sure XCode and command lines tools are installed. Also, use ``mamba`` should you experience difficulties on MacOS with the ARM architecture.

### PartCAD development

The recommended first steps for PartCAD developers are:

```shell
git clone https://github.com/openvmp/partcad.git
cd partcad
python3 -m pip install -U -e ./partcad
python3 -m pip install -U -e ./partcad-cli
```

## Getting Started

See the tutorials for [PartCAD command line tools](https://partcad.readthedocs.io/en/latest/tutorial.html#command-line) or [PartCAD Visual Studio Code extension](https://partcad.readthedocs.io/en/latest/tutorial.html#vs-code-extension).

## Have you read this page this far?

Give us a star for our hard work!

[PartCAD]: https://partcad.org/
[our website]: https://partcad.org/
[our documentation]: https://partcad.readthedocs.io/en/latest/?badge=latest
[LinkedIn]: https://linkedin.com/company/partcad
[YouTube]: https://youtube.com/@PartCAD
[TikTok]: https://tiktok.com/@partcad
[Facebook]: https://www.facebook.com/profile.php?id=61568171037701
[Instagram]: https://instagram.com/partcadofficial
[Twitter/X]: https://x.com/PartCAD
[Threads]: https://threads.net/@partcadofficial
[conda]: https://docs.conda.io/
[CadQuery]: https://github.com/CadQuery/cadquery
[build123d]: https://github.com/gumyr/build123d
[OpenSCAD]: https://openscad.org/
[STEP]: https://en.wikipedia.org/wiki/ISO_10303
[OpenCASCADE]: https://www.opencascade.com/