-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathphishka.py
More file actions
111 lines (95 loc) · 6.85 KB
/
phishka.py
File metadata and controls
111 lines (95 loc) · 6.85 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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
# -*- coding: utf-8 -*-
from py2gcode import *
#программа для вырезания простенькой фигши (внутри просто выборка по кругу)
#фреза - 6мм
sz = 5
fz = 50
ff = 300
diam = 6.0
def up():
G0(Z=sz)
def lunka(x, y, z, d):
'выгрызает круг заданного диаметра по спирали, диаметр указывается тот, который НУЖЕН, без учета фрезы'
up()
G0(x, y)
F(fz)
G1(Z=z)
F(ff)
r = 1
a = 0.0
#TODO: попробовать постепенно подниматься, чтобы получилась лунка (но шаг надо будет сделать поменьше)
max_r = (d - diam)/2.0
step_r = 0.03
while r<=max_r: #учитываем диаметр фрезы
G1(X = r*sin(a) + x, Y = r*cos(a) + y)
r += 0.03
a += 0.1
tmp = a + 7
r = max_r
while a < tmp: #последний круг
G1(X = r*sin(a) + x, Y = r*cos(a) + y)
a += 0.1
up()
def cut(x, y, z2, d):
#вырезаем круг по спиральке
z = 0
r = (28+diam)/2.0 #учитываем радиус фрезы
a = 0.0
up()
G0(X = r*sin(a) + x, Y = r*cos(a) + y)
G1(Z=z)
while z > z2:
G1(X = r*sin(a) + x, Y = r*cos(a) + y, Z=z)
z -= 0.02
a += 0.1
z = z2
G1(Z=z)
tmp = a + 7
while a < tmp:
G1(X = r*sin(a) + x, Y = r*cos(a) + y)
a += 0.1
up()
def fishka_simple(x, y, z1, z2):
'простая фишка с углублением по центру'
up()
G0(x, y)
lunka(x, y, z1, 20)
cut(x, y, z2, 28)
def fishka_guns(x, y, z1, z2):
'фишка с орнаментом'
tmp = {'char': 'G', 'path': "m 1.1233348,-96.090483 c -52.8138708,0 -95.6562458,42.96056 -95.6562458,95.96874998 0,53.00818802 42.842375,95.96875202 95.6562458,95.96875202 52.8138692,0 95.6249992,-42.960564 95.6249992,-95.96875202 0,-53.00818998 -42.81113,-95.96874998 -95.6249992,-95.96874998 z m -2.96875,10.875 0,24.0625 c -2.8355103,-1.39816 -5.6722803,-2.60438 -8.2187508,-3.34375 -7.86569,-2.28343 -19.57922,-3.84362 -29,-3.84375 -4.14271,5e-5 -8.45275,0.3367 -12.6875,0.875 13.88552,-10.67066 31.13826,-17.23485 49.9062508,-17.75 z m 4.59375,0 c 44.5471292,1.11392 80.6106592,36.06734 83.3124992,80.03125 l -63.34375,0 0,3.4375 -15.3749992,0 c -0.63394,-2.63697 -2.73408,-4.6795 -5.40625,-5.28125 l 0,-8.65625 31.4999992,0.5625 c -0.80005,-7.69629 -2.48954,-11.6807 -6,-17.8125 -3.51082,-6.13163 -7.66064,-14.29122 -13.4375,-18.5625 -2.88855,-2.13546 -6.9436592,-4.81689 -11.2499992,-7.25 l 0,-26.46875 z m -42.7812508,47.71875 c 9.95411,7e-5 14.83124,0.83572 20.875,4.9375 6.04349,4.10208 9.9861605,9.3295 10.8750005,16.6875 l 6.6250003,0.125 0,8.8125 c -2.50158,0.69868 -4.4251903,2.66979 -5.0312503,5.1875 l -15.5312505,0 0,-3.4375 -51.90625,0 c 1.53909,-5.53654 3.96734,-11.05757 6.34375,-15.21875 2.63525,-4.61439 4.63028,-7.55462 9.46875,-11.3125 4.83845,-3.75786 12.14869,-5.78118 18.28125,-5.78125 z m 17.8125,39.3125 15.5625005,0 c 0.67057,2.40441 2.5771503,4.32531 5.0000003,5 l 0,7.3125 -33.1562508,-0.125 0.25,24.3125 26.0625005,0 -4.0625005,11.75 c -8.08793,9.049699 -11.36271,13.0625 -27.09375,13.0625 -6.31031,0 -7.49658,-0.573104 -12.5625,-2.6875 -5.06604,-2.114385 -7.24428,-4.011972 -10.84375,-8.15625 -3.59955,-4.144164 -6.80795,-8.28549 -8.71875,-14.375 -1.91092,-6.08941 -3.59496,-12.33653 -4.0625,-20.1875 -0.29034,-4.86917 -0.31128,-9.22821 0.03125,-13.28125 l 53.59375,0 0,-2.625 z m 29.5000008,0 15.4374992,0 0,2.625 63.40625,0 c -1.69089,33.8086 -23.1027,62.4408 -53.03125,74.6875 l 0.21875,-64.875 -31.3749992,-0.125 0,-7.21875 c 2.58871,-0.58228 4.64047,-2.57486 5.34375,-5.09375 z m -13.6250003,74.5 0.6875,8.96875 c -3.13875,-0.223114 -6.2138205,-0.636697 -9.2500005,-1.1875 3.01098,-2.404891 5.6208305,-5.21923 8.5625005,-7.78125 z"}
_ch = Char(tmp)
cutter = Strategy()
tool = Tool()
size=0.12
for t in _ch.trajectories:
cutter.grav(t['svg'], tool, x, y, z1, size)
up()
cut(x, y, z2, 28)
def gen_xy():
'генератор позиций для фишек'
for x in xrange(20, 70, 34):
for y in xrange(20, 70, 34):
yield x, y
def f1():
'первая операция, гравируем символику ганзов'
G0(0, 0, sz)
x, y = 0, 0
tmp = {'char': 'G', 'path': "m 1.1233348,-96.090483 c -52.8138708,0 -95.6562458,42.96056 -95.6562458,95.96874998 0,53.00818802 42.842375,95.96875202 95.6562458,95.96875202 52.8138692,0 95.6249992,-42.960564 95.6249992,-95.96875202 0,-53.00818998 -42.81113,-95.96874998 -95.6249992,-95.96874998 z m -2.96875,10.875 0,24.0625 c -2.8355103,-1.39816 -5.6722803,-2.60438 -8.2187508,-3.34375 -7.86569,-2.28343 -19.57922,-3.84362 -29,-3.84375 -4.14271,5e-5 -8.45275,0.3367 -12.6875,0.875 13.88552,-10.67066 31.13826,-17.23485 49.9062508,-17.75 z m 4.59375,0 c 44.5471292,1.11392 80.6106592,36.06734 83.3124992,80.03125 l -63.34375,0 0,3.4375 -15.3749992,0 c -0.63394,-2.63697 -2.73408,-4.6795 -5.40625,-5.28125 l 0,-8.65625 31.4999992,0.5625 c -0.80005,-7.69629 -2.48954,-11.6807 -6,-17.8125 -3.51082,-6.13163 -7.66064,-14.29122 -13.4375,-18.5625 -2.88855,-2.13546 -6.9436592,-4.81689 -11.2499992,-7.25 l 0,-26.46875 z m -42.7812508,47.71875 c 9.95411,7e-5 14.83124,0.83572 20.875,4.9375 6.04349,4.10208 9.9861605,9.3295 10.8750005,16.6875 l 6.6250003,0.125 0,8.8125 c -2.50158,0.69868 -4.4251903,2.66979 -5.0312503,5.1875 l -15.5312505,0 0,-3.4375 -51.90625,0 c 1.53909,-5.53654 3.96734,-11.05757 6.34375,-15.21875 2.63525,-4.61439 4.63028,-7.55462 9.46875,-11.3125 4.83845,-3.75786 12.14869,-5.78118 18.28125,-5.78125 z m 17.8125,39.3125 15.5625005,0 c 0.67057,2.40441 2.5771503,4.32531 5.0000003,5 l 0,7.3125 -33.1562508,-0.125 0.25,24.3125 26.0625005,0 -4.0625005,11.75 c -8.08793,9.049699 -11.36271,13.0625 -27.09375,13.0625 -6.31031,0 -7.49658,-0.573104 -12.5625,-2.6875 -5.06604,-2.114385 -7.24428,-4.011972 -10.84375,-8.15625 -3.59955,-4.144164 -6.80795,-8.28549 -8.71875,-14.375 -1.91092,-6.08941 -3.59496,-12.33653 -4.0625,-20.1875 -0.29034,-4.86917 -0.31128,-9.22821 0.03125,-13.28125 l 53.59375,0 0,-2.625 z m 29.5000008,0 15.4374992,0 0,2.625 63.40625,0 c -1.69089,33.8086 -23.1027,62.4408 -53.03125,74.6875 l 0.21875,-64.875 -31.3749992,-0.125 0,-7.21875 c 2.58871,-0.58228 4.64047,-2.57486 5.34375,-5.09375 z m -13.6250003,74.5 0.6875,8.96875 c -3.13875,-0.223114 -6.2138205,-0.636697 -9.2500005,-1.1875 3.01098,-2.404891 5.6208305,-5.21923 8.5625005,-7.78125 z"}
_ch = Char(tmp)
cutter = Strategy()
tool = Tool()
size=0.12
for x, y in gen_xy():
for t in _ch.trajectories:
cutter.grav(t['svg'], tool, x, y, -1, size)
up()
#cut(x, y, -10, 28)
def f2():
'второй шаг - вырезаем фишки'
G0(0, 0, sz)
for x, y in gen_xy():
cut(x, y, -10, 28)
#print("g21 g64 g90")
preview(f1)
#export(f)