[openscad] add ulrich's mirror mesh macro, fix error in refine shape

This commit is contained in:
mwganson
2020-07-19 14:35:27 -05:00
committed by Yorik van Havre
parent d106be0b9b
commit c5b93d698e
6 changed files with 581 additions and 3 deletions

View File

@@ -157,6 +157,26 @@ class RefineShapeFeature:
'MenuText': QtCore.QT_TRANSLATE_NOOP('OpenSCAD_RefineShapeFeature', 'Refine Shape Feature'),
'ToolTip' : QtCore.QT_TRANSLATE_NOOP('OpenSCAD_RefineShapeFeature', 'Create Refine Shape Feature')}
class MirrorMeshFeature:
def IsActive(self):
return FreeCADGui.Selection.countObjectsOfType('Mesh::Feature') > 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
newobj.Mesh=OpenSCADUtils.mirror(msh)
selobj.Object.ViewObject.hide()
FreeCAD.ActiveDocument.recompute()
def GetResources(self):
return {'Pixmap' : 'OpenSCAD_MirrorMeshFeature',
'MenuText': QtCore.QT_TRANSLATE_NOOP('OpenSCAD_MirrorMeshFeature', 'Mirror Mesh Feature'),
'ToolTip' : QtCore.QT_TRANSLATE_NOOP('OpenSCAD_MirrorMeshFeature', 'Create Mirror Mesh Feature')}
class IncreaseToleranceFeature:
def IsActive(self):
return FreeCADGui.Selection.countObjectsOfType('Part::Feature') > 0
@@ -422,6 +442,7 @@ FreeCADGui.addCommand('OpenSCAD_ColorCodeShape',ColorCodeShape())
FreeCADGui.addCommand('OpenSCAD_ExplodeGroup',ExplodeGroup())
FreeCADGui.addCommand('OpenSCAD_Edgestofaces',Edgestofaces())
FreeCADGui.addCommand('OpenSCAD_RefineShapeFeature',RefineShapeFeature())
FreeCADGui.addCommand('OpenSCAD_MirrorMeshFeature',MirrorMeshFeature())
FreeCADGui.addCommand('OpenSCAD_IncreaseToleranceFeature',IncreaseToleranceFeature())
FreeCADGui.addCommand('OpenSCAD_ExpandPlacements',ExpandPlacements())
FreeCADGui.addCommand('OpenSCAD_ReplaceObject',ReplaceObject())