Skip to content

Commit

Permalink
Draft Edit: enable Part::Line editing
Browse files Browse the repository at this point in the history
Implemented editing part lines. Preview still to come.
  • Loading branch information
carlopav authored and yorikvanhavre committed Aug 20, 2019
1 parent a1e6019 commit d9e60c0
Showing 1 changed file with 23 additions and 3 deletions.
26 changes: 23 additions & 3 deletions src/Mod/Draft/DraftEdit.py
Expand Up @@ -71,8 +71,8 @@ def __init__(self):
#list of supported objects type
self.supportedObjs = ["BezCurve","Wire","BSpline","Circle","Rectangle",
"Polygon","Dimension","Space","Structure","PanelCut",
"PanelSheet","Wall", "Window", "Part"]
self.supportedPartObjs = ["Part::Box"]
"PanelSheet","Wall", "Window"]
self.supportedPartObjs = ["Part", "Part::Line", "Part::Box"]

def GetResources(self):
return {'Pixmap' : 'Draft_Edit',
Expand Down Expand Up @@ -322,7 +322,7 @@ def getObjFromSelection(self):
return selection[0]
else:
try:
if Draft.getType(selection[0]) == "Part" and selection[0].TypeId in self.supportedPartObjs:
if Draft.getType(selection[0]) in self.supportedPartObjs and selection[0].TypeId in self.supportedPartObjs:
return selection[0]
except:
pass
Expand Down Expand Up @@ -664,6 +664,8 @@ def setEditPoints(self,obj):
self.setPanelSheetPts()
elif objectType == "Part" and obj.TypeId == "Part::Box":
self.setPartBoxPts()
elif objectType == "Part::Line" and obj.TypeId == "Part::Line":
self.setPartLinePts()

def update(self,v):
"apply the vector to the modified point and update self.obj"
Expand All @@ -684,6 +686,7 @@ def update(self,v):
elif Draft.getType(self.obj) == "Structure": self.updateStructure(v)
elif Draft.getType(self.obj) == "PanelCut": self.updatePanelCut(v)
elif Draft.getType(self.obj) == "PanelSheet": self.updatePanelSheet(v)
elif Draft.getType(self.obj) == "Part::Line" and self.obj.TypeId == "Part::Line": self.updatePartLine(v)
elif Draft.getType(self.obj) == "Part" and self.obj.TypeId == "Part::Box": self.updatePartBox(v)

FreeCAD.ActiveDocument.commitTransaction()
Expand Down Expand Up @@ -1226,6 +1229,23 @@ def updatePanelSheet(self,v):
else:
self.obj.Group[self.editing-1].Placement.Base = self.invpl.multVec(v)

# PART::LINE----------------------------------------------------------------

def setPartLinePts(self):
self.editpoints.append(self.pl.multVec(FreeCAD.Vector(self.obj.X1,self.obj.Y1,self.obj.Z1)))
self.editpoints.append(self.pl.multVec(FreeCAD.Vector(self.obj.X2,self.obj.Y2,self.obj.Z2)))

def updatePartLine(self,v):
pt=self.invpl.multVec(v)
if self.editing == 0:
self.obj.X1 = pt.x
self.obj.Y1 = pt.y
self.obj.Z1 = pt.z
elif self.editing == 1:
self.obj.X2 = pt.x
self.obj.Y2 = pt.y
self.obj.Z2 = pt.z

# PART::BOX-----------------------------------------------------------------

def setPartBoxPts(self):
Expand Down

0 comments on commit d9e60c0

Please sign in to comment.