-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcalib_marker.py
More file actions
68 lines (47 loc) · 1.63 KB
/
calib_marker.py
File metadata and controls
68 lines (47 loc) · 1.63 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
from reportlab.pdfgen import canvas
from reportlab.lib.units import mm
from reportlab.lib.pagesizes import letter, A4
def create_marker(r, c, size):
#x0,y0 unten links
w, h = (297, 210)
sq = size
rows = r
cols = c
#ordne die höhere Anzahl (Spalte o. Zeile) der längeren Seite (Format) zu
if cols > rows:
w, h = h, w
else:
pass
#genutze Breite/Höhe auf Basis der verwendenten Spalten/Zeilen
used_w = 2*rows*sq - 2*sq
used_h = 2*cols*sq - 2*sq
#setze x0, y0 auf Basis der genutzen Breite/Höhe und zentriere sie
x0 = int((w - used_w)/2)
y0 = int((h - used_h)/2)
if used_w > w or used_h > h:
return 'verkleinere Marker'
else:
print('Marker passt in das Format')
#Bereite Speichern vor
filedir = 'pattern/'
filename = 'marker'
fileinfo = '_' + str(rows) +'x'+ str(cols) + '_' + str(sq) + 'mm'
filetype = '.pdf'
file = filedir + filename + fileinfo + filetype
print('Speichere Datei als', file)
#Bereite Format vor
c = canvas.Canvas(file, (w*mm, h*mm))
c.translate(mm,mm)
c.drawString(5*mm, 5*mm, 'Ansicht @ 100%: Zeilen: ' + str(rows) + ', Spalten: ' + str(cols) +', Durchmesser: ' + str(sq) + 'mm')
#Füllfarbe
c.setFillColorRGB(0,0,0)
dx = 0
dy = 0
for i in range(rows):
dx = 0
for j in range(cols):
c.circle((x0+dx)*mm, y0*mm, int(sq/2)*mm, stroke=0, fill=1)
dx += 2*sq
y0 += 2*sq
c.showPage()
c.save()