这是indexloc提供的服务,不要输入任何密码
Published November 5, 2025 | Version v0.10.0
Software Open

build123d: A Python-based parametric CAD library

  • 1. Independent Developer

Description

Breaking Changes

  • Convert Shape methods to properties: is_null, is_valid, shape_type. Unfortunately it isn't possible to keep the old method and deprecate it when switching over to properties. The fix is just to remove the () e.g. is_valid() -> is_valid.

Notable Changes

  • Added a new Shape property - global_location which will provide the location of a part relative to the global coordinate system when it's deep within an assembly
  • Some of the to_*** methods have been deprecated. For example Vector.to_tuple() has been replaced with tuple(Vector)
  • Added a new operation draft with the Solid.draft instance method. It allows you to create parts that are going to be cast or moulded requiring a draft angle on the vertical sides.
  • There is now a build123d roadmap - see here: https://github.com/gumyr/build123d/wiki/Roadmap
  • Added a Face.wrap method by @gumyr. This method is useful for applying flat features—such as decorative patterns, cutouts, or boundary outlines—onto curved or freeform surfaces while retaining their original proportions.
  • @jwagenet added four new 1D lines ArcArcTangentLine, ArcArcTangentArc, PointArcTangentLine, and PointArcTangentArc. They all implement solvers to find intersections, tangent directions. NOTE: These new 1D line objects are already in deprecated status as there are plans to unify and extend these types of curves into fewer objects.
  • @jwagenet has created a new section on Topology Selection and Exploration of the docs: https://build123d.readthedocs.io/en/latest/topology_selection.html
  • When adding Shapes (without using the builders or, Part, Sketch, Curve) build123d will now typically create a ShapeList. This is meant to improve the user experience related to the breaking change in v0.9.0. With the new release Face + Face returns: ShapeList(# of two faces).
  • @jdegenstein added a new constrained surface creation method Face.make_surface_patch
  • @gongfan99 added Face.make_gordon_surface method for gordon surface creation along with a new pure python dependency of build123d called (ocp_gordon)[https://github.com/gongfan99/ocp_gordon]
  • @gumyr added a new BlendCurve object for blending with up to C2 continuity between two curves

Selected Other Changes

  • make Axis.position and Axis.direction properties by @snoyer in https://github.com/gumyr/build123d/pull/905
  • Adding Face.radii, Face.is_circular_convex, Face.is_circular_concave, rename Face.rotational_axis to Face.axis_of_rotation by @gumyr in https://github.com/gumyr/build123d/commit/0208621fd770e9b95917c71e14fd4659aeb7912b
  • add align parameter to import_svg by @snoyer in https://github.com/gumyr/build123d/pull/908
  • Add a new TestCase that asserts that examples exit successfully. by @fischman in https://github.com/gumyr/build123d/pull/910
  • Run tests in parallel by default, and update CONTRIBUTING.md by @fischman in https://github.com/gumyr/build123d/pull/911
  • Switch to lib3mf official pypi release from py_lib3mf by @jdegenstein in https://github.com/gumyr/build123d/pull/917
  • Update type signature for component getters by @mingmingrr in https://github.com/gumyr/build123d/pull/923
  • Avoid deepcopy'ing Shape.topo_parent. by @fischman in https://github.com/gumyr/build123d/pull/914
  • Fixing examples, PR #910 by @gumyr https://github.com/gumyr/build123d/commit/aeb6b32b6594b51209a70ee1922ff63a00080dc1
  • Improve topo_explore_connected_faces to remove duplicate faces by @gumyr in https://github.com/gumyr/build123d/commit/8ba128c273e83a19d62ab474a427ed9eee155ad1
  • Improving geometry eq/hash to enable sets by @gumyr in https://github.com/gumyr/build123d/commit/10a466f6453ef99c4c485d02985e5357f3f3076f
  • TooTallToby tutorials: unbreak and test. by @fischman in https://github.com/gumyr/build123d/pull/912
  • PolarLine() make localized direction a unit vector to only scale by length by @jwagenet in https://github.com/gumyr/build123d/pull/931
  • Revise docstrings for build objects by @jwagenet in https://github.com/gumyr/build123d/pull/930
  • Use uv for setup of github actions workflows by @jdegenstein in https://github.com/gumyr/build123d/pull/934
  • Quick fix documentation issues by @jwagenet in https://github.com/gumyr/build123d/pull/933
  • Add very minimal support for CompSolid by @gumyr in https://github.com/gumyr/build123d/commit/b1f0eedfcb417c3476e9fe6a7650d820ccc12f18
  • Add new docs section "Selectors and Operators" by @jwagenet in https://github.com/gumyr/build123d/pull/959
  • Add Tangent objects for Point and Arc by @jwagenet in https://github.com/gumyr/build123d/pull/947
  • Fixed Issue #944 (section not working) by @gumyr in https://github.com/gumyr/build123d/commit/8c171837ee97f90351d9f21a516f310ad2c0bba1
  • Replacing location_at(planar) with (x_dir) by @gumyr in https://github.com/gumyr/build123d/commit/0624bff82e820f53cc9453fb525c1326ca8c3171
  • Fixed DoubleTangentArc to create Edge by @gumyr in https://github.com/gumyr/build123d/commit/c4080e1231c3e8e8a6956c08724dd5d74adcc570
  • Added Toy Truck example by @gumyr in https://github.com/gumyr/build123d/commit/bf6206377ded3792bf0916e083399457337e5ba0 and others
  • Fix revolve direction and size with negative revolution_arc by @jwagenet in https://github.com/gumyr/build123d/pull/964
  • Resolve deprecation warnings of regex library by @emmanuel-ferdman in https://github.com/gumyr/build123d/pull/976
  • pyproject.toml -> update ipython version pin to include v9.x.x by @jdegenstein in https://github.com/gumyr/build123d/pull/981
  • Add explicit scipy dependency by @ndevenish in https://github.com/gumyr/build123d/pull/978
  • Add OCCT text alignment to Text/make_text by @jwagenet in https://github.com/gumyr/build123d/pull/960
  • Adding deglob tool (tools/deglob.py) to help remove glob imports by @gumyr in https://github.com/gumyr/build123d/commit/2431a054469386a924e22046b002926451257bcd
  • Added Location.center to enable sort_by, etc and add Location.mirror by @gumyr in https://github.com/gumyr/build123d/commit/2a730b5fef72a53f081d6c5f26d395d68be5d27f and https://github.com/gumyr/build123d/commit/d4cb27414eba0cee76e4c9def7a935fbe521e529
  • Fixed normal_at(u,v) Issue #973 by @gumyr in https://github.com/gumyr/build123d/commit/0854cac191d17fcc32316eee8a640aa283d026da and https://github.com/gumyr/build123d/commit/739368c41720b3a2f45438fd8b87f4c105872780
  • Fixed Issue #843 added is_forward to Edge parameter methods by @gumyr in https://github.com/gumyr/build123d/commit/6590df1e65d98cf4d95a0803836a4fb95bd6a099
  • Fixed full_round Issue #972 by @gumyr in https://github.com/gumyr/build123d/commit/ed5e0307e3a9db741c0bad007abb99822a49911a
  • Fixed normal_at bug when passed a Vector by @gumyr in https://github.com/gumyr/build123d/commit/890f1a540b9e78b4b2dcfc802136b1b38ecceb0d
  • Added Face.wrap feature by @gumyr in https://github.com/gumyr/build123d/commit/60cd260e74a69c56ad7b4159e8f0bc2433659055
  • Store benchmark results as CSV; artifact and printed to stdout by @jdegenstein in https://github.com/gumyr/build123d/pull/982
  • Rework Location constructor, improve pylint by @gumyr in https://github.com/gumyr/build123d/commit/67115111e2139540fff5560fceaf7ade9a1c3ac8
  • Deprecated to_axis Issue #155 by @gumyr in https://github.com/gumyr/build123d/commit/2efd21ff5817025d21cae97644a54a9baac2f7c5
  • Adding method Face.wrap_faces by @gumyr in https://github.com/gumyr/build123d/commit/ccdfda88e934b864bfe3a2b634ea31e57079f36e
  • Adding topo_parent to Triangle vertices by @gumyr in https://github.com/gumyr/build123d/commit/aecc71dac2ff53d31f2ad938328814cc3ff6f613
  • Enabling ShapeList + Shape by @gumyr in https://github.com/gumyr/build123d/commit/cec429c5ccf75c290bd6f3ba8c3550826b866720
  • Fix various typos by @luzpaz in https://github.com/gumyr/build123d/pull/986
  • Add timestamp argument to STEP export by @jgraichen in https://github.com/gumyr/build123d/pull/984
  • Adding bicycle tire example by @gumyr in https://github.com/gumyr/build123d/commit/0e7ab984301074f3bea3bad96938138d30c42420
  • Improved Edge.param_at_point and Wire.trim - Issue #795 by @gumyr https://github.com/gumyr/build123d/commit/14ef7d1a0d53d30c227d3b63a8bfb47ca8614a32
  • Added draft operation by @gumyr in https://github.com/gumyr/build123d/commit/30d26904ff86bfb0ddd24fbd259f6d692d35b723 and others
  • Deprecating Color.to_tuple Issue #155 by @gumyr in https://github.com/gumyr/build123d/commit/83cea3938d842ac2aa17ce269433cbf05909b6d4
  • Deprecating Axis.to_plane, refactored Plane constructor Issue #155 by @gumyr in https://github.com/gumyr/build123d/commit/2e0c193aa8a7c667c976e0d6dec49cdc4a0312d6
  • Deprecating Vertex.to_tuple - Issue #155 by @gumyr in https://github.com/gumyr/build123d/commit/ce3e6ba3a4c221c2b75d37886b4de4f4070bc4be
  • Deprecating Edge/Wire.to_wire and Face.to_arcs by @gumyr in https://github.com/gumyr/build123d/commit/421dc667845509401ba308b6294333d91c25ea6a
  • Deprecating Location.to_tuple Issue #155 by @gumyr in https://github.com/gumyr/build123d/commit/f445de32c98f6df1fab1bef5b8a5b8211f9df205
  • Convert Shape methods to properties: is_null, is_valid, shape_type by @gumyr in https://github.com/gumyr/build123d/commit/560a5369b718242d7b8d547e1a00e4519e40aac1
  • Deprecating Shape.relocate Issue #768 by @gumyr in https://github.com/gumyr/build123d/commit/ffc97ef6f0f7e60f23909391300806d5190e20ea
  • Adding example of making many holes by @gumyr in https://github.com/gumyr/build123d/commit/6aaadd12a4cccc8b181144ce409d00623a82a312
  • Adding global_location property by @gumyr in https://github.com/gumyr/build123d/commit/b25b330c9b2eadc70c90241ed83deba1dd584652
  • Adding Face.location_at(point) and Shell.location_at(point) by @gumyr in https://github.com/gumyr/build123d/commit/10a3a2519d7083193b94593940f23f3f947056c1 and https://github.com/gumyr/build123d/commit/3f2d0a445d05dc031a328888420f94af067a3c0c
  • Fixing fillet/chamfer parent id Issue #393 by @gumyr in https://github.com/gumyr/build123d/commit/02439d3a3628eb775ae46c1bb10d6d264f009448
  • Improving trace - Issue #1021 by @gumyr in https://github.com/gumyr/build123d/commit/f3f9fd23574072d0217becf3260de9064bbb7a52
  • Ensure tolerance is passed to wrap_edge function... by @seltzered in https://github.com/gumyr/build123d/pull/999
  • Bugfix: correct ArcArcTangentArc tangency with reversed start_arc in algebra mode by @jwagenet in https://github.com/gumyr/build123d/pull/1000
  • Bugfixes: Slot objects by @jwagenet in https://github.com/gumyr/build1Additional/pull/1003
  • Add missing example STEP and other doc fixes by @jwagenet in https://github.com/gumyr/build123d/pull/1023
  • tools/deglob.py -> add ability to write deglobbed change back to target file by @jdegenstein in https://github.com/gumyr/build123d/pull/988
  • Added continuity to topo_explore_connected_edges by @gumyr in https://github.com/gumyr/build123d/commit/4795bf79ffff4ed7fdfdd1d7fd120e7447782f6b
  • fix PolarLine with angles that make the length negative by @danieledapo in https://github.com/gumyr/build123d/pull/1040
  • Add Face.make_surface_patch constrained surface modeling method by @jdegenstein in https://github.com/gumyr/build1Additional/pull/1043
  • Add missing docstring to Face.make_surface_patch and enhance error checking / handling and related tests by @jdegenstein in https://github.com/gumyr/build123d/pull/1048
  • Update external tools to add OCP.wasm and update Yet Another CAD Viewer by @yeicor in https://github.com/gumyr/build123d/pull/1050
  • Add method to list available system font names and FontStyles by @jwagenet in https://github.com/gumyr/build123d/pull/1051
  • Enhancing loft to support a single hole by @gumyr in https://github.com/gumyr/build123d/commit/9f51515c63bad51ee50ac987760c930e5c993e7b
  • Feature: ArcArcTangentArc add missing tangent cases and fix bad objects in BuildLine by @jwagenet in https://github.com/gumyr/build123d/pull/1058
  • Add link to bd_beams_and_bars to external tools by @mtancoigne in https://github.com/gumyr/build123d/pull/1059
  • Fix link format in external tools docs by @mtancoigne in https://github.com/gumyr/build123d/pull/1061
  • add ability to do perspective projection by @Mx-El in https://github.com/gumyr/build123d/pull/1062
  • operations_part.py -> reset pending_edges for make_brake_formed by @jdegenstein in https://github.com/gumyr/build123d/pull/1069
  • Feature: add ColorLike handling to Color by @jwagenet in https://github.com/gumyr/build123d/pull/1072
  • Docs should say arc when curve would be ambiguous by @paulftw in https://github.com/gumyr/build123d/pull/1082
  • Wire.param_at_point improved by @gumyr in https://github.com/gumyr/build123d/commit/735f4ffb4d867e4d11554e3797f9c6eb143fa814
  • Adding BlendCurve Issue #1054 by @gumyr in https://github.com/gumyr/build123d/commit/6028b14aa068f9235c41a74f837fecc898330764
  • Adding Mixin1D.curvature_comb by @gumyr in https://github.com/gumyr/build123d/commit/790f0eacedcf056cfd46ab9c3945a5a405e6e2e7
  • Add Edge.make_constrained_arcs by @gumyr in https://github.com/gumyr/build123d/commit/8b2886144ee3fe93aafc21f1a118d3eeb19410a6
  • Intersect Everything: Geometry and 0D, 1D Shape by @jwagenet in https://github.com/gumyr/build123d/pull/1090
  • Move from macos-13 (x86_64) to macos-15-intel (also x86_64) for relevant workflows by @jdegenstein in https://github.com/gumyr/build1Additional/pull/1100
  • feat: add Gordon surface implementation and test by @gongfan99 in https://github.com/gumyr/build123d/pull/1099
  • fix: make_gordon_surface supports all edge types by @gongfan99 in https://github.com/gumyr/build123d/pull/1101
  • Adding Airfoil 1D object by @gumyr in https://github.com/gumyr/build123d/commit/f67cc12c34610d1b7c676f6af3c44a891ecaafe4
  • fix: gradient error in gordon surface intersect by @gongfan99 in https://github.com/gumyr/build123d/pull/1106
  • Added Edge.make_constrained_lines method by @gumyr in https://github.com/gumyr/build123d/commit/13685139563df1eec0528e0ca5844acae456a3ef and others
  • Updated surface modeling docs to cover new functionality by @gumyr in https://github.com/gumyr/build123d/commit/4a32cedcd2fbae2583a439f34a372e739eb7344a and others
  • .readthedocs.yaml -> fix tab title version on dev version builds by @jdegenstein in https://github.com/gumyr/build123d/pull/1111
  • Deprecate some Arcs (e.g. ArcArcTangentArc) by @jdegenstein in https://github.com/gumyr/build123d/pull/1097
  • Improving Face creation - fix inner Wires by @gumyr in https://github.com/gumyr/build123d/commit/696e99c8891745f54c509c28383b6e3ee6c9b88d

New Contributors

  • @mingmingrr made their first contribution in https://github.com/gumyr/build123d/pull/923
  • @jwagenet made their first contribution in https://github.com/gumyr/build1Example/pull/931
  • @emmanuel-ferdman made their first contribution in https://github.com/gumyr/build123d/pull/976
  • @ndevenish made their first contribution in https://github.com/gumyr/build123d/pull/978
  • @jgraichen made their first contribution in https://github.com/gumyr/build123d/pull/984
  • @seltzered made their first contribution in https://github.com/gumyr/build123d/pull/999
  • @mtancoigne made their first contribution in https://github.com/gumyr/build123d/pull/1059
  • @Mx-El made their first contribution in https://github.com/gumyr/build123d/pull/1062
  • @paulftw made their first contribution in https://github.com/gumyr/build123d/pull/1082
  • @gongfan99 made their first contribution in https://github.com/gumyr/build123d/pull/1099

Full Changelog: https://github.com/gumyr/build123d/compare/v0.9.1...v0.10.0

Notes

If you use build123d in your research, please cite it using the following information.

Files

gumyr/build123d-v0.10.0.zip

Files (20.2 MB)

Name Size Download all
md5:854654aff24ccd3df2195414cd88750b
20.2 MB Preview Download

Additional details

Related works

Is supplement to
Software: https://github.com/gumyr/build123d/tree/v0.10.0 (URL)

Software