cqparts
is CAD for Python programmers, short for "cadquery
parts".
Using cqparts
you can wrap geometry made with cadquery
to build complex
and deeply parametric models.
Full documentation at: https://cqparts.github.io/cqparts
You'll need to fulfill the requirements of cadquery
, the simplest way to do
that is to install cadquery
first by following the instructions here:
http://dcowden.github.io/cadquery/installation.html
Once cadquery
is installed, install cqparts
with:
pip install cqparts
You can also install content libraries with a similar pip install
command.
List available libraries with:
pip search cqparts-
For example, to install the cqparts_bearings
content library, run:
pip install cqparts-bearings
_Note_: pip
packages use -
to separate words, but when importing them the
standard _
is used.
Here is just one of the simplest examples to give you an idea of what this library does.
More detailed examples found in the official documentation for cqparts.
A simple cube defined with cadquery
alone:
# create unit cube solid import cadquery size = 10 cube = cadquery.Workplane('XY').box(size, size, size) # display cube (optional) from Helpers import show show(cube)
Wrapping this in a cqparts.Part
object can be done like this:
# create unit cube as cqparts.Part import cadquery import cqparts from cqparts.params import PositiveFloat class MyCube(cqparts.Part): size = PositiveFloat(1, doc="cube size") def make(self): return cadquery.Workplane('XY').box(self.size, self.size, self.size) # create cube instance cube = MyCube(size=10) # display cube (optional) from cqparts.display import display display(cube)
You can see that under the bonnet (in the make
function) the geometry is
created with cadquery
, but the resulting MyCube
class is instantiated
more intuitively, and more object orientated.
cqparts
can also be used to create a deep hierarchy of parts and
assemblies to build something deeply complicated and entirely parametric.
A simple example of this is the toy car tutorial.
The work done in cqparts_fasteners
is a good example of how useful
cqparts
wrapping can be; read about the Fastener
class, how it works,
and what can be done with it in the
cqparts_fasteners docs
Issues, and Pull Requests are encouraged, and happily received, please read CONTRIBUTING.md for guidance on how to contribute.