Docs reorganization & new Tips section

This commit is contained in:
Roger Maitland 2023-04-20 11:41:09 -04:00
parent ef35afa085
commit 9c093f569c
8 changed files with 43 additions and 33 deletions

View file

@ -5,10 +5,8 @@ Advanced Topics
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
assemblies.rst
algebra_performance.rst algebra_performance.rst
location_arithmetic.rst location_arithmetic.rst
algebra_definition.rst algebra_definition.rst
center.rst center.rst
custom.rst
debugging_logging.rst debugging_logging.rst

View file

@ -71,6 +71,8 @@ and now the screw is part of the assembly.
├── outer hinge Hinge at 0x7fc9292c3f40, Location(p=(-150, 60, 50), o=(90, 0, 90)) ├── outer hinge Hinge at 0x7fc9292c3f40, Location(p=(-150, 60, 50), o=(90, 0, 90))
└── M6 screw Compound at 0x7fc8ee235310, Location(p=(-157, -40, 70), o=(-0, -90, -60)) └── M6 screw Compound at 0x7fc8ee235310, Location(p=(-157, -40, 70), o=(-0, -90, -60))
.. _shallow_copy:
********************************* *********************************
Shallow vs. Deep Copies of Shapes Shallow vs. Deep Copies of Shapes
********************************* *********************************

View file

@ -33,32 +33,6 @@ by the ``mode=Mode.SUBTRACT`` parameter thus creating a hole.
.. image:: assets/general_ex2.svg .. image:: assets/general_ex2.svg
:align: center :align: center
************
2D before 3D
************
When creating complex 3D objects, it is generally best to start with 2D work before
moving on to 3D. This is because 3D structures are much more intricate, and 3D operations
can be slower and more prone to failure. For designers who come from a Constructive Solid
Geometry (CSG) background, such as OpenSCAD, this approach may seem counterintuitive. On
the other hand, designers from a GUI BREP CAD background, like Fusion 360 or SolidWorks,
may find this approach more natural.
In practice, this means that 3D objects are often created by applying operations like
:func:`~operations_part.extrude` or :func:`~operations_part.revolve` to 2D sketches, as shown below:
.. code:: python
with BuildPart() as my_part:
with BuildSketch() as part_profile:
...
extrude(amount=some_distance)
...
With this structure ``part_profile`` may have many objects that are combined and
modified by operations like :func:`~operations_generic.fillet` before being extruded
to a 3D shape.
******************* *******************
Implicit Parameters Implicit Parameters
******************* *******************

View file

@ -115,7 +115,7 @@ Locating Features
***************** *****************
Within a sketch features are positioned with ``Locations`` contexts Within a sketch features are positioned with ``Locations`` contexts
(see :ref:`Location Context <locations>`) on the current workplane(s). The following (see :ref:`Location Context <location_context_link>`) on the current workplane(s). The following
location contexts are available within a sketch: location contexts are available within a sketch:
* :class:`~build_common.GridLocations` : a X/Y grid of locations * :class:`~build_common.GridLocations` : a X/Y grid of locations

View file

@ -1,3 +0,0 @@
###################################
Custom Builder Objects & Operations
###################################

View file

@ -101,6 +101,8 @@ Table Of Contents
objects.rst objects.rst
operations.rst operations.rst
builders.rst builders.rst
assemblies.rst
tips.rst
advanced.rst advanced.rst
cheat_sheet.rst cheat_sheet.rst
external.rst external.rst

View file

