| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| |
|
| | """Used to create CNC machine fixture offsets such as G54,G55, etc...""" |
| |
|
| | import FreeCAD |
| | import FreeCADGui |
| | import Path |
| | import PathScripts.PathUtils as PathUtils |
| | from PySide.QtCore import QT_TRANSLATE_NOOP |
| |
|
| |
|
| | class Fixture: |
| | def __init__(self, obj): |
| | obj.addProperty( |
| | "App::PropertyEnumeration", |
| | "Fixture", |
| | "Path", |
| | QT_TRANSLATE_NOOP("App::Property", "Fixture Offset Number"), |
| | ) |
| | obj.Fixture = [ |
| | "G54", |
| | "G55", |
| | "G56", |
| | "G57", |
| | "G58", |
| | "G59", |
| | "G59.1", |
| | "G59.2", |
| | "G59.3", |
| | "G59.4", |
| | "G59.5", |
| | "G59.6", |
| | "G59.7", |
| | "G59.8", |
| | "G59.9", |
| | ] |
| | obj.addProperty( |
| | "App::PropertyBool", |
| | "Active", |
| | "Path", |
| | QT_TRANSLATE_NOOP( |
| | "App::Property", "Make False, to prevent operation from generating code" |
| | ), |
| | ) |
| |
|
| | obj.Proxy = self |
| |
|
| | def execute(self, obj): |
| | fixlist = [ |
| | "G54", |
| | "G55", |
| | "G56", |
| | "G57", |
| | "G58", |
| | "G59", |
| | "G59.1", |
| | "G59.2", |
| | "G59.3", |
| | "G59.4", |
| | "G59.5", |
| | "G59.6", |
| | "G59.7", |
| | "G59.8", |
| | "G59.9", |
| | ] |
| | fixture = fixlist.index(obj.Fixture) |
| | obj.Path = Path.Path(str(obj.Fixture)) |
| | obj.Label = "Fixture" + str(fixture) |
| | if obj.Active: |
| | job = PathUtils.findParentJob(obj) |
| | c1 = Path.Command(str(obj.Fixture)) |
| | c2 = Path.Command("G0" + str(job.Stock.Shape.BoundBox.ZMax)) |
| | obj.Path = Path.Path([c1, c2]) |
| | obj.ViewObject.Visibility = True |
| | else: |
| | obj.Path = Path.Path("(inactive operation)") |
| | obj.ViewObject.Visibility = False |
| |
|
| |
|
| | class _ViewProviderFixture: |
| | def __init__(self, vobj): |
| | |
| | vobj.Proxy = self |
| | mode = 2 |
| | vobj.setEditorMode("LineWidth", mode) |
| | vobj.setEditorMode("MarkerColor", mode) |
| | vobj.setEditorMode("NormalColor", mode) |
| | vobj.setEditorMode("DisplayMode", mode) |
| | vobj.setEditorMode("BoundingBox", mode) |
| | vobj.setEditorMode("Selectable", mode) |
| | vobj.setEditorMode("ShapeAppearance", mode) |
| | vobj.setEditorMode("Transparency", mode) |
| | vobj.setEditorMode("Visibility", mode) |
| |
|
| | def dumps(self): |
| | return None |
| |
|
| | def loads(self, state): |
| | return None |
| |
|
| | def getIcon(self): |
| | return ":/icons/CAM_Datums.svg" |
| |
|
| | def onChanged(self, vobj, prop): |
| | mode = 2 |
| | vobj.setEditorMode("LineWidth", mode) |
| | vobj.setEditorMode("MarkerColor", mode) |
| | vobj.setEditorMode("NormalColor", mode) |
| | vobj.setEditorMode("DisplayMode", mode) |
| | vobj.setEditorMode("BoundingBox", mode) |
| | vobj.setEditorMode("Selectable", mode) |
| | vobj.setEditorMode("ShapeAppearance", mode) |
| | vobj.setEditorMode("Transparency", mode) |
| | vobj.setEditorMode("Visibility", mode) |
| |
|
| | def updateData(self, vobj, prop): |
| | |
| | pass |
| |
|
| | def setEdit(self, vobj, mode): |
| | |
| | pass |
| |
|
| | def unsetEdit(self, vobj, mode): |
| | |
| | pass |
| |
|
| |
|
| | class CommandPathFixture: |
| | def GetResources(self): |
| | return { |
| | "Pixmap": "CAM_Datums", |
| | "MenuText": QT_TRANSLATE_NOOP("CAM_Fixture", "Fixture"), |
| | "ToolTip": QT_TRANSLATE_NOOP("CAM_Fixture", "Creates a fixture offset"), |
| | } |
| |
|
| | def IsActive(self): |
| | if FreeCAD.ActiveDocument is not None: |
| | for o in FreeCAD.ActiveDocument.Objects: |
| | if o.Name[:3] == "Job": |
| | return True |
| | return False |
| |
|
| | def Activated(self): |
| | FreeCAD.ActiveDocument.openTransaction("Create a Fixture Offset") |
| | FreeCADGui.addModule("Path.Main.Gui.Fixture") |
| | snippet = """ |
| | import Path |
| | import PathScripts |
| | from PathScripts import PathUtils |
| | prjexists = False |
| | obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython","Fixture") |
| | Path.Main.Gui.Fixture.Fixture(obj) |
| | obj.Active = True |
| | Path.Main.Gui.Fixture._ViewProviderFixture(obj.ViewObject) |
| | |
| | PathUtils.addToJob(obj) |
| | |
| | """ |
| | FreeCADGui.doCommand(snippet) |
| | FreeCAD.ActiveDocument.commitTransaction() |
| | FreeCAD.ActiveDocument.recompute() |
| |
|
| |
|
| | if FreeCAD.GuiUp: |
| | |
| | FreeCADGui.addCommand("CAM_Fixture", CommandPathFixture()) |
| |
|
| |
|
| | FreeCAD.Console.PrintLog("Loading PathFixture… done\n") |
| |
|