- Renamed the argument for
Workplane.extrude
fromdistance
tountil
andWorkplane.cutBlind
'sdistanceToCut
also tountil
. This is only a breaking change if you use the named parameters, i.e.extrude(distance = 10.0)
orcutBlind(distanceToCut)
instead of using positional them as positional parameters. - Fixed a bug in
Mixin1DProtocol.tangentAt()
whereparamAt()
was being called twice. This should only break scripts that relied on the incorrect behavior. #641 each
andeachpoint
accept nowcombine
argument defaulted toTrue
#954. This only affects use cases involving solids.
- Combine option can be set to "cut" (or "s") resulting in a subtractive operation #954
- Documentation updates #648 #654 #656 #659 #668 #689 #695 #699 #711 #727 #733 #734 #737 #738 #748 #757 #774 #775 #805 #813 #837 #839 #843 #845 #846 #847 #848 #852 #863 #866 #867 #887 #908 #910 [#912] (CadQuery#912) #921
- Added better documentation on the internals of CadQuery #821
- Added documentation for assembly constraints #850
- Bugfix for center option of functions such as box and rect #617
- Fixes for DXF import #630
- Updated to OCCT 7.5 #633 #818
- Added ability to specify arbitrary tangents in
spline()
#636 - Added
forConstruction
option tooffset2D()
#639 - Fixed errors related to
findSolid()
returningNone
#655 - Simplified the API interface for
findSolid()
#662 - Updated for Python 3.9 #672
- Improved inheritance handling for Workplane fluent methods #677
- Improved interface to pop pending wires and edges off the stack #678
- Added deprecation warning for
Workplane.findFace()
#679 - Wrapped
TopoDS_CompSolid
from the OCCT/OCP layer so that it could be used in the fluent API. #681 - Added 2D fillet and chamfer functions #683
- Created GitHub issue templates #687
- Added
AreaNthSelector
and length selector #688 - Implemented makeSplineApprox for edges and faces #694
- Started using expression grammar for assembly selectors #704
- Added a coplanar check on wires before allowing operations like
extrude()
#710 - Added an InPlane constraint for assemblies #712
- Raise a
TypeError
now when the Location parameter is a tuple #723 - Added
Assembly.toCompound()
to enable proper assembly export to formats like STL #726 - Implemented BRep import and vtkPolyData export #735 #865
- Started converting text sizes to float instead of integer #764
- Improved performance of
makeFromWires()
#768 - Added
__repr__
and__str__
methods toMatrix
class to improve print output. - Fixed ability to handle assembly constraints for infinite faces #797
- Fixed an issue with the assembly solver that would cause it to hang in some cases #806
- Fixed the default camera position for VTK.js #822
- Removed deprecated OCCT
BRepOffsetAPI_MakeThickSolid
reference fromMixin3d.shell
. #829 - Implemented
projectToLine()
method forVector
- Added a 3D
cylinder
primitive #858 - Fixed a typo in the error message of
close()
#871 - Added
extrude
andcutBlind
until variations, which allows having an operation continue until the next face is reached. See the breaking change involved above. #875 #894 - Fixed bug that made the selectors
#Z
andnot |Z
work the same #882 - Updated
paramAt
to handle trimmed curves #901 - Update to support pyparsing 3 #907
- Added documentation about the layers of the CadQuery API #917
- Made the loading of the VTK modules more efficient and less error prone #918
- Changes to allow any cq.Shape to be a sweep path #919
- Improved edge rendering quality in the documentation #920
- Properly initialized metadata in Assembly instances #928
- Fixed bug in ArcAngle Sketch constraint #932
- Implemented tag merging when performing boolean operations #934
- Fixed a bug where the height and width were switched in the Sketch rect call #939
- Fixed bug in ParallelDirSelector where non-planar faces could be selected. Note this will be breaking if you've used DirectionNthSelector and a non-planar face made it into your object list. In that case eg. ">X[2]" will have to become ">X[1]".
- Refactored selectors and added CenterNthSelector #549
- Added new installation video links to the readme #550
- Exposed
makeWire
inparametricCurve()
#555 - Fixed a
centerOption
bug in the assembly tutorial #556 - Added
hLineTo
,polarLine
andpolarLineTo
to autosummary #561 - Updated workplane docstring for recent center option changes #563
- Fixed indentation in CQContext docs #571
- Indicated breaking changes and made docstring fixes #573
- Fixed
split()
docstring #574 - Updated the readthedocs CQ logo #581
- Removed unused variable from counter-bore example #584
- Fixed unconstrained
assembly.solve()
#592 - Added an example for
cq.Wire.makeHelix()
#594 - Exposed additional SVG options to exporters interface #596
- Fixed
ellipse()
documentation formatting #597 - Fixed
cutThruAll()
when working with non-planar faces #604 - Fixed
center
option inrect()
call in tests #607 - Fixed examples and enabled them in the test suite #609
- Fixed wedge centering #611 and #613
- Updated assembly documentation #614
centerOption
default value changed fromCenterOfMass
toProjectedOrigin
#532Wire.combine
interface changed - now it returnsList[Wire]
#397Workplane.each
interface changed - callable of theCallable[[Union[cadquery.occ_impl.geom.Vector, cadquery.occ_impl.geom.Location, cadquery.occ_impl.shapes.Shape]], cadquery.occ_impl.shapes.Shape]
type is required #391
- Simplified
largestDimension()
bounding box check #317 - Added
FontPath
tomakeText()
#337 - Support for slicing (
section()
) of models #339 #349 - Added DXF import (relies on ezdxf) #351 #372 #406 #442
- Added DXF export #415 #419 #455
- Exposed
angularPrecision
parameter inexportStl()
#329 - Fixed bug in
makeRuled()
#329 - Made solid construction from
shell()
more robust #329 - Added CadQuery logos to docs #329
- Added
toPending()
to allow adding wires/edges topendingWires
/pendingEdges
#351 - Implemented
glue
parameter forfuse()
#375 - Exposed parameters for fuzzy bool operations #375
- Started using MyPy in CI and type annotations #378 #380 #391
- Implemented a
Location
class #380 - Merged
CQ
class intoWorkplane
to eliminate duplicated code #380 - Added additional parameters for
BuildCurves3d_s
method #387 - Implemented fully closed shelling #394
- Refactored
polarArray()
#395 - Improved local rotation handling #395
- Implemented 2D offset in
offset2D
#397 - Added
locationAt()
to generate locations along a curve #404 - Added DOI to README for references in research papers #410
- Changed
shell()
to setIntersection
parameter toTrue
#411 - Exposed joint type (
kind
) forshell()
#413 - Refactored exporters #415
- Started using
find_packages()
in setup.py #418 - Tessellation winding fix #420
- Added
angularPrecision
toexport
,exportShape
andtoString
#424 - Added py.typed file for PEP-561 compatibility #435
- Added assembly API with constraint solver #440 #482 #545 #556
- Integrated sphinxcadquery to add 3D visualization of parts to docs #111
- Allow spaces in Vector literal #445
- Added export to OCCT native CAF format #440
- Implemented color export in STEP generated from assemblies #440
- Added ability to set
fontPath
parameter fortext()
#453 - Now protect against
rarray()
spacings of 0 #454 - Changed Nth selector rounding
self.TOLERANCE
calculation to produce 4 decimal places #461 - Fixed
parametricCurve()
to use correct stop point #477 - Excluded tests from installation in setup.py #478
- Added
mesh()
method to shapes.py #482 - Added VRML export #482
- Implemented ability to create a child workplane on the vertex #480
- Improved consistency in handling of BoundaryBox tolerance #490
- Implemented
locations()
for Wires #475 - Exposed mode for sweep operations #496
- Added 'RadiusNthSelector()` #504
- Added tag-based constraint definition for assemblies #514
- Implemented ability to mirror from a selected face #527
- Improved edge selector tests #541
- Added
glue
parameter tocombine()
#535 - Finally fixed github-linguist statistics #547
- Updated for Python 3.8
- Numerous documentation updates and example additions
centerOption
default value will change fromCenterOfMass
toProjectedOrigin
in the 2.1 release #313
- Numerous commits to move from FreeCAD as the underlying API to PythonOCC - thanks @adam-urbanczyk for all the effort that required
- Updated for Python 3.6 and 3.7
- Made sure solids were fused when extrude both=True #321 - thanks @adam-urbanczyk
- Improved boolean operations #312 - thanks @adam-urbanczyk
- Fixed a bug in helix creation #311 - thanks @adam-urbanczyk
- Improved MacOS support
- Updated CQGI counters for Python 3.8 compatibility #305 - thanks @jwhevans
- Added tangent arc operation #284 - thanks @marcus7070
- Added ellipse creation #265 - thanks @bernhard-42
- Added ability to produce a plate surface with a thickness (optional), enclosed by edge points, polylines or splines, and going through interpolation points (optional) #253 - thanks @bragostin
- Fix plane rotation method #243 - thanks @Peque
- Added ability to tag a particular object in the chain to be referred to later #252 - thanks @marcus7070
- Added Black formatting check to CI #255 - thanks @Peque
- Added ability to accept unordered edges when constructing a wire #237 - thanks @bragostin
- Updated to using pytest #236 - thanks @Peque
- Fixed wedge primitive and made wedge act consistent with other primitives #228
- Fix to correctly support anisotropic scaling #225 - thanks @adam-urbanczyk
- Documentation fixes #215 - thanks @Renha
- Fixed a spline example in the docs #200 - thanks @adam-urbanczyk
- Added 2D slot feature #186 - thanks @bweissinger
- Fixed a segmentation fault when trying to loft with one wire #161 - thanks @HLevering
- Fixed a bug where the tolerance parameter of BoundingBox had no effect #167 - thanks @mgreminger
- Fixed a bug when calling findSolid with multiple solids on stack #163 - thanks @adam-urbanczyk
- Documentation fixes #144 and #162 - thanks @westurner
- Fixed a feature/bug that prevented a polyline or spline from closing properly in some instances #156 - thanks @adam-urbanczyk
- Added ability to determine if an arbitrary point is inside a solid #138 - thanks @mgreminger
- Fixed bug where combine=True kept union from working properly #143 - thanks @adam-urbanczyk
- Fixed bug where string selectors "-X" and "+X" returned the same thing #141 - thanks @gebner
- Removed unused 'positive' argument from 'cutThruAll' #135 - thanks @mgreminger
- Increased the HASH_CODE_MAX to prevent hash collisions during face selection #140 - thanks @mgreminger
- Added option to center workplane on projected origin #132 - thanks @mgreminger
- Improved sweep along multisection wires #128 - thanks @adam-urbanczyk
- Fixed version number that was missed during update to 2.x #129 - thanks @asukiaaa
- Numerous CI and documentation improvements
- Support for text rendering #106
- Changes included in v2.0 release
- Changes included in v2.0 release
- Changes included in v2.0 release
The changelog for older CadQuery 1.x releases can be found here.