def Activated(self): import Part, OpenSCADFeatures, OpenSCADUtils selection = FreeCADGui.Selection.getSelectionEx() for selobj in selection: newobj = selobj.Document.addObject("Mesh::Feature", 'mirror') newobj.Label = 'mirror_%s' % selobj.Object.Label msh = selobj.Object.Mesh items = [ "[1,0,0]", "[0,1,0]", "[0,0,1]", "[1,1,0]", "[0,1,1]", "[1,0,1]", "[1,1,1]" ] item, ok = QtGui.QInputDialog.getItem( QtGui.QApplication.activeWindow(), u'Mirror about which Axis?', u'Select Axis (or enter custom value)?', items, editable=True) if ok: splits = list(item) x = float(splits[1]) y = float(splits[3]) z = float(splits[5]) vec = FreeCAD.Base.Vector(x, y, z) newmesh = OpenSCADUtils.mirrormesh(msh, vec) newobj.Mesh = newmesh selobj.Object.ViewObject.hide() else: selobj.Document.removeObject(newobj.Name) FreeCAD.ActiveDocument.recompute()