| | @@ -1,5 +1,8 @@ |
| 1 | | -"""Deep groove ball bearing, shielded (2Z), ISO 15 boundary dimensions. Envelope: inner and outer rings joined by |
| 2 | | -recessed shields (one solid), centred on the origin with its axis along Z.""" |
| 1 | +"""Deep groove ball bearing, shielded (2Z), ISO 15 boundary dimensions. |
| 2 | +Envelope: inner and outer rings and two recessed shields (four bodies; the balls behind the shields aren't modelled). |
| 3 | +Centred on the origin with its axis along Z. |
| 4 | + |
| 5 | +Material: rings in through-hardened high-carbon bearing steel (C60 from the material library, the closest it has to 100Cr6 / AISI 52100), ground; shields in cold-rolled steel (DC01).""" |
| 3 | 6 | from steve import Model |
| 4 | 7 | |
| 5 | 8 | designation = "608" # Bearing designation |
| | @@ -25,22 +28,30 @@ |
| 25 | 28 | } |
| 26 | 29 | d, D, B = BEARINGS[designation] |
| 27 | 30 | ring = (D - d) * 0.22 # radial thickness of each ring's face |
| 28 | | -recess = min(0.4, B * 0.06) |
| 31 | +recess = min(0.4, B * 0.06) # shield face below the ring faces |
| 32 | +shield = max(0.2, min(0.6, B * 0.05)) # shield sheet thickness |
| 33 | +gap = min(0.15, ring * 0.1) # running clearance between a shield and the inner ring |
| 29 | 34 | |
| 30 | 35 | model = Model() |
| 31 | | -with model.sketch("rings", on="XY", name="Rings") as sk: |
| 32 | | - sk.circle("outer", (0, 0), D / 2) |
| 36 | +with model.sketch("outer_sketch", on="XY", name="Outer ring") as sk: |
| 37 | + sk.circle("outside", (0, 0), D / 2) |
| 38 | + sk.circle("inside", (0, 0), D / 2 - ring) |
| 39 | +model.extrude("outer_ring", "outer_sketch", distance=B, both=True, op="new", body="outer_ring") # B in all, centred |
| 40 | +with model.sketch("inner_sketch", on="XY", name="Inner ring") as sk: |
| 41 | + sk.circle("outside", (0, 0), d / 2 + ring) |
| 33 | 42 | sk.circle("bore", (0, 0), d / 2) |
| 34 | | -model.extrude("body", "rings", distance=B, both=True) # both: B in all, centred on XY |
| 35 | | -model.plane("face_top", on="XY", offset=B / 2, name="Top face") |
| 36 | | -with model.sketch("shield_top", on="face_top", name="Top shield") as sk: |
| 43 | +model.extrude("inner_ring", "inner_sketch", distance=B, both=True, op="new", body="inner_ring") |
| 44 | +model.plane("shield_top_plane", on="XY", offset=B / 2 - recess, name="Top shield face") |
| 45 | +with model.sketch("shield_top_sketch", on="shield_top_plane", name="Top shield") as sk: |
| 37 | 46 | sk.circle("out", (0, 0), D / 2 - ring) |
| 38 | | - sk.circle("inn", (0, 0), d / 2 + ring) |
| 39 | | -model.extrude("recess_top", "shield_top", distance=-recess, op="cut") |
| 40 | | -model.plane("face_bottom", on="XY", offset=-B / 2, name="Bottom face") |
| 41 | | -with model.sketch("shield_bottom", on="face_bottom", name="Bottom shield") as sk: |
| 47 | + sk.circle("inn", (0, 0), d / 2 + ring + gap) |
| 48 | +model.extrude("shield_top", "shield_top_sketch", distance=-shield, op="new", body="shield_top") |
| 49 | +model.plane("shield_bottom_plane", on="XY", offset=-B / 2 + recess, name="Bottom shield face") |
| 50 | +with model.sketch("shield_bottom_sketch", on="shield_bottom_plane", name="Bottom shield") as sk: |
| 42 | 51 | sk.circle("out", (0, 0), D / 2 - ring) |
| 43 | | - sk.circle("inn", (0, 0), d / 2 + ring) |
| 44 | | -model.extrude("recess_bottom", "shield_bottom", distance=recess, op="cut") |
| 52 | + sk.circle("inn", (0, 0), d / 2 + ring + gap) |
| 53 | +model.extrude("shield_bottom", "shield_bottom_sketch", distance=shield, op="new", body="shield_bottom") |
| 54 | +model.material("steel-1c60", finish="polished") # rings: hardened bearing steel |
| 55 | +model.material("steel-dc01", bodies=["shield_top", "shield_bottom"], finish="machined") # pressed steel shields |
| 45 | 56 | result = model.result() |
| 46 | 57 | |