@ -23,6 +23,7 @@ They are organized from simple to complex, so working through them in order is t
:backlinks: entry :backlinks: entry
.. _ex 1: .. _ex 1:
1. Simple Rectangular Plate 1. Simple Rectangular Plate
--------------------------------------------------- ---------------------------------------------------
@ -45,6 +46,7 @@ Just about the simplest possible example, a rectangular :class:`~objects_part.Bo
.. _ex 2: .. _ex 2:
2. Plate with Hole 2. Plate with Hole
--------------------------------------------------- ---------------------------------------------------
@ -75,6 +77,7 @@ A rectangular box, but with a hole added.
.. _ex 3: .. _ex 3:
3. An extruded prismatic solid 3. An extruded prismatic solid
--------------------------------------------------- ---------------------------------------------------
@ -104,6 +107,7 @@ Build a prismatic solid using extrusion.
.. _ex 4: .. _ex 4:
4. Building Profiles using lines and arcs 4. Building Profiles using lines and arcs
--------------------------------------------------- ---------------------------------------------------
@ -139,6 +143,7 @@ variables for the line segments, but it will be useful in a later example.
Note that to build a closed face it requires line segments that form a closed shape. Note that to build a closed face it requires line segments that form a closed shape.
.. _ex 5: .. _ex 5:
5. Moving the current working point 5. Moving the current working point
--------------------------------------------------- ---------------------------------------------------
@ -167,6 +172,7 @@ Note that to build a closed face it requires line segments that form a closed sh
.. _ex 6: .. _ex 6:
6. Using Point Lists 6. Using Point Lists
--------------------------------------------------- ---------------------------------------------------
@ -198,6 +204,7 @@ Sometimes you need to create a number of features at various
.. _ex 7: .. _ex 7:
7. Polygons 7. Polygons
--------------------------------------------------- ---------------------------------------------------
@ -224,6 +231,7 @@ Sometimes you need to create a number of features at various
.. _ex 8: .. _ex 8:
8. Polylines 8. Polylines
--------------------------------------------------- ---------------------------------------------------
@ -249,6 +257,7 @@ create the final profile.
.. _ex 9: .. _ex 9:
9. Selectors, Fillets, and Chamfers 9. Selectors, Fillets, and Chamfers
--------------------------------------------------- ---------------------------------------------------
@ -278,6 +287,7 @@ be the highest z-dimension group.
.. _ex 10: .. _ex 10:
10. Select Last and Hole 10. Select Last and Hole
--------------------------------------------------- ---------------------------------------------------
@ -308,6 +318,7 @@ be the highest z-dimension group.
.. _ex 11: .. _ex 11:
11. Use a face as a plane for BuildSketch and introduce GridLocations 11. Use a face as a plane for BuildSketch and introduce GridLocations
---------------------------------------------------------------------------- ----------------------------------------------------------------------------
@ -351,6 +362,7 @@ normal direction of the face or plane. As a result of this, unexpected behavior
if the extrude direction and mode/operation (ADD / ``+`` or SUBTRACT / ``-``) are not correctly set. if the extrude direction and mode/operation (ADD / ``+`` or SUBTRACT / ``-``) are not correctly set.
.. _ex 12: .. _ex 12:
12. Defining an Edge with a Spline 12. Defining an Edge with a Spline
--------------------------------------------------- ---------------------------------------------------
@ -376,6 +388,7 @@ The star ``*`` operator is again used to unpack the list.
.. _ex 13: .. _ex 13:
13. CounterBoreHoles, CounterSinkHoles and PolarLocations 13. CounterBoreHoles, CounterSinkHoles and PolarLocations
------------------------------------------------------------- -------------------------------------------------------------
@ -404,6 +417,7 @@ Counter-sink and counter-bore holes are useful for creating recessed areas for f
:class:`~build_common.PolarLocations` creates a list of points that are radially distributed. :class:`~build_common.PolarLocations` creates a list of points that are radially distributed.
.. _ex 14: .. _ex 14:
14. Position on a line with '\@', '\%' and introduce Sweep 14. Position on a line with '\@', '\%' and introduce Sweep
------------------------------------------------------------ ------------------------------------------------------------
@ -443,6 +457,7 @@ It is also possible to use :class:`~geometry.Vector` addition (and other vector
as seen in the ``l3`` variable. as seen in the ``l3`` variable.
.. _ex 15: .. _ex 15:
15. Mirroring Symmetric Geometry 15. Mirroring Symmetric Geometry
--------------------------------------------------- ---------------------------------------------------
@ -469,6 +484,7 @@ Additionally the '@' operator is used to simplify the line segment commands.
:end-before: [Ex. 15] :end-before: [Ex. 15]
.. _ex 16: .. _ex 16:
16. Mirroring 3D Objects 16. Mirroring 3D Objects
--------------------------------------------------- ---------------------------------------------------
@ -492,6 +508,7 @@ The ``Plane.offset()`` method shifts the plane in the normal direction (positive
.. _ex 17: .. _ex 17:
17. Mirroring From Faces 17. Mirroring From Faces
--------------------------------------------------- ---------------------------------------------------
@ -515,6 +532,7 @@ Here we select the farthest face in the Y-direction and turn it into a :class:`~
.. _ex 18: .. _ex 18:
18. Creating Workplanes on Faces 18. Creating Workplanes on Faces
--------------------------------------------------- ---------------------------------------------------
@ -542,6 +560,7 @@ with a negative distance.
.. _ex 19: .. _ex 19:
19. Locating a workplane on a vertex 19. Locating a workplane on a vertex
--------------------------------------------------- ---------------------------------------------------
@ -575,6 +594,7 @@ this custom Axis.
.. _ex 20: .. _ex 20:
20. Offset Sketch Workplane 20. Offset Sketch Workplane
--------------------------------------------------- ---------------------------------------------------
@ -598,6 +618,7 @@ negative x-direction. The resulting Plane is offset from the original position.
.. _ex 21: .. _ex 21:
21. Create a Workplanes in the center of another shape 21. Create a Workplanes in the center of another shape
------------------------------------------------------- -------------------------------------------------------
@ -621,6 +642,7 @@ positioning another cylinder perpendicular and halfway along the first.
.. _ex 22: .. _ex 22:
22. Rotated Workplanes 22. Rotated Workplanes
--------------------------------------------------- ---------------------------------------------------
@ -651,6 +673,7 @@ extruded in the "both" (positive and negative) normal direction.
.. _ex 23: .. _ex 23:
23. Revolve 23. Revolve
--------------------------------------------------- ---------------------------------------------------
@ -679,6 +702,7 @@ It is highly recommended to view your sketch before you attempt to call revolve.
.. _ex 24: .. _ex 24:
24. Loft 24. Loft
--------------------------------------------------- ---------------------------------------------------
@ -704,6 +728,7 @@ Loft can behave unexpectedly when the input faces are not parallel to each other
.. _ex 25: .. _ex 25:
25. Offset Sketch 25. Offset Sketch
--------------------------------------------------- ---------------------------------------------------
@ -731,6 +756,7 @@ corners (see :class:`~build_enums.Kind` in the Offset docs).
.. _ex 26: .. _ex 26:
26. Offset Part To Create Thin features 26. Offset Part To Create Thin features
--------------------------------------------------- ---------------------------------------------------
@ -758,6 +784,7 @@ Note that self intersecting edges and/or faces can break both 2D and 3D offsets.
.. _ex 27: .. _ex 27:
27. Splitting an Object 27. Splitting an Object
--------------------------------------------------- ---------------------------------------------------
@ -781,6 +808,7 @@ a face and offset half the width of the box.
.. _ex 28: .. _ex 28:
28. Locating features based on Faces 28. Locating features based on Faces
--------------------------------------------------- ---------------------------------------------------
@ -808,6 +836,7 @@ We are able to create multiple workplanes by looping over the list of faces.
.. _ex 29: .. _ex 29:
29. The Classic OCC Bottle 29. The Classic OCC Bottle
--------------------------------------------------- ---------------------------------------------------
@ -832,6 +861,7 @@ the bottle opening.
.. _ex 30: .. _ex 30:
30. Bezier Curve 30. Bezier Curve
--------------------------------------------------- ---------------------------------------------------
@ -856,6 +886,7 @@ create a closed line that is made into a face and extruded.
.. _ex 31: .. _ex 31:
31. Nesting Locations 31. Nesting Locations
--------------------------------------------------- ---------------------------------------------------
@ -880,6 +911,7 @@ rotates any "children" groups by default.
.. _ex 32: .. _ex 32:
32. Python For-Loop 32. Python For-Loop
--------------------------------------------------- ---------------------------------------------------
@ -907,6 +939,7 @@ separate calls to :meth:`~operations_part.extrude`.
.. _ex 33: .. _ex 33:
33. Python Function and For-Loop 33. Python Function and For-Loop
--------------------------------------------------- ---------------------------------------------------
@ -935,6 +968,7 @@ progressively modify the size of each square.
.. _ex 34: .. _ex 34:
34. Embossed and Debossed Text 34. Embossed and Debossed Text
--------------------------------------------------- ---------------------------------------------------
@ -965,6 +999,7 @@ progressively modify the size of each square.
.. _ex 35: .. _ex 35:
35. Slots 35. Slots
--------------------------------------------------- ---------------------------------------------------
@ -992,6 +1027,7 @@ progressively modify the size of each square.
.. _ex 36: .. _ex 36:
36. Extrude Until 36. Extrude Until
--------------------------------------------------- ---------------------------------------------------

View file

@ -117,7 +117,8 @@ This is the result:
.. image:: boxes_on_faces.svg .. image:: boxes_on_faces.svg
:align: center :align: center
.. _locations: .. _location_context_link:
Location Context Location Context
================ ================