Download raw (5.8 KB)
# -*- coding: utf-8 -*- from configureMemory import configureMemory from chiplotle.hpgl import commands from chiplotle import * import math VIRTUAL = False def mm(amount): return amount * 40 def cm(amount): return amount * 400 def units_to_cm(amount): return amount / 400.0 # Select pen # Move to far right # Ask to start # Plot def kask(): #Draws the KASK logo logo = shapes.group([]) half = shapes.group([]) lower_half = shapes.group([]) charheight = mm(4) charwidth = mm(2.5) vertical_indent = charheight / 2.0 k_1 = shapes.label("K", units_to_cm(charwidth), units_to_cm(charheight),0,0) a = shapes.label("A", units_to_cm(charwidth), units_to_cm(charheight),0,0) transforms.offset(a, (1.75 * charwidth, vertical_indent)) s = shapes.label("S", units_to_cm(charwidth), units_to_cm(charheight),0,0) transforms.offset(s, (3.5 * charwidth, vertical_indent)) k_2 = shapes.label("K", units_to_cm(charwidth), units_to_cm(charheight),0,0) transforms.offset(k_2, (5 * charwidth, 0)) half.append(k_1) half.append(a) half.append(s) half.append(k_2) k_3 = shapes.label("K", units_to_cm(charwidth), units_to_cm(charheight),0,0) a_1 = shapes.label("A", units_to_cm(charwidth), units_to_cm(charheight),0,0) transforms.offset(a_1, (1.75 * charwidth, vertical_indent)) s_1 = shapes.label("S", units_to_cm(charwidth), units_to_cm(charheight),0,0) transforms.offset(s_1, (3.5 * charwidth, vertical_indent)) k_4 = shapes.label("K", units_to_cm(charwidth), units_to_cm(charheight),0,0) transforms.offset(k_4, (5 * charwidth, 0)) lower_half.append(k_3) lower_half.append(a_1) lower_half.append(s_1) lower_half.append(k_4) logo.append(half) transforms.rotate(lower_half, math.radians(180)) transforms.offset(lower_half, (3.8 * charheight,- 0.2 * charheight)) logo.append(lower_half) border = shapes.ellipse(10 * charwidth, 4.5 * charheight) transforms.offset(border, ((3.8 * charheight)/2, (-0.2 * charheight)/2)) logo.append(border) # transforms.rotate(logo, math.radians(90)) transforms.center_at(logo, (0,0)) return logo def conservatorium (): charwidth = mm(2.25) * .5 charheight = mm(3) * .5 shift = 0.5 * charheight parts = ['CON', 'SER', 'VA', 'TO', 'RIUM'] logo = Group() lines = Group() outline = shapes.rectangle(16 * 1.5 * charwidth, 7 * 2 * charheight) transforms.offset(outline, (7 * 1.5 * charwidth, -2.1 * 2 * charheight)) logo.append(outline) for r in range(6): omit = len(parts) - r line = Group() x = 0 for p, text in enumerate(parts): if p <> omit: label = shapes.label(text, charwidth=units_to_cm(charwidth), charheight=units_to_cm(charheight), charspace=0, linespace=0) if p % 2 == 1: transforms.offset(label, (x, shift)) else: transforms.offset(label, (x, 0)) line.append(label) x += len(text) * charwidth * 1.55 transforms.offset(line, (0, -charheight * 2 * r)) lines.append(line) # transforms.center_at(lines, (0,0)) # transforms.center_at(outline, (0, 0)) logo.append(lines) # transforms.rotate(logo, math.radians(90)) return logo def hogent(): charwidth = mm(4) * .5 charheight = mm(6) * .5 hogent = shapes.label('HO\r\nGENT', charwidth=units_to_cm(charwidth), charheight=units_to_cm(charheight), charspace=0, linespace=0) howest = shapes.label('howest', charwidth=units_to_cm(charwidth) * .75, charheight=units_to_cm(charheight), charspace=-.1, linespace=0) # transforms.offset(hogent, (0, charheight * -1)) transforms.offset(howest, (0, charheight * -5)) logo = Group([hogent, howest]) # transforms.rotate(logo, math.radians(90)) # transforms.center_at(logo, (0,0)) return logo # Transform text lines into plotter labels def make_labels (lines, charwidth, charheight, charspace=None, linespace=None): text = '{}{}'.format(chr(10), chr(13)).join(lines) label = shapes.label(text, charwidth=units_to_cm(charwidth), charheight=units_to_cm(charheight), charspace=charspace, linespace=linespace) return label def cover (): lines = ['LIVING', 'COLORS'] charwidth = mm(30) charheight = mm(80) buff = Group() text = Group() for l, line in enumerate(lines): print(line) for i in range(6): label = make_labels([line], charwidth, charheight, 0, 0) transforms.offset(label, Coordinate(i * mm(1), l * charheight * -1.2)) text.append(label) transforms.offset(text, (mm(26), mm(160))) # transforms.center_at(buff, (mm(175), mm(175))) buff.append(text) logo_kask = kask() # transforms transforms.offset(logo_kask, (mm(217), mm(43.5))) buff.append(logo_kask) logo_conservatorium = conservatorium() transforms.offset(logo_conservatorium, (mm(236), mm(50))) buff.append(logo_conservatorium) logo_hogent = hogent() transforms.offset(logo_hogent, (mm(267), mm(50))) buff.append(logo_hogent) # plotter.write(logo_hogent) return buff if __name__ == '__main__': if VIRTUAL: from chiplotle.tools.plottertools import instantiate_virtual_plotter plotter = instantiate_virtual_plotter(left_bottom = Coordinate(0, 0), right_top = Coordinate(mm(310), mm(310)), type="DPX-3300") plotter.margins.hard.draw_outline() else: plotter = instantiate_plotters()[0] configureMemory(plotter, 9678, 2048, 0, 0, 0, 1024) plotter.set_origin_bottom_left() x = mm(500) y = mm(150) if VIRTUAL: plotter.write(cover()) io.view(plotter) else: while True: plotter.select_pen(1) plotter.write('AP0;VS7;FS4;') plotter.write('PA{},{};'.format(x,y)) start = str(raw_input('place cover...')) plotter.write(cover()) plotter.write('PA{},{};'.format(x,y)) end = str(raw_input('remove cover...')) plotter.select_pen(0) next = str(raw_input('plot next?'))