예제 #1
0
    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()