-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathSpeedOp.py
More file actions
73 lines (61 loc) · 2.81 KB
/
SpeedOp.py
File metadata and controls
73 lines (61 loc) · 2.81 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
from Operation import Operation
from HeeksConfig import HeeksConfig
import cad
from nc.nc import *
import wx
from Object import PyProperty
from Object import PyPropertyLength
ABS_MODE_ABSOLUTE = 1
ABS_MODE_INCREMENTAL = 2
class SpeedOp(Operation):
def __init__(self):
Operation.__init__(self)
self.horizontal_feed_rate = 200.0
self.vertical_feed_rate = 50.0
self.spindle_speed = 7000.0
def ReadDefaultValues(self):
Operation.ReadDefaultValues(self)
config = HeeksConfig()
self.horizontal_feed_rate = config.ReadFloat("SpeedOpHFeedrate", 200.0)
self.vertical_feed_rate = config.ReadFloat("SpeedOpVFeedrate", 50.0)
self.spindle_speed = config.ReadFloat("SpeedOpSpindleSpeed", 7000.0)
def WriteDefaultValues(self):
Operation.WriteDefaultValues(self)
config = HeeksConfig()
config.WriteFloat("SpeedOpHFeedrate", self.horizontal_feed_rate)
config.WriteFloat("SpeedOpVFeedrate", self.vertical_feed_rate)
config.WriteFloat("SpeedOpSpindleSpeed", self.spindle_speed)
def CopyFrom(self, object):
Operation.CopyFrom(self, object)
self.horizontal_feed_rate = object.horizontal_feed_rate
self.vertical_feed_rate = object.vertical_feed_rate
self.spindle_speed = object.spindle_speed
def WriteXml(self):
cad.BeginXmlChild('speedop')
cad.SetXmlValue('hfeed', self.horizontal_feed_rate)
cad.SetXmlValue('vfeed', self.vertical_feed_rate)
cad.SetXmlValue('spin', self.spindle_speed)
cad.EndXmlChild()
Operation.WriteXml(self)
def ReadXml(self):
child_element = cad.GetFirstXmlChild()
while child_element != None:
if child_element == 'speedop':
self.horizontal_feed_rate = cad.GetXmlFloat('hfeed', self.horizontal_feed_rate)
self.vertical_feed_rate = cad.GetXmlFloat('vfeed', self.vertical_feed_rate)
self.spindle_speed = cad.GetXmlFloat('spin', self.spindle_speed)
child_element = cad.GetNextXmlChild()
Operation.ReadXml(self)
def GetProperties(self):
properties = []
properties.append(PyPropertyLength("Horizontal Feed Rate", 'horizontal_feed_rate', self))
properties.append(PyPropertyLength("Vertical Feed Rate", 'vertical_feed_rate', self))
properties.append(PyProperty("Spindle Speed", 'spindle_speed', self))
properties += Operation.GetProperties(self)
return properties
def DoGCodeCalls(self):
Operation.DoGCodeCalls(self)
if self.spindle_speed != 0:
spindle(self.spindle_speed)
feedrate_hv(self.horizontal_feed_rate / wx.GetApp().program.units, self.vertical_feed_rate / wx.GetApp().program.units)
flush_nc()