import processing.pdf.*; int resolution = 72; //box dimensions in inches float boxSizeInches = 1.5; float boxThicknessInches = .13; float stemHeightInches = 3.5; float kerfInches = 0.008; //box dimensions in pixels int boxSize = round(boxSizeInches * resolution); int boxThickness = round(boxThicknessInches * resolution); int stemWidth = round(boxSize/3); int stemHeight = round(stemHeightInches * resolution); float kerf = kerfInches * resolution; int center = round((boxSize + 25)/2); int upLeftX = center - (boxSize/2); int upLeftY = 10; void setup(){ size(boxSize*2+50+stemWidth,boxSize*3 + 50); noLoop(); beginRecord(PDF, "lampshade"+boxSizeInches+"x"+boxThicknessInches+".pdf"); } void draw(){ //stem int stemUpLeftX = upLeftX; makeStem(stemUpLeftX, upLeftY); makeStem(stemUpLeftX+stemWidth-boxThickness+2,upLeftY-3); makeStem(stemUpLeftX+(stemWidth-boxThickness)*2+4,upLeftY-6); makeStem(stemUpLeftX+(stemWidth-boxThickness)*3+6,upLeftY-9); endRecord(); } void makeStem(int stemUpLeftX, int upLeftY){ beginShape(); vertex(stemUpLeftX, upLeftY); vertex(stemUpLeftX + stemWidth/2, upLeftY); vertex(stemUpLeftX + stemWidth/2, upLeftY + boxThickness); vertex(stemUpLeftX + stemWidth - boxThickness, upLeftY + boxThickness); vertex(stemUpLeftX + stemWidth - boxThickness, upLeftY + stemHeight/2); vertex(stemUpLeftX + stemWidth, upLeftY + stemHeight/2); vertex(stemUpLeftX + stemWidth, upLeftY + stemHeight); vertex(stemUpLeftX + stemWidth/2, upLeftY + stemHeight); vertex(stemUpLeftX + stemWidth/2, upLeftY + stemHeight - boxThickness); vertex(stemUpLeftX + boxThickness, upLeftY + stemHeight - boxThickness); vertex(stemUpLeftX + boxThickness, upLeftY + stemHeight/2); vertex(stemUpLeftX, upLeftY + stemHeight/2); endShape(CLOSE); }