cylindertransport.py

changeset 2
9ec8fa3d0348
parent 1
14a420653a5f
child 3
d8745f771267
--- a/cylindertransport.py	Mon Apr 03 01:32:02 2017 +0200
+++ b/cylindertransport.py	Mon Apr 03 02:14:43 2017 +0200
@@ -1,50 +1,16 @@
 from math import sqrt
 from PIL import Image, ImageDraw, ImageFont
 import argparse, sys
-
-# pfad zu den TTF files (arial.ttf)
-FONTBASE = "/usr/share/fonts/truetype/msttcorefonts/"
-
-SPACE_MIN = 10 # minimum offset between bottles
-
-SCADSCRIPT = "include <cylindertransport.scad>\n"
+from data import CYLINDER, PIPES
+from config import FONTBASE
 
-# Durchmesser, Laenge, Volumen und Gewicht der verfuegbaren Tauchflaschen
-CYLINDER = {
-	"03"	: [100, 515, 3,  4.7],
-	"05"	: [140, 466, 5,	 5.7],
-	"07"	: [140, 605, 7,  8.8],
-	"08"	: [171, 490, 8,  10.4],
-	"10"	: [171, 595, 10, 12.4],
-	"12S"	: [204, 550, 12, 15.4],
-	"12L"	: [171, 690, 12, 14.5],
-	"15"	: [204, 640, 15, 18.1],
-}
-
-PIPES = [
-	["DN8", 13.5],
-	["DN10", 17.2],
-	["DN15", 21.3],
-	["DN20", 26.9],
-	["DN25", 33.7],
-	["DN32", 42.4],
-	["DN40", 48.3],
-	["DN50", 60.3],
-	["DN65", 76.1],
-	["DN80", 88.9],
-	["DN100", 114.3],
-	["DN125", 139.7],
-	["DN150", 168.3],
-]
+SCADSCRIPT = "// Color support only in compile mode (F5)\ninclude <cylindertransport.scad>\n"
 
 def offset(r1, r2):
-	o = (2*sqrt(r1*r2))
-	#print "offset %i" % o
-	return o
+	return (2*sqrt(r1*r2))
 
-def calc_min(r1, r2):
+def calc_min(r1, r2, space_min):
 	# stupider annaehreungsversuch, bis sich die beiden Tauchflaschen r1 und r2 nicht mehr beruehren
-	#print "r1=%.0f r2=%.0f" % (r1, r2)
 	for p in PIPES:
 		i = p[1] / 2
 		if i>r1 or i>r2:
@@ -53,7 +19,7 @@
 		x1 = offset(r1, i)
 		x2 = offset(r2, i)
 		x = (x1 + x2) - (r1+r2) 
-		if x >= SPACE_MIN:
+		if x >= space_min:
 			print "%s Pipe (%.1fmm), Cylinder spacing: %imm" % (p[0], p[1], x)
 			return [r1, i, r2, p[0]]
 	return None
@@ -69,7 +35,6 @@
 def draw_bottles(draw, args):
 	global SCADSCRIPT
 	bottles = args.cylinders
-	SPACE_MIN = args.space_min
 
 	spacerY1 = 200
 	spacerY2 = 220
@@ -77,7 +42,7 @@
 	r1 = CYLINDER[bottles[0]][0] / 2
 	r2 = CYLINDER[bottles[1]][0] / 2
 	x = 20 + r1 # start offset x
-	r1, r2, r3, dn  = calc_min(r1, r2)
+	r1, r2, r3, dn  = calc_min(r1, r2, args.space_min)
 	circ(draw, x, r2, dn, 0.5)
 	SCADSCRIPT = SCADSCRIPT + "spacer(%i, %i, %i, %i);\n" % (
 		x, r2, r3, CYLINDER[bottles[0]][1])
@@ -86,7 +51,7 @@
 	for i in range(0, len(bottles)-1):
 		r1 = CYLINDER[bottles[i]][0] / 2
 		r2 = CYLINDER[bottles[i+1]][0] / 2
-		r1, r2, r3, dn  = calc_min(r1, r2)
+		r1, r2, r3, dn  = calc_min(r1, r2, args.space_min)
 		# draw bottle
 		circ(draw, x, r1, "Tank "+bottles[i])
 		SCADSCRIPT = SCADSCRIPT + "tank(%i, %i, %i);\n" % (
@@ -130,7 +95,7 @@
 	parser.add_argument('cylinders', metavar='cylinder', type=str, nargs='+',
                     help='cylinder types')
 	parser.add_argument('--space', dest='space_min', type=int,
-                    default=SPACE_MIN,
+                    default=10,
                     help='minimum space between cylinders (mm)')
 
 	args = parser.parse_args()

mercurial