Vastly expanded docs for , with examples and images.

This commit is contained in:
Garth Minette 2021-02-22 18:54:46 -08:00
parent b6d93c0ff8
commit a63c971544

View file

@ -10,9 +10,86 @@
// Constant: $slop // Constant: $slop
// Description: // Description:
// The printer specific amount of slop in mm to print with to make parts fit exactly. // A number of printers, particularly FDM/FFF printers, tend to be a bit sloppy in their printing.
// You may need to override this value for your printer. // This has made it so that some parts won't fit together without adding a bit of extra slop space.
$slop = 0.20; // That is what the `$slop` value is for. The value for this will vary from printer to printer.
// By default, we use a value of 0.00 so that parts should fit exactly for resin and other precision
// printers. This value is measured in millimeters. When making your own parts, you should add
// `$slop` to both sides of a hole that another part is to fit snugly into. For a loose fit, add
// `2*$slop` to each side. This should be done for both X and Y axes. The Z axis will require a
// slop that depends on your layer height and bridging settings, and hole sizes. We leave that as
// a more complicated exercise for the user.
// DefineHeader(NumList): Calibration
// Calibration: To calibrate the `$slop` value for your printer, follow this procedure:
// Print the Slop Calibration part from the example below.
// Take the long block and orient it so the numbers are upright, facing you.
// Take the plug and orient it so that the arrow points down, facing you.
// Starting with the hole with the largest number in front of it, insert the small end of the plug into the hole.
// If you can insert and remove the small end of the plug from the hole without much force, then try again with the hole with the next smaller number.
// Repeat step 5 until you have found the hole with the smallest number that the plug fits into without much force.
// The correct hole should hold the plug when the long block is turned upside-down.
// The number in front of that hole will indicate the `$slop` value that is ideal for your printer.
// Remember to set that slop value in your scripts after you include the BOSL2 library: ie: `$slop = 0.15;`
// Example: Slop Calibration Part.
// min_slop = 0.00;
// slop_step = 0.05;
// holes = 8;
// holesize = [15,15,15];
// height = 20;
// gap = 5;
// l = holes * (holesize.x + gap) + gap;
// w = holesize.y + 2*gap;
// h = holesize.z + 5;
// diff("holes")
// cuboid([l, w, h], anchor=BOT) {
// for (i=[0:holes-1]) {
// right((i-holes/2+0.5)*(holesize.x+gap)) {
// s = min_slop + slop_step * i;
// tags("holes") {
// cuboid([holesize.x + 2*s, holesize.y + 2*s, h+0.2]);
// fwd(w/2-1) xrot(90) linear_extrude(1.1) {
// text(
// text=fmt_fixed(s,2),
// size=0.4*holesize.x,
// halign="center",
// valign="center",
// font="Helvetica"
// );
// }
// }
// }
// }
// }
// back(holesize.y*2.5) {
// difference() {
// union() {
// cuboid([holesize.x+10, holesize.y+10, 15], anchor=BOT);
// cuboid([holesize.x, holesize.y, 15+holesize.z], anchor=BOT);
// }
// up(3) fwd((holesize.y+10)/2) {
// prismoid([holesize.x/2,1], [0,1], h=holesize.y-6);
// }
// }
// }
// Example(2D): Where to add `$slop` gaps.
// $slop = 0.2;
// difference() {
// square([20,12],center=true);
// back(3) square([10+2*$slop,11],center=true);
// }
// back(8) {
// rect([15,5],anchor=FWD);
// rect([10,8],anchor=BACK);
// }
// color("#000") {
// xflip_copy()
// stroke([[5.1,6.1], [6.0,7.1], [8,7.1], [10.5,10]], width=0.3, endcap1="arrow2", endcap2="butt");
// xcopies(21) back(10.5) {
// back(1.2) text("$slop", size=1, halign="center");
// text("gap", size=1, halign="center");
// }
// }
$slop = 0.0;
// Constant: INCH // Constant: INCH