mirror of
https://github.com/gumyr/build123d.git
synced 2025-12-06 02:30:55 -08:00
Adding Too Tall Toby Tutorial section
This commit is contained in:
parent
b59953fc1a
commit
4a35b68350
6 changed files with 103 additions and 0 deletions
BIN
docs/assets/ttt-23-t-24-curved_support.png
Normal file
BIN
docs/assets/ttt-23-t-24-curved_support.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 990 KiB |
61
docs/assets/ttt-23-t-24-curved_support.py
Normal file
61
docs/assets/ttt-23-t-24-curved_support.py
Normal file
|
|
@ -0,0 +1,61 @@
|
|||
"""
|
||||
Too Tall Toby challenge 23-T-24 CURVED SUPPORT
|
||||
"""
|
||||
from math import sin, cos, tan, radians
|
||||
from build123d import *
|
||||
from ocp_vscode import *
|
||||
import sympy
|
||||
|
||||
# This problem uses the sympy symbolic math solver
|
||||
|
||||
# Define the symbols for the unknowns
|
||||
# - the center of the radius 30 arc (x30, y30)
|
||||
# - the center of the radius 66 arc (x66, y66)
|
||||
# - end of the 8° line (l8x, l8y)
|
||||
# - the point with the radius 30 and 66 arc meet i30_66
|
||||
# - the start of the horizontal line lh
|
||||
y30, x66, xl8, yl8 = sympy.symbols("y30 x66 xl8 yl8")
|
||||
x30 = 77 - 55 / 2
|
||||
y66 = 66 + 32
|
||||
|
||||
# There are 4 unknowns so we need 4 equations
|
||||
equations = [
|
||||
(x66 - x30) ** 2 + (y66 - y30) ** 2 - (66 + 30) ** 2, # distance between centers
|
||||
xl8 - (x30 + 30 * sin(radians(8))), # 8 degree slope
|
||||
yl8 - (y30 + 30 * cos(radians(8))), # 8 degree slope
|
||||
(yl8 - 50) / (55 / 2 - xl8) - tan(radians(8)), # 8 degree slope
|
||||
]
|
||||
# There are two solutions but we want the 2nd one
|
||||
solution = sympy.solve(equations, dict=True)[1]
|
||||
|
||||
# Create the critical points
|
||||
c30 = Vector(x30, solution[y30])
|
||||
c66 = Vector(solution[x66], y66)
|
||||
l8 = Vector(solution[xl8], solution[yl8])
|
||||
i30_66 = Line(c30, c66) @ (30 / (30 + 66))
|
||||
lh = Vector(c66.X, 32)
|
||||
|
||||
with BuildLine() as profile:
|
||||
l1 = Line((55 / 2, 50), l8)
|
||||
l2 = RadiusArc(l1 @ 1, i30_66, 30)
|
||||
l3 = RadiusArc(l2 @ 1, lh, -66)
|
||||
l4 = Polyline(l3 @ 1, (125, 32), (125, 0), (0, 0), (0, (l1 @ 0).Y), l1 @ 0)
|
||||
|
||||
with BuildPart() as curved_support:
|
||||
with BuildSketch() as base_plan:
|
||||
c_8_degrees = Circle(55 / 2)
|
||||
with Locations((0, 125)):
|
||||
Circle(30 / 2)
|
||||
base_hull = make_hull(mode=Mode.PRIVATE)
|
||||
extrude(amount=32)
|
||||
extrude(c_8_degrees, amount=60)
|
||||
extrude(base_hull, amount=11)
|
||||
with BuildSketch(Plane.YZ) as bridge:
|
||||
make_face(profile.edges())
|
||||
extrude(amount=11 / 2, both=True)
|
||||
Hole(35 / 2)
|
||||
with Locations((0, 125)):
|
||||
Hole(20 / 2)
|
||||
|
||||
print(curved_support.part.volume * 7800e-6) # target 1294g
|
||||
show(curved_support)
|
||||
BIN
docs/assets/ttt-23-t-24-curved_support_object.png
Normal file
BIN
docs/assets/ttt-23-t-24-curved_support_object.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 33 KiB |
BIN
docs/assets/ttt.png
Normal file
BIN
docs/assets/ttt.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 181 KiB |
41
docs/tttt.rst
Normal file
41
docs/tttt.rst
Normal file
|
|
@ -0,0 +1,41 @@
|
|||
#######################
|
||||
Too Tall Toby Tutorials
|
||||
#######################
|
||||
|
||||
.. image:: assets/ttt.png
|
||||
:align: center
|
||||
|
||||
To enhance users' proficiency with Build123D, this section offers a series of challenges.
|
||||
In these challenges, users are presented with a CAD drawing and tasked with designing the
|
||||
part. Their goal is to match the part's mass to a specified target.
|
||||
|
||||
These drawings were skillfully crafted and generously provided to Build123D by TooTallToby,
|
||||
a renowned figure in the realm of 3D CAD. TooTallToby is the host of the World Championship
|
||||
of 3D CAD Speedmodeling. For additional 3D CAD challenges and content, be sure to
|
||||
visit `Toby's youtube channel <https://www.Youtube.com/TooTallToby>`_.
|
||||
|
||||
Feel free to click on the parts below to embark on these engaging challenges.
|
||||
|
||||
.. grid:: 2
|
||||
|
||||
.. grid-item-card:: 23-T-24 Curved Support
|
||||
:img-top: assets/ttt-23-t-24-curved_support_object.png
|
||||
:link: ttt-23-t-24
|
||||
:link-type: ref
|
||||
|
||||
|
||||
.. _ttt-23-t-24:
|
||||
|
||||
23-T-24 Curved Support
|
||||
----------------------
|
||||
|
||||
.. image:: assets/ttt-23-t-24-curved_support.png
|
||||
:align: center
|
||||
|
||||
.. dropdown:: Object Mass
|
||||
|
||||
1294 g
|
||||
|
||||
.. dropdown:: Reference Implementation
|
||||
|
||||
.. literalinclude:: assets/ttt-23-t-24-curved_support.py
|
||||
|
|
@ -12,3 +12,4 @@ as later tutorials build on the concepts introduced in earlier ones.
|
|||
tutorial_selectors.rst
|
||||
tutorial_lego.rst
|
||||
tutorial_joints.rst
|
||||
tttt.rst
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue