/*Basic test file Written by Julian Stirling, 2018 License: MIT*/ // This is a comment x=5; y=6; z=5; r=2; for (n = [-1.5:1:1.5]){ translate([n*x,0,0]){cubehole([x,y,z],r);} } module cubehole(size,holerad) { $fn=28; difference() { cube(size,center=true); cylinder(size[2]+1,r=holerad,center=true); } } // some examples adapted from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/General cube(5); x = 4 + y; rotate(40) square(5,10); translate([10, 5]) { circle(5); square(4); } rotate(60) color("red") { circle(5); square(4); } color("blue") { translate([5, 3, 0]) sphere(5); rotate([45, 0, 45]) { cylinder(10); cube([5, 6, 7]); } } aNumber = 42; aBoolean = true; anotherBoolean = false; aString = "foo"; aRange = [0: 1: 10]; aVector = [1, 2, 3]; aUndef = undef; moreNumbers = [-1, 42, 0.5, 2.99792458e+8, 1.337e3, 314e-2]; echo(moreNumbers) echo("The quick brown fox \tjumps \"over\" the lazy dog.\rThe quick brown fox.\nThe \\lazy\\ dog. \x21 \u03a9 \U01F98A \U01f43e"); vector1 = [1,2,3]; vector2 = [4]; vector3 = [5,6]; new_vector = concat(vector1, vector2, vector3); // [1,2,3,4,5,6] string_vector = concat("abc","def"); // ["abc", "def"] one_string = str(string_vector[0],string_vector[1]); // "abcdef" a = [1,2,3]; echo(len(a)); // 3 // Example which defines a 2D rotation matrix mr = [ [cos(angle), -sin(angle)], [sin(angle), cos(angle)] ]; // modifiers % cube([10, 10, 10]); // background # cube([10, 10, 10]); // debug ! cube([10, 10, 10]); // root * cube([10, 10, 10]); // disable // if example taken from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Other_Language_Features#Rounding_examples if(a==b){ echo ("a==b"); }else if(a>b){ echo ("a>b"); }else if(a<b){ echo ("a<b"); }else{ echo ("???"); } // assert example taken from https://en.wikibooks.org/wiki/OpenSCAD_User_Manual/Other_Language_Features#assert module row(cnt = 3){ // Count has to be a positive integer greater 0 assert(cnt > 0); for (i = [1 : cnt]) { translate([i * 2, 0, 0]) sphere(); } } row(0);