diff --git a/docs/images/lib-shear-1.JPG b/docs/images/lib-shear-1.JPG new file mode 100644 index 00000000..e4a6d5be Binary files /dev/null and b/docs/images/lib-shear-1.JPG differ diff --git a/docs/lib-shear.md b/docs/lib-shear.md new file mode 100644 index 00000000..66c069d5 --- /dev/null +++ b/docs/lib-shear.md @@ -0,0 +1,49 @@ +# shear + +Shear all child elements along the X-axis, Y-axis, or Z-axis in 3D. + +## Parameters + +- `sx` : An array `[SHy, SHz]`. The new coordinates of child elements are `(x + SHy * y + SHz * z, y, z)`. +- `sy` : An array `[SHx, SHz]`. The new coordinates of child elements are `(x, y + SHx * x + SHz * z, z)`. +- `sz` : An array `[SHx, SHy]`. The new coordinates of child elements are `(x, y, z + SHx * x + SHy * y)`. + +## Examples + + include ; + + color("red") { + shear(sx = [1, 0]) + cube(1); + + translate([2, 0, 0]) shear(sx = [0, 1]) + cube(1); + + translate([4, 0, 0]) shear(sx = [1, 1]) + cube(1); + } + + translate([0, -3, 0]) color("green") { + shear(sy = [1, 0]) + cube(1); + + translate([2, 0, 0]) shear(sy = [0, 1]) + cube(1); + + translate([4, 0, 0]) shear(sy = [1, 1]) + cube(1); + } + + translate([0, -5, 0]) color("blue") { + shear(sz = [1, 0]) + cube(1); + + translate([2, 0, 0]) shear(sz = [0, 1]) + cube(1); + + translate([4, 0, 0]) shear(sz = [1, 1]) + cube(1); + } + +![shear](images/lib-shear-1.JPG) +