From 9ad14edd80dceac70fc77a9625af7749c0bac9db Mon Sep 17 00:00:00 2001 From: sbh Date: Thu, 25 Dec 2014 18:40:10 +0300 Subject: [PATCH] Corrections in connector plugin --- .../ConnectorPlugin_ExportFeature.py | 34 +++---- src/ConnectorPlugin/ExtrusionToMesh.py | 92 ------------------- src/ConnectorPlugin/plugin-Connector.xml | 3 +- 3 files changed, 14 insertions(+), 115 deletions(-) delete mode 100644 src/ConnectorPlugin/ExtrusionToMesh.py diff --git a/src/ConnectorPlugin/ConnectorPlugin_ExportFeature.py b/src/ConnectorPlugin/ConnectorPlugin_ExportFeature.py index 953b31c37..8b3163426 100644 --- a/src/ConnectorPlugin/ConnectorPlugin_ExportFeature.py +++ b/src/ConnectorPlugin/ConnectorPlugin_ExportFeature.py @@ -2,7 +2,9 @@ Copyright (C) 2014-20xx CEA/DEN, EDF R&D """ +import EventsAPI import ModelAPI + import salome from salome.geom import geomBuilder @@ -22,23 +24,27 @@ class ExportFeature(ModelAPI.ModelAPI_Feature): return ExportFeature.ID() # This feature is action: has no property pannel and executes immideately - def isAction(self): - return True + # def isAction(self): + # return True + + def isInHistory(self): + return False def initAttributes(self): # This feature has no attributes, but should perfore some actions on initialization aSession = ModelAPI.ModelAPI_Session.get() aPart = aSession.activeDocument() # Get all bodies - kResultBodyType = "ResultBody" + kResultBodyType = "Bodies" aPartSize = aPart.size(kResultBodyType) if aPartSize == 0: - print "No results in the active document" + EventsAPI.Events_Error_send("No results in the active document") return - aResultList = [aPart.object(kResultBodyType, idx) for idx in xrange(aPartSize)] - for idx, aResult in enumerate(aResultList): - aBodyResult = modelAPI_ResultBody(aResult) + anObjList = [aPart.object(kResultBodyType, idx) for idx in xrange(aPartSize)] + for idx, anObject in enumerate(anObjList): + aResult = ModelAPI.modelAPI_Result(anObject) + aBodyResult = ModelAPI.modelAPI_ResultBody(aResult) if not aBodyResult: continue aShape = aBodyResult.shape() @@ -51,17 +57,3 @@ class ExportFeature(ModelAPI.ModelAPI_Feature): def execute(self): # Nothing to execute: all logic would be in the initAttributes pass - -# TEST -""" -if __name__=='__main__': - session = ModelAPI.ModelAPI_Session.get() - part = session.activeDocument() - session.startOperation() - feature = part.addFeature('Box') - feature.real('box_width').setValue(10) - feature.real('box_length').setValue(10) - feature.real('box_height').setValue(10) - feature.execute() - session.finishOperation() -""" diff --git a/src/ConnectorPlugin/ExtrusionToMesh.py b/src/ConnectorPlugin/ExtrusionToMesh.py deleted file mode 100644 index 7eb0a68b8..000000000 --- a/src/ConnectorPlugin/ExtrusionToMesh.py +++ /dev/null @@ -1,92 +0,0 @@ -#========================================================================= -# Creation of the circular Sketch, then Extrusion (cylinder), -# then export to the old GEOM and usage of SMESH for meshing. -# Based on SALOME 7.4.0 and NewGEOM version: master 18Dec2014. -#========================================================================= -from ModelAPI import * -from GeomDataAPI import * -from GeomAlgoAPI import * -from GeomAPI import * - -aSession = ModelAPI_Session.get() -aDocument = aSession.moduleDocument() - -# Create a part for extrusion -aSession.startOperation() -aPartFeature = aDocument.addFeature("Part") -aSession.finishOperation() - -aPartResult = modelAPI_ResultPart(aPartFeature.firstResult()) -aPart = aPartResult.partDoc() - -#========================================================================= -# Create a sketch circle to extrude -#========================================================================= -aSession.startOperation() -aSketchFeature = modelAPI_CompositeFeature(aPart.addFeature("Sketch")) -origin = geomDataAPI_Point(aSketchFeature.attribute("Origin")) -origin.setValue(0, 0, 0) -dirx = geomDataAPI_Dir(aSketchFeature.attribute("DirX")) -dirx.setValue(1, 0, 0) -diry = geomDataAPI_Dir(aSketchFeature.attribute("DirY")) -diry.setValue(0, 1, 0) -norm = geomDataAPI_Dir(aSketchFeature.attribute("Norm")) -norm.setValue(0, 0, 1) -# Create circle -aSketchCircle = aSketchFeature.addFeature("SketchCircle") -anCircleCentr = geomDataAPI_Point2D(aSketchCircle.attribute("CircleCenter")) -aCircleRadius = aSketchCircle.real("CircleRadius") -anCircleCentr.setValue(50., 50) -aCircleRadius.setValue(20.) -aSession.finishOperation() - -#========================================================================= -# Make extrusion on circle -#========================================================================= -# Build shape from sketcher results -aSketchResult = aSketchFeature.firstResult() -aSketchEdges = modelAPI_ResultConstruction(aSketchResult).shape() -origin = geomDataAPI_Point(aSketchFeature.attribute("Origin")).pnt() -dirX = geomDataAPI_Dir(aSketchFeature.attribute("DirX")).dir() -dirY = geomDataAPI_Dir(aSketchFeature.attribute("DirY")).dir() -norm = geomDataAPI_Dir(aSketchFeature.attribute("Norm")).dir() -aSketchFaces = ShapeList() -GeomAlgoAPI_SketchBuilder.createFaces( - origin, dirX, dirY, norm, aSketchEdges, aSketchFaces) - -# Create extrusion -anExtrusionFt = aPart.addFeature("Extrusion") -anExtrusionFt.selection("extrusion_face").setValue( - aSketchResult, aSketchFaces[0]) -anExtrusionFt.real("extrusion_size").setValue(50) -anExtrusionFt.boolean("extrusion_reverse").setValue(False) -anExtrusionFt.execute() -aSession.finishOperation() - -# Check extrusion results -anExtrusionResult = modelAPI_ResultBody(anExtrusionFt.firstResult()) - -#================================================== -# Transfer shape to Geom module of Salome -#================================================== -aShape = anExtrusionResult.shape() -aDump = aShape.getShapeStream() - -# Load shape to SALOME Geom -import salome -from salome.geom import geomBuilder -geompy = geomBuilder.New(salome.myStudy) -aBrep = geompy.RestoreShape(aDump) -geompy.addToStudy(aBrep, "NewGeomShape") - -# Meshing of the Shape -from salome.smesh import smeshBuilder -meshpy = smeshBuilder.New(salome.myStudy) -aMesh = meshpy.Mesh(aBrep) -Regular_1D = aMesh.Segment() -Max_Size_1 = Regular_1D.MaxSize(5) -MEFISTO_2D = aMesh.Triangle(algo=smeshBuilder.MEFISTO) -isDone = aMesh.Compute() -assert (isDone) -meshpy.SetName(aMesh.GetMesh(), 'NewGeomMesh') - diff --git a/src/ConnectorPlugin/plugin-Connector.xml b/src/ConnectorPlugin/plugin-Connector.xml index 1445b5b8d..2ba73b203 100644 --- a/src/ConnectorPlugin/plugin-Connector.xml +++ b/src/ConnectorPlugin/plugin-Connector.xml @@ -5,8 +5,7 @@ id="ExportToGEOM" title="Export to GEOM" tooltip="Exports all bodies into GEOM module" - icon=":pictures/part_ico.png"> - + icon=":pictures/part_ico.png"/> \ No newline at end of file -- 2.39.2