Make the project planner always auto-place.
parent
5d98793ade
commit
37fd84b0fa
|
@ -10,8 +10,9 @@ class Stk500v2(ispBase.IspBase):
|
|||
self.serial = None
|
||||
self.seq = 1
|
||||
self.lastAddr = -1
|
||||
self.progressCallback = None
|
||||
|
||||
def connect(self, port = 'COM31', speed = 115200):
|
||||
def connect(self, port = 'COM17', speed = 115200):
|
||||
if self.serial != None:
|
||||
self.close()
|
||||
try:
|
||||
|
@ -146,7 +147,7 @@ class Stk500v2(ispBase.IspBase):
|
|||
def main():
|
||||
programmer = Stk500v2()
|
||||
programmer.connect()
|
||||
programmer.programChip(intelHex.readHex("cfg_4f55234def059.hex"))
|
||||
programmer.programChip(intelHex.readHex(sys.argv[1]))
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
|
|
@ -153,6 +153,7 @@ class projectPlanner(wx.Frame):
|
|||
self.list = []
|
||||
self.selection = None
|
||||
self.printMode = 0
|
||||
self.alwaysAutoPlace = True
|
||||
|
||||
self.machineSize = numpy.array([profile.getPreferenceFloat('machine_width'), profile.getPreferenceFloat('machine_depth'), profile.getPreferenceFloat('machine_height')])
|
||||
self.headSizeMin = numpy.array([profile.getPreferenceFloat('extruder_head_size_min_x'), profile.getPreferenceFloat('extruder_head_size_min_y'),0])
|
||||
|
@ -170,8 +171,8 @@ class projectPlanner(wx.Frame):
|
|||
toolbarUtil.NormalButton(self.toolbar, self.OnSaveProject, 'save.png', 'Save project')
|
||||
self.toolbar.AddSeparator()
|
||||
group = []
|
||||
toolbarUtil.RadioButton(self.toolbar, group, 'object-3d-on.png', 'object-3d-off.png', '3D view', callback=self.On3DClick)
|
||||
toolbarUtil.RadioButton(self.toolbar, group, 'object-top-on.png', 'object-top-off.png', 'Topdown view', callback=self.OnTopClick).SetValue(True)
|
||||
toolbarUtil.RadioButton(self.toolbar, group, 'object-3d-on.png', 'object-3d-off.png', '3D view', callback=self.On3DClick).SetValue(self.alwaysAutoPlace)
|
||||
toolbarUtil.RadioButton(self.toolbar, group, 'object-top-on.png', 'object-top-off.png', 'Topdown view', callback=self.OnTopClick).SetValue(not self.alwaysAutoPlace)
|
||||
self.toolbar.AddSeparator()
|
||||
toolbarUtil.NormalButton(self.toolbar, self.OnPreferences, 'preferences.png', 'Project planner preferences')
|
||||
self.toolbar.AddSeparator()
|
||||
|
@ -196,7 +197,8 @@ class projectPlanner(wx.Frame):
|
|||
toolbarUtil.NormalButton(self.toolbar2, self.OnCopy, 'copy.png', 'Make a copy of the current selected object')
|
||||
toolbarUtil.NormalButton(self.toolbar2, self.OnSetCustomProfile, 'set-profile.png', 'Set a custom profile to be used to prepare a specific object.')
|
||||
self.toolbar2.AddSeparator()
|
||||
toolbarUtil.NormalButton(self.toolbar2, self.OnAutoPlace, 'autoplace.png', 'Automaticly organize the objects on the platform.')
|
||||
if not self.alwaysAutoPlace:
|
||||
toolbarUtil.NormalButton(self.toolbar2, self.OnAutoPlace, 'autoplace.png', 'Automaticly organize the objects on the platform.')
|
||||
toolbarUtil.NormalButton(self.toolbar2, self.OnSlice, 'slice.png', 'Prepare to project into a gcode file.')
|
||||
self.toolbar2.Realize()
|
||||
|
||||
|
@ -218,7 +220,8 @@ class projectPlanner(wx.Frame):
|
|||
self.addButton = wx.Button(self.panel, -1, "Add")
|
||||
self.remButton = wx.Button(self.panel, -1, "Remove")
|
||||
self.sliceButton = wx.Button(self.panel, -1, "Prepare")
|
||||
self.autoPlaceButton = wx.Button(self.panel, -1, "Auto Place")
|
||||
if not self.alwaysAutoPlace:
|
||||
self.autoPlaceButton = wx.Button(self.panel, -1, "Auto Place")
|
||||
|
||||
sizer.Add(self.toolbar, (0,0), span=(1,1), flag=wx.EXPAND|wx.LEFT|wx.RIGHT)
|
||||
sizer.Add(self.toolbar2, (0,1), span=(1,2), flag=wx.EXPAND|wx.LEFT|wx.RIGHT)
|
||||
|
@ -228,14 +231,16 @@ class projectPlanner(wx.Frame):
|
|||
sizer.Add(self.addButton, (3,1), span=(1,1))
|
||||
sizer.Add(self.remButton, (3,2), span=(1,1))
|
||||
sizer.Add(self.sliceButton, (4,1), span=(1,1))
|
||||
sizer.Add(self.autoPlaceButton, (4,2), span=(1,1))
|
||||
if not self.alwaysAutoPlace:
|
||||
sizer.Add(self.autoPlaceButton, (4,2), span=(1,1))
|
||||
sizer.AddGrowableCol(0)
|
||||
sizer.AddGrowableRow(1)
|
||||
|
||||
self.addButton.Bind(wx.EVT_BUTTON, self.OnAddModel)
|
||||
self.remButton.Bind(wx.EVT_BUTTON, self.OnRemModel)
|
||||
self.sliceButton.Bind(wx.EVT_BUTTON, self.OnSlice)
|
||||
self.autoPlaceButton.Bind(wx.EVT_BUTTON, self.OnAutoPlace)
|
||||
if not self.alwaysAutoPlace:
|
||||
self.autoPlaceButton.Bind(wx.EVT_BUTTON, self.OnAutoPlace)
|
||||
self.listbox.Bind(wx.EVT_LISTBOX, self.OnListSelect)
|
||||
|
||||
panel = wx.Panel(self.panel, -1)
|
||||
|
@ -309,6 +314,8 @@ class projectPlanner(wx.Frame):
|
|||
self.printMode = 0
|
||||
if self.printAllAtOnce.GetValue():
|
||||
self.printMode = 1
|
||||
if self.alwaysAutoPlace:
|
||||
self.OnAutoPlace(None)
|
||||
self.preview.Refresh()
|
||||
|
||||
def OnSaveCombinedSTL(self, e):
|
||||
|
@ -508,6 +515,8 @@ class projectPlanner(wx.Frame):
|
|||
else:
|
||||
self.selection = None
|
||||
self.listbox.SetSelection(-1)
|
||||
if self.alwaysAutoPlace:
|
||||
self.OnAutoPlace(None)
|
||||
|
||||
def OnAutoPlace(self, e):
|
||||
bestAllowedSize = int(self.machineSize[1])
|
||||
|
@ -717,17 +726,25 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
|
|||
wx.EVT_MOUSEWHEEL(self, self.OnMouseWheel)
|
||||
self.yaw = 30
|
||||
self.pitch = 60
|
||||
self.zoom = self.parent.machineSize[0] / 2 + 10
|
||||
self.offsetX = 0
|
||||
self.offsetY = 0
|
||||
self.view3D = False
|
||||
self.view3D = self.parent.alwaysAutoPlace
|
||||
if self.view3D:
|
||||
self.zoom = 300
|
||||
else:
|
||||
self.zoom = self.parent.machineSize[0] / 2 + 10
|
||||
self.allowDrag = False
|
||||
|
||||
self.objColor = profile.getPreferenceColour('model_colour')
|
||||
|
||||
def OnMouseLeftDown(self,e):
|
||||
self.allowDrag = True
|
||||
|
||||
if not self.parent.alwaysAutoPlace and not self.view3D:
|
||||
#TODO: Translate mouse X/Y to 3D X/Y/Z
|
||||
for item in self.parent.list:
|
||||
iMin = (item.getMinimum() * item.scale) + numpy.array([item.centerX, item.centerY, 0]) - self.parent.extruderOffset[item.extruder]
|
||||
iMax = (item.getMaximum() * item.scale) + numpy.array([item.centerX, item.centerY, 0]) - self.parent.extruderOffset[item.extruder]
|
||||
|
||||
def OnMouseMotion(self,e):
|
||||
if self.allowDrag and e.Dragging() and e.LeftIsDown():
|
||||
if self.view3D:
|
||||
|
@ -737,7 +754,7 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
|
|||
self.pitch = 170
|
||||
if self.pitch < 10:
|
||||
self.pitch = 10
|
||||
else:
|
||||
elif not self.parent.alwaysAutoPlace:
|
||||
item = self.parent.selection
|
||||
if item != None:
|
||||
item.centerX += float(e.GetX() - self.oldX) * self.zoom / self.GetSize().GetHeight() * 2
|
||||
|
@ -851,29 +868,30 @@ class PreviewGLCanvas(glcanvas.GLCanvas):
|
|||
|
||||
glDisable(GL_LIGHTING)
|
||||
|
||||
if self.parent.selection == item:
|
||||
if item.gotHit:
|
||||
glColor3f(1.0,0.0,0.3)
|
||||
if not self.parent.alwaysAutoPlace:
|
||||
if self.parent.selection == item:
|
||||
if item.gotHit:
|
||||
glColor3f(1.0,0.0,0.3)
|
||||
else:
|
||||
glColor3f(1.0,0.0,1.0)
|
||||
opengl.DrawBox(vMin, vMax)
|
||||
if item.gotHit:
|
||||
glColor3f(1.0,0.3,0.0)
|
||||
else:
|
||||
glColor3f(1.0,1.0,0.0)
|
||||
opengl.DrawBox(vMinHead, vMaxHead)
|
||||
elif seenSelected:
|
||||
if item.gotHit:
|
||||
glColor3f(0.5,0.0,0.1)
|
||||
else:
|
||||
glColor3f(0.5,0.0,0.5)
|
||||
opengl.DrawBox(vMinHead, vMaxHead)
|
||||
else:
|
||||
glColor3f(1.0,0.0,1.0)
|
||||
opengl.DrawBox(vMin, vMax)
|
||||
if item.gotHit:
|
||||
glColor3f(1.0,0.3,0.0)
|
||||
else:
|
||||
glColor3f(1.0,1.0,0.0)
|
||||
opengl.DrawBox(vMinHead, vMaxHead)
|
||||
elif seenSelected:
|
||||
if item.gotHit:
|
||||
glColor3f(0.5,0.0,0.1)
|
||||
else:
|
||||
glColor3f(0.5,0.0,0.5)
|
||||
opengl.DrawBox(vMinHead, vMaxHead)
|
||||
else:
|
||||
if item.gotHit:
|
||||
glColor3f(0.7,0.1,0.0)
|
||||
else:
|
||||
glColor3f(0.7,0.7,0.0)
|
||||
opengl.DrawBox(vMin, vMax)
|
||||
if item.gotHit:
|
||||
glColor3f(0.7,0.1,0.0)
|
||||
else:
|
||||
glColor3f(0.7,0.7,0.0)
|
||||
opengl.DrawBox(vMin, vMax)
|
||||
|
||||
glPopMatrix()
|
||||
|
||||
|
|
Loading…
Reference in New Issue