Ratchet pawl

A pawl swings on a pin next to a ratchet wheel. A spring holds its tip against the teeth, it rides over their backs one way, and its catch face stops the wheel at a tooth’s radial face the other way. Its outline is a boss around the pivot, a back and an underside tangent to the boss, and a tooth at the tip, where the back and the catch face meet at an angle. As a sketch, it is one chain around the outline. Model the pawl from the drawing in planex2d or in any CAD system, then check its area and centroid against the values at the end of the page. A solution in planex2d follows.

The ratchet pawl exercise: a dimensioned drawing of a pawl with a round boss around its pivot, a tapering arm and a tooth at its tip

[1]:
import planex as px

The outline

The origin is the pivot. The chain starts under the boss, runs clockwise around it and along the back to the tip, turns down the catch face, and Close draws the underside back to the start, all roughly. auto_constraint=True ties the joints and keeps the back tangent to the boss, the smooth joint of the chain. The underside meets the boss at an angle as drawn, so its tangency is a constraint of its own (Figure 1):

[3]:
pawl = px.Sketch(auto_constraint=True)
pawl.Move((0, -9), dir=(-1, 0)).Arc(9, -190, id="boss")  # a negative sweep runs clockwise
pawl.Line(46, id="back")
pawl.Turn(-110).Line(8, id="catch_face")  # Turn(-110) turns the pen right by 110°
pawl.Close(id="underside")
pawl.Constrain("underside", "boss", px.Tangent)
print("status", pawl.status, "| degrees of freedom", pawl.dof)
status under | degrees of freedom 7
The chain as drawn, its joints tied
Figure 1: The outline

The dimensions

The boss has a radius of 9 around the pivot, and the pivot hole is 6 across, concentric with it. The tip lies on the horizontal axis, 47 from the pivot. The catch face is 8 long, at 70° to the back, the angle of the tooth. With these, nothing in the sketch is left free (Figure 2):

[5]:
pawl.Circle(6 / 2, concentric="boss", id="pivot")
pawl.Constrain("boss.center", "origin", px.Coincident)
pawl.Constrain("boss", px.Radius, 9, id="boss_r")
pawl.Constrain("pivot", px.Diameter, 6, id="pivot_d")
pawl.Constrain("back.end", "H", px.Coincident)
pawl.Constrain("back.end", "V", px.Distance, 47, id="tip")
pawl.Constrain("catch_face", px.Distance, 8, id="face_l")
pawl.Constrain("back", "catch_face", px.Angle, 70, id="tooth_angle")
print("status", pawl.status, "| degrees of freedom", pawl.dof)
status full | degrees of freedom 0
Every dimension and tie of the pawl
Figure 2: The fully constrained sketch

The checks

These are the area and the centroid, with the origin at the pivot and the tip on the positive x axis, to compare with your own model (Figure 3):

[7]:
face = pawl.Face()
c = face.center
print("area", round(face.mass, 2), "mm²")
print("centroid", tuple(round(v, 2) for v in c[:2]))
area 668.61 mm²
centroid (15.67, -1.09)
The ratchet pawl
Figure 3: The ratchet pawl

The pawl as DXF in millimeters, for another CAD system or a laser cutter:

[9]:
pawl.WriteDXF("ratchet_pawl.dxf", unit=px.mm, scale=1)  # scale=1: the numbers as they are

The pawl as DXF: ratchet_pawl.dxf