Accounting for clearances and tolerances

ISO/BS8888 drawing standards state that all CAD items are both master (in the absence of data on a drawing) and should be middle limit on tolerances wherever possible.
I believe this is due to the increasing use of CAD files being loaded directly into CNC machining, wire cutting, laser cutting, 3D printing, etc, machines - unlike the classic approach of manually programming the CNC, or manual milling/turning parts, where dimension and tolerances would be read directly from paper drawings.

This can make it a bit tricky with the classic approach of using ISO standard fits, e.g. H7/h6 hole and shaft fits, which are often based upon a nominal size for both the hole and shaft (e.g. 10mm) but with unequal tolerances on both (e.g. shown on the drawing as: 10mm +0.000mm +0.015mm on the hole, 10mm -0.000mm -0.009mm on the shaft).



(Images from Limits, Fits and Tolerance Calculator (ISO system))

This example should allow both parts to fit together in all cases - from a (relatively!) loose fit with 0.024mm clearance down to a size-for-size fit with 0.000mm clearance (albeit with a bit of effort likely required).

But yes it is good practice where possible to set the tolerance for a face/feature to mid-limit.
In the above example, it would be sensible to change it to be something like 10.008mm with a +/- 0.007mm equal tolerance on the Hole (well it would be 10.0075mm +/- 0.0075mm if being super precise!), and 9.995mm +/- 0.005mm on the Shaft.

As mentioned by molligdj, unfortunately Shapr doesn’t have any way of managing tolerances on drawings/parts yet (which is a must for any meaningful engineering drawings, along with GD&T call-outs for things like roundness, runout and perpendicularity), but I know it’s on the roadmap, and it’s been great seeing the functionality of drawings improve more recently.