From 861c8451e2d50367f5674af0ae43d7caa67e85f8 Mon Sep 17 00:00:00 2001 From: Florian Festi Date: Fri, 8 Feb 2019 17:32:04 +0100 Subject: [PATCH] Remove call to .close() from .render() method There is really no need for all the generator to care Still calling it is deprecated but won't result in an error --- boxes/__init__.py | 4 ++++ boxes/generators/_template.py | 1 - boxes/generators/alledges.py | 1 - boxes/generators/angledbox.py | 1 - boxes/generators/angledcutjig.py | 1 - boxes/generators/arcade.py | 1 - boxes/generators/bintray.py | 1 - boxes/generators/cardbox.py | 1 - boxes/generators/castle.py | 1 - boxes/generators/closedbox.py | 1 - boxes/generators/concaveknob.py | 1 - boxes/generators/display.py | 1 - boxes/generators/displaycase.py | 1 - boxes/generators/displayshelf.py | 1 - boxes/generators/drillbox.py | 1 - boxes/generators/electronicsbox.py | 1 - boxes/generators/flexbox.py | 1 - boxes/generators/flexbox2.py | 1 - boxes/generators/flexbox3.py | 1 - boxes/generators/flexbox4.py | 1 - boxes/generators/flextest.py | 1 - boxes/generators/flextest2.py | 1 - boxes/generators/folder.py | 1 - boxes/generators/gear.py | 1 - boxes/generators/gearbox.py | 1 - boxes/generators/hingebox.py | 1 - boxes/generators/hooks.py | 1 - boxes/generators/integratedhingebox.py | 1 - boxes/generators/jigsaw.py | 1 - boxes/generators/lamp.py | 1 - boxes/generators/laserclamp.py | 1 - boxes/generators/lbeam.py | 1 - boxes/generators/magazinefile.py | 1 - boxes/generators/nemamount.py | 1 - boxes/generators/openbox.py | 1 - boxes/generators/organpipe.py | 1 - boxes/generators/ottobody.py | 1 - boxes/generators/ottolegs.py | 1 - boxes/generators/ottosoles.py | 1 - boxes/generators/paintbox.py | 1 - boxes/generators/planetary.py | 1 - boxes/generators/planetary2.py | 1 - boxes/generators/polehook.py | 1 - boxes/generators/pulley.py | 1 - boxes/generators/rack19box.py | 1 - boxes/generators/rackbox.py | 1 - boxes/generators/rectangularWall.py | 1 - boxes/generators/regularbox.py | 1 - boxes/generators/robotarm.py | 1 - boxes/generators/rotary.py | 1 - boxes/generators/roundedbox.py | 1 - boxes/generators/royalgame.py | 1 - boxes/generators/shutterbox.py | 1 - boxes/generators/silverwarebox.py | 1 - boxes/generators/stachel.py | 1 - boxes/generators/trafficlight.py | 1 - boxes/generators/trayinsert.py | 1 - boxes/generators/traylayout.py | 1 - boxes/generators/two_piece.py | 1 - boxes/generators/typetray.py | 1 - boxes/generators/ubox.py | 1 - boxes/generators/unevenheightbox.py | 1 - boxes/generators/universalbox.py | 1 - boxes/generators/waivyknob.py | 1 - boxes/generators/winerack.py | 1 - scripts/boxes | 1 + scripts/boxes_example.ipynb | 13 ++++++------- scripts/boxesserver | 1 + 68 files changed, 12 insertions(+), 71 deletions(-) diff --git a/boxes/__init__.py b/boxes/__init__.py index 21cd381..cff030d 100755 --- a/boxes/__init__.py +++ b/boxes/__init__.py @@ -569,7 +569,11 @@ class Boxes: """Finish rendering Call at the end of your .render() method""" + if self.ctx == None: + return + self.ctx.stroke() + self.ctx = None self.surface.flush() self.surface.finish() diff --git a/boxes/generators/_template.py b/boxes/generators/_template.py index 0b9ad0e..4688d7f 100644 --- a/boxes/generators/_template.py +++ b/boxes/generators/_template.py @@ -60,4 +60,3 @@ class BOX(Boxes): # Change class name! # render your parts here - self.close() diff --git a/boxes/generators/alledges.py b/boxes/generators/alledges.py index 075681f..60410d8 100644 --- a/boxes/generators/alledges.py +++ b/boxes/generators/alledges.py @@ -50,4 +50,3 @@ class AllEdges(Boxes): self.edges[c](x, h=4*t) self.text("%s - %s" % (c, self.edges[c].description), y=5*t) - self.close() diff --git a/boxes/generators/angledbox.py b/boxes/generators/angledbox.py index 10e5ffd..9a808ea 100644 --- a/boxes/generators/angledbox.py +++ b/boxes/generators/angledbox.py @@ -136,6 +136,5 @@ class AngledBox(Boxes): self.rectangularWall(lx, h, move="right", edges="fGfG" if fingers else "fGeG") - self.close() diff --git a/boxes/generators/angledcutjig.py b/boxes/generators/angledcutjig.py index 7f99e03..997dd65 100644 --- a/boxes/generators/angledcutjig.py +++ b/boxes/generators/angledcutjig.py @@ -65,4 +65,3 @@ class AngledCutJig(Boxes): # Change class name! self.rectangularTriangle(x, th, "fef", num=2, move="up") self.rectangularTriangle(20, th2, "fef", num=2, move="up") - self.close() diff --git a/boxes/generators/arcade.py b/boxes/generators/arcade.py index 73b68b6..be92982 100644 --- a/boxes/generators/arcade.py +++ b/boxes/generators/arcade.py @@ -97,5 +97,4 @@ class Arcade(Boxes): self.side(move="up") self.side(move="up") - self.close() diff --git a/boxes/generators/bintray.py b/boxes/generators/bintray.py index 4efd810..048a1ee 100644 --- a/boxes/generators/bintray.py +++ b/boxes/generators/bintray.py @@ -139,6 +139,5 @@ class BinTray(Boxes): e = [edges.SlottedEdge(self, self.sx, "g"), "F", "e", "F"] self.rectangularWall(x, self.sy[i]*self.front*2**0.5, e, callback=[self.frontHoles(i)], move="up") - self.close() diff --git a/boxes/generators/cardbox.py b/boxes/generators/cardbox.py index 5441612..ceb58d4 100644 --- a/boxes/generators/cardbox.py +++ b/boxes/generators/cardbox.py @@ -153,4 +153,3 @@ class CardBox(Boxes): for i in range(self.num - 1): self.rectangularWall(h-t, y, "fAff", move="right") - self.close() diff --git a/boxes/generators/castle.py b/boxes/generators/castle.py index 529e54d..3475987 100644 --- a/boxes/generators/castle.py +++ b/boxes/generators/castle.py @@ -43,6 +43,5 @@ class Castle(Boxes): self.rectangularWall(w1_x, w1_h, "efpe", move="right") self.rectangularWall(w2_x, w2_h, "efpe", move="right") - self.close() diff --git a/boxes/generators/closedbox.py b/boxes/generators/closedbox.py index 5e687f8..818835c 100644 --- a/boxes/generators/closedbox.py +++ b/boxes/generators/closedbox.py @@ -52,6 +52,5 @@ class ClosedBox(Boxes): self.rectangularWall(x, y, "ffff", bedBolts=[d2, d3, d2, d3], move="right") self.rectangularWall(x, y, "ffff", bedBolts=[d2, d3, d2, d3]) - self.close() diff --git a/boxes/generators/concaveknob.py b/boxes/generators/concaveknob.py index 74228b9..2c61b50 100644 --- a/boxes/generators/concaveknob.py +++ b/boxes/generators/concaveknob.py @@ -64,5 +64,4 @@ class ConcaveKnob(Boxes): self.parts.concaveKnob(self.diameter, self.serrations, self.rounded, self.angle) - self.close() diff --git a/boxes/generators/display.py b/boxes/generators/display.py index 621c971..37ef265 100644 --- a/boxes/generators/display.py +++ b/boxes/generators/display.py @@ -54,4 +54,3 @@ class Display(Boxes): x-2*r+2*math.sin(math.radians(a))*oh, (90+a, r), oh, (90-a, r)) - self.close() diff --git a/boxes/generators/displaycase.py b/boxes/generators/displaycase.py index d8333dd..e29442b 100644 --- a/boxes/generators/displaycase.py +++ b/boxes/generators/displaycase.py @@ -60,4 +60,3 @@ class DisplayCase(Boxes): self.flangedWall(x, y, "FFFF", flanges=[self.overhang] * 4, move="right") self.flangedWall(x, y, "FFFF", flanges=[self.overhang] * 4) - self.close() diff --git a/boxes/generators/displayshelf.py b/boxes/generators/displayshelf.py index e156c63..ec28bdc 100644 --- a/boxes/generators/displayshelf.py +++ b/boxes/generators/displayshelf.py @@ -80,5 +80,4 @@ class DisplayShelf(Boxes): # change class name here and below for i in range(self.num): self.rectangularWall(x, sl, "Efef", move="up") - self.close() diff --git a/boxes/generators/drillbox.py b/boxes/generators/drillbox.py index ad602c3..5cf9540 100644 --- a/boxes/generators/drillbox.py +++ b/boxes/generators/drillbox.py @@ -66,6 +66,5 @@ in 0.5mm steps, 3 holes each size""" self.rectangularWall(x, y, "ffff", callback=[self.drillholes], move="up") self.rectangularWall(x, y, "ffff", callback=[self.drillholes, self.descriptionText], move="up") - self.close() diff --git a/boxes/generators/electronicsbox.py b/boxes/generators/electronicsbox.py index b9453fa..0c1f91c 100644 --- a/boxes/generators/electronicsbox.py +++ b/boxes/generators/electronicsbox.py @@ -92,6 +92,5 @@ class ElectronicsBox(Boxes): self.rectangularTriangle(tr, tr, "ffe", num=4, callback=[None, lambda: self.hole(trh, trh, d=d1)]) - self.close() diff --git a/boxes/generators/flexbox.py b/boxes/generators/flexbox.py index 726965a..2d38188 100644 --- a/boxes/generators/flexbox.py +++ b/boxes/generators/flexbox.py @@ -122,6 +122,5 @@ class FlexBox(boxes.Boxes): self.flexBoxSide(self.x, self.y, self.radius, move="right") self.flexBoxSide(self.x, self.y, self.radius, move="mirror") - self.close() diff --git a/boxes/generators/flexbox2.py b/boxes/generators/flexbox2.py index 3958d4f..417113a 100644 --- a/boxes/generators/flexbox2.py +++ b/boxes/generators/flexbox2.py @@ -118,6 +118,5 @@ class FlexBox2(Boxes): self.flexBoxSide(self.y, self.h, self.radius, move="right") self.flexBoxSide(self.y, self.h, self.radius, move= "mirror right") self.rectangularWall(self.x, self.h - self.radius - self.latchsize, edges="fFeF") - self.close() diff --git a/boxes/generators/flexbox3.py b/boxes/generators/flexbox3.py index d560fd6..f1e3076 100644 --- a/boxes/generators/flexbox3.py +++ b/boxes/generators/flexbox3.py @@ -165,6 +165,5 @@ class FlexBox3(Boxes): self.flexBoxSide(x, y, r, move="mirror right") self.rectangularWall(z, y, edges="fFeF") - self.close() diff --git a/boxes/generators/flexbox4.py b/boxes/generators/flexbox4.py index 4417226..3ff5e1c 100644 --- a/boxes/generators/flexbox4.py +++ b/boxes/generators/flexbox4.py @@ -117,6 +117,5 @@ class FlexBox4(Boxes): self.flexBoxSide(self.x, self.y, self.radius, move="mirror right") self.rectangularWall(self.x, self.h, edges="FeFF") - self.close() diff --git a/boxes/generators/flextest.py b/boxes/generators/flextest.py index f58894c..2d1139a 100644 --- a/boxes/generators/flextest.py +++ b/boxes/generators/flextest.py @@ -43,6 +43,5 @@ class FlexTest(Boxes): self.edge(y) self.corner(90) - self.close() diff --git a/boxes/generators/flextest2.py b/boxes/generators/flextest2.py index aa0b197..afcfc95 100644 --- a/boxes/generators/flextest2.py +++ b/boxes/generators/flextest2.py @@ -34,6 +34,5 @@ class FlexTest2(Boxes): self.open() self.rectangularWall(x, y, callback=[lambda: self.flex2D(x, y, self.fw)]) - self.close() diff --git a/boxes/generators/folder.py b/boxes/generators/folder.py index e57faf0..1b80716 100644 --- a/boxes/generators/folder.py +++ b/boxes/generators/folder.py @@ -46,6 +46,5 @@ class Folder(Boxes): self.edge(y - 2 * r) self.corner(90, r) - self.close() diff --git a/boxes/generators/gear.py b/boxes/generators/gear.py index 290f619..da73a70 100644 --- a/boxes/generators/gear.py +++ b/boxes/generators/gear.py @@ -93,4 +93,3 @@ Outer diameter 2: %.1fmm Axis distance: %.1fmm """ % (r1, d1, r2, d2, r1+r2), align="bottom left") - self.close() diff --git a/boxes/generators/gearbox.py b/boxes/generators/gearbox.py index dfeb59d..0bc12df 100644 --- a/boxes/generators/gearbox.py +++ b/boxes/generators/gearbox.py @@ -96,6 +96,5 @@ class GearBox(Boxes): self.gears(teeth=self.teeth1, dimension=self.modulus, angle=pressure_angle, mount_hole=mh, profile_shift=profile_shift, move="down") - self.close() diff --git a/boxes/generators/hingebox.py b/boxes/generators/hingebox.py index 9904f9e..bb7831f 100644 --- a/boxes/generators/hingebox.py +++ b/boxes/generators/hingebox.py @@ -83,6 +83,5 @@ class HingeBox(Boxes): if s: self.edges['u'].parts(move="up") - self.close() diff --git a/boxes/generators/hooks.py b/boxes/generators/hooks.py index 0726158..ef959fb 100644 --- a/boxes/generators/hooks.py +++ b/boxes/generators/hooks.py @@ -58,7 +58,6 @@ class Hook(Boxes): lambda: self.hole((h - t)/2, w/2, d=17)]) self.rectangularWall(s-t, w, 'FeFf', move='right') - self.close() def back_callback(self, n): diff --git a/boxes/generators/integratedhingebox.py b/boxes/generators/integratedhingebox.py index aa1e5b1..14e576c 100644 --- a/boxes/generators/integratedhingebox.py +++ b/boxes/generators/integratedhingebox.py @@ -63,6 +63,5 @@ class IntegratedHingeBox(Boxes): self.rectangularWall(y, x, "ffff", move="up") self.rectangularWall(y, x, "ffff") - self.close() diff --git a/boxes/generators/jigsaw.py b/boxes/generators/jigsaw.py index 34f602e..a237db6 100644 --- a/boxes/generators/jigsaw.py +++ b/boxes/generators/jigsaw.py @@ -85,6 +85,5 @@ class JigsawPuzzle(Boxes): # change class name here and below self.burn = 0.0 self.moveTo(10, 10) self.hilbert(self.depth) - self.close() diff --git a/boxes/generators/lamp.py b/boxes/generators/lamp.py index 3496b9c..f27425d 100644 --- a/boxes/generators/lamp.py +++ b/boxes/generators/lamp.py @@ -131,6 +131,5 @@ class Lamp(Boxes): self.rectangularWall(x, h, edges='hFFF', holesMargin=5, move="right") self.rectangularWall(x, h, edges='hFFF', holesMargin=5) - self.close() diff --git a/boxes/generators/laserclamp.py b/boxes/generators/laserclamp.py index 9916d63..3510b17 100644 --- a/boxes/generators/laserclamp.py +++ b/boxes/generators/laserclamp.py @@ -95,4 +95,3 @@ parts sliding on each other to reduce friction. self.roundedPlate(4*t, h_min+h_extra+4*t, edge="e", r=t, move="right", callback=[lambda: self.fingerHolesAt(1*t, 2*t, h_min+h_extra)]) self.rectangularWall(1.1*t, h_min+h_extra, "efef") - self.close() diff --git a/boxes/generators/lbeam.py b/boxes/generators/lbeam.py index 4bd21e6..323ba01 100644 --- a/boxes/generators/lbeam.py +++ b/boxes/generators/lbeam.py @@ -40,5 +40,4 @@ class LBeam(Boxes): self.rectangularWall(x, h, "eFee", move="right") self.rectangularWall(y, h, "eeef") - self.close() diff --git a/boxes/generators/magazinefile.py b/boxes/generators/magazinefile.py index 35ac04b..7629b4e 100644 --- a/boxes/generators/magazinefile.py +++ b/boxes/generators/magazinefile.py @@ -81,6 +81,5 @@ class MagazinFile(Boxes): self.moveTo(y + 15, h + hi + 15, 180) self.side(y, h, hi) - self.close() diff --git a/boxes/generators/nemamount.py b/boxes/generators/nemamount.py index de6deb3..cf2b21c 100644 --- a/boxes/generators/nemamount.py +++ b/boxes/generators/nemamount.py @@ -53,5 +53,4 @@ class NemaMount(Boxes): self.fingerHolesAt(0.5*t, t, x, 90) self.fingerHolesAt(1.5*t+x, t, x, 90) self.fingerHolesAt(t, 0.5*t, x, 0) - self.close() diff --git a/boxes/generators/openbox.py b/boxes/generators/openbox.py index a3dedf0..eaeaba1 100644 --- a/boxes/generators/openbox.py +++ b/boxes/generators/openbox.py @@ -50,5 +50,4 @@ class OpenBox(Boxes): self.rectangularWall(x, y, "efff", bedBolts=[d2, d3, d2, d3], move="left") #self.rectangularWall(x, y, "ffff", bedBolts=[d2, d3, d2, d3]) - self.close() diff --git a/boxes/generators/organpipe.py b/boxes/generators/organpipe.py index 4eab608..d955b82 100644 --- a/boxes/generators/organpipe.py +++ b/boxes/generators/organpipe.py @@ -149,4 +149,3 @@ class OrganPipe(Boxes): # Change class name! lambda:self.hole(mouth_width/2, pipe_depth/2, d=air_hole_diameter)], move="right") self.rectangularWall(mouth_width, pipe_depth - jet_thickness, "ffef", move="right") - self.close() diff --git a/boxes/generators/ottobody.py b/boxes/generators/ottobody.py index 5b3fd29..92c8835 100644 --- a/boxes/generators/ottobody.py +++ b/boxes/generators/ottobody.py @@ -151,6 +151,5 @@ class OttoBody(Boxes): self.rectangularWall(y-5.6, 14, callback=[ None, None, None, self.rightBottomCB], move="up") - self.close() diff --git a/boxes/generators/ottolegs.py b/boxes/generators/ottolegs.py index c6a2b73..38defd0 100644 --- a/boxes/generators/ottolegs.py +++ b/boxes/generators/ottolegs.py @@ -150,5 +150,4 @@ class OttoLegs(Boxes): self.ankles(30, 25, callback=[None, self.ankle1], move="right") self.ankles(30, 25, callback=[None, self.ankle2], move="right") self.partsMatrix(2, 2, "right", self.servoring) - self.close() diff --git a/boxes/generators/ottosoles.py b/boxes/generators/ottosoles.py index c531b90..aad3168 100644 --- a/boxes/generators/ottosoles.py +++ b/boxes/generators/ottosoles.py @@ -70,4 +70,3 @@ class OttoSoles(Boxes): self.edges["D"](w2) self.polyline(0, 90, c2/2., 45, (x-2*c, 3), 45) self.moveTo(0, w * 2**0.5 + 2*2**0.5*self.burn) - self.close() diff --git a/boxes/generators/paintbox.py b/boxes/generators/paintbox.py index 98a7b87..b6284e1 100644 --- a/boxes/generators/paintbox.py +++ b/boxes/generators/paintbox.py @@ -96,4 +96,3 @@ class PaintStorage(Boxes): lambda: self.rectangularHole(h/3, x/2., hh, hx, r=hr), lambda: self.fingerHolesAt(0, self.canheight/3, x, 0)], move="left") - self.close() diff --git a/boxes/generators/planetary.py b/boxes/generators/planetary.py index 83528db..739add9 100644 --- a/boxes/generators/planetary.py +++ b/boxes/generators/planetary.py @@ -105,6 +105,5 @@ class Planetary(Boxes): angle=pressure_angle, mount_hole=self.shaft, profile_shift=profile_shift, move="up") - self.close() diff --git a/boxes/generators/planetary2.py b/boxes/generators/planetary2.py index 5552b93..d3140be 100644 --- a/boxes/generators/planetary2.py +++ b/boxes/generators/planetary2.py @@ -208,4 +208,3 @@ class Planetary2(Boxes): profile_shift=profile_shift, move="up only") self.text("1:%.1f" % abs(ratio)) - self.close() diff --git a/boxes/generators/polehook.py b/boxes/generators/polehook.py index cee32d2..da4aac7 100644 --- a/boxes/generators/polehook.py +++ b/boxes/generators/polehook.py @@ -128,5 +128,4 @@ class PoleHook(Boxes): # change class name here and below for i in range(2): self.parts.disc(ww, move="up") - self.close() diff --git a/boxes/generators/pulley.py b/boxes/generators/pulley.py index 31ababd..01c1511 100644 --- a/boxes/generators/pulley.py +++ b/boxes/generators/pulley.py @@ -80,6 +80,5 @@ class Pulley(Boxes): for i in range(int(math.ceil(self.h / self.thickness))): self.pulley(self.teeth, self.profile, insideout=self.insideout, r_axle=self.axle / 2.0, move="right") - self.close() diff --git a/boxes/generators/rack19box.py b/boxes/generators/rack19box.py index 01091db..1a984f4 100644 --- a/boxes/generators/rack19box.py +++ b/boxes/generators/rack19box.py @@ -93,7 +93,6 @@ class Rack19Box(Boxes): self.rectangularTriangle(tr, tr, "ffe", num=4, callback=[None, lambda: self.hole(trh, trh, d=d1)]) - self.close() def render(self): self._render(type=19) diff --git a/boxes/generators/rackbox.py b/boxes/generators/rackbox.py index 6b72299..00f9330 100644 --- a/boxes/generators/rackbox.py +++ b/boxes/generators/rackbox.py @@ -94,6 +94,5 @@ class RackBox(Boxes): self.rectangularTriangle(tr, tr, "ffe", num=4, callback=[None, lambda: self.hole(trh, trh, d=d1)]) - self.close() diff --git a/boxes/generators/rectangularWall.py b/boxes/generators/rectangularWall.py index d3b7f28..f2a7a04 100644 --- a/boxes/generators/rectangularWall.py +++ b/boxes/generators/rectangularWall.py @@ -71,4 +71,3 @@ class RectangularWall(Boxes): self.moveTo(3*t, 3*t) self.rectangularWall(self.x, self.h, self.edgetypes, callback=self.cb) - self.close() diff --git a/boxes/generators/regularbox.py b/boxes/generators/regularbox.py index 94d41d9..2f14110 100644 --- a/boxes/generators/regularbox.py +++ b/boxes/generators/regularbox.py @@ -94,6 +94,5 @@ class RegularBox(Boxes): edges="fgfg" if fingers else "fgeg") - self.close() diff --git a/boxes/generators/robotarm.py b/boxes/generators/robotarm.py index 4bbbdb7..8df6568 100644 --- a/boxes/generators/robotarm.py +++ b/boxes/generators/robotarm.py @@ -58,5 +58,4 @@ class RobotArm(Boxes): # change class name here and below servoClsA = getattr(servos, servoA) servoClsB = getattr(servos, servoB) armcls(self, servoClsA(self), servoClsB(self))(length, move="up") - self.close() diff --git a/boxes/generators/rotary.py b/boxes/generators/rotary.py index 99060f8..b1e625c 100644 --- a/boxes/generators/rotary.py +++ b/boxes/generators/rotary.py @@ -327,6 +327,5 @@ class Rotary(Boxes): self.parts.disc(self.diameter - 2 * self.rubberthickness + 4, hole=self.axle, move="right up") - self.close() diff --git a/boxes/generators/roundedbox.py b/boxes/generators/roundedbox.py index adb5900..3d00859 100644 --- a/boxes/generators/roundedbox.py +++ b/boxes/generators/roundedbox.py @@ -81,6 +81,5 @@ class RoundedBox(Boxes): self.roundedPlate(x, y, r, wallpieces=self.wallpieces, move="up only") self.surroundingWall(x, y, r, h, "F", "F", pieces=self.wallpieces) - self.close() diff --git a/boxes/generators/royalgame.py b/boxes/generators/royalgame.py index 64a5a24..1181987 100644 --- a/boxes/generators/royalgame.py +++ b/boxes/generators/royalgame.py @@ -182,4 +182,3 @@ class RoyalGame(Boxes): # Change class name! self.dice(size, 4, move="up") self.dice(size, 4, move="up") - self.close() diff --git a/boxes/generators/shutterbox.py b/boxes/generators/shutterbox.py index 7043f98..d916231 100644 --- a/boxes/generators/shutterbox.py +++ b/boxes/generators/shutterbox.py @@ -227,4 +227,3 @@ class ShutterBox(Boxes): else: self.rectangularWall(ls, y, "fefA", move="right") - self.close() diff --git a/boxes/generators/silverwarebox.py b/boxes/generators/silverwarebox.py index 3a2bada..8e2278d 100644 --- a/boxes/generators/silverwarebox.py +++ b/boxes/generators/silverwarebox.py @@ -107,4 +107,3 @@ class Silverware(Boxes): self.moveTo(-3.0 * (l + 2 * t + 8 * b), h - 10 + 2 * t + 8 * b) self.basePlate(x, y, r) - self.close() diff --git a/boxes/generators/stachel.py b/boxes/generators/stachel.py index e61fd41..6eb0285 100644 --- a/boxes/generators/stachel.py +++ b/boxes/generators/stachel.py @@ -97,5 +97,4 @@ class Stachel(Boxes): self.layer(ri, ro, rp, True, move="up") self.layer(ri, ro, rp, move="up") - self.close() diff --git a/boxes/generators/trafficlight.py b/boxes/generators/trafficlight.py index f06c7bb..7592585 100644 --- a/boxes/generators/trafficlight.py +++ b/boxes/generators/trafficlight.py @@ -168,5 +168,4 @@ When turned by 90°, it can be also used to create a bottle holder.""" for i in range(n): self.parts.disc(h-2*t, move="right") - self.close() diff --git a/boxes/generators/trayinsert.py b/boxes/generators/trayinsert.py index 60a9483..a5ba063 100644 --- a/boxes/generators/trayinsert.py +++ b/boxes/generators/trayinsert.py @@ -48,6 +48,5 @@ class TrayInsert(Boxes): e = ["e", "e", edges.SlottedEdge(self, self.sx[::-1], "e", slots=0.5 * h), "e"] self.rectangularWall(x, h, e, move="up") - self.close() diff --git a/boxes/generators/traylayout.py b/boxes/generators/traylayout.py index 7f31def..e4e0e7e 100644 --- a/boxes/generators/traylayout.py +++ b/boxes/generators/traylayout.py @@ -327,7 +327,6 @@ class TrayLayout2(TrayLayout): if x < lx: posx += self.x[x] + self.thickness - self.close() def parse(self, input): x = [] diff --git a/boxes/generators/two_piece.py b/boxes/generators/two_piece.py index 8af1412..24d71e6 100644 --- a/boxes/generators/two_piece.py +++ b/boxes/generators/two_piece.py @@ -62,4 +62,3 @@ class TwoPiece(Boxes): self.rectangularWall(x, y, "hhhh", bedBolts=None, move="right") self.rectangularWall(x+d, y+d, "FFFF", bedBolts=None, move="right") - self.close() diff --git a/boxes/generators/typetray.py b/boxes/generators/typetray.py index d84411b..f256235 100644 --- a/boxes/generators/typetray.py +++ b/boxes/generators/typetray.py @@ -148,6 +148,5 @@ class TypeTray(_TopEdge): self.rectangularWall(y, hi, e, move="up") - self.close() diff --git a/boxes/generators/ubox.py b/boxes/generators/ubox.py index 62fa1fe..6aaf767 100644 --- a/boxes/generators/ubox.py +++ b/boxes/generators/ubox.py @@ -105,5 +105,4 @@ class UBox(_TopEdge, _ChestLid): self.drawLid(x, h, self.top_edge) self.drawAddOnLid(x, h, self.lid) - self.close() diff --git a/boxes/generators/unevenheightbox.py b/boxes/generators/unevenheightbox.py index 0252447..3196ba6 100644 --- a/boxes/generators/unevenheightbox.py +++ b/boxes/generators/unevenheightbox.py @@ -112,6 +112,5 @@ class UnevenHeightBox(Boxes): self.wall(x, h1, h0, "FFF", move="right" + (" only" if h1 == h0 == 0.0 else "")) - self.close() diff --git a/boxes/generators/universalbox.py b/boxes/generators/universalbox.py index e37ef20..a772f0c 100644 --- a/boxes/generators/universalbox.py +++ b/boxes/generators/universalbox.py @@ -92,5 +92,4 @@ class UniversalBox(_TopEdge, _ChestLid): self.rectangularWall(y, h, [b, "f", t4, "f"], bedBolts=[d3], move="up") - self.close() diff --git a/boxes/generators/waivyknob.py b/boxes/generators/waivyknob.py index 1407bd8..1b185ce 100644 --- a/boxes/generators/waivyknob.py +++ b/boxes/generators/waivyknob.py @@ -58,5 +58,4 @@ class WaivyKnob(Boxes): move="right") self.parts.waivyKnob(self.diameter, self.serrations, angle) - self.close() diff --git a/boxes/generators/winerack.py b/boxes/generators/winerack.py index 2c72b26..e7d2c73 100644 --- a/boxes/generators/winerack.py +++ b/boxes/generators/winerack.py @@ -131,5 +131,4 @@ class WineRack(Boxes): self.partsMatrix(tc, cx, "up", self.rectangularWall, r-2*self.delta, h, "fefe") - self.close() diff --git a/scripts/boxes b/scripts/boxes index b4dc4b8..63dfd04 100755 --- a/scripts/boxes +++ b/scripts/boxes @@ -69,6 +69,7 @@ def run_generator(name, args): box = generators[lower_name]() box.parseArgs(args) box.render() + box.close() else: msg = ('Unknown generator \'{}\'. Use boxes --list to get a list of ' 'available commands.\n').format(name) diff --git a/scripts/boxes_example.ipynb b/scripts/boxes_example.ipynb index ec55b5d..1c7389d 100644 --- a/scripts/boxes_example.ipynb +++ b/scripts/boxes_example.ipynb @@ -21,13 +21,13 @@ "import tempfile, os\n", "\n", "import sys\n", - "#sys.path.append('/PATH/TO/boxes') # uncomments and adjust if your Boxes.py copy in not in the Python path\n", + "#sys.path.append('..') # uncomments and adjust if your Boxes.py copy in not in the Python path\n", "from boxes import *" ] }, { "cell_type": "code", - "execution_count": 8, + "execution_count": 6, "metadata": { "scrolled": true }, @@ -36,7 +36,7 @@ "data": { "image/svg+xml": [ "\n", - "\n", + "\n", "\n", "\n", "\n", @@ -107,15 +107,14 @@ " self.rectangularWall(x, h, \"eFhF\", move=\"up\", callback=[None, None, hole, hole]) # back board\n", "\n", " self.rectangularWall(x, y, \"ehfh\", move=\"up\") # top board\n", - " self.rectangularTriangle(y, h, \"ff\", num=2) # braces\n", + " self.rectangularTriangle(y, h, \"ff\", num=2) # braces \n", " \n", - " \n", - " self.close()\n", "\n", "b = Example()\n", "fd, fn = tempfile.mkstemp()\n", "b.parseArgs(['--reference=0', '--debug=0', '--output=' + fn])\n", "b.render()\n", + "b.close()\n", "\n", "display(SVG(fn))\n", "os.close(fd)\n", @@ -146,7 +145,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.6.6" + "version": "3.6.8" } }, "nbformat": 4, diff --git a/scripts/boxesserver b/scripts/boxesserver index fcef1f6..914650a 100755 --- a/scripts/boxesserver +++ b/scripts/boxesserver @@ -396,6 +396,7 @@ Create boxes and more with a laser cutter! [('Content-type', 'application/unknown; charset=utf-8')])) fd, box.output = tempfile.mkstemp() box.render() + box.close() result = open(box.output).readlines() os.close(fd) os.remove(box.output)