// OpenSCAD file automatically generated by svg2scad2cc.py // parameters tunable by user wallHeight = 10; minWallThickness = 1.6; maxWallThickness = 1.6; minInsideWallThickness = 1.6; maxInsideWallThickness = 1.6; wallFlareWidth = 8; wallFlareThickness = 2; insideWallFlareWidth = 5; insideWallFlareThickness = 1.6; featureHeight = 1; minFeatureThickness = 1; maxFeatureThickness = 3; connectorThickness = 1.6; cuttingTaperHeight = 3; cuttingEdgeThickness = 0.8; // set to non-zero value to generate a demoulding plate demouldingPlateHeight = 2; demouldingPlateSlack = 0.5; // sizing function function clamp(t,minimum,maximum) = min(maximum,max(t,minimum)); function featureThickness(t) = clamp(t,minFeatureThickness,maxFeatureThickness); function wallThickness(t) = clamp(t,minWallThickness,maxWallThickness); function insideWallThickness(t) = clamp(t,minInsideWallThickness,maxInsideWallThickness); size = 100.198; scale = size/100.198; // helper modules: subshapes module ribbon(points, thickness=1) { union() { for (i=[1:len(points)-1]) { hull() { translate(points[i-1]) circle(d=thickness, $fn=8); translate(points[i]) circle(d=thickness, $fn=8); } } } } module wall(points,height,thickness) { module profile() { if (height>=cuttingTaperHeight && cuttingTaperHeight>0 && cuttingEdgeThickness0) { translate([0,0,demouldingPlateHeight]) { // features transferred onto the demoulding plate wall(feature_1,featureHeight,featureThickness(0.794)); wall(feature_2,featureHeight,featureThickness(0.794)); } } } //////////////////////////////////////////////////////////////////////////////// // final call, use main modules translate([100.396*scale + wallFlareWidth/2, -0.397*scale + wallFlareWidth/2,0]) cookieCutter(); // translate([-40,15,0]) cylinder(h=wallHeight+10,d=5,$fn=20); // handle if (demouldingPlateHeight>0) translate([100.396*scale + wallFlareWidth/2 + 100.000*scale + wallFlareWidth + demouldingPlateSlack, -0.397*scale + wallFlareWidth/2,0]) demouldingPlate();