-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathDepthOp.py
121 lines (104 loc) · 5.87 KB
/
DepthOp.py
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
112
113
114
115
116
117
118
119
from SpeedOp import SpeedOp
from consts import *
from HeeksConfig import HeeksConfig
import cad
import depth_params
from Object import PyProperty
from Object import PyPropertyLength
class DepthOp(SpeedOp):
def __init__(self):
SpeedOp.__init__(self)
self.user_depths = ''
self.clearance_height = 5.0
self.start_depth = 0.0
self.step_down = 1.0
self.final_depth = -1.0
self.rapid_safety_space = 2.0
self.z_finish_depth = 0.0
self.z_thru_depth = 0.0
def ReadDefaultValues(self):
SpeedOp.ReadDefaultValues(self)
config = HeeksConfig()
self.clearance_height = config.ReadFloat("ClearanceHeight", 5.0)
self.start_depth = config.ReadFloat("StartDepth", 0.0)
self.step_down = config.ReadFloat("StepDown", 1.0)
self.final_depth = config.ReadFloat("FinalDepth", -1.0)
self.rapid_safety_space = config.ReadFloat("RapidSpace", 2.0)
self.z_finish_depth = config.ReadFloat("ZFinish", 0.0)
self.z_thru_depth = config.ReadFloat("ZThru", 0.0)
def WriteDefaultValues(self):
SpeedOp.WriteDefaultValues(self)
config = HeeksConfig()
config.WriteFloat("ClearanceHeight", self.clearance_height)
config.WriteFloat("StartDepth", self.start_depth)
config.WriteFloat("StepDown", self.step_down)
config.WriteFloat("FinalDepth", self.final_depth)
config.WriteFloat("RapidSpace", self.rapid_safety_space)
config.WriteFloat("ZFinish", self.z_finish_depth)
config.WriteFloat("ZThru", self.z_thru_depth)
def AppendTextToProgram(self):
SpeedOp.AppendTextToProgram(self)
wx.GetApp().program.python_program += "clearance = float(" + str(self.clearance_height / wx.GetApp().program.units) + ")\n"
wx.GetApp().program.python_program += "rapid_safety_space = float(" + str(self.rapid_safety_space / wx.GetApp().program.units) + ")\n"
wx.GetApp().program.python_program += "start_depth = float(" + str(self.start_depth / wx.GetApp().program.units) + ")\n"
wx.GetApp().program.python_program += "step_down = float(" + str(self.step_down / wx.GetApp().program.units) + ")\n"
wx.GetApp().program.python_program += "final_depth = float(" + str(self.final_depth / wx.GetApp().program.units) + ")\n"
tool = wx.GetApp().program.tools.FindTool(self.tool_number)
if tool != None:
wx.GetApp().program.python_program += "tool_diameter = float(" + str(tool.diameter) + ")\n"
if self.abs_mode == ABS_MODE_ABSOLUTE:
wx.GetApp().program.python_program += "#absolute() mode\n"
else:
wx.GetApp().program.python_program += "rapid(z=clearance)\n"
wx.GetApp().program.python_program += "incremental()\n"
def CopyFrom(self, object):
SpeedOp.CopyFrom(self, object)
self.clearance_height = object.clearance_height
self.start_depth = object.start_depth
self.step_down = object.step_down
self.final_depth = object.final_depth
self.rapid_safety_space = object.rapid_safety_space
self.z_finish_depth = object.z_finish_depth
self.z_thru_depth = object.z_thru_depth
self.user_depths = object.user_depths
def WriteXml(self):
cad.BeginXmlChild('depthop')
cad.SetXmlValue('clear', self.clearance_height)
cad.SetXmlValue('down', self.step_down)
if self.z_finish_depth > 0.0000001: cad.SetXmlValue('zfinish', self.z_finish_depth)
if self.z_thru_depth > 0.0000001: cad.SetXmlValue('zthru', self.z_thru_depth)
cad.SetXmlValue('userdepths', self.user_depths)
cad.SetXmlValue('startdepth', self.start_depth)
cad.SetXmlValue('depth', self.final_depth)
cad.SetXmlValue('r', self.rapid_safety_space)
cad.EndXmlChild()
SpeedOp.WriteXml(self)
def ReadXml(self):
child_element = cad.GetFirstXmlChild()
while child_element != None:
if child_element == 'depthop':
self.clearance_height = cad.GetXmlFloat('clear', self.clearance_height)
self.step_down = cad.GetXmlFloat('down', self.step_down)
self.z_finish_depth = cad.GetXmlFloat('zfinish', self.z_finish_depth)
self.z_thru_depth = cad.GetXmlFloat('zthru', self.z_thru_depth)
self.user_depths = cad.GetXmlValue('userdepths', self.user_depths)
self.start_depth = cad.GetXmlFloat('startdepth', self.start_depth)
self.final_depth = cad.GetXmlFloat('depth', self.final_depth)
self.rapid_safety_space = cad.GetXmlFloat('r', self.rapid_safety_space)
child_element = cad.GetNextXmlChild()
SpeedOp.ReadXml(self)
def GetProperties(self):
properties = []
properties.append(PyPropertyLength("Clearance Height", 'clearance_height', self))
properties.append(PyPropertyLength("Start Depth", 'start_depth', self))
properties.append(PyPropertyLength("Final Depth", 'final_depth', self))
properties.append(PyPropertyLength("Maximum Step Down", 'step_down', self))
properties.append(PyPropertyLength("Rapid Safety Space", 'rapid_safety_space', self))
properties.append(PyPropertyLength("Z Finish Depth", 'z_finish_depth', self))
properties.append(PyPropertyLength("Z Thru Depth", 'z_thru_depth', self))
properties.append(PyProperty("User Depths", 'user_depths', self))
properties += SpeedOp.GetProperties(self)
return properties
def GetDepthParams(self):
# returns a depth_params object used in the older heekscnc code, and which can be modified for finishing pass
return depth_params.depth_params(self.clearance_height, self.rapid_safety_space, self.start_depth, self.step_down, self.z_finish_depth, self.z_thru_depth, self.final_depth, self.user_depths)