Interested in what Iain's method might be, but the method I like is:
1) Draw the 'skeleton' as a connected (simple?) graph in the plane
2) Place crosses at the midpoint of each edge
3) Connect the crosses with shortest (non-crossing!) connections (bit vague this, but is more obvious by hand)
4) Erase the crosses, and run over the line, assigning under/over as appropriate - you can also thicken at this step
This gives good free-standing knots, although may be more work for the dense knotwork in the OP's examples.