configtool: revert homing order
currently this part is buggy and need some rework. Looks like it is more simple to write it new instead of find the bugs
This commit is contained in:
parent
48cc0124ed
commit
6089d24bd1
|
|
@ -95,9 +95,3 @@ defineValueFormat = "#define %-24s %s\n"
|
|||
defineBoolFormat = "#define %s\n"
|
||||
defineHeaterFormat = "#define HEATER_%s HEATER_%s\n"
|
||||
defineDCExtruderFormat = "#define %-24s HEATER_%s\n"
|
||||
|
||||
reHomingOpts = re.compile("^\s*//\s*#define\s+HOMING_OPT\s+(\w+)")
|
||||
reStartHoming = re.compile("^\s*//\s*DEFINE_HOMING_START")
|
||||
reEndHoming = re.compile("^\s*//\s*DEFINE_HOMING_END")
|
||||
reDefHoming = re.compile("\s*(DEFINE_HOMING\\([^)]*\\))")
|
||||
reHoming4 = re.compile(".*\\(\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*\\)")
|
||||
|
|
|
|||
|
|
@ -39,13 +39,6 @@ class MechanicalPage(wx.Panel, Page):
|
|||
|
||||
self.kinematicsKeys = ["KINEMATICS_STRAIGHT", "KINEMATICS_COREXY"]
|
||||
|
||||
self.homingKeys = [
|
||||
("HOMING_STEP1", 2),
|
||||
("HOMING_STEP2", 2),
|
||||
("HOMING_STEP3", 2),
|
||||
("HOMING_STEP4", 2),
|
||||
]
|
||||
|
||||
self.labels = {
|
||||
"STEPS_PER_M_X": "X:",
|
||||
"STEPS_PER_M_Y": "Y:",
|
||||
|
|
@ -70,21 +63,9 @@ class MechanicalPage(wx.Panel, Page):
|
|||
"E_ABSOLUTE": "Absolute E Coordinates",
|
||||
"KINEMATICS_STRAIGHT": "Straight",
|
||||
"KINEMATICS_COREXY": "CoreXY",
|
||||
"HOMING_STEP1": "Step 1:",
|
||||
"HOMING_STEP2": "Step 2:",
|
||||
"HOMING_STEP3": "Step 3:",
|
||||
"HOMING_STEP4": "Step 4:",
|
||||
"none": "-",
|
||||
"x_negative": "X min",
|
||||
"x_positive": "X max",
|
||||
"y_negative": "Y min",
|
||||
"y_positive": "Y max",
|
||||
"z_negative": "Z min",
|
||||
"z_positive": "Z max",
|
||||
}
|
||||
|
||||
labelWidth = 40
|
||||
labelWidthHoming = 60
|
||||
|
||||
sz = wx.GridBagSizer()
|
||||
sz.Add((10, 10), pos=(0, 0))
|
||||
|
|
@ -159,11 +140,11 @@ class MechanicalPage(wx.Panel, Page):
|
|||
sbox.Add(rb, 1, wx.LEFT + wx.RIGHT, 16)
|
||||
sbox.Add((5, 5))
|
||||
|
||||
vsz.Add(sbox, 1, wx.LEFT, 10)
|
||||
vsz.Add(sbox, 1, wx.LEFT, 40)
|
||||
|
||||
cb = self.addCheckBox("E_ABSOLUTE", self.onCheckBox)
|
||||
|
||||
vsz.Add(cb, 1, wx.LEFT, 10)
|
||||
vsz.Add(cb, 1, wx.LEFT, 40)
|
||||
|
||||
sz.Add(vsz, pos=(3, 1))
|
||||
|
||||
|
|
@ -186,17 +167,6 @@ class MechanicalPage(wx.Panel, Page):
|
|||
|
||||
sz.Add(bsz, pos=(1, 3))
|
||||
|
||||
b = wx.StaticBox(self, wx.ID_ANY, "Homing Order")
|
||||
b.SetFont(font)
|
||||
sbox = wx.StaticBoxSizer(b, wx.VERTICAL)
|
||||
sbox.Add((5, 5))
|
||||
for k, ctype in self.homingKeys:
|
||||
if ctype == 2:
|
||||
tc = self.addChoice(k, [], 0, labelWidthHoming, self.onChoice)
|
||||
sbox.Add(tc)
|
||||
sbox.Add((5, 5))
|
||||
sz.Add(sbox, pos=(3, 3))
|
||||
|
||||
self.enableAll(False)
|
||||
self.SetSizer(sz)
|
||||
|
||||
|
|
@ -233,37 +203,17 @@ class MechanicalPage(wx.Panel, Page):
|
|||
for k in self.kinematicsKeys:
|
||||
self.radioButtons[k].SetToolTip(ht["KINEMATICS"])
|
||||
|
||||
def prepareHomingValues(self, name, i, cfgValues):
|
||||
self.choices[name].Clear()
|
||||
for p in cfgValues["HOMING_OPTS"]:
|
||||
self.choices[name].Append(self.labels[p])
|
||||
i = cfgValues["HOMING_OPTS"].index(cfgValues[name])
|
||||
self.choices[name].SetSelection(i)
|
||||
|
||||
def insertValues(self, cfgValues):
|
||||
Page.insertValues(self, cfgValues)
|
||||
|
||||
self.prepareHomingValues("HOMING_STEP1", 0, cfgValues)
|
||||
self.prepareHomingValues("HOMING_STEP2", 1, cfgValues)
|
||||
self.prepareHomingValues("HOMING_STEP3", 2, cfgValues)
|
||||
self.prepareHomingValues("HOMING_STEP4", 3, cfgValues)
|
||||
|
||||
for tag in self.kinematicsKeys:
|
||||
if tag in cfgValues.keys() and cfgValues[tag]:
|
||||
self.radioButtons[tag].SetValue(True)
|
||||
|
||||
def getHomingValue(self, name, result):
|
||||
return (self.labels.keys()[self.labels.values().index(result[name][0])], True)
|
||||
|
||||
def getValues(self):
|
||||
result = Page.getValues(self)
|
||||
|
||||
for tag in self.kinematicsKeys:
|
||||
result[tag] = self.radioButtons[tag].GetValue()
|
||||
|
||||
result["HOMING_STEP1"] = self.getHomingValue("HOMING_STEP1", result)
|
||||
result["HOMING_STEP2"] = self.getHomingValue("HOMING_STEP2", result)
|
||||
result["HOMING_STEP3"] = self.getHomingValue("HOMING_STEP3", result)
|
||||
result["HOMING_STEP4"] = self.getHomingValue("HOMING_STEP4", result)
|
||||
|
||||
return result
|
||||
|
|
|
|||
|
|
@ -16,11 +16,6 @@ from configtool.data import (
|
|||
reDefQSm2,
|
||||
reDefBool,
|
||||
reDefBoolBL,
|
||||
reHomingOpts,
|
||||
reStartHoming,
|
||||
reEndHoming,
|
||||
reDefHoming,
|
||||
reHoming4,
|
||||
)
|
||||
|
||||
|
||||
|
|
@ -102,12 +97,6 @@ class Printer:
|
|||
ln = prevLines + ln
|
||||
prevLines = ""
|
||||
|
||||
if self.parseCandidateValues(ln):
|
||||
continue
|
||||
|
||||
if self.parseHoming(ln):
|
||||
continue
|
||||
|
||||
self.parseDefineName(ln)
|
||||
self.parseDefineValue(ln)
|
||||
|
||||
|
|
@ -140,12 +129,6 @@ class Printer:
|
|||
ln = prevLines + ln
|
||||
prevLines = ""
|
||||
|
||||
if self.parseCandidateValues(ln):
|
||||
continue
|
||||
|
||||
if self.parseHoming(ln):
|
||||
continue
|
||||
|
||||
self.parseDefineValue(ln)
|
||||
|
||||
# Parsing done. All parsed stuff is now in these array and dicts.
|
||||
|
|
@ -167,40 +150,6 @@ class Printer:
|
|||
|
||||
return False
|
||||
|
||||
def parseCandidateValues(self, ln):
|
||||
m = reHomingOpts.match(ln)
|
||||
if m:
|
||||
t = m.groups()
|
||||
if len(t) == 1:
|
||||
if "HOMING_OPTS" in self.cfgValues:
|
||||
if t[0] not in self.cfgValues["HOMING_OPTS"]:
|
||||
self.cfgValues["HOMING_OPTS"].append(t[0])
|
||||
else:
|
||||
self.cfgValues["HOMING_OPTS"] = [t[0]]
|
||||
return True
|
||||
|
||||
def parseHoming(self, ln):
|
||||
m = reDefHoming.search(ln)
|
||||
if m:
|
||||
t = m.groups()
|
||||
if len(t) == 1:
|
||||
n = reHoming4.search(t[0])
|
||||
if n:
|
||||
u = n.groups()
|
||||
if len(u) == 4:
|
||||
t2 = []
|
||||
for x in u:
|
||||
t2.append(x)
|
||||
|
||||
self.cfgValues["HOMING_STEP1"] = t2[0]
|
||||
self.cfgValues["HOMING_STEP2"] = t2[1]
|
||||
self.cfgValues["HOMING_STEP3"] = t2[2]
|
||||
self.cfgValues["HOMING_STEP4"] = t2[3]
|
||||
|
||||
return True
|
||||
return None
|
||||
return True
|
||||
|
||||
def parseDefineValue(self, ln):
|
||||
m = reDefQS.search(ln)
|
||||
if m:
|
||||
|
|
@ -260,29 +209,7 @@ class Printer:
|
|||
fp = file(path, "w")
|
||||
self.configFile = path
|
||||
|
||||
skipToHomingEnd = False
|
||||
|
||||
for ln in self.cfgBuffer:
|
||||
m = reStartHoming.match(ln)
|
||||
if m:
|
||||
fp.write(ln)
|
||||
sstr = "%s, %s, %s, %s" % (
|
||||
(values["HOMING_STEP1"]),
|
||||
(values["HOMING_STEP2"]),
|
||||
(values["HOMING_STEP3"]),
|
||||
(values["HOMING_STEP4"]),
|
||||
)
|
||||
fp.write("DEFINE_HOMING(%s)\n" % sstr)
|
||||
skipToHomingEnd = True
|
||||
continue
|
||||
|
||||
if skipToHomingEnd:
|
||||
m = reEndHoming.match(ln)
|
||||
if m:
|
||||
fp.write(ln)
|
||||
skipToHomingEnd = False
|
||||
continue
|
||||
|
||||
m = reDefine.match(ln)
|
||||
if m:
|
||||
t = m.groups()
|
||||
|
|
|
|||
Loading…
Reference in New Issue