X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FConnectorPlugin%2FConnectorPlugin_ExportFeature.py;h=26ab3ca9fd49099ae27ac15dd0198b381852be41;hb=ecdaaaad4b49203ba113f2d5f1085879af6ad56d;hp=c6f9d8c0f48751e3dee7ebc7aeaa7ffee2535f20;hpb=ee73514399efe1ea2ba664ed0442796193e71abf;p=modules%2Fshaper.git diff --git a/src/ConnectorPlugin/ConnectorPlugin_ExportFeature.py b/src/ConnectorPlugin/ConnectorPlugin_ExportFeature.py index c6f9d8c0f..26ab3ca9f 100644 --- a/src/ConnectorPlugin/ConnectorPlugin_ExportFeature.py +++ b/src/ConnectorPlugin/ConnectorPlugin_ExportFeature.py @@ -1,6 +1,6 @@ -""" -Copyright (C) 2014-20xx CEA/DEN, EDF R&D -""" +## @package Plugins +# ExportFeature class definition +# Copyright (C) 2014-20xx CEA/DEN, EDF R&D import EventsAPI import ModelAPI @@ -8,35 +8,48 @@ import ModelAPI import salome from salome.geom import geomBuilder +def getObjectIndex(theName): + aStudy = salome.myStudy + aId = 0 + aObj = aStudy.FindObjectByName(theName, "GEOM") + while len(aObj) != 0: + aId = aId + 1 + aName = theName + '_' + str(aId) + aObj = aStudy.FindObjectByName(aName, "GEOM") + return aId +## @ingroup Plugins +# Feature to export all shapes and groups into the GEOM module class ExportFeature(ModelAPI.ModelAPI_Feature): - "Feature to create a box by drawing a sketch and extruding it" - + ## The constructor. def __init__(self): ModelAPI.ModelAPI_Feature.__init__(self) @staticmethod + ## Export kind. Static. def ID(): return "ExportToGEOM" + ## Returns the kind of a feature. def getKind(self): return ExportFeature.ID() - # This feature is action: has no property pannel and executes immideately + ## This feature is action: has no property pannel and executes immideately. def isAction(self): return True - # The action is not placed into the histiry anyway + # The action is not placed into the history anyway #def isInHistory(self): # return False + ## This feature has no attributes, as it is action. def initAttributes(self): - # This feature has no attributes, it is action pass - + + ## Exports all bodies def exportBodies(self): - # Get all bodies + global ShapeIndex kResultBodyType = "Bodies" aPartSize = self.Part.size(kResultBodyType) if aPartSize == 0: @@ -53,9 +66,17 @@ class ExportFeature(ModelAPI.ModelAPI_Feature): aDump = aShape.getShapeStream() # Load shape to SALOME Geom aBrep = self.geompy.RestoreShape(aDump) - self.geompy.addToStudy(aBrep, "NewGeomShape_{0}".format(idx + 1)) + aName = aBodyResult.data().name() + + # Make unique name + aId = getObjectIndex(aName) + if aId != 0: + aName = aName + '_' + str(aId) + + self.geompy.addToStudy(aBrep, aName) self.geomObjects.append([aShape, aBrep]) + ## Exports all groups def exportGroups(self): # iterate all features to find groups aFeaturesNum = self.Part.size("Features") @@ -63,12 +84,16 @@ class ExportFeature(ModelAPI.ModelAPI_Feature): for anIndex in range(0, aFeaturesNum): aFeature = self.Part.object("Features", anIndex) aSelectionList = aFeature.data().selectionList("group_list") + aName = aFeature.data().name() # if a group has been found if aSelectionList: groupIndex = groupIndex + 1 - self.createGroupFromList(aSelectionList, "NewGeomGroup_{0}".format(groupIndex)) + self.createGroupFromList(aSelectionList, aName) - def createGroupFromList(self, theSelectionList, theGroupName): + ## Creates a group by given list of selected objects and the name + # @param theSelectionList: list of selected objects + # @param theGroupName: name of the group to create + def createGroupFromList(self, theSelectionList, theGroupName): # iterate on all selected entities of the group # and get the corresponding ID aSelectionNum = theSelectionList.size() @@ -95,10 +120,14 @@ class ExportFeature(ModelAPI.ModelAPI_Feature): self.geompy.UnionIDs(aGroup,Ids) self.geompy.addToStudyInFather(obj[1], aGroup, theGroupName) + ## Exports all shapes and groups into the GEOM module. def execute(self): aSession = ModelAPI.ModelAPI_Session.get() + ## Get active document self.Part = aSession.activeDocument() + ## List of objects created in the old geom for later use self.geomObjects = [] + ## geomBuilder tool self.geompy = geomBuilder.New(salome.myStudy) # Export bodies and groups