d>V5      !"#$%&'()*+,-./012342Type-checked wrappers for the OpenSCAD primitives.&#xa9; Mike Meyer, 2014BSD4 mwm@mired.org experimental Safe-Inferred2462,A three-dimensional model. You can create a  from a  using  .UA two-dimensional model. Note that the types do not mix implicitly. You must turn a  into a  using one of , , or .A  is either a , a , a transformation of a , a combination of s, or a # with it's rendering tweaked by a . s can be rendered.5A 5 controls how edges in a   are joined by the 6 operation.A  is used to set one of the special variables that control the mesh used during generation of circular objects. They appear as arguments to various constructors, as well as in the */ function to set them for the argument objects.JA 4x4 transformation matrix specifying a complete 3-space transform of a . is used where  expects an OpenSCAD vector of length 3. is used where  expects an OpenSCAD vector of length 2.Create a rectangular  with  rectangle  x-size y-size.   is a  with both sides the same size. Create a circular  with circle radius .  Project a  into a  with  projection cut . Turn a list of list of s and an int into  polygon points path convexity. The argument to polygon is the list of paths that is the second argument to the OpenSCAD polygon function, except the points are s, not references to ~s in that functions points argument. If you were just going to pass in the points, it now needs to be in an extra level of List.66 a  s edges by offset  delta join. Create a sphere with sphere radius .Create a box with cube x-size y-size z-size0A convenience function for creating a cube as a ! with all sides the same length.Create a cylinder with  cylinder radius height . Create an oblique cylinder with  cylinder radius1 height radius2 .Turn a list of list of s and an int into  polyhedron points 7 convexity. The argument to polyhedron is the list of paths that is the second argument to the OpenSCAD polyhedron function, except the points are s, not the references to s used in that functions pointsJ argument. The function will build the appropriate function call, using faces9 if you pass in a side that uses more than 3 points, or  triangles if not. Note that faces2 doesn't work in older versions of OpenSCAD, and  triangles_ is depreciated. Until a mechanism to set the version of OpenSCAD is provided, generating the faces version will cause an error. Passing in 7 that have fewer than three points, have collinear points or have points that aren't in the same plane is an error that is caught by the library. Transform a  with a Turn a  into a  exactly as is. Extrude a  along a line with linear_extrude. Rotate a  around the origin with rotate_extrude  convexity  #Load a height map from a file with surface FilePath Invert Convexity. is import filename.Scale a 7, the vector specifying the scale factor for each axis. Resize a s to occupy the dimensions given by the vector. Note that this does nothing prior to the 2014 versions of OpenSCAD. Rotate a 4 by different amounts around each of the three axis. Translate a  along a . Mirror a ( across a plane intersecting the origin. Render a W in a specific color. This doesn't use the OpenSCAD color model, but instead uses the  model. The  module rexports  so you can conveniently say  8 . Render a ( in a transparent color. This uses the    color model. A 2 that just goes up, since those seem to be common.!Create the union of a list of s."%Create the intersection of a list of s.#The difference between two s.$The Minkowski sum of a list of s.%The convex hull of a list of s.&&4 does all the real work. It will walk the AST for a &, returning an OpenSCAD program in a 9.'+A convenience function to render a list of s by taking their union.(-A convenience function to write the rendered  to standard output.)"A convenience function to write a ! of s to standard output.** uses assign to set a  variable for it's s.++ is used to set the $fa variable in a  or *.,, is used to set the $fs variable in a  or *.-- is used to set the $fn variable in a  or *... is used where a : is needed but we don't want to change any of the values./Use /< to turn a diameter into a radius for circles, spheres, etc.0WYou can use '(#)' to write transformations in a more readable postfix form, cube 3  color red  translate (-3, -3, -3)u:;<=>?@ABCDEFGHIJKLMNOPQRST7UVWXYZ[\5]^_`abcdefghijk 6 heighttwistscaleslices convexity to extrude !"#$%&lmnopq'()rstuv*+,-./0wxyz{|}~8       !"#$%&'()*+,-./01  !"#$% &'*-,+./()0FIHGFEDCBA@?>=<;:J TSRQPONMLK7VUW\[ZYX5_^]cba`defghijk 6  !"#$%&lmnopq'()rstuv*+,-./0wxyz0 Safe-Inferred91("*) = ! U+222A, UNION2(")) = "U+2229, INTERSECTION3(") = #U+2216, SET MINUS4(") = Symmetric differenceU+2206, INCREMENT1234123412341234123 4     !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXWYZ[\]^_`abcdXefghijklmnopqrstuvwxyz{|}~CDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCDCD CD CD CD CD CDCDCDCDCDCDCDCDCDCDCDCDCOpenSCAD-0.3.0.0Graphics.OpenSCADGraphics.OpenSCAD.UnicodeGraphicsOpenSCADDataColour Data.ColourNames Data.Coulor AphaColourModel3dModel2dModelFacet TransMatrixVector3dVector2dVector rectanglesquarecircle projectionpolygonsphereboxcubecylinder obCylinder polyhedron multMatrixsolid linearExtrude rotateExtrudesurface importFilescaleresizerotate translatemirrorcolor transparentupunion intersection difference minkowskihullrenderrenderLdrawdrawLvarfafsfndefdiam#∪∩∖∆JoinoffsetSides colour-2.3.3Data.Colour.NamesredbaseGHC.BaseStringVarImport DifferenceHull Minkowski IntersectionUnion TransparentColorMirror TranslateRotateResizeScaleSolidShapeToSolidSurface RotateExtrude LinearExtrude MultMatrix Polyhedron ObCylinderCylinderBoxSphere TrianglesFacesOffset ProjectionPolygonCircle RectangleMiterRoundBevelDefFnFsFarVectortoList#*#-#.isZero collinearcoplanarrShaperJoinrSolidrVectorLrSidesrListLrList rVecSolidrQuadrFacet showFacet $fMonoidModel$fSemigroupModel $fVector(,,) $fVector(,) yellowgreenyellow whitesmokewhitewheatviolet turquoisetomatothistletealtan steelblue springgreensnow slategrey slategray slateblueskybluesilversiennaseashellseagreen sandybrownsalmon saddlebrown royalblue rosybrownpurple powderblueplumpinkperu peachpuff papayawhip palevioletred paleturquoise palegreen palegoldenrodorchid orangeredorange olivedraboliveoldlacenavy navajowhitemoccasin mistyrose mintcream midnightbluemediumvioletredmediumturquoisemediumspringgreenmediumslatebluemediumseagreen mediumpurple mediumorchid mediumbluemediumaquamarinemaroonmagentalinen limegreenlime lightyellowlightsteelbluelightslategreylightslategray lightskyblue lightseagreen lightsalmon lightpink lightgrey lightgreen lightgraylightgoldenrodyellow lightcyan lightcoral lightblue lemonchiffon lawngreen lavenderblushlavenderkhakiivoryindigo indianredhotpinkhoneydew greenyellowgreengreygray goldenrodgold ghostwhite gainsborofuchsia forestgreen floralwhite firebrick dodgerbluedimgreydimgray deepskybluedeeppink darkviolet darkturquoise darkslategrey darkslategray darkslateblue darkseagreen darksalmondarkred darkorchid darkorangedarkolivegreen darkmagenta darkkhakidarkgrey darkgreendarkgray darkgoldenroddarkcyandarkbluecyancrimsoncornsilkcornflowerbluecoral chocolate chartreuse cadetblue burlywoodbrown bluevioletblueblanchedalmondbisquebeigeazure aquamarineaqua antiquewhite alicebluereadColourNameData.Colour.Internalblack