Chainwheels / sprockets (for roller chain or similar)

main page
A general approach to the problem of how to get the correct angle for a basic 'wedge' shape - having repeated peripheral detail of the same pitch as other objects with a different number of said detail.  (Without having to resort to maths or trig.etc.)

This page is really about getting the angles on basic wedges correct - rather than making an actual object - but since it is used here for making a basic bike-type chain sprocket - I measured a standard bike chain and got some 'real' figures :

Roller diameter 0.73cm
Distance between roller centres 1.27cm.
1). Make a pair of 'dummy' rollers and arrange them the correct distance apart.
I decided on a scale of 1wu : 1cm
Create a default cylinder to represent a roller (8 sides here, keep it simple) - which is 2 units diameter.
Need to scale this 0.73 / 2.0 = 0.365 or 36.5%, so selected the cyl. and applied Object | Scale Radial -> Y -> 36.5%
Duplicate this cylinder along Z -> 1.27 units, select both and centre (if desired)
2). Since one of the ways to conform geometry to other (existing) geometry is to use bridge (often with loopcut) -  a basic dummy sprocket tooth will be formed (between these rollers) using bridge.
Select the 2 pairs of faces as shown and apply Face | Dissolve to remove the 'in between' edges.(Bridge needs 2 faces with equal vert count and no interconnecting edges (as here) to work correctly)
(Could also use Face | Extract here, dissolve middle edge(s) and then bridge between extractions, if wanting to keep the tooth separate from the 'jig')
3). Situation after applying Face | Bridge.
4). Am going to make the absolute minimum wedge shape possible, so need to cut this object in half. Select all edges formed by the bridge op. - select one, press I.
5). Apply Edge | Connect (press C)
6). Apply Edge | LoopCut and then hide the half shown selected. (Hiding this half would easily allow you to obtain another half - by using RMB Mirror - if such a item is needed)
7). Select the face shown (this faces towards the centre of the final sprocket)
8). Apply Face | Extrude -> X (or Normal). The distance isn't too important - you'll see why once you've done one of these sprockets - if you make it too long, it can be changed later - I extruded approx. 1.5 units here)
9). Select the face shown and apply Face | Extrude -> X (or Normal) to make the tip of the eventual sprocket tooth a little longer (about 0.2 here)

At this stage - if you intend making several objects (sprockets), with the same tooth pitch, but different number of teeth, it's probably a good idea to dupe this object and keep an unmodified one as a reference.
10). After deciding on the number of teeth needed, create a cylinder with the same number of sides (if an odd No.) - I chose 17 for this example.
11). Select the end face and apply Face | Inset -> 100% (press shift to constrain)
Select whole object and apply Object | Cleanup (to 'merge' all the overlapping verts in the centre into a single vert - eyeball info readout to check this)
12). Shows the inset faces, select the sector shown - ie the one equi-spaced around the X axis. (If you were making an object with an equal number of sides, just create a cylinder with double the number of edges required and select the appropriate sector for the next op.)
13). Apply Face | Extrude -> Y (or Normal) - Again distance is irrelevant, since all that is actually required is the relevant angled face. (This whole extrude op could actually be eliminated, because all the necessary info to define the required plane exists on the cylinder without it - but it's easier to illustrate this way :) )
14). Going to 'angle' the side of the tooth wedge now.
Select the face shown.
15). Apply Face | Flatten - Choose RMB option - pick plane. Using Alt + RMB, click on the side of the cylinder wedge shown to define the 'flatten plane'. Using Alt + RMB displays an option to select a point through which this plane will pass. Choose this option.
16). Select the top face of the dummy roller cylinder to define this 'plane passing thro' point ie - the centre of the cylinder top face. The side of the wedge will move to the correct position - ie the same angle as the reference plane, but also effectively 'passing thro' the cylinder centre.
Picking the centre of the 'dummy roller' is vitally important to this type of op - since it ensures a constant pitch around the periphery - irrespective of the actual number of teeth / features involved - nowhere else will do.
17). Situation after the wedge side has been adjusted.

At this stage, a (reasonable) sprocket could be made from the geometry that now exists - but I'm going to adjust the area where the wedge joins the dummy roller as this was (slightly) distorted during the flatten op - but this is entirely optional - so ignore 18 - 22 inclusive if you want to :)
18). To do this (adjust the vert), we need the true centre of the dummy roller.
Select 2 verts on opposite sides of the 'roller', connect them to form a diameter, then apply Edge | Cut 2 (just press 2). (Do not use the vert adjusted during flatten (shown selected in 19) - as this no longer lies on the original cylinder circumference)
19). Select the vert to be re-aligned.
20). Apply Vert | Deform -> Inflate. Choose RMB option (pick centre / rad) and select the (newly acquired) centre, shown here in blue, using Alt + RMB
21). Pick any one of the verts on the true circumference (here shown in blue) to define the radius and execute inflate.
22). Vert after adjustment (yes, there is some - but only a little :))
If you do this Inflate routine, you should now repeat the whole of the flatten (exactly as before) to ensure that the wedge is correct - if you don't want to bother with the inflate op, then there isn't (any need to repeat flatten op), of course - but it is imperative that the wedge has correctly angled sides :)
The basic master reference shape for a 17 tooth sprocket is now complete - it's now just a case of using this 'bit of tooling / jig' to make the sprocket.
23). Select the faces shown and apply Face | Extract Region -> Y (or Normal) to the desired thickness of your sprocket. (Could also Extract these top faces and Extrude the extraction )
24). After extruding
25). Select the edgeloop shown and apply Edge | LoopCut to separate the 'tooth' from the pattern. (Hide the pattern)
26). Dissolve any unwanted edges on the mirror face.
27). A Basic single sprocket tooth. Mess around with this as desired to produce whatever effect you want - I wanted sharp(ish) corners so a bit of mechanical bevelling was done (see 29)
28). Mirror and weld the 'tooth wedge' as necessary to form a complete object. If you want a 'solid' object - without a hole thro' -  select all the faces on the inside of the hole and press backspace (dissolve) - this will fill the hole.
29). Close-up of tooth corner detail.
30). Finished object (smoothed twice from 28)

Since this method will cope with any number of teeth around the periphery - it could also be used for front chainwheels (on a bike).
This portion of the model shows one of the 2 'legs' (RHS one) where I adjusted the difference between the outside (with 52 teeth) and the inside - which was based on 5 items. I chose a flat, straight region to incorporate this extra geom. - so the effect on the final (smoothed) model was unlikely to be noticed.

(I chose 52 teeth on purpose (rather than 50) - because I knew this'd raise problems :)
52 tooth chainring done using above method, without any problems - from the teeth point of view, anyway :)

(Basic model smoothed once and rendered in Bryce 4)
1