3D modeling automation in your favorite modeling software.
Project description
CodeToCAD - Code-based modeling automation
CodeToCAD brings intuitive and reliable code-based automation to your favorite 3D modeling software (e.g. Blender and OnShape).
Unlike other code-based CAD (e.g. CADQuery and OpenSCAD), CodeToCAD interfaces directly with existing modeling software (like Blender and OnShape). Therefore, you can keep using the software you love, but leverage the power of code and automation in your work. You don't need to be a great programmer to use CodeToCAD - there will be a cheat-sheet and documentation to help you get started.
Getting Started
Pre-requisites: Python 3.10 or newer.
-
Install the CodeToCAD PIP Package to get intellisense syntax highlighting.
pip install CodeToCAD
-
Create your own CodeToCAD python file and save it:
# myCodeToCAD.py # This is also the examples/materials.py example from CodeToCAD import * myMaterial = Material("material").setColor(169, 76, 181, 0.8) Part("Cube").createCube(1, 1, 1).setMaterial(myMaterial)
-
Run your script in your modeling software. See instructions for installing the Blender Addon addon below.
Blender
Note: Blender 3.1 or newer is required.
-
Download a release (Check Releases in the repository side-bar) and install the Blender Addon from ./providers/blender/CodeToCADBlenderAddon.py. Video Guide
If you're a developer, instead of downloading a release, you can clone this repository.
-
Import your script using the file menu > import > CodeToCAD or the CodeToCAD menu in the sidebar.
What do I do next?
-
Run or browse the examples!
-
Join the Discord Server to receive updates and help from the community! https://discord.gg/MnZEtqwt74
Integrations
Current integrations:
Future planned integrations:
- OnShape
- ThreeJS
- Electronic CAD (suggestions welcome)
Benefits of code-based modeling with CodeToCAD:
✅ Simplified modeling interface - it's all text! No more scrolling and clicking into sub-menus to edit your models.
🔓 Not vendor locked - your models are created in an open-source language. If you want to use another software, you do not lose the features you have defined. Note: There is no guarantee that a model created for, e.g. Blender, will work right away for another software, but with some refactoring, it theoretically should!
🪶 Lightweight and portable. All you need is a text-editor to model. You can occasionally fire-up your modeling software to run your creations.
💪 Leverages existing programming languages, like Python. You can keep using the languages you're familiar with and love. There is no one-off language you and your team has to learn. Use CodeToCAD like a library or a framework.
🚦Easy version control. Your models are written in code, you can use industry-loved git to keep track of versions of your models.
💕 Built by people who believe in automation and that modeling workflows should be intuitive, reliable and most importantly free and open source!
Development & Contributing
Setting up development environment.
- Please install the VSCode python virtual environment using
sh development/createPythonVirtualEnvironment.sh
orsh development/createPythonVirtualEnvironment.sh /path/to/python_binary
.
If you are on Windows, please use Git Bash. Note: Python 3.10+ is required. Note 2: It might be a good idea to restart VSCode after installing the virtual environment. Note 3: If VSCode prompts you, please use the interpreter under
development/developmentVirtualEnvironment
.
-
It's good practice to run tests before committing. Please run
sh ./development/installGitHooks.sh
to instll Git Hooks. -
Install Blender 3.1+, this is the first Blender version with Python 3.10.
-
Install the Blender Addon at providers/blender/CodeToCADBlenderAddon.py Video Guide
Running Tests
Run tests using sh runTests.sh
.
Capabilities.json and Jinja2 templates
core/capabilities.json is a schema used to generate the CodeToCAD interface.
Jinja2 templates are used to turn capabilities.json into an interface, as well as templates for CodeToCAD Providers and Tests.
You can generate the Jinja2 templates by running the "Capabilities.json to Python" task in VSCode, or sh development/capabilitiesJsonToPython/capabilitiesToPy.sh
Contributing
If you would like to contribute to the project, please feel free to submit a PR.
Please join the Discord Server if you have any questions or suggestions: https://discord.gg/MnZEtqwt74
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file CodeToCAD-0.2.6.tar.gz
.
File metadata
- Download URL: CodeToCAD-0.2.6.tar.gz
- Upload date:
- Size: 34.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.2
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6ae349e295d493c5113076a0c3d200ab9b527a729ccfe745af5b4fa9eafdfaa |
|
MD5 | 4bb31abeef034e8738c7a0d53ab3acf0 |
|
BLAKE2b-256 | 9788713e1635de92466694eecb2ee4b779a7f2819fdb270f5979c857272b4a92 |