| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | """Provides GUI tools to create PointArray objects. |
| | |
| | The copies will be created at the points of a point object. |
| | """ |
| | |
| | |
| | |
| |
|
| | |
| | |
| | from PySide.QtCore import QT_TRANSLATE_NOOP |
| |
|
| | import FreeCADGui as Gui |
| | import Draft_rc |
| | import draftguitools.gui_base_original as gui_base_original |
| |
|
| | from draftutils.messages import _err |
| | from draftutils.translate import translate |
| |
|
| | |
| | True if Draft_rc.__name__ else False |
| |
|
| |
|
| | class PointArray(gui_base_original.Modifier): |
| | """Gui Command for the Point array tool. |
| | |
| | Parameters |
| | ---------- |
| | use_link: bool, optional |
| | It defaults to `False`. If it is `True`, the created object |
| | will be a `Point link array`. |
| | """ |
| |
|
| | def __init__(self, use_link=False): |
| | super(PointArray, self).__init__() |
| | self.use_link = use_link |
| |
|
| | def GetResources(self): |
| | """Set icon, menu and tooltip.""" |
| |
|
| | return { |
| | "Pixmap": "Draft_PointArray", |
| | "MenuText": QT_TRANSLATE_NOOP("Draft_PointArray", "Point Array"), |
| | "ToolTip": QT_TRANSLATE_NOOP( |
| | "Draft_PointArray", |
| | "Creates copies of the selected object at the points of a point object", |
| | ), |
| | } |
| |
|
| | def Activated(self, name="Point array"): |
| | """Execute when the command is called.""" |
| | super(PointArray, self).Activated(name=name) |
| | |
| | |
| | |
| |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | self.proceed() |
| |
|
| | def proceed(self): |
| | """Proceed with the command if one object was selected.""" |
| | sel = Gui.Selection.getSelectionEx() |
| | if len(sel) != 2: |
| | _err( |
| | translate( |
| | "draft", |
| | "Select exactly 2 objects, the base object and the point object, before calling this command", |
| | ) |
| | ) |
| | else: |
| | base_object = sel[0].Object |
| | point_object = sel[1].Object |
| | extra = None |
| |
|
| | Gui.addModule("Draft") |
| | _cmd = "Draft.make_point_array" |
| | _cmd += "(" |
| | _cmd += "App.ActiveDocument." + base_object.Name + ", " |
| | _cmd += "App.ActiveDocument." + point_object.Name + ", " |
| | _cmd += "extra=" + str(extra) + ", " |
| | _cmd += "use_link=" + str(self.use_link) |
| | _cmd += ")" |
| |
|
| | _cmd_list = [ |
| | "_obj_ = " + _cmd, |
| | "Draft.autogroup(_obj_)", |
| | "App.ActiveDocument.recompute()", |
| | ] |
| | self.commit(translate("draft", "Create Point Array"), _cmd_list) |
| |
|
| | |
| | |
| | self.finish() |
| |
|
| |
|
| | Gui.addCommand("Draft_PointArray", PointArray()) |
| |
|
| |
|
| | class PointLinkArray(PointArray): |
| | """Gui Command for the PointLinkArray tool based on the PointArray tool.""" |
| |
|
| | def __init__(self): |
| | super(PointLinkArray, self).__init__(use_link=True) |
| |
|
| | def GetResources(self): |
| | """Set icon, menu and tooltip.""" |
| |
|
| | return { |
| | "Pixmap": "Draft_PointLinkArray", |
| | "MenuText": QT_TRANSLATE_NOOP("Draft_PointLinkArray", "Point Link Array"), |
| | "ToolTip": QT_TRANSLATE_NOOP( |
| | "Draft_PointLinkArray", |
| | "Creates linked copies of the selected object at the points of a point object", |
| | ), |
| | } |
| |
|
| | def Activated(self): |
| | """Execute when the command is called.""" |
| | super(PointLinkArray, self).Activated(name="Point link array") |
| |
|
| |
|
| | Gui.addCommand("Draft_PointLinkArray", PointLinkArray()) |
| |
|
| | |
| |
|