From e44e43fed44829929519370c456ca79f1d8c3f41 Mon Sep 17 00:00:00 2001 From: Paul RASCLE Date: Thu, 14 Jan 2016 16:14:39 +0100 Subject: [PATCH 1/4] t_shape_fluid: glue faces --- src/Tools/t_shape/t_shape_builder.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Tools/t_shape/t_shape_builder.py b/src/Tools/t_shape/t_shape_builder.py index 72ab22bd2..0cff46b98 100644 --- a/src/Tools/t_shape/t_shape_builder.py +++ b/src/Tools/t_shape/t_shape_builder.py @@ -236,7 +236,8 @@ def build_shape(study, r1, r2, h1, h2, solid_thickness=0, progressBar=None ): compound = geompy.MakeCompound([final, extru3]) plane = geompy.MakePlane(O,OX,2000) compound_mirrored = geompy.MakeMirrorByPlane(compound, plane) - final = geompy.MakeCompound([compound, compound_mirrored]) + compound_total = geompy.MakeCompound([compound, compound_mirrored]) + final = geompy.MakeGlueFaces(compound_total, 1e-07) if progressBar is not None: progressBar.addSteps(1) From 845487b15668b2d333b5065cf155946be5368c31 Mon Sep 17 00:00:00 2001 From: mpa Date: Mon, 18 Jan 2016 11:00:10 +0300 Subject: [PATCH 2/4] 0023210: [CEA 1681] Regression with the function GetInPlaceByHistory --- idl/GEOM_Gen.idl | 6 ++-- src/GEOM_SWIG/geomBuilder.py | 12 ++++--- src/XAOPlugin/XAOPlugin_IOperations.cxx | 37 ++++++++++++---------- src/XAOPlugin/XAOPlugin_IOperations.hxx | 42 ++++++++++++------------- 4 files changed, 54 insertions(+), 43 deletions(-) diff --git a/idl/GEOM_Gen.idl b/idl/GEOM_Gen.idl index 830fcc398..1e572a79f 100644 --- a/idl/GEOM_Gen.idl +++ b/idl/GEOM_Gen.idl @@ -2654,7 +2654,8 @@ module GEOM * coincident with \a theShapeWhat or could be a part of it. * \param theShapeWhere Shape to find sub-shapes of. * \param theShapeWhat Shape, specifying what to find. - * \return Group of all found sub-shapes or a single found sub-shape. + * \return Compound which includes all found sub-shapes if they have different types; + * or group of all found shapes of the equal type; or a single found sub-shape. */ GEOM_Object GetInPlace (in GEOM_Object theShapeWhere, in GEOM_Object theShapeWhat); @@ -2677,7 +2678,8 @@ module GEOM * * \param theShapeWhere Shape to find sub-shapes of. * \param theShapeWhat Shape, specifying what to find. - * \return Group of all found sub-shapes or a single found sub-shape. + * \return Compound which includes all found sub-shapes if they have different types; + * or group of all found shapes of the equal type; or a single found sub-shape. */ GEOM_Object GetInPlaceByHistory (in GEOM_Object theShapeWhere, in GEOM_Object theShapeWhat); diff --git a/src/GEOM_SWIG/geomBuilder.py b/src/GEOM_SWIG/geomBuilder.py index 0f90ef502..297b3a18a 100644 --- a/src/GEOM_SWIG/geomBuilder.py +++ b/src/GEOM_SWIG/geomBuilder.py @@ -5866,7 +5866,8 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen): # for result publication in the study. Otherwise, if automatic # publication is switched on, default value is used for result name. # - # @return Group of all found sub-shapes or a single found sub-shape. + # @return Compound which includes all found sub-shapes if they have different types; + # or group of all found shapes of the equal type; or a single found sub-shape. # # @note This function has a restriction on argument shapes. # If \a theShapeWhere has curved parts with significantly @@ -5891,7 +5892,8 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen): publication is switched on, default value is used for result name. Returns: - Group of all found sub-shapes or a single found sub-shape. + Compound which includes all found sub-shapes if they have different types; + or group of all found shapes of the equal type; or a single found sub-shape. Note: @@ -5927,7 +5929,8 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen): # for result publication in the study. Otherwise, if automatic # publication is switched on, default value is used for result name. # - # @return Group of all found sub-shapes or a single found sub-shape. + # @return Compound which includes all found sub-shapes if they have different types; + # or group of all found shapes of the equal type; or a single found sub-shape. # # @ref swig_GetInPlace "Example" @ManageTransactions("ShapesOp") @@ -5948,7 +5951,8 @@ class geomBuilder(object, GEOM._objref_GEOM_Gen): publication is switched on, default value is used for result name. Returns: - Group of all found sub-shapes or a single found sub-shape. + Compound which includes all found sub-shapes if they have different types; + or group of all found shapes of the equal type; or a single found sub-shape. """ # Example: see GEOM_TestOthers.py anObj = self.ShapesOp.GetInPlaceByHistory(theShapeWhere, theShapeWhat) diff --git a/src/XAOPlugin/XAOPlugin_IOperations.cxx b/src/XAOPlugin/XAOPlugin_IOperations.cxx index d8c886274..a6f094194 100644 --- a/src/XAOPlugin/XAOPlugin_IOperations.cxx +++ b/src/XAOPlugin/XAOPlugin_IOperations.cxx @@ -113,15 +113,19 @@ XAOPlugin_IOperations::~XAOPlugin_IOperations() MESSAGE( "XAOPlugin_IOperations::~XAOPlugin_IOperations" ); } -void XAOPlugin_IOperations::exportGroups( std::list groupList, - XAO::Xao* xaoObject, - XAO::BrepGeometry* geometry ) +bool XAOPlugin_IOperations::exportGroups( std::list groupList, + XAO::Xao* xaoObject, + XAO::BrepGeometry* geometry ) { // add the groups std::list::iterator groupIterator = groupList.begin(); while (groupIterator != groupList.end()) { Handle(GEOM_Object) currGroup = (*groupIterator++); + if (currGroup->GetType() != GEOM_GROUP) { + SetErrorCode("Error when export groups: you could perform this operation only with group."); + return false; + } Handle(TColStd_HArray1OfInteger) groupIds = myGroupOperations->GetObjects(currGroup); TopAbs_ShapeEnum shapeGroup = myGroupOperations->GetType(currGroup); @@ -164,11 +168,12 @@ void XAOPlugin_IOperations::exportGroups( std::list groupLi break; } } + return true; } void XAOPlugin_IOperations::exportFields( std::list fieldList, - XAO::Xao* xaoObject, - XAO::BrepGeometry* geometry ) + XAO::Xao* xaoObject, + XAO::BrepGeometry* geometry ) { std::list::iterator fieldIterator = fieldList.begin(); while (fieldIterator != fieldList.end()) @@ -301,10 +306,10 @@ void XAOPlugin_IOperations::exportSubshapes( const Handle(GEOM_Object)& shape, X */ //============================================================================= bool XAOPlugin_IOperations::ExportXAO( Handle(GEOM_Object) shape, - std::list groupList, - std::list fieldList, - const char* author, - const char* fileName ) + std::list groupList, + std::list fieldList, + const char* author, + const char* fileName ) { SetErrorCode(KO); @@ -337,7 +342,7 @@ bool XAOPlugin_IOperations::ExportXAO( Handle(GEOM_Object) shape, exportSubshapes(shape, geometry); xaoObject->setGeometry(geometry); - exportGroups(groupList, xaoObject, geometry); + if (!exportGroups(groupList, xaoObject, geometry)) return false; exportFields(fieldList, xaoObject, geometry); // export the XAO to the file @@ -380,8 +385,8 @@ bool XAOPlugin_IOperations::ExportXAO( Handle(GEOM_Object) shape, } void XAOPlugin_IOperations::importSubShapes( XAO::Geometry* xaoGeometry, - Handle(GEOM_Function) function, int shapeType, int dim, - Handle(TColStd_HSequenceOfTransient)& subShapeList ) + Handle(GEOM_Function) function, int shapeType, int dim, + Handle(TColStd_HSequenceOfTransient)& subShapeList ) { Handle(GEOM_Object) subShape; Handle(GEOM_Function) aFunction; @@ -433,10 +438,10 @@ void XAOPlugin_IOperations::importSubShapes( XAO::Geometry* xaoGeometry, */ //============================================================================= bool XAOPlugin_IOperations::ImportXAO( const char* fileName, - Handle(GEOM_Object)& shape, - Handle(TColStd_HSequenceOfTransient)& subShapes, - Handle(TColStd_HSequenceOfTransient)& groups, - Handle(TColStd_HSequenceOfTransient)& fields ) + Handle(GEOM_Object)& shape, + Handle(TColStd_HSequenceOfTransient)& subShapes, + Handle(TColStd_HSequenceOfTransient)& groups, + Handle(TColStd_HSequenceOfTransient)& fields ) { SetErrorCode(KO); diff --git a/src/XAOPlugin/XAOPlugin_IOperations.hxx b/src/XAOPlugin/XAOPlugin_IOperations.hxx index 869e3a1c2..2b477442a 100644 --- a/src/XAOPlugin/XAOPlugin_IOperations.hxx +++ b/src/XAOPlugin/XAOPlugin_IOperations.hxx @@ -44,31 +44,31 @@ public: ~XAOPlugin_IOperations(); bool ExportXAO( Handle(GEOM_Object) shape, - std::list groupList, - std::list fieldList, - const char* author, - const char* fileName ); + std::list groupList, + std::list fieldList, + const char* author, + const char* fileName ); bool ImportXAO( const char* fileName, - Handle(GEOM_Object)& shape, - Handle(TColStd_HSequenceOfTransient)& subShapes, - Handle(TColStd_HSequenceOfTransient)& groups, - Handle(TColStd_HSequenceOfTransient)& fields ); + Handle(GEOM_Object)& shape, + Handle(TColStd_HSequenceOfTransient)& subShapes, + Handle(TColStd_HSequenceOfTransient)& groups, + Handle(TColStd_HSequenceOfTransient)& fields ); private: - void importSubShapes( XAO::Geometry* xaoGeometry, - Handle(GEOM_Function) function, - int shapeType, - int dim, - Handle(TColStd_HSequenceOfTransient)& subshapeList ); - void exportSubshapes( const Handle(GEOM_Object)& shape, - XAO::BrepGeometry* geometry ); - void exportFields( std::list fieldList, - XAO::Xao* xaoObject, - XAO::BrepGeometry* geometry ); - void exportGroups( std::list groupList, - XAO::Xao* xaoObject, - XAO::BrepGeometry* geometry ); + void importSubShapes( XAO::Geometry* xaoGeometry, + Handle(GEOM_Function) function, + int shapeType, + int dim, + Handle(TColStd_HSequenceOfTransient)& subshapeList ); + void exportSubshapes( const Handle(GEOM_Object)& shape, + XAO::BrepGeometry* geometry ); + void exportFields( std::list fieldList, + XAO::Xao* xaoObject, + XAO::BrepGeometry* geometry ); + bool exportGroups( std::list groupList, + XAO::Xao* xaoObject, + XAO::BrepGeometry* geometry ); }; #endif From 6013ddd73d559f081bf0a60273b192282ded75cc Mon Sep 17 00:00:00 2001 From: mpa Date: Mon, 18 Jan 2016 13:49:09 +0300 Subject: [PATCH 3/4] Adding of the necessary translations --- src/GEOMGUI/GEOM_msg_en.ts | 8 ++++++++ src/GEOMGUI/GEOM_msg_fr.ts | 8 ++++++++ src/GEOMGUI/GEOM_msg_ja.ts | 8 ++++++++ 3 files changed, 24 insertions(+) diff --git a/src/GEOMGUI/GEOM_msg_en.ts b/src/GEOMGUI/GEOM_msg_en.ts index 5a094f303..7aef53a75 100644 --- a/src/GEOMGUI/GEOM_msg_en.ts +++ b/src/GEOMGUI/GEOM_msg_en.ts @@ -4960,10 +4960,18 @@ Please, select face, shell or solid and try again MEN_POP_SHOW_DEPENDENCY_TREE Show dependency tree + + STB_POP_SHOW_DEPENDENCY_TREE + Show dependency tree + MEN_POP_REDUCE_STUDY Reduce study + + STB_POP_REDUCE_STUDY + Reduce study + MEN_POP_SHOW_ALL_DIMENSIONS Show all dimensions diff --git a/src/GEOMGUI/GEOM_msg_fr.ts b/src/GEOMGUI/GEOM_msg_fr.ts index 01acd20ca..a7111b94c 100644 --- a/src/GEOMGUI/GEOM_msg_fr.ts +++ b/src/GEOMGUI/GEOM_msg_fr.ts @@ -4952,10 +4952,18 @@ Choisissez une face, une coque ou un solide et essayez de nouveau MEN_POP_SHOW_DEPENDENCY_TREE Montrer l'arbre des dépendances + + STB_POP_SHOW_DEPENDENCY_TREE + Montrer l'arbre des dépendances + MEN_POP_REDUCE_STUDY Etude réduite + + STB_POP_REDUCE_STUDY + Etude réduite + MEN_POP_SHOW_ALL_DIMENSIONS Afficher les cotations diff --git a/src/GEOMGUI/GEOM_msg_ja.ts b/src/GEOMGUI/GEOM_msg_ja.ts index 0a55e444f..0e42dfe3d 100644 --- a/src/GEOMGUI/GEOM_msg_ja.ts +++ b/src/GEOMGUI/GEOM_msg_ja.ts @@ -4955,10 +4955,18 @@ MEN_POP_SHOW_DEPENDENCY_TREE 依存ツリーの表示 + + STB_POP_SHOW_DEPENDENCY_TREE + 依存ツリーの表示 + MEN_POP_REDUCE_STUDY スタディの削減 + + STB_POP_REDUCE_STUDY + スタディの削減 + MEN_POP_SHOW_ALL_DIMENSIONS すべての寸法を表示 From 9febe29948d7452dafef311073d66d25977147af Mon Sep 17 00:00:00 2001 From: Paul RASCLE Date: Thu, 21 Jan 2016 16:47:41 +0100 Subject: [PATCH 4/4] change point marker aspect for 2D curve edition --- src/CurveCreator/CurveCreator_Curve.cxx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/CurveCreator/CurveCreator_Curve.cxx b/src/CurveCreator/CurveCreator_Curve.cxx index 0185e6cf4..e6be346fa 100644 --- a/src/CurveCreator/CurveCreator_Curve.cxx +++ b/src/CurveCreator/CurveCreator_Curve.cxx @@ -37,6 +37,11 @@ #include #include +#include +#include +#include +#define DEBTRACE(msg) {std::cerr< //======================================================================= @@ -247,6 +252,7 @@ void CurveCreator_Curve::getCoordinates( int theISection, int theIPoint, double& void CurveCreator_Curve::redisplayCurve() { + //DEBTRACE("redisplayCurve"); if( myDisplayer ) { myDisplayer->eraseAll( false ); myAISShape = NULL; @@ -779,6 +785,7 @@ bool CurveCreator_Curve::addPoints( const CurveCreator::Coordinates& theCoords, const int theISection, const int theIPnt ) { + //DEBTRACE("addPoints"); bool res = false; CurveCreator::Coordinates aCoords = theCoords; // Set the difference. @@ -834,6 +841,7 @@ bool CurveCreator_Curve::setPoint( const int theISection, const int theIPnt, const CurveCreator::Coordinates& theNewCoords ) { + //DEBTRACE("setPoint"); bool res = false; // Set the difference. startOperation(); @@ -862,6 +870,7 @@ bool CurveCreator_Curve::setPoint( const int theISection, bool CurveCreator_Curve::setSeveralPoints( const SectionToPointCoordsList &theSectionToPntCoords, const bool theIsToSaveDiff ) { + //DEBTRACE("setSeveralPoints"); bool res = false; // Set the difference. startOperation(); @@ -950,6 +959,7 @@ bool CurveCreator_Curve::removeSeveralPoints( const SectionToPointList &theSecti CurveCreator::Coordinates CurveCreator_Curve::getPoint( const int theISection, const int theIPnt) const { + //DEBTRACE("getPoint"); CurveCreator_Section* aSection = (CurveCreator_Section*)getSection( theISection ); CurveCreator::Coordinates::const_iterator anIter = aSection->myPoints.begin() + toICoord(theIPnt); @@ -964,20 +974,29 @@ CurveCreator::Coordinates CurveCreator_Curve::getPoint( const int theISection, //======================================================================= CurveCreator::Coordinates CurveCreator_Curve::getPoints( const int theISection ) const { + //DEBTRACE("getPoints"); CurveCreator_Section* aSection = (CurveCreator_Section*)getSection( theISection ); return aSection ? aSection->myPoints : CurveCreator::Coordinates(); } void CurveCreator_Curve::constructAISObject() { + //DEBTRACE("constructAISObject"); TopoDS_Shape aShape; CurveCreator_Utils::constructShape( this, aShape ); myAISShape = new AIS_Shape( aShape ); + Handle(Prs3d_PointAspect) anAspect = myAISShape->Attributes()->PointAspect(); + anAspect->SetScale( 3.0 ); + anAspect->SetTypeOfMarker(Aspect_TOM_O_POINT); + anAspect->SetColor(Quantity_NOC_ROYALBLUE4); + myAISShape->Attributes()->SetPointAspect( anAspect ); + } Handle(AIS_InteractiveObject) CurveCreator_Curve::getAISObject( const bool theNeedToBuild ) const { + //DEBTRACE("getAISObject"); if ( !myAISShape && theNeedToBuild ) { CurveCreator_Curve* aCurve = (CurveCreator_Curve*)this; aCurve->constructAISObject();