| |
|
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| """Used for CNC machine comments for Path module. Create a comment and place it in the Document tree.""" |
|
|
| import FreeCAD |
| import FreeCADGui |
| import Path |
| from PySide import QtCore |
|
|
| from PySide.QtCore import QT_TRANSLATE_NOOP |
|
|
| translate = FreeCAD.Qt.translate |
|
|
|
|
| class Comment: |
| def __init__(self, obj): |
| obj.addProperty( |
| "App::PropertyString", |
| "Comment", |
| "Path", |
| QT_TRANSLATE_NOOP("App::Property", "Comment or note for CNC program"), |
| ) |
| obj.Proxy = self |
| mode = 2 |
| obj.setEditorMode("Placement", mode) |
|
|
| def dumps(self): |
| return None |
|
|
| def loads(self, state): |
| return None |
|
|
| def onChanged(self, obj, prop): |
| pass |
|
|
| def execute(self, obj): |
| output = "" |
| output += "(" + str(obj.Comment) + ")\n" |
| path = Path.Path(output) |
| obj.Path = path |
|
|
|
|
| class _ViewProviderComment: |
| 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_Comment.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) |
|
|
|
|
| class CommandPathComment: |
| def GetResources(self): |
| return { |
| "Pixmap": "CAM_Comment", |
| "MenuText": QT_TRANSLATE_NOOP("CAM_Comment", "Comment"), |
| "ToolTip": QT_TRANSLATE_NOOP("CAM_Comment", "Adds a Comment to the CNC program"), |
| } |
|
|
| 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 Comment in the CNC program") |
| FreeCADGui.addModule("Path.Op.Gui.Comment") |
| snippet = """ |
| import Path |
| import PathScripts |
| from PathScripts import PathUtils |
| obj = FreeCAD.ActiveDocument.addObject("Path::FeaturePython","Comment") |
| Path.Op.Gui.Comment.Comment(obj) |
| Path.Op.Gui.Comment._ViewProviderComment(obj.ViewObject) |
| |
| PathUtils.addToJob(obj) |
| """ |
| FreeCADGui.doCommand(snippet) |
| FreeCAD.ActiveDocument.commitTransaction() |
| FreeCAD.ActiveDocument.recompute() |
|
|
|
|
| if FreeCAD.GuiUp: |
| |
| FreeCADGui.addCommand("CAM_Comment", CommandPathComment()) |
|
|
|
|
| FreeCAD.Console.PrintLog("Loading PathComment… done\n") |
|
|