Fixed merge issues
This commit is contained in:
@@ -224,9 +224,10 @@ class StockEdit(object):
|
||||
Index = -1
|
||||
StockType = PathStock.StockType.Unknown
|
||||
|
||||
def __init__(self, obj, form):
|
||||
def __init__(self, obj, form, force):
|
||||
self.obj = obj
|
||||
self.form = form
|
||||
self.force = force
|
||||
self.setupUi(obj)
|
||||
|
||||
@classmethod
|
||||
@@ -250,6 +251,7 @@ class StockEdit(object):
|
||||
self.setFields(obj)
|
||||
|
||||
def setStock(self, obj, stock):
|
||||
PathLog.track(obj.Label, stock)
|
||||
if obj.Stock:
|
||||
obj.Document.removeObject(self.obj.Stock.Name)
|
||||
obj.Stock = stock
|
||||
@@ -272,6 +274,7 @@ class StockFromBaseBoundBoxEdit(StockEdit):
|
||||
StockType = PathStock.StockType.FromBase
|
||||
|
||||
def editorFrame(self):
|
||||
PathLog.track()
|
||||
return self.form.stockFromBase
|
||||
|
||||
def getFields(self, obj, fields = ['xneg', 'xpos', 'yneg', 'ypos', 'zneg', 'zpos']):
|
||||
@@ -296,8 +299,11 @@ class StockFromBaseBoundBoxEdit(StockEdit):
|
||||
PathLog.error(translate('PathJob', 'Stock not from Base bound box!'))
|
||||
|
||||
def setFields(self, obj):
|
||||
if not self.IsStock(obj):
|
||||
PathLog.track()
|
||||
if self.force or not self.IsStock(obj):
|
||||
PathLog.track()
|
||||
self.setStock(obj, PathStock.CreateFromBase(obj))
|
||||
self.force = False
|
||||
self.setLengthField(self.form.stockExtXneg, obj.Stock.ExtXneg)
|
||||
self.setLengthField(self.form.stockExtXpos, obj.Stock.ExtXpos)
|
||||
self.setLengthField(self.form.stockExtYneg, obj.Stock.ExtYneg)
|
||||
@@ -306,6 +312,7 @@ class StockFromBaseBoundBoxEdit(StockEdit):
|
||||
self.setLengthField(self.form.stockExtZpos, obj.Stock.ExtZpos)
|
||||
|
||||
def setupUi(self, obj):
|
||||
PathLog.track()
|
||||
self.setFields(obj)
|
||||
self.checkXpos()
|
||||
self.checkYpos()
|
||||
@@ -368,8 +375,9 @@ class StockCreateBoxEdit(StockEdit):
|
||||
pass
|
||||
|
||||
def setFields(self, obj):
|
||||
if not self.IsStock(obj):
|
||||
if self.force or not self.IsStock(obj):
|
||||
self.setStock(obj, PathStock.CreateBox(obj))
|
||||
self.force = False
|
||||
self.setLengthField(self.form.stockBoxLength, obj.Stock.Length)
|
||||
self.setLengthField(self.form.stockBoxWidth, obj.Stock.Width)
|
||||
self.setLengthField(self.form.stockBoxHeight, obj.Stock.Height)
|
||||
@@ -400,8 +408,9 @@ class StockCreateCylinderEdit(StockEdit):
|
||||
pass
|
||||
|
||||
def setFields(self, obj):
|
||||
if not self.IsStock(obj):
|
||||
if self.force or not self.IsStock(obj):
|
||||
self.setStock(obj, PathStock.CreateCylinder(obj))
|
||||
self.force = False
|
||||
self.setLengthField(self.form.stockCylinderRadius, obj.Stock.Radius)
|
||||
self.setLengthField(self.form.stockCylinderHeight, obj.Stock.Height)
|
||||
|
||||
@@ -897,22 +906,28 @@ class TaskPanel:
|
||||
FreeCADGui.Selection.addSelection(selObject, selFeature)
|
||||
return (selObject, p)
|
||||
|
||||
def updateStockEditor(self, index):
|
||||
def updateStockEditor(self, index, force = False):
|
||||
def setupFromBaseEdit():
|
||||
if not self.stockFromBase:
|
||||
self.stockFromBase = StockFromBaseBoundBoxEdit(self.obj, self.form)
|
||||
PathLog.track(index, force)
|
||||
if force or not self.stockFromBase:
|
||||
self.stockFromBase = StockFromBaseBoundBoxEdit(self.obj, self.form, force)
|
||||
else:
|
||||
PathLog.error('wtf')
|
||||
self.stockEdit = self.stockFromBase
|
||||
def setupCreateBoxEdit():
|
||||
if not self.stockCreateBox:
|
||||
self.stockCreateBox = StockCreateBoxEdit(self.obj, self.form)
|
||||
PathLog.track(index, force)
|
||||
if force or not self.stockCreateBox:
|
||||
self.stockCreateBox = StockCreateBoxEdit(self.obj, self.form, force)
|
||||
self.stockEdit = self.stockCreateBox
|
||||
def setupCreateCylinderEdit():
|
||||
if not self.stockCreateCylinder:
|
||||
self.stockCreateCylinder = StockCreateCylinderEdit(self.obj, self.form)
|
||||
PathLog.track(index, force)
|
||||
if force or not self.stockCreateCylinder:
|
||||
self.stockCreateCylinder = StockCreateCylinderEdit(self.obj, self.form, force)
|
||||
self.stockEdit = self.stockCreateCylinder
|
||||
def setupFromExisting():
|
||||
if not self.stockFromExisting:
|
||||
self.stockFromExisting = StockFromExistingEdit(self.obj, self.form)
|
||||
PathLog.track(index, force)
|
||||
if force or not self.stockFromExisting:
|
||||
self.stockFromExisting = StockFromExistingEdit(self.obj, self.form, force)
|
||||
if self.stockFromExisting.candidates(self.obj):
|
||||
self.stockEdit = self.stockFromExisting
|
||||
return True
|
||||
@@ -1045,7 +1060,7 @@ class TaskPanel:
|
||||
self.template.updateUI()
|
||||
|
||||
def setupUi(self, activate):
|
||||
self.updateStockEditor(-1)
|
||||
self.updateStockEditor(-1, True)
|
||||
self.setFields()
|
||||
|
||||
# Info
|
||||
|
||||
@@ -133,12 +133,16 @@ class ObjectPocket(PathPocketBase.ObjectPocket):
|
||||
|
||||
else: # process the job base object as a whole
|
||||
PathLog.debug("processing the whole job base object")
|
||||
self.outline = Part.Face(TechDraw.findShapeOutline(self.baseobject.Shape, 1, FreeCAD.Vector(0, 0, 1)))
|
||||
self.outlines = [Part.Face(TechDraw.findShapeOutline(base.Shape, 1, FreeCAD.Vector(0, 0, 1))) for base in self.model]
|
||||
stockBB = self.stock.Shape.BoundBox
|
||||
|
||||
self.outline.translate(FreeCAD.Vector(0, 0, stockBB.ZMin - 1))
|
||||
self.body = self.outline.extrude(FreeCAD.Vector(0, 0, stockBB.ZLength + 2))
|
||||
self.removalshapes = [(self.stock.Shape.cut(self.body), False)]
|
||||
self.removalshapes = []
|
||||
self.bodies = []
|
||||
for outline in self.outlines:
|
||||
outline.translate(FreeCAD.Vector(0, 0, stockBB.ZMin - 1))
|
||||
body = outline.extrude(FreeCAD.Vector(0, 0, stockBB.ZLength + 2))
|
||||
self.bodies.append(body)
|
||||
self.removalshapes.append((self.stock.Shape.cut(body), False))
|
||||
|
||||
for (shape,hole) in self.removalshapes:
|
||||
shape.tessellate(0.1)
|
||||
|
||||
@@ -111,23 +111,22 @@ class ObjectProfile(PathProfileBase.ObjectProfile):
|
||||
shapes.append((env, False))
|
||||
|
||||
else: # Try to build targets from the job base
|
||||
# XXX ArchPanels support not implemented yet
|
||||
if False and hasattr(self.baseobject, "Proxy"):
|
||||
if isinstance(self.baseobject.Proxy, ArchPanel.PanelSheet): # process the sheet
|
||||
if 1 == len(self.model) and hasattr(self.model[0], "Proxy"):
|
||||
if isinstance(self.model[0].Proxy, ArchPanel.PanelSheet): # process the sheet
|
||||
if obj.processCircles or obj.processHoles:
|
||||
for shape in self.baseobject.Proxy.getHoles(self.baseobject, transform=True):
|
||||
for shape in self.model[0].Proxy.getHoles(self.model[0], transform=True):
|
||||
for wire in shape.Wires:
|
||||
drillable = PathUtils.isDrillable(self.baseobject.Proxy, wire)
|
||||
drillable = PathUtils.isDrillable(self.model[0].Proxy, wire)
|
||||
if (drillable and obj.processCircles) or (not drillable and obj.processHoles):
|
||||
f = Part.makeFace(wire, 'Part::FaceMakerSimple')
|
||||
env = PathUtils.getEnvelope(self.baseobject.Shape, subshape=f, depthparams=self.depthparams)
|
||||
env = PathUtils.getEnvelope(self.model[0].Shape, subshape=f, depthparams=self.depthparams)
|
||||
shapes.append((env, True))
|
||||
|
||||
if obj.processPerimeter:
|
||||
for shape in self.baseobject.Proxy.getOutlines(self.baseobject, transform=True):
|
||||
for shape in self.model[0].Proxy.getOutlines(self.model[0], transform=True):
|
||||
for wire in shape.Wires:
|
||||
f = Part.makeFace(wire, 'Part::FaceMakerSimple')
|
||||
env = PathUtils.getEnvelope(self.baseobject.Shape, subshape=f, depthparams=self.depthparams)
|
||||
env = PathUtils.getEnvelope(self.model[0].Shape, subshape=f, depthparams=self.depthparams)
|
||||
shapes.append((env, False))
|
||||
|
||||
PathLog.debug("%d shapes" % len(shapes))
|
||||
|
||||
@@ -112,8 +112,11 @@ class StockFromBase(Stock):
|
||||
obj.ExtZpos= 1.0
|
||||
|
||||
# placement is only tracked on creation
|
||||
bb = shapeBoundBox(base)
|
||||
obj.Placement = FreeCAD.Placement(FreeCAD.Vector(bb.XMin, bb.YMin, bb.ZMin), FreeCAD.Rotation())
|
||||
bb = shapeBoundBox(base.Group)
|
||||
if bb:
|
||||
obj.Placement = FreeCAD.Placement(FreeCAD.Vector(bb.XMin, bb.YMin, bb.ZMin), FreeCAD.Rotation())
|
||||
else:
|
||||
PathLog.track(obj.Label, base.Label)
|
||||
obj.Proxy = self
|
||||
|
||||
def __getstate__(self):
|
||||
@@ -210,6 +213,7 @@ class StockCreateCylinder(Stock):
|
||||
self.execute(obj)
|
||||
|
||||
def SetupStockObject(obj, stockType):
|
||||
PathLog.track(obj.Label, stockType)
|
||||
if FreeCAD.GuiUp and obj.ViewObject:
|
||||
obj.addProperty('App::PropertyString', 'StockType', 'Stock', QtCore.QT_TRANSLATE_NOOP("PathStock", "Internal representation of stock type"))
|
||||
obj.StockType = stockType
|
||||
@@ -220,6 +224,7 @@ def SetupStockObject(obj, stockType):
|
||||
obj.ViewObject.DisplayMode = 'Wireframe'
|
||||
|
||||
def CreateFromBase(job, neg=None, pos=None, placement=None):
|
||||
PathLog.track(job.Label, neg, pos, placement)
|
||||
base = job.Model if job and hasattr(job, 'Model') else None
|
||||
if base:
|
||||
base.Shape.tessellate(0.1)
|
||||
|
||||
Reference in New Issue
Block a user