Giter Site home page Giter Site logo

openvmp / partcad Goto Github PK

View Code? Open in Web Editor NEW
107.0 2.0 11.0 2.58 MB

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

License: Apache License 2.0

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

partcad's Introduction

PartCAD

License

CI on Linux, MacOS and Windows CD on Linux, MacOS and Windows Deployment to PyPI Documentation Status Discord

PartCAD is the first package manager for CAD models and a framework for managing assemblies. It aims to complement Git with everything necessary to substitute commercial Product Lifecycle Management (PLM) tools.

PartCAD maintains information about mechanical parts and how they come together to form larger assemblies. The same parts can be reused in multiple assemblies and multiple projects. And all of that is supercharged by the ultimate versioning and collaboration features of Git.

PartCAD features include:

  • 3D part models using STEP, STL and 3MF files
  • 3D part models using CadQuery, build123d and OpenSCAD scripting languages (including AI-generated: Gemini and GPT)
  • 2D blueprints using DXF, build123d and SVG files
  • Fully featured object-oriented approach to maintain part interfaces and mating information (with multiple class inheritance etc)
  • Live preview of 3D models while coding in VS Code

Find more documentation here and visit our website.

Installation

Extension for Visual Studio Code

This extension can be installed by searching for PartCAD in VS Code extension search form, or by browsing its VS Code marketplace page.

Command-Line Interface

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

pip install -U partcad-cli

For contributors:

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

PartCAD works best when conda is installed. If that doesn't help (e.g. MacOS+arm64) then try mamba. On Windows, PartCAD requires at least a conda environment. On Ubuntu, try apt install libcairo2-dev if pip install fails to install cairo.

Architecture

Architecture

Tools for Mechanical Engineering

Here is an overview of the open-source tools to maintain mechanical projects. It demonstrates where this framework fits in the modern mechanical development workflows.

flowchart TB

subgraph repo["Your project's GIT repository"]
  subgraph custom_repo["Custom parts"]
    direction TB
    custom_part_internet["A STEP file\ndownloaded from Internet\nor the vendor site"]
    custom_part_cad["A part exported as a solid\nfrom a CAD tool not\nsuitable for collaboration"]
    custom_part_cq["An individual reusable part\nmaintained as a script\nunder a version control system"]
    custom_part_os["Another reusable part\nmaintained as a script\nunder a version control system"]
  end

  model["Your project's model defined\nas ASSY or Python code\nfor version control\nand collaboration"]

  subgraph scenes["Scenes"]
    test1["Capability 1\ntest scene"]
    test2["Capability 2\ntest scene"]
  end
end

subgraph external_repos["Third-party GIT repositories,\nCDN-hosted files or OCCI servers"]
  subgraph external_repo["Repository of standard\nor popular parts"]
  end
end

subgraph external_tools["External tools"]
  freecad["FreeCAD"]
  cadquery["CadQuery / build123d"]
  openscad["OpenSCAD"]
  gazebo["Gazebo"]

  partcad["PartCAD library"]
  style partcad fill:#c00
end

custom_part_cad <--- |Individual\ncontributor|freecad
custom_part_cq <--- |Part design\nworkflow| cadquery
custom_part_os <--- |Part design\nworkflow| openscad

external_repo ---> |Import| model
custom_repo ---> |Import| model
model -.-> |Import| test1
model -.-> |Import| test2

custom_repo <-. Maintained\nusing\nPartCAD\nconvention .- partcad
external_repo <-. Maintained\nusing\nPartCAD\nconvention .- partcad
model <--- partcad
test1 <--- partcad
test2 <--- partcad

test1 -.-> |Export| gazebo
test2 -.-> |Export| gazebo

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.