Skip to content

Latest commit

 

History

History
289 lines (267 loc) · 30.3 KB

changes.md

File metadata and controls

289 lines (267 loc) · 30.3 KB

Changes

2.3.0 (latest release)

Highlights

Experimental Features

  • 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.

Other changes

  • Various documentation fixes and updates #1250 #1251 #1256 #1262 #1305 #1306 #1309 #1240
  • Added a close option to Wire.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 fuzzy cut() and intersect() operations #1332
  • Fixed relative/absolute bug in line_point sketch solver method #1336

2.2.0

Highlights

  • Introduced a new Sketch API dedicated to 2D planar operations.
  • New constraint types were added to use with the Assembly solver.

Breaking changes

  • Renamed the argument for Workplane.extrude from distance to until and Workplane.cutBlind's distanceToCut also to until. This is only a breaking change if you use the named parameters, i.e. extrude(distance = 10.0) or cutBlind(distanceToCut) instead of using them as positional parameters.
  • Fixed a bug in Mixin1DProtocol.tangentAt() where paramAt() was being called twice. This should only break scripts that relied on the incorrect behavior. #641
  • each and eachpoint accept now combine argument defaulted to True #954. This only affects use cases involving solids.

Experimental Features

  • 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.

Other changes

  • 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 to offset2D() #639
  • Fixed errors related to findSolid() returning None #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 to Matrix 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 from Mixin3d.shell. #829
  • Implemented projectToLine() method for Vector
  • Added a 3D cylinder primitive #858
  • Fixed a typo in the error message of close() #871
  • Added extrude and cutBlind 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 and not |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 to combine 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 in assembleEdges() 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 with push #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

2.1

Breaking changes

  • 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]".

Other changes

  • Refactored selectors and added CenterNthSelector #549
  • Added new installation video links to the readme #550
  • Exposed makeWire in parametricCurve() #555
  • Fixed a centerOption bug in the assembly tutorial #556
  • Added hLineTo, polarLine and polarLineTo 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 in rect() call in tests #607
  • Fixed examples and enabled them in the test suite #609
  • Fixed wedge centering #611 and #613
  • Updated assembly documentation #614

2.1RC1 (release candidate)

Breaking changes

  • centerOption default value changed from CenterOfMass to ProjectedOrigin #532
  • Wire.combine interface changed - now it returns List[Wire] #397
  • Workplane.each interface changed - callable of the Callable[[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

Other changes

  • Simplified largestDimension() bounding box check #317
  • Added FontPath to makeText() #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 in exportStl() #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 to pendingWires/pendingEdges #351
  • Implemented glue parameter for fuse() #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 into Workplane 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 set Intersection parameter to True #411
  • Exposed joint type (kind) for shell() #413
  • Refactored exporters #415
  • Started using find_packages() in setup.py #418
  • Tessellation winding fix #420
  • Added angularPrecision to export, exportShape and toString #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 for text() #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 to combine() #535
  • Finally fixed github-linguist statistics #547
  • Updated for Python 3.8
  • Numerous documentation updates and example additions

2.0 (stable release)

Deprecations and breaking changes

  • centerOption default value will change from CenterOfMass to ProjectedOrigin in the 2.1 release #313

Non-breaking changes

  • 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

2.0RC2 (release candidate)

  • Changes included in v2.0 release

2.0RC1 (release candidate)

  • Changes included in v2.0 release

2.0RC0 (release candidate)

  • Changes included in v2.0 release

The changelog for older CadQuery 1.x releases can be found here.