2.3.1 (latest release)
This was an incremental release to fix a broken PyPI package.
- Constraint-based sketches are still being worked on and improved, and are not production ready. There have been fixes, but multiple issues are still open including #959, #968 and #960.
- The Convex Hull feature should also be considered experimental. Issues open for that feature include #931, #1190, #1224 and #943.
- Various documentation fixes and updates #1250 #1251 #1256 #1262 #1305 #1306 #1309 #1240
- Added a
close
option toWire.makePolygon()
#1257 - Fixed iteration over entities and avoid hash collisions to help solve intermittent test failures #1260
- Added fused export for assemblies that preserves face colors #1261
- Added multilayer support to DXF export #1267
- Removed one unneeded layer of hierarchy from STEP export #1270
- Fixed a bug where
Workplane.close()
would not work with a set of 3D points #1271 - Fixed a missing
distance
parameter in an extrude example #1275 - Started building noarch packages in Azure Pipelines #1293
- Added a better version string to identify conda master builds #1315
- Fixed metadata being lost when adding a subassembly to an assembly #1327
- Added tolerance (
tol
) to enable fuzzycut()
andintersect()
operations #1332 - Fixed relative/absolute bug in
line_point
sketch solver method #1336
- Introduced a new Sketch API dedicated to 2D planar operations.
- New constraint types were added to use with the Assembly solver.
- 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 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.
- Constraint-based sketches are still being worked on and improved, and are not production ready. There are multiple issues open including #1127, #959, #968 and #960.
- The Convex Hull feature should also be considered experimental. Issues open for that feature include #931, #1190, #1224 and #943.
- 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 #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
- Made Face.makeFromWires check that wires are closed to prevent a certain class of segfault #946
- Added repr to plane object to get nicer output when converted to a string #952
- Added
cut
option tocombine
parameter which removes material from the context solid #954 - Updated the dependencies for OCP 7.5.3 #956
- Added a fixed arc length cost to the sketch solver #962
- Fixed installation doc to use rst instead of markdown #974
- Reworked the assembly solder and added PointOnLine, FixedPoint, FixedAxis and FixedRotation assembly constraints #975
- Implemented Python 3.10 support #978
- Updated conda related sections in the README and docs #980
- Added rotateAboutCenter regression test #982
- Use
TopTools_ListOfShape
inassembleEdges()
to prevent some classes of invalid surfaces due to unclosed wires #986 - Removed the pinned hdf dependency #992
- Fixed bug with extra translation being applied when
rarray
is used withpush
#994 - Added a conda web installer for Windows and Linux #1000
- Multiple parray Sketch fixes #1005
- Additional surface modelling functionality #1007
- Fixed a bug with
polarArray
start angle and rotation #1016 - Fixed a bug where Sketch.distribute was creating an extra location #1018
- Fixed the screw holes in the parametric enclosure example #1023
- Switched to nptyping 2.x #1050
- Ability to specify DXF layer names #1061
- Switch to Casadi and iPOPT for assembly solver #1063
- Added adjustment parameters for linear and angular tolerances in VRML tessellation #1066
- Pinned VTK to 9.0.1 for OCP 7.5.3 #1075
- Fixed VTK-based assembly export rotation issue #1078
- Added quality controls to STEP export for shapes and assemblies #1083
- Updated setup.py for OCP being available on PyPI #1085
- Added Sphinx customization for multimethod handling #1088 #1123
- Pinned the nptyping version #1095 #1096
- Added STL to Assembly export formats #1101
- Updated the mutlimethod version pin #1118
- Reworked the cheatsheet #1129
- Pass clean to eachpoint in box, cylinder, interpPlate, sphere and wedge #1145
- Moved to OCCT 7.6 #1156
- Do not add a leaf component when assembly shapes are empty #993
- Fixed an indexing bug in tessellation #1163
- Pinned cadquery-ocp version to 7.6.* #1164
- Disabled recompute of normals when converting to VTK #1167
- Added Fixed to ConstraintKinds type definition #1177
- Added option to control the verbosity of the assembly solver #1198
- Only show deprecation warning when required #1201
- Untangled indirect exports #1204
- Added parameter and return types to
importDXF
#1205 - Fixed incorrect coordinate system in glTF exports #1211
- Updated to allow OCP 7.7.0 to be used #1215
- Fixed VTK HTML template #1216 #1217
- Cleaned up environment.yml file #1233
- Various documentation fixes #1033 #1041 #1044 #1049 #1056 #1058 #1059 #1060 #1062 #1079 #1089 #1116 #1140 #1143 #1151 #1166 #1176 #1207 #1210 #1241
- 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.