Merge branch 'master' of ssh://git.code.sf.net/p/free-cad/code
This commit is contained in:
commit
fc2fb55042
|
@ -91,6 +91,10 @@ class ArchWorkbench(Workbench):
|
|||
"Draft_SelectGroup","Draft_SelectPlane","Draft_ToggleSnap",
|
||||
"Draft_ShowSnapBar","Draft_ToggleGrid","Draft_UndoLine",
|
||||
"Draft_FinishLine","Draft_CloseLine"]
|
||||
self.snapList = ['Draft_Snap_Lock','Draft_Snap_Midpoint','Draft_Snap_Perpendicular',
|
||||
'Draft_Snap_Grid','Draft_Snap_Intersection','Draft_Snap_Parallel',
|
||||
'Draft_Snap_Endpoint','Draft_Snap_Angle','Draft_Snap_Center',
|
||||
'Draft_Snap_Extension','Draft_Snap_Near','Draft_Snap_Ortho']
|
||||
|
||||
self.appendToolbar(str(translate("arch","Arch tools")),self.archtools)
|
||||
self.appendToolbar(str(translate("arch","Draft tools")),self.drafttools)
|
||||
|
@ -100,6 +104,7 @@ class ArchWorkbench(Workbench):
|
|||
self.appendMenu(str(translate("arch","&Architecture")),self.archtools)
|
||||
self.appendMenu(str(translate("arch","&Draft")),self.drafttools+self.draftmodtools)
|
||||
self.appendMenu([str(translate("arch","&Draft")),str(translate("arch","Context Tools"))],self.draftcontexttools)
|
||||
self.appendMenu([str(translate("arch","&Draft")),str(translate("arch","Snapping"))],self.snapList)
|
||||
FreeCADGui.addIconPath(":/icons")
|
||||
FreeCADGui.addLanguagePath(":/translations")
|
||||
FreeCADGui.addPreferencePage(":/ui/archprefs-base.ui","Arch")
|
||||
|
|
|
@ -165,6 +165,8 @@ def getType(obj):
|
|||
return obj.Proxy.Type
|
||||
if obj.isDerivedFrom("Sketcher::SketchObject"):
|
||||
return "Sketch"
|
||||
if (obj.TypeId == "Part::Line"):
|
||||
return "Part::Line"
|
||||
if obj.isDerivedFrom("Part::Feature"):
|
||||
return "Part"
|
||||
if (obj.TypeId == "App::Annotation"):
|
||||
|
|
|
@ -2551,7 +2551,7 @@ class Trimex(Modifier):
|
|||
sw = self.obj.ViewObject.LineWidth
|
||||
import DraftGeomUtils
|
||||
for e in self.edges:
|
||||
if DraftGeomUtils(e) == "Line":
|
||||
if DraftGeomUtils.geomType(e) == "Line":
|
||||
self.ghost.append(lineTracker(scolor=sc,swidth=sw))
|
||||
else:
|
||||
self.ghost.append(arcTracker(scolor=sc,swidth=sw))
|
||||
|
@ -2739,12 +2739,39 @@ class Trimex(Modifier):
|
|||
self.doc.openTransaction("Trim/extend")
|
||||
if Draft.getType(self.obj) in ["Wire","BSpline"]:
|
||||
p = []
|
||||
if self.placement: invpl = self.placement.inverse()
|
||||
if self.placement:
|
||||
invpl = self.placement.inverse()
|
||||
for v in newshape.Vertexes:
|
||||
np = v.Point
|
||||
if self.placement: np = invpl.multVec(np)
|
||||
if self.placement:
|
||||
np = invpl.multVec(np)
|
||||
p.append(np)
|
||||
self.obj.Points = p
|
||||
elif Draft.getType(self.obj) == "Part::Line":
|
||||
p = []
|
||||
if self.placement:
|
||||
invpl = self.placement.inverse()
|
||||
for v in newshape.Vertexes:
|
||||
np = v.Point
|
||||
if self.placement:
|
||||
np = invpl.multVec(np)
|
||||
p.append(np)
|
||||
if ((p[0].x == self.obj.X1) and (p[0].y == self.obj.Y1) and (p[0].z == self.obj.Z1)):
|
||||
self.obj.X2 = p[-1].x
|
||||
self.obj.Y2 = p[-1].y
|
||||
self.obj.Z2 = p[-1].z
|
||||
elif ((p[-1].x == self.obj.X1) and (p[-1].y == self.obj.Y1) and (p[-1].z == self.obj.Z1)):
|
||||
self.obj.X2 = p[0].x
|
||||
self.obj.Y2 = p[0].y
|
||||
self.obj.Z2 = p[0].z
|
||||
elif ((p[0].x == self.obj.X2) and (p[0].y == self.obj.Y2) and (p[0].z == self.obj.Z2)):
|
||||
self.obj.X1 = p[-1].x
|
||||
self.obj.Y1 = p[-1].y
|
||||
self.obj.Z1 = p[-1].z
|
||||
else:
|
||||
self.obj.X1 = p[0].x
|
||||
self.obj.Y1 = p[0].y
|
||||
self.obj.Z1 = p[0].z
|
||||
elif Draft.getType(self.obj) == "Circle":
|
||||
angles = self.ghost[0].getAngles()
|
||||
print "original",self.obj.FirstAngle," ",self.obj.LastAngle
|
||||
|
@ -3698,8 +3725,154 @@ class Heal():
|
|||
else:
|
||||
Draft.heal()
|
||||
FreeCAD.ActiveDocument.commitTransaction()
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Snap tools
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
class Draft_Snap_Lock():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Lock',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Lock", "Toggle On/Off"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Lock", "Activates/deactivates all snap tools at once")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"masterbutton"):
|
||||
print FreeCADGui.Snapper.masterbutton
|
||||
FreeCADGui.Snapper.masterbutton.toggle()
|
||||
|
||||
class Draft_Snap_Midpoint():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Midpoint',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Midpoint", "Midpoint"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Midpoint", "Snaps to midpoints of edges")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtonmidpoint":
|
||||
b.toggle()
|
||||
|
||||
class Draft_Snap_Perpendicular():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Perpendicular',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Perpendicular", "Perpendicular"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Perpendicular", "Snaps to perpendicular points on edges")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtonperpendicular":
|
||||
b.toggle()
|
||||
|
||||
class Draft_Snap_Grid():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Grid',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Grid", "Grid"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Grid", "Snaps to grid points")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtongrid":
|
||||
b.toggle()
|
||||
|
||||
class Draft_Snap_Intersection():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Intersection',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Intersection", "Intersection"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Intersection", "Snaps to edges intersections")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtonintersection":
|
||||
b.toggle()
|
||||
|
||||
class Draft_Snap_Parallel():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Parallel',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Parallel", "Parallel"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Parallel", "Snaps to parallel directions of edges")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtonparallel":
|
||||
b.toggle()
|
||||
|
||||
class Draft_Snap_Endpoint():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Endpoint',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Endpoint", "Endpoint"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Endpoint", "Snaps to endpoints of edges")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtonendpoint":
|
||||
b.toggle()
|
||||
|
||||
class Draft_Snap_Angle():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Angle',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Angle", "Angles"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Angle", "Snaps to 45 and 90 degrees points on arcs and circles")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtonangle":
|
||||
b.toggle()
|
||||
|
||||
class Draft_Snap_Center():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Center',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Center", "Center"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Center", "Snaps to center of circles and arcs")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtoncenter":
|
||||
b.toggle()
|
||||
|
||||
class Draft_Snap_Extension():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Extension',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Extension", "Extension"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Extension", "Snaps to extension of edges")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtonextension":
|
||||
b.toggle()
|
||||
|
||||
class Draft_Snap_Near():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Near',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Near", "Nearest"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Near", "Snaps to nearest point on edges")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtonnear":
|
||||
b.toggle()
|
||||
|
||||
class Draft_Snap_Ortho():
|
||||
def GetResources(self):
|
||||
return {'Pixmap' : 'Snap_Ortho',
|
||||
'MenuText': QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Ortho", "Ortho"),
|
||||
'ToolTip' : QtCore.QT_TRANSLATE_NOOP("Draft_Snap_Ortho", "Snaps to orthogonal and 45 degrees directions")}
|
||||
def Activated(self):
|
||||
if hasattr(FreeCADGui,"Snapper"):
|
||||
if hasattr(FreeCADGui.Snapper,"toolbarButtons"):
|
||||
for b in FreeCADGui.Snapper.toolbarButtons:
|
||||
if b.objectName() == "SnapButtonortho":
|
||||
b.toggle()
|
||||
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# Adds the icons & commands to the FreeCAD command manager, and sets defaults
|
||||
#---------------------------------------------------------------------------
|
||||
|
@ -3752,6 +3925,20 @@ FreeCADGui.addCommand('Draft_ToggleSnap',ToggleSnap())
|
|||
FreeCADGui.addCommand('Draft_ShowSnapBar',ShowSnapBar())
|
||||
FreeCADGui.addCommand('Draft_ToggleGrid',ToggleGrid())
|
||||
|
||||
# snap commands
|
||||
FreeCADGui.addCommand('Draft_Snap_Lock',Draft_Snap_Lock())
|
||||
FreeCADGui.addCommand('Draft_Snap_Midpoint',Draft_Snap_Midpoint())
|
||||
FreeCADGui.addCommand('Draft_Snap_Perpendicular',Draft_Snap_Perpendicular())
|
||||
FreeCADGui.addCommand('Draft_Snap_Grid',Draft_Snap_Grid())
|
||||
FreeCADGui.addCommand('Draft_Snap_Intersection',Draft_Snap_Intersection())
|
||||
FreeCADGui.addCommand('Draft_Snap_Parallel',Draft_Snap_Parallel())
|
||||
FreeCADGui.addCommand('Draft_Snap_Endpoint',Draft_Snap_Endpoint())
|
||||
FreeCADGui.addCommand('Draft_Snap_Angle',Draft_Snap_Angle())
|
||||
FreeCADGui.addCommand('Draft_Snap_Center',Draft_Snap_Center())
|
||||
FreeCADGui.addCommand('Draft_Snap_Extension',Draft_Snap_Extension())
|
||||
FreeCADGui.addCommand('Draft_Snap_Near',Draft_Snap_Near())
|
||||
FreeCADGui.addCommand('Draft_Snap_Ortho',Draft_Snap_Ortho())
|
||||
|
||||
# a global place to look for active draft Command
|
||||
FreeCAD.activeDraftCommand = None
|
||||
|
||||
|
|
|
@ -117,11 +117,16 @@ class DraftWorkbench (Workbench):
|
|||
"Draft_SelectGroup","Draft_SelectPlane","Draft_ToggleSnap",
|
||||
"Draft_ShowSnapBar","Draft_ToggleGrid"]
|
||||
self.lineList = ["Draft_UndoLine","Draft_FinishLine","Draft_CloseLine"]
|
||||
self.snapList = ['Draft_Snap_Lock','Draft_Snap_Midpoint','Draft_Snap_Perpendicular',
|
||||
'Draft_Snap_Grid','Draft_Snap_Intersection','Draft_Snap_Parallel',
|
||||
'Draft_Snap_Endpoint','Draft_Snap_Angle','Draft_Snap_Center',
|
||||
'Draft_Snap_Extension','Draft_Snap_Near','Draft_Snap_Ortho']
|
||||
self.appendToolbar(QT_TRANSLATE_NOOP("Workbench","Draft creation tools"),self.cmdList)
|
||||
self.appendToolbar(QT_TRANSLATE_NOOP("Workbench","Draft modification tools"),self.modList)
|
||||
self.appendMenu(str(translate("draft","&Draft")),self.cmdList+self.modList)
|
||||
self.appendMenu([str(translate("draft","&Draft")),str(translate("draft","Context tools"))],self.treecmdList)
|
||||
self.appendMenu([str(translate("draft","&Draft")),str(translate("draft","Wire tools"))],self.lineList)
|
||||
self.appendMenu([str(translate("draft","&Draft")),str(translate("draft","Snapping"))],self.snapList)
|
||||
if hasattr(FreeCADGui,"draftToolBar"):
|
||||
if not hasattr(FreeCADGui.draftToolBar,"loadedPreferences"):
|
||||
FreeCADGui.addPreferencePage(":/ui/userprefs-base.ui","Draft")
|
||||
|
|
Loading…
Reference in New Issue
Block a user