mirror of
https://github.com/gumyr/build123d.git
synced 2025-12-06 02:30:55 -08:00
Some checks failed
benchmarks / benchmarks (macos-14, 3.12) (push) Has been cancelled
benchmarks / benchmarks (macos-15-intel, 3.12) (push) Has been cancelled
benchmarks / benchmarks (ubuntu-latest, 3.12) (push) Has been cancelled
benchmarks / benchmarks (windows-latest, 3.12) (push) Has been cancelled
Upload coverage reports to Codecov / run (push) Has been cancelled
pylint / lint (3.10) (push) Has been cancelled
Run type checker / typecheck (3.10) (push) Has been cancelled
Run type checker / typecheck (3.13) (push) Has been cancelled
Wheel building and publishing / Build wheel on ubuntu-latest (push) Has been cancelled
tests / tests (macos-14, 3.10) (push) Has been cancelled
tests / tests (macos-14, 3.13) (push) Has been cancelled
tests / tests (macos-15-intel, 3.10) (push) Has been cancelled
tests / tests (macos-15-intel, 3.13) (push) Has been cancelled
tests / tests (ubuntu-latest, 3.10) (push) Has been cancelled
tests / tests (ubuntu-latest, 3.13) (push) Has been cancelled
tests / tests (windows-latest, 3.10) (push) Has been cancelled
tests / tests (windows-latest, 3.13) (push) Has been cancelled
Wheel building and publishing / upload_pypi (push) Has been cancelled
121 lines
3.7 KiB
ReStructuredText
121 lines
3.7 KiB
ReStructuredText
..
|
|
build123d readthedocs documentation
|
|
|
|
by: Gumyr
|
|
date: July 13th 2022
|
|
|
|
desc: This is the documentation for build123d on readthedocs
|
|
|
|
license:
|
|
|
|
Copyright 2022 Gumyr
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
|
|
|
|
.. highlight:: python
|
|
|
|
.. image:: ./assets/build123d_logo/logo-banner.svg
|
|
:align: center
|
|
:alt: build123d logo
|
|
|
|
########
|
|
About
|
|
########
|
|
|
|
Build123d is a Python-based, parametric (BREP) modeling framework for 2D and 3D CAD.
|
|
Built on the Open Cascade geometric kernel, it provides a clean, fully Pythonic interface
|
|
for creating precise models suitable for 3D printing, CNC machining, laser cutting, and
|
|
other manufacturing processes. Models can be exported to popular CAD tools such as FreeCAD
|
|
and SolidWorks.
|
|
|
|
Designed for modern, maintainable CAD-as-code, build123d combines clear architecture with
|
|
expressive, algebraic modeling. It offers:
|
|
|
|
* Minimal or no internal state depending on mode
|
|
* Explicit 1D, 2D, and 3D geometry classes with well-defined operations
|
|
* Extensibility through subclassing and functional composition—no monkey patching
|
|
* Standards-compliant code (PEP 8, mypy, pylint) with rich pylance type hints
|
|
* Deep Python integration—selectors as lists, locations as iterables, and natural
|
|
conversions (``Solid(shell)``, ``tuple(Vector)``)
|
|
* Operator-driven modeling (``obj += sub_obj``, ``Plane.XZ * Pos(X=5) * Rectangle(1, 1)``)
|
|
for algebraic, readable, and composable design logic
|
|
|
|
The result is a framework that feels native to Python while providing the full power of
|
|
OpenCascade geometry underneath.
|
|
|
|
|
|
With build123d, intricate parametric models can be created in just a few lines of readable
|
|
Python code—as demonstrated by the tea cup example below.
|
|
|
|
.. dropdown:: Teacup Example
|
|
|
|
.. literalinclude:: ../examples/tea_cup.py
|
|
:start-after: [Code]
|
|
:end-before: [End]
|
|
|
|
.. raw:: html
|
|
|
|
<script type="module" src="https://unpkg.com/@google/model-viewer/dist/model-viewer.min.js"></script>
|
|
<model-viewer poster="_images/tea_cup.png" src="_static/tea_cup.glb" alt="A tea cup modelled in build123d" auto-rotate camera-controls style="width: 100%; height: 50vh;"></model-viewer>
|
|
|
|
.. note::
|
|
|
|
|
|
This documentation is available in
|
|
`pdf <https://build123d.readthedocs.io/_/downloads/en/latest/pdf/>`_ and
|
|
`epub <https://build123d.readthedocs.io/_/downloads/en/latest/epub/>`_ formats
|
|
for reference while offline.
|
|
|
|
.. note::
|
|
|
|
There is a `Discord <https://discord.com/invite/Bj9AQPsCfx>`_ server (shared with CadQuery) where
|
|
you can ask for help in the build123d channel.
|
|
|
|
#################
|
|
Table Of Contents
|
|
#################
|
|
|
|
.. toctree::
|
|
:maxdepth: 2
|
|
|
|
introduction.rst
|
|
installation.rst
|
|
key_concepts.rst
|
|
key_concepts_builder.rst
|
|
key_concepts_algebra.rst
|
|
moving_objects.rst
|
|
OpenSCAD.rst
|
|
introductory_examples.rst
|
|
tutorials.rst
|
|
objects.rst
|
|
operations.rst
|
|
topology_selection.rst
|
|
builders.rst
|
|
joints.rst
|
|
assemblies.rst
|
|
tips.rst
|
|
import_export.rst
|
|
advanced.rst
|
|
cheat_sheet.rst
|
|
external.rst
|
|
builder_api_reference.rst
|
|
direct_api_reference.rst
|
|
|
|
==================
|
|
Indices and tables
|
|
==================
|
|
|
|
* :ref:`genindex`
|
|
* :ref:`modindex`
|
|
* :ref:`search`
|