From 0879e5d5795d7427c0d525432a59492126cab4c7 Mon Sep 17 00:00:00 2001 From: abuhsing Date: Tue, 9 Jul 2013 14:20:52 +0000 Subject: [PATCH] Mise a jour source recette Hexablock 6 Committing in . Modified Files: Tag: V7_main src/HEXABLOCK/HexBiCylinder.cxx src/HEXABLOCK/HexBiCylinder.hxx src/HEXABLOCK/HexDocument_v6.cxx src/HEXABLOCK/HexEdgeShape.cxx src/HEXABLOCK/HexElements.cxx src/HEXABLOCK/HexElements.hxx src/HEXABLOCK/HexHexa.cxx src/HEXABLOCK/HexNewShape.cxx src/HEXABLOCK/HexQuad.cxx src/HEXABLOCK/HexQuad.hxx src/HEXABLOCK/test_hexa6.cxx src/HEXABLOCKGUI/CutEdge_QTD.ui src/HEXABLOCKGUI/EdgeAssoc_QTD.ui src/HEXABLOCKGUI/Group_QTD.ui src/HEXABLOCKGUI/HEXABLOCKGUI.cxx src/HEXABLOCKGUI/HEXABLOCKGUI.hxx src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentDelegate.cxx src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.cxx src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.hxx src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.cxx src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.hxx src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.cxx src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.hxx src/HEXABLOCKGUI/JoinQuad_QTD.ui src/HEXABLOCKGUI/MakeCylinder_QTD.ui src/HEXABLOCKGUI/MakeCylinders_QTD.ui src/HEXABLOCKGUI/MakeGrid_QTD.ui src/HEXABLOCKGUI/MakeHemiSphere_QTD.ui src/HEXABLOCKGUI/MakePipe_QTD.ui src/HEXABLOCKGUI/MakePipes_QTD.ui src/HEXABLOCKGUI/PrismQuad_QTD.ui src/HEXABLOCKGUI/Propagation_QTD.ui src/HEXABLOCKGUI/QuadRevolution_QTD.ui src/HEXABLOCKGUI/ReplaceHexa_QTD.ui src/HEXABLOCKGUI/resources/HEXABLOCK_msg_en.ts src/HEXABLOCK_SWIG/hexablock_swig.py src/HEXABLOCK_SWIG/hexablock_swig_wrap.cc src/TEST_PY/recettes/troisCylindres.py src/TEST_PY/recettes/tuyauterie.py Removed Files: Tag: V7_main src/TEST_PY/test_unit/bielle.brep src/TEST_PY/test_unit/bielle.stp src/TEST_PY/test_unit/bielle_v1.py src/TEST_PY/test_unit/bielle_v5.py src/TEST_PY/test_unit/tuyau.brep src/TEST_PY/test_unit/tuyau_v5.py ---------------------------------------------------------------------- --- src/HEXABLOCK/HexBiCylinder.cxx | 262 ++- src/HEXABLOCK/HexBiCylinder.hxx | 11 +- src/HEXABLOCK/HexDocument_v6.cxx | 4 + src/HEXABLOCK/HexEdgeShape.cxx | 2 +- src/HEXABLOCK/HexElements.cxx | 13 + src/HEXABLOCK/HexElements.hxx | 6 +- src/HEXABLOCK/HexHexa.cxx | 14 +- src/HEXABLOCK/HexNewShape.cxx | 11 +- src/HEXABLOCK/HexQuad.cxx | 29 +- src/HEXABLOCK/HexQuad.hxx | 5 +- src/HEXABLOCK/test_hexa6.cxx | 75 +- src/HEXABLOCKGUI/CutEdge_QTD.ui | 6 +- src/HEXABLOCKGUI/EdgeAssoc_QTD.ui | 480 ++--- src/HEXABLOCKGUI/Group_QTD.ui | 48 +- src/HEXABLOCKGUI/HEXABLOCKGUI.cxx | 122 +- src/HEXABLOCKGUI/HEXABLOCKGUI.hxx | 1 - .../HEXABLOCKGUI_DocumentDelegate.cxx | 45 +- .../HEXABLOCKGUI_DocumentItem.cxx | 34 +- .../HEXABLOCKGUI_DocumentItem.hxx | 36 +- .../HEXABLOCKGUI_DocumentModel.cxx | 753 +------ .../HEXABLOCKGUI_DocumentModel.hxx | 103 +- .../HEXABLOCKGUI_DocumentPanel.cxx | 411 ++-- .../HEXABLOCKGUI_DocumentPanel.hxx | 4 + src/HEXABLOCKGUI/JoinQuad_QTD.ui | 537 +++-- src/HEXABLOCKGUI/MakeCylinder_QTD.ui | 811 ++++---- src/HEXABLOCKGUI/MakeCylinders_QTD.ui | 10 +- src/HEXABLOCKGUI/MakeGrid_QTD.ui | 829 ++++---- src/HEXABLOCKGUI/MakeHemiSphere_QTD.ui | 1788 +++++++++-------- src/HEXABLOCKGUI/MakePipe_QTD.ui | 804 ++++---- src/HEXABLOCKGUI/MakePipes_QTD.ui | 12 +- src/HEXABLOCKGUI/PrismQuad_QTD.ui | 472 ++--- src/HEXABLOCKGUI/Propagation_QTD.ui | 96 +- src/HEXABLOCKGUI/QuadRevolution_QTD.ui | 385 ++-- src/HEXABLOCKGUI/ReplaceHexa_QTD.ui | 253 ++- .../resources/HEXABLOCK_msg_en.ts | 6 +- src/HEXABLOCK_SWIG/hexablock_swig.py | 2 + src/HEXABLOCK_SWIG/hexablock_swig_wrap.cc | 64 + src/TEST_PY/recettes/troisCylindres.py | 131 +- src/TEST_PY/recettes/tuyauterie.py | 66 +- src/TEST_PY/test_unit/bielle.brep | 639 ------ src/TEST_PY/test_unit/bielle.stp | 1178 ----------- src/TEST_PY/test_unit/bielle_v1.py | 275 --- src/TEST_PY/test_unit/bielle_v5.py | 315 --- src/TEST_PY/test_unit/tuyau.brep | 425 ---- src/TEST_PY/test_unit/tuyau_v5.py | 260 --- 45 files changed, 4120 insertions(+), 7713 deletions(-) delete mode 100644 src/TEST_PY/test_unit/bielle.brep delete mode 100644 src/TEST_PY/test_unit/bielle.stp delete mode 100644 src/TEST_PY/test_unit/bielle_v1.py delete mode 100644 src/TEST_PY/test_unit/bielle_v5.py delete mode 100755 src/TEST_PY/test_unit/tuyau.brep delete mode 100644 src/TEST_PY/test_unit/tuyau_v5.py diff --git a/src/HEXABLOCK/HexBiCylinder.cxx b/src/HEXABLOCK/HexBiCylinder.cxx index e35cd78..5946844 100755 --- a/src/HEXABLOCK/HexBiCylinder.cxx +++ b/src/HEXABLOCK/HexBiCylinder.cxx @@ -162,26 +162,29 @@ Edge* BiCylinder::addEdge (Vertex* v1, Vertex* v2, int cyl, int dir, int nx, printf ("%s ((%s, %s)) = (%s,%s)\n", NameOf(edge), NameOf(edge->getVertex(0)), NameOf(edge->getVertex(1)), NameOf(v1), NameOf(v2)); - if (NOT edge->definedBy (v1,v2)) + if (edge->definedBy (v1,v2)) + return tab_edge [nro]; + else printf (" **** Incoherence !!\n"); } - return tab_edge [nro]; } if (v1==NULL || v2==NULL) return NULL; Edge* edge = findEdge (v1, v2); - if (edge==NULL) - edge = newEdge (v1, v2); + if (edge!=NULL) + return edge; + edge = newEdge (v1, v2); map_edge [key] = nbr_edges; tab_edge.push_back (edge); + nbr_edges ++; if (db) { printf (" tab_edge [%d,%d, %d,%d,%d] = E%d = ", cyl, dir, nx, ny, nz, - nbr_edges); + nbr_edges-1); if (edge == NULL) printf ("NULL\n"); else @@ -189,7 +192,6 @@ Edge* BiCylinder::addEdge (Vertex* v1, Vertex* v2, int cyl, int dir, int nx, NameOf(edge->getVertex(0)), NameOf(edge->getVertex(1))); } - nbr_edges ++; return edge; } // ====================================================== addQuad @@ -208,7 +210,9 @@ Quad* BiCylinder::addQuad (Edge* e1, Edge* e2, Edge* e3, Edge* e4, int cyl, nbr_quads); printf ("%s (%s, %s, %s, %s)\n", NameOf(quad), NameOf(e1), NameOf(e2), NameOf(e3), NameOf(e4)); - if (NOT quad->definedBy (e1,e3)) + if (quad->definedBy (e1,e3)) + return tab_quad [nro]; + else { printf (" **** Incoherence !!\n"); printf ("%s = (%s, %s, %s, %s)\n", NameOf(quad), @@ -219,17 +223,21 @@ Quad* BiCylinder::addQuad (Edge* e1, Edge* e2, Edge* e3, Edge* e4, int cyl, NameOf(quad->getVertex(1)), NameOf(quad->getVertex(2))); } } - return tab_quad [nro]; } - Quad* quad = newQuad (e1, e2, e3, e4); + Quad* quad = Elements::findQuad (e1, e2); + if (quad!=NULL) + return quad; + + quad = newQuad (e1, e2, e3, e4); map_quad [key] = nbr_quads; tab_quad.push_back (quad); + nbr_quads ++; if (db) { printf (" tab_quad [%d,%d, %d,%d,%d] = Q%d = ", cyl, dir, nx, ny, nz, - nbr_quads); + nbr_quads-1); if (quad == NULL) printf ("NULL\n"); else @@ -237,7 +245,6 @@ Quad* BiCylinder::addQuad (Edge* e1, Edge* e2, Edge* e3, Edge* e4, int cyl, NameOf(quad->getEdge(0)), NameOf(quad->getEdge(1)), NameOf(quad->getEdge(2)), NameOf(quad->getEdge(3))); } - nbr_quads ++; return quad; } // ====================================================== addHexa @@ -248,9 +255,14 @@ Hexa* BiCylinder::addHexa (Quad* q1, Quad* q2, Quad* q3, Quad* q4, Quad* q5, int nro = map_hexa [key]; if (nro>0) { - printf (" tab_hexa [%d, %d,%d,%d] = H%d est deja la\n ", + if (tab_hexa [nro]->definedBy (q1,q2)) + { + printf (" tab_hexa [%d, %d,%d,%d] = H%d est deja la\n ", cyl, nx, ny, nz, nbr_hexas); - return tab_hexa [nro]; + return tab_hexa [nro]; + } + printf (" Incoherence : tab_hexa [%d, %d,%d,%d] = H%d = %s\n ", + cyl, nx, ny, nz, nbr_hexas, tab_hexa [nro]->getName ()); } Hexa* hexa = newHexa (q1, q2, q3, q4, q5, q6); @@ -371,6 +383,28 @@ Quad* BiCylinder::findQuad (Edge* e1, Edge* e2, int dir, int nx, int ny, int nz) fatal_error ("HexBiCylinder : Quad non trouve"); return NULL; } +/******************************************* +// ====================================================== findQuad +Quad* BiCylinder::findQuad (Edge* e1, Edge* e2) +{ + for (it_map=map_quad.begin() ; it_map!=map_quad.end() ; ++it_map) + { + int nro = it_map->second; + Quad* elt = tab_quad[nro]; + if (elt != NULL && elt->definedBy (e1, e2)) + { + int key = getKey (CylBig, dir, nx, ny, nz); + map_quad [key] = nro; + if (db) + printf ("findQuad [%d, %d,%d,%d] = E%d = '%d' = %s\n", + dir, nx, ny, nz, nro, it_map->first, NameOf(elt)); + return elt; + } + } + fatal_error ("HexBiCylinder : Quad non trouve"); + return NULL; +} + ********************************************/ // ====================================================== findHexa Hexa* BiCylinder::findHexa (Quad* q1, Quad* q2, int nx, int ny, int nz) { @@ -409,6 +443,14 @@ void BiCylinder::createLittlePipe () addSlice (CylSmall, 1, 1, -h2, cross_rayext [CylSmall]); addSlice (CylSmall, 0, 2, h3-h2, cross_rayint [CylSmall]); } + else if (cyl_fill) + { + addSlice (CylSmall, 0, 1, -h2, cross_rayint [CylSmall]); + + addSlice (CylSmall, 1, 1, -h2, cross_rayext [CylSmall]); + addSlice (CylSmall, 0, 2, h3-h2, cross_rayint [CylSmall]); + } + addSlice (CylSmall, 2, 1, -h2, cross_rayext [CylBig]); addSlice (CylSmall, 1, 2, h3-h2, cross_rayint [CylBig]); @@ -422,19 +464,38 @@ void BiCylinder::createLittlePipe () addSlice (CylSmall, 0, 5, h5, cross_rayint [CylSmall]); addSlice (CylSmall, 1, 5, h5, cross_rayext [CylSmall]); } + else if (cyl_fill) + { + addSlice (CylSmall, 0, 3, h2-h3, cross_rayint [CylSmall]); + addSlice (CylSmall, 1, 4, h2, cross_rayext [CylSmall]); + addSlice (CylSmall, 0, 4, h2, cross_rayint [CylSmall]); + } + //--------------------------------- Remplissage // ka kb kc kd if (at_left) { fillSlice (CylSmall, 0,0, 0,2, 1,1, 1,0); fillSlice (CylSmall, 0,2, 1,2, 2,1, 1,1); if (cyl_fill) - addCube (CylSmall, 0,0,2); + { + addCube (CylSmall, 0,0,2); + } } - else + else if (cyl_fill) + { + fillSlice (CylSmall, 0,1, 0,2, 1,2, 2,1); + addCube (CylSmall, 1,0); + } + else addCube ( CylSmall, 1, 2); - fillSlice (CylSmall, 1,2, 1,3, 2,4, 2,1, true); + fillSlice (CylSmall, 1,2, 1,3, 2,4, 2,1, true); + if (cyl_fill) + { + addCube (CylSmall, 2,0, 3); + fillSlice (CylSmall, 0,2, 0,3, 1,3, 1,2); + } if (at_right) { @@ -443,55 +504,14 @@ void BiCylinder::createLittlePipe () if (cyl_fill) addCube (CylSmall, 3, 0, 5); } + else if (cyl_fill) + { + fillSlice (CylSmall, 0,3, 0,4, 2,4, 1,3); + addCube (CylSmall, 3, 0); + } else addCube ( CylSmall, 3, 1); } -// ====================================================== createLittleCyl -void BiCylinder::createLittleCyl () -{ - Real lg = cross_hauteur[CylSmall]; - Real rayon = cross_rayext[CylSmall]; - - Real h1 = calc_distance (cross_center, cross_orismall); - Real h2 = cross_rayext[CylBig]*cos45; - - if (at_left) - addCarre (CylSmall, 0, -h1, rayon); - addCarre (CylSmall, 1, -h2, rayon); - addCarre (CylSmall, 2, h2, rayon); - if (at_right) - addCarre (CylSmall, 3, lg-h1, rayon); - - addSlice (CylSmall, 1, 1, -h2, cross_rayext [CylBig]); - addSlice (CylSmall, 1, 2, h2, cross_rayext [CylBig]); - - if (at_left) - addCube (CylSmall, 0); - - addCube (CylSmall, 1); - - if (at_right) - addCube (CylSmall, 2); - - fillSlice (CylSmall, 0,1, 0,2, 1,2, 1,1); // OK -} -// ====================================================== createBigCyl -void BiCylinder::createBigCyl () -{ - Real lg = cross_hauteur[CylBig]; - Real rext = cross_rayext [CylBig]; - - Real h1 = calc_distance (cross_center, cross_oribig); - Real h2 = rext * cos45; - - addCarre (CylBig, 0, -h1, rext); - addCarre (CylBig, 1, -h2, rext, true); - addCarre (CylBig, 2, h2, rext, true); - addCarre (CylBig, 3, lg-h1, rext); - - addCube (CylBig, 0); - addCube (CylBig, 2); -} // ====================================================== createBigPipe void BiCylinder::createBigPipe () { @@ -533,7 +553,8 @@ void BiCylinder::adjustLittleSlice (int ni, int nk) double prayon = cross_rayext[CylSmall]; if (ni==0) { - grayon2 = cross_rayint[CylBig] * cross_rayint[CylBig]; + if (NOT cyl_fill) + grayon2 = cross_rayint[CylBig] * cross_rayint[CylBig]; prayon = cross_rayint[CylSmall]; } @@ -733,31 +754,41 @@ void BiCylinder::fillSlice (int cyl, int nia, int nka, int nib, int nkb, } } // ====================================================== assoCylinders -void BiCylinder::assoCylinders (double* snormal, double* gnormal) +void BiCylinder::assoCylinders () { char name [12]; sprintf (name, "grid_%02d", el_id); grid_geom = el_root->addShape (name, SH_INTER); grid_geom -> openShape(); - int s_kmax = 5; - int isize = cyl_fill ? 1 : 2; + int s_kmax = 5; + int imin = cyl_fill ? 1 : 0; int g_ksize = 4; - for (int ni=0 ; ni closeShape(); } // ====================================================== assoSlice @@ -789,7 +820,37 @@ void BiCylinder::assoSlice (int cyl, int nx, int nzs, double* normal) int subid = grid_geom->addCircle (center, sqrt(rayon), normal, vbase); for (int ny=0 ; nyaddAssociation (v1, subid, posit); + + if (ny2 < NbrCotes) + { + grid_geom->addAssociation (edge, subid, posit, posit+Decal); + } + else + { + grid_geom->addAssociation (edge, subid, posit, 1.0); + grid_geom->addAssociation (edge, subid, 0, Start); + } } // ===================================================== assoArc void BiCylinder::assoArc (int cyl, int nx, int ny, int nz, int subid) @@ -820,9 +881,9 @@ void BiCylinder::assoArc (int cyl, int nx, int ny, int nz, int subid) } } // ===================================================== assoIntersection -int BiCylinder::assoIntersection (int nxs, int nzs, double* snorm, - double* bnorm) +int BiCylinder::assoIntersection (int nxs, int nzs) { + int ier = HOK; Real3 pse, psw, sorig, sbase; Real3 pbe, pbw, borig, bbase; string brep; @@ -858,8 +919,8 @@ int BiCylinder::assoIntersection (int nxs, int nzs, double* snorm, double* orig = nzs < MiddleSlice1 ? sorig : cross_center; // Pb orientation BiCylinderShape bicyl_shape (el_root); - int ier = bicyl_shape.defineCyls (borig, bnorm, bbase, brayon, bhaut, - orig, snorm, sbase, srayon, shaut); + ier = bicyl_shape.defineCyls (borig, cross_dirbig, bbase, brayon, bhaut, + orig, cross_dirsmall, sbase, srayon, shaut); if (ier != HOK) return ier; @@ -868,11 +929,17 @@ int BiCylinder::assoIntersection (int nxs, int nzs, double* snorm, Vertex* node = getVertexIJK (CylSmall, nxs, ny, nzs); if (node!=NULL) node->clearAssociation (); + // Edge* edge = getEdgeJ (CylSmall, nxs, ny, nzs); + // if (edge!=NULL) edge->clearAssociation (); } for (int ny=0 ; nygetCoord (snorm); - // kprim->getCoord (bnorm); - - Real3 bnorm = {0, 0, 1}; - Real3 snorm = {1, 0, 0}; - assoCylinders (snorm, bnorm); - -/********************************************* - if (at_left) + else if (cyl_fill) { - assoIntersection (NxExt, 1, snorm, bnorm); - if (grid_type == GR_BIPIPE) - { - assoIntersection (NxInt, 2, snorm, bnorm); - } + adjustLittleSlice (0, 4); } - if (at_right) - { - assoIntersection (NxExt, NbrSlices1-1, snorm, bnorm); - if (grid_type == GR_BIPIPE) - { - assoIntersection (NxInt, NbrSlices1-2, snorm, bnorm); - } - } - ******************************************* */ + transfoVertices (cross_center, cross_dirsmall, cross_dirbig); + assoCylinders (); + // assoResiduelle (); -#endif // el_root->reorderQuads (); return HOK; } diff --git a/src/HEXABLOCK/HexBiCylinder.hxx b/src/HEXABLOCK/HexBiCylinder.hxx index 35acf65..6da6a4e 100755 --- a/src/HEXABLOCK/HexBiCylinder.hxx +++ b/src/HEXABLOCK/HexBiCylinder.hxx @@ -66,8 +66,6 @@ private : void createLittlePipe (); void createBigPipe (); - void createLittleCyl (); - void createBigCyl (); void adjustLittleSlice (int nx, int nzs); void adjustLittleSquare (int nk); @@ -86,14 +84,13 @@ private : Quad* findQuad (Edge* e1, Edge* e2, int dir, int nx, int ny, int nz); Hexa* findHexa (Quad* qa, Quad* qb, int nx, int ny, int nz); - Edge* findEdge (Vertex* v1, Vertex* v2); - Quad* findQuad (Edge* e1, Edge* e2); + Edge* findEdge (Vertex* v1, Vertex* v2); // A replacer dans HexElements - void assoCylinder (int cyl, double* normal); - void assoCylinders (double* snormal, double* gnormal); + void assoCylinders (); void assoSlice (int cyl, int nx, int nzs, double* norm); void assoArc (int cyl, int nx, int ny, int nz, int subid); - int assoIntersection (int nx, int nzlice, double* snorm, double* bnorm); + void assoArc (int cyl, int ny, Vertex* v1, Vertex* v2, int subid); + int assoIntersection (int nx, int nzlice); void addSlice (int cyl, int i, int k, double h, double r, bool find=false); diff --git a/src/HEXABLOCK/HexDocument_v6.cxx b/src/HEXABLOCK/HexDocument_v6.cxx index 163b770..0b9c2a3 100644 --- a/src/HEXABLOCK/HexDocument_v6.cxx +++ b/src/HEXABLOCK/HexDocument_v6.cxx @@ -986,6 +986,7 @@ Elements* Document::joinQuadUni (Quad* quada, Quad* quadb, Vertex* va1, RealVector tlen; Elements* grid = new Elements (this); + update (); grid->checkQuad (quada); grid->checkQuad (quadb, -1); grid->checkSense (3, va1, va2, quada); @@ -1014,6 +1015,7 @@ Elements* Document::joinQuad (Quad* quada, Quad* quadb, Vertex* va1, Quads tquada; Elements* grid = new Elements (this); + update (); grid->checkQuad (quada); grid->checkQuad (quadb, -1); grid->checkSense (3, va1, va2, quada); @@ -1039,6 +1041,7 @@ Elements* Document::joinQuadsUni (Quads tquada, Quad* quadb, Vertex* va1, RealVector tlen; Elements* grid = new Elements (this); + update (); grid->checkQuads (tquada); grid->checkQuad (quadb, -1); if (tquada.size()>0) @@ -1066,6 +1069,7 @@ Elements* Document::joinQuads (Quads tquada, Quad* quadb, Vertex* va1, Elements* grid = new Elements (this); + update (); grid->checkQuads (tquada); grid->checkQuad (quadb, -1); if (tquada.size()>0) diff --git a/src/HEXABLOCK/HexEdgeShape.cxx b/src/HEXABLOCK/HexEdgeShape.cxx index bd34bb7..356bec1 100755 --- a/src/HEXABLOCK/HexEdgeShape.cxx +++ b/src/HEXABLOCK/HexEdgeShape.cxx @@ -119,7 +119,7 @@ int EdgeShape::getPoint (double param, double* point) // ========================================================= samePoints bool EdgeShape::samePoints (double* point1, double* point2) { - const double Epsilon2 = 1e-4; + const double Epsilon2 = 1e-6; bool rep = same_coords (point1, point2, Epsilon2); return rep; } diff --git a/src/HEXABLOCK/HexElements.cxx b/src/HEXABLOCK/HexElements.cxx index 3489152..5dd09d3 100755 --- a/src/HEXABLOCK/HexElements.cxx +++ b/src/HEXABLOCK/HexElements.cxx @@ -798,5 +798,18 @@ int Elements::findVertex (double vx, double vy, double vz) } return NOTHING; } +// ============================================================ findQuad +Quad* Elements::findQuad (Edge* e1, Edge* e2) +{ + int nbre = tab_quad.size(); + for (int nro=0 ; nroisHere () + && quad->definedBy (e1, e2)) + return quad; + } + return NULL; +} END_NAMESPACE_HEXA diff --git a/src/HEXABLOCK/HexElements.hxx b/src/HEXABLOCK/HexElements.hxx index fb3a54c..df75ba8 100755 --- a/src/HEXABLOCK/HexElements.hxx +++ b/src/HEXABLOCK/HexElements.hxx @@ -62,10 +62,12 @@ public: #ifndef SWIG public: int findHexa (Hexa* elt); - int findQuad (Quad* elt); - int findEdge (Edge* elt); + int findQuad (Quad* elt); // indexQuad ? + int findEdge (Edge* elt); // indexVertex ? int findVertex (double vx, double vy, double vz); + Edge* findEdge (Vertex* v1, Vertex* v2); + Quad* findQuad (Edge* e1, Edge* e2); Elements (Document* doc, int nx, int ny, int nz); Elements (Elements* orig); diff --git a/src/HEXABLOCK/HexHexa.cxx b/src/HEXABLOCK/HexHexa.cxx index 3290a83..e5ab243 100755 --- a/src/HEXABLOCK/HexHexa.cxx +++ b/src/HEXABLOCK/HexHexa.cxx @@ -1152,12 +1152,18 @@ bool Hexa::definedBy (Vertex* v1, Vertex* v2) // =============================================================== definedBy bool Hexa::definedBy (Quad* qa, Quad* qb) { - for (int nc=0 ; nc< 3 ; nc++) + if (qa==qb || BadElement (qa) || BadElement (qb)) + return false; + + bool p1 = false, p2 = false; + for (int nq=0 ; nq< HQ_MAXI ; nq++) { - if ( (qa == h_quad[2*nc] && qb == h_quad[2*nc+1]) - || (qa == h_quad[2*nc+1] && qb == h_quad[2*nc])) return true; + if (qa == h_quad[nq]) + p1 = true; + else if (qb == h_quad[nq]) + p2 = true; } - return false; + return p1 && p2; } // =============================================================== setColor void Hexa::setColor (double val) diff --git a/src/HEXABLOCK/HexNewShape.cxx b/src/HEXABLOCK/HexNewShape.cxx index 6f9e6f3..7f109cf 100755 --- a/src/HEXABLOCK/HexNewShape.cxx +++ b/src/HEXABLOCK/HexNewShape.cxx @@ -59,7 +59,7 @@ BEGIN_NAMESPACE_HEXA static bool db = on_debug (); // == getenv ("HEXA_DB") > 0 -static bool db0 = true; +static bool db0 = db; // ====================================================== Constructeur NewShape::NewShape (Document* dad, EnumShape type) @@ -224,6 +224,15 @@ void NewShape::addAssociation (Edge* edge, int subid, double pmin, double pmax) if (edge==NULL) return; + if (db0) + { + cout << edge->getName() + << " = (" << edge->getVertex(0)->getName() + << ", " << edge->getVertex(1)->getName() + << ") --> subid= " << subid << " [ " + << pmin << ", " << pmax << "]" << endl; + } + asso_edge.push_back (edge); asso_pmin.push_back (pmin); asso_pmax.push_back (pmax); diff --git a/src/HEXABLOCK/HexQuad.cxx b/src/HEXABLOCK/HexQuad.cxx index 1488e70..f82af4f 100755 --- a/src/HEXABLOCK/HexQuad.cxx +++ b/src/HEXABLOCK/HexQuad.cxx @@ -32,7 +32,7 @@ BEGIN_NAMESPACE_HEXA -bool db = true; +bool db = false; // ======================================================== Constructeur Quad::Quad (Vertex* va, Vertex* vb, Vertex* vc, Vertex* vd) @@ -802,4 +802,31 @@ void Quad::reorienter () printf (" %s est reoriente\n", el_name.c_str()); q_orientation = Q_DIRECT; } +// =============================================================== getCenter +double* Quad::getCenter (double* center) +{ + center[dir_x] = center[dir_y] = center[dir_z] = 0; + if (BadElement (this)) + return NULL; + + for (int nv=0 ; nvgetX(); + center [dir_y] += q_vertex[nv]->getY(); + center [dir_z] += q_vertex[nv]->getZ(); + } + return center; +} +// =============================================================== getCenter +double Quad::dist2 (double* point) +{ + Real3 center; + getCenter (center); + double d2 = carre (point[dir_x] - center[dir_x]) + + carre (point[dir_y] - center[dir_y]) + + carre (point[dir_z] - center[dir_z]) ; + return d2; +} END_NAMESPACE_HEXA diff --git a/src/HEXABLOCK/HexQuad.hxx b/src/HEXABLOCK/HexQuad.hxx index ef4a8e9..65d045a 100755 --- a/src/HEXABLOCK/HexQuad.hxx +++ b/src/HEXABLOCK/HexQuad.hxx @@ -54,6 +54,9 @@ public: virtual void clearAssociation (); void setColor (double valeur); + Vertex* nearestVertex (Vertex* other); + double* getCenter (double* center); + Quad (Vertex* va, Vertex* vb, Vertex* vc, Vertex* vd); #ifndef SWIG @@ -118,7 +121,7 @@ public: int countAssociation () { return tab_assoc.size () ; } FaceShape* getAssociation (int nro); - Vertex* nearestVertex (Vertex* other); + double dist2 (double* point); private: friend class Cloner; diff --git a/src/HEXABLOCK/test_hexa6.cxx b/src/HEXABLOCK/test_hexa6.cxx index 017bc7e..1b95526 100644 --- a/src/HEXABLOCK/test_hexa6.cxx +++ b/src/HEXABLOCK/test_hexa6.cxx @@ -37,7 +37,7 @@ static Hex::Hex mon_ex; static Hex::Document* docu = NULL; static cpchar case_name = "hexa"; -// ======================================================== get_document +// ======================================================== get_document Hex::Document* get_document () { if (docu==NULL) @@ -53,7 +53,7 @@ void save_file () char filename[20]; nbr_files ++; - sprintf (filename, "%s%02d.vtk", case_name, nbr_files); + sprintf (filename, "%s%02d.vtk", case_name, nbr_files); docu->saveVtk (filename); } @@ -67,20 +67,20 @@ Hex::Vertex* nearest (Hex::Elements* grid, Hex::Vertex* vertex) double py = vertex->getY(); double pz = vertex->getZ(); for (int nro=0 ; nro < nbre ; ++nro) - { + { Hex::Vertex* v1 = grid->getVertex (nro); - double d2 = Hex::carre(px-v1->getX()) + Hex::carre(py-v1->getY()) + double d2 = Hex::carre(px-v1->getX()) + Hex::carre(py-v1->getY()) + Hex::carre(pz-v1->getZ()) ; if (d2 < dmin) - { + { result = v1; dmin = d2; } } - cout << " nearest : " << vertex->getName() - << " -> " << result->getName() - << " ( " << px << ", " << py << ", " << pz << ") " << endl; + cout << " nearest : " << vertex->getName() + << " -> " << result->getName() + << " ( " << px << ", " << py << ", " << pz << ") " << endl; return result; } @@ -89,14 +89,14 @@ void eplucher (Hex::Document* doc, Hex::Elements* grid, string& radical) { int nbfic = 0; int nbre = grid->countHexa(); - for (int nro=nbre-1 ; nro >0 ; nro--) + for (int nro=nbre-1 ; nro >0 ; nro--) { nbfic++; char name [32]; sprintf (name, "%s%02d.vtk", radical.c_str(), nbfic); grid->saveVtk (name); doc->removeHexa (grid->getHexa(nro)); - } + } } // ======================================================== test_cartesian6 int test_cartesian6 (int nbargs, cpchar tabargs[]) @@ -118,7 +118,7 @@ int test_cartesian6 (int nbargs, cpchar tabargs[]) Hex::Vector* vy = doc->addVector (0, 1, 0); Hex::Vector* vz = doc->addVector (0, 0, 1); double dx =1, dy=1, dz=1; - Hex::Elements* grid2 = doc->makeCartesianUni (orig2, vx, vy, vz, dx, dy, dz, + Hex::Elements* grid2 = doc->makeCartesianUni (orig2, vx, vy, vz, dx, dy, dz, size_x, size_y, size_z); grid2->saveVtk ("makeCartesianUni.vtk"); PutData (grid2->isValid()); @@ -153,7 +153,7 @@ int test_cylinder60 (int nbargs, cpchar tabargs[]) Hex::Vector* vx = doc->addVector (1, 0, 0); Hex::Vector* vz = doc->addVector (0, 0, 1); double rint =1, rext = 3, angle = 360, hauteur = 2; - Hex::Elements* grid3 = doc->makePipeUni (orig, vx, vz, + Hex::Elements* grid3 = doc->makePipeUni (orig, vx, vz, rint, rext, angle, hauteur, size_x, size_y, size_z); grid3->saveVtk ("makeCylinderUni.vtk"); @@ -193,7 +193,7 @@ int test_cylinder6 (int nbargs, cpchar tabargs[]) Hex::Elements* grid1 = doc->makeCylinderTop (size_x, size_y, size_z); grid1->saveVtk ("makeCylinderTop.vtk"); PutData (grid1->isValid()); - + Hex::Elements* grid2 = doc->makePipeTop (size_x, size_y, size_z); grid2->saveVtk ("makePipeTop.vtk"); @@ -204,7 +204,7 @@ int test_cylinder6 (int nbargs, cpchar tabargs[]) Hex::Vector* vx = doc->addVector (1, 0, 0); Hex::Vector* vz = doc->addVector (0, 0, 1); double rint =2, rext = 4, angle = 300, hauteur = 1; - Hex::Elements* grid3 = doc->makeCylinderUni (orig2, vx, vz, + Hex::Elements* grid3 = doc->makeCylinderUni (orig2, vx, vz, rint, rext, angle, hauteur, 2, 3, 2); // size_x, size_y, size_z); @@ -248,7 +248,7 @@ int test_spherical6 (int nbargs, cpchar tabargs[]) PutData (nbhexas); for (int nro=3 ; nrogetHexa(nro)->remove(); - + grid1->saveVtk ("makeSphericalTop.vtk"); Hex::Vertex* orig2 = doc->addVertex (0, 0, 10); @@ -265,7 +265,7 @@ int test_spherical6 (int nbargs, cpchar tabargs[]) for (int nro=3 ; nrogetHexa(nro)->remove(); - + grid2->saveVtk ("makeSphericalUni.vtk"); return HOK; } @@ -283,14 +283,14 @@ int test_rind6 (int nbargs, cpchar tabargs[]) PutData (grid1->isValid()); if (NOT (grid1->isValid())) Hex::what (); - else + else grid1->saveVtk ("makeSphereTop.vtk"); Hex::Elements* grid2 = doc->makeRindTop (size_r, size_a, size_h); PutData (grid2->isValid()); if (NOT (grid2->isValid())) Hex::what (); - else + else grid2->saveVtk ("makeRindTop.vtk"); Hex::Vertex* orig = doc->addVertex (0, 0, 0); @@ -302,41 +302,34 @@ int test_rind6 (int nbargs, cpchar tabargs[]) double rext = 10; double angle = 180; - Hex::Elements* grid3 = doc->makeSphereUni (orig, vx, vz, - rtrou, rext, angle, vplan, + Hex::Elements* grid3 = doc->makeSphereUni (orig, vx, vz, + rtrou, rext, angle, vplan, size_r, size_a, size_h); if (NOT (grid3->isValid())) Hex::what (); - else + else grid3->saveVtk ("makeSphereUni.vtk"); - Hex::Elements* grid4 = doc->makeRindUni (orig, vx, vz, - rtrou, rext, rint, angle, vplan, + Hex::Elements* grid4 = doc->makeRindUni (orig, vx, vz, + rtrou, rint, rext, angle, vplan, size_r, size_a, size_h); if (NOT (grid4->isValid())) Hex::what (); - else + else grid4->saveVtk ("makeRindUni.vtk"); - Hex::Elements* grid5 = doc->makePartSphere (orig, vx, vz, rext, rtrou, vplan, - angle, size_r, size_a, size_h); - if (NOT (grid5->isValid())) - Hex::what (); - else - grid5->saveVtk ("makeSphereOld.vtk"); - Hex::RealVector trad, tang, tphi; double dr = (rext-rtrou)/size_r; double dtheta = angle/size_a; double dphi = 180.0/size_h; for (int nro=0 ; nro<=size_r ; nro++) trad.push_back (rtrou + nro*dr); for (int nro=0 ; nro<=size_a ; nro++) tang.push_back ( nro*dtheta); - for (int nro=0 ; nro<=size_h ; nro++) tphi.push_back (-90 + nro*dphi); + for (int nro=0 ; nro<=size_h ; nro++) tphi.push_back (-90 + nro*dphi); Hex::Elements* grid6 = doc->makeSphere (orig, vx, vz, trad, tang, tphi); if (NOT (grid6->isValid())) Hex::what (); - else + else grid6->saveVtk ("makeSphereNew.vtk"); trad.clear (); @@ -345,7 +338,7 @@ int test_rind6 (int nbargs, cpchar tabargs[]) Hex::Elements* grid7 = doc->makeRind (orig, vx, vz, trad, tang, tphi); if (NOT (grid7->isValid())) Hex::what (); - else + else grid7->saveVtk ("makeRindNew.vtk"); return HOK; } @@ -364,7 +357,7 @@ int test_pipes6 (int nbargs, cpchar tabargs[]) else if (arg=="-pipe") pipe = true; else if (arg=="-left") t_left = true; else if (arg=="-right") t_right = true; - else + else { cout << " Syntax : " << endl; cout << " $ " << tabargs[0] << " " << endl; @@ -390,13 +383,13 @@ int test_pipes6 (int nbargs, cpchar tabargs[]) if (t_left) { h1 = 10; - radical += "_L"; + radical += "_L"; } else if (t_right) { xl1 = -2; h1 = 10; - radical += "_R"; + radical += "_R"; } Hex::Document* doc = get_document (); @@ -407,7 +400,7 @@ int test_pipes6 (int nbargs, cpchar tabargs[]) Hex::Vector* vz2 = doc->addVector ( 1, 0, 0); Hex::BiCylinder* grid1 = NULL; - if (pipe) + if (pipe) grid1 = doc->makePipes (ori1, vz1, rint1, rext1, h1, ori2, vz2, rint2, rext2, h2); else @@ -589,7 +582,7 @@ int test_joint6 (int nbargs, cpchar tabargs[]) Hex::what (); if (NOT joint->isValid ()) return HERR; - + doc->saveVtk ("jointQuad2.vtk"); int nbr_joint_vertex = joint->countVertex (); int nbr_surf_vertex = nbr_joint_vertex/(hauteur+1); @@ -710,14 +703,14 @@ int test_monica (int nbargs, cpchar tabargs[]) Hex::what (); save_file (); - Hex::Elements* pipe = doc->makePipeUni (orig2, vxy, vz, 0.15, 0.5, 360, 3, + Hex::Elements* pipe = doc->makePipeUni (orig2, vxy, vz, 0.15, 0.5, 360, 3, 1, 4, 3); doc->dump (); Hex::what (); for (int nv=0 ; nv<8 ; nv++) tabv0.push_back (nearest (pipe, tabv1[nv])); - doc->setLevel (1); + doc->setLevel (1); for (int nv=0 ; nv<8 ; nv++) { int ier = doc->mergeVertices (tabv0[nv], tabv1[nv]); diff --git a/src/HEXABLOCKGUI/CutEdge_QTD.ui b/src/HEXABLOCKGUI/CutEdge_QTD.ui index 03cd5be..c70bc29 100644 --- a/src/HEXABLOCKGUI/CutEdge_QTD.ui +++ b/src/HEXABLOCKGUI/CutEdge_QTD.ui @@ -65,7 +65,7 @@ - + 0 0 @@ -103,7 +103,7 @@ - + 0 0 @@ -135,7 +135,7 @@ - height + length diff --git a/src/HEXABLOCKGUI/EdgeAssoc_QTD.ui b/src/HEXABLOCKGUI/EdgeAssoc_QTD.ui index 0208df7..b193aa3 100644 --- a/src/HEXABLOCKGUI/EdgeAssoc_QTD.ui +++ b/src/HEXABLOCKGUI/EdgeAssoc_QTD.ui @@ -6,8 +6,8 @@ 0 0 - 260 - 635 + 334 + 653 @@ -26,6 +26,47 @@ Edge(s) Association + + + + + 0 + 52 + + + + + 16777215 + 52 + + + + + + + + + + One edge + + + true + + + + + + + Line + + + false + + + + + + @@ -48,291 +89,218 @@ 0 0 - 222 - 654 + 314 + 575 - + + + false + 0 - 52 - - - - - 16777215 - 52 + 0 - + Vertex - - - + + + - One edge - - - true + First: - - - - Line - - - false - - + + - + - 5 - 0 + 0 + 58 + + + + + 16777215 + 58 - + Edge of model - - - - - false + + + + + + 0 + 0 + - + - 0 - 0 + 16777215 + 58 - - Vertex - - - - - - First: - - - - - - - + + + + + + + + 0 + 0 + + + + Edges of model + + - - - - 0 - 58 - + + + + 0 + 0 + 16777215 - 58 + 16777215 - - Edge of model - - - - - - - 0 - 0 - - - - - 16777215 - 58 - - - - - + + + + + + + + 0 + 0 + + + + Line of the geometry + + - - - - 0 - 0 - - - - Edges of model - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - - - + + + + + Line : + + + + + + + + 0 + 0 + + + + false + + + + - - - - 0 - 0 - - - - Line of the geometry + + + + 0 + 0 + - - - - - - - Line : - - - - - - - - 0 - 0 - - - - false - - - - - - - - - - 0 - 0 - - - - - - - - - - Closed line - - - - - - - false - - - Inversion - - - - - - - - - - 0 - 86 - - - - - 16777215 - 16777215 - - - - Parameters - - - - - - Start : - - - - - - - End : - - - - - - - 6 - - - 1.000000000000000 - - - 0.010000000000000 - - - - - - - 6 - - - 1.000000000000000 - - - 0.010000000000000 - - - - - - - + + + + + + Closed line + + + + + + + false + + + Inversion + + + + + + + + + + + Start : + + + + + + + 6 + + + 1.000000000000000 + + + 0.010000000000000 + + + + + + + End : + + + + + + + 6 + + + 1.000000000000000 + + + 0.010000000000000 + + + + + @@ -387,22 +355,6 @@ - - close_cb - toggled(bool) - label_3 - setDisabled(bool) - - - 196 - 495 - - - 67 - 581 - - - close_cb toggled(bool) @@ -675,21 +627,5 @@ - - close_cb - toggled(bool) - pend_spb - setDisabled(bool) - - - 81 - 489 - - - 142 - 569 - - - diff --git a/src/HEXABLOCKGUI/Group_QTD.ui b/src/HEXABLOCKGUI/Group_QTD.ui index d581574..621f8f9 100644 --- a/src/HEXABLOCKGUI/Group_QTD.ui +++ b/src/HEXABLOCKGUI/Group_QTD.ui @@ -7,11 +7,11 @@ 0 0 194 - 256 + 206 - + 0 0 @@ -25,33 +25,24 @@ Group Creation - + - - - 5 - 0 - - - - + + + 0 + 0 + - + 0 0 - - QFrame::StyledPanel - - - QFrame::Raised - @@ -126,18 +117,14 @@ - - - - - - 0 - 0 - - - - - + + + + 0 + 0 + + + @@ -146,7 +133,6 @@ name_le - eltBase_lw kind_cb diff --git a/src/HEXABLOCKGUI/HEXABLOCKGUI.cxx b/src/HEXABLOCKGUI/HEXABLOCKGUI.cxx index 32eea50..75770b5 100755 --- a/src/HEXABLOCKGUI/HEXABLOCKGUI.cxx +++ b/src/HEXABLOCKGUI/HEXABLOCKGUI.cxx @@ -254,31 +254,6 @@ void HEXABLOCKGUI::viewManagers( QStringList& list ) const // list.append( SVTK_Viewer::Type() ); } -void HEXABLOCKGUI::restoreGraphicViews() -{ - //Init OCC - if (currentOccGView == NULL) - { - currentOccGView = new OccGraphicView(graphicViewsHandler->createOccWindow(), - application()->desktop()); - currentOccGView->getViewWindow()->installEventFilter(this); - } - else if (currentOccGView->getViewWindow() == NULL) - { - currentOccGView->setViewWindow(graphicViewsHandler->createOccWindow()); - currentOccGView->getViewWindow()->installEventFilter(this); - } - - //Init VTK - if (currentDocGView == NULL) - newDocument(); - else if (currentDocGView->getViewWindow() == NULL) - { - currentDocGView->setViewWindow(graphicViewsHandler->createVtkWindow()); - currentDocGView->getViewWindow()->installEventFilter(this); - } -} - bool HEXABLOCKGUI::activateModule( SUIT_Study* theStudy ) { @@ -390,17 +365,22 @@ bool HEXABLOCKGUI::deactivateModule( SUIT_Study* theStudy ) disconnect( getApp()->objectBrowser()->treeView(),SIGNAL( clicked(const QModelIndex&) ), this, SLOT( onObjectBrowserClick(const QModelIndex&) ) ); - if ( currentDocGView != NULL && currentDocGView->getViewWindow() != NULL ) - //default selectionMode in VTKView - currentDocGView->getViewWindow()->SetSelectionMode( ActorSelection ); - - if (currentOccGView != NULL) - { - //defaut selectionMode in OccView - selectionMgr()->clearSelected(); - currentOccGView->globalSelection(); - currentOccGView->localSelection(TopAbs_SHAPE); - } +// if ( currentDocGView != NULL && currentDocGView->getViewWindow() != NULL ) +// { +// //default selectionMode in VTKView +//// currentDocGView->getViewWindow()->SetSelectionMode( ActorSelection ); +// currentDocGView->getViewWindow()->close(); +// } +// +// if (currentOccGView != NULL) +// { +// //defaut selectionMode in OccView +//// selectionMgr()->clearSelected(); +//// currentOccGView->globalSelection(); +//// currentOccGView->localSelection(TopAbs_SHAPE); +// if (currentOccGView->getViewWindow() != NULL) +// currentOccGView->getViewWindow()->close(); +// } qDeleteAll(myOCCSelectors); myOCCSelectors.clear(); @@ -410,14 +390,16 @@ bool HEXABLOCKGUI::deactivateModule( SUIT_Study* theStudy ) myVTKSelectors.clear(); getApp()->selectionMgr()->setEnabled( true, SVTK_Viewer::Type() ); - bool bOk = SalomeApp_Module::deactivateModule( theStudy ); - //Must be done for all views later if (currentOccGView != NULL && currentOccGView->getViewWindow() != NULL) - currentOccGView->getViewWindow()->removeEventFilter(this); +// currentOccGView->getViewWindow()->removeEventFilter(this); + currentOccGView->getViewWindow()->close(); if (currentDocGView != NULL && currentDocGView->getViewWindow() != NULL) - currentDocGView->getViewWindow()->removeEventFilter(this); +// currentDocGView->getViewWindow()->removeEventFilter(this); + currentDocGView->getViewWindow()->close(); + + bool bOk = SalomeApp_Module::deactivateModule( theStudy ); //switch off current document graphic view switchOffGraphicView(currentDocGView); @@ -600,6 +582,7 @@ void HEXABLOCKGUI::onObjectBrowserClick(const QModelIndex& index) { // ** we want to switch automatically to the right view windows + MESSAGE("===============> ON OBJECT BROWSER CLICKED!!!!!!! "); //first, find selected item QString itemEntry; DataObjectList dol = getApp()->objectBrowser()->getSelected(); @@ -622,8 +605,7 @@ void HEXABLOCKGUI::onObjectBrowserClick(const QModelIndex& index) //Init OCC if necessary if (currentOccGView == NULL) { - currentOccGView = new OccGraphicView(graphicViewsHandler->createOccWindow(), - application()->desktop()); + currentOccGView = new OccGraphicView(graphicViewsHandler->createOccWindow(), application()->desktop()); currentOccGView->getViewWindow()->installEventFilter(this); } else if (currentOccGView->getViewWindow() == NULL) @@ -1879,17 +1861,6 @@ void HEXABLOCKGUI::switchOnGraphicView(VtkDocumentGraphicView* dgview) connect( dgview->getMeshSelectionModel(), SIGNAL( selectionChanged(const QItemSelection &, const QItemSelection &) ), this, SLOT( onSelectionChanged(const QItemSelection &, const QItemSelection &) ), Qt::UniqueConnection ); - if (currentDocGView != NULL) - { - if (currentDocGView->getViewWindow() != NULL) - dgview->setViewWindow(currentDocGView->getViewWindow()); - else - { - dgview->setViewWindow(graphicViewsHandler->createVtkWindow()); - dgview->getViewWindow()->installEventFilter(this); - } - } - dgview->getViewWindow()->setFocus(); showAllMenus(); } @@ -1925,6 +1896,7 @@ void HEXABLOCKGUI::switchOffGraphicView(VtkDocumentGraphicView* dgview, bool sav void HEXABLOCKGUI::switchModel(VtkDocumentGraphicView* dgview) { DEBTRACE("HEXABLOCKGUI::switchModel " << dgview); + MESSAGE("=========> SWITCH MODEL"); if (dgview == NULL) { @@ -1964,7 +1936,27 @@ void HEXABLOCKGUI::switchModel(VtkDocumentGraphicView* dgview) _meshTreeView->setSelectionModel(dgview->getMeshSelectionModel()); _meshTreeView->setEditTriggers(QAbstractItemView::AllEditTriggers); - //switch on this graphic view (connect signals...) + + // = * init occ view * = + if (currentOccGView != NULL && currentOccGView->getViewWindow() == NULL) + { + currentOccGView->setViewWindow(graphicViewsHandler->createOccWindow()); + currentOccGView->getViewWindow()->installEventFilter(this); + } + // == + + + // = * init vtk view * = + if (currentDocGView != NULL && currentDocGView->getViewWindow() != NULL) + dgview->setViewWindow(currentDocGView->getViewWindow()); + + if (dgview->getViewWindow() == NULL) + { + dgview->setViewWindow(graphicViewsHandler->createVtkWindow()); + dgview->getViewWindow()->installEventFilter(this); + } + // == + switchOnGraphicView(dgview); currentDocGView = dgview; currentDocGView->getViewWindow()->setFocus(); @@ -2069,7 +2061,7 @@ void HEXABLOCKGUI::newDocument() // Create Document from HEXABLOCK ENGINE pair docEntry_Doc ( newHexaDocument() ); - VtkDocumentGraphicView* newGraphicView; + VtkDocumentGraphicView* newGraphicView = NULL; //One document at a time if (currentDocGView != NULL) { @@ -2909,27 +2901,27 @@ void HEXABLOCKGUI::test_make_cart_grid() void HEXABLOCKGUI::test_make_elmts_transform() { - int size_x = 1; - int size_y = 1; - int size_z = 2; - - QModelIndex orig = getCurrentModel()->addVertex(0, 0, 0); - QModelIndex dirVr = getCurrentModel()->addVector(1, 1, 1); +// int size_x = 1; +// int size_y = 1; +// int size_z = 2; +// +// QModelIndex orig = getCurrentModel()->addVertex(0, 0, 0); +// QModelIndex dirVr = getCurrentModel()->addVector(1, 1, 1); //obsolete - QModelIndex grid = getCurrentModel()->makeCartesian(orig, dirVr, size_x, size_y, size_z);//, 0, 0, 0); +// QModelIndex grid = getCurrentModel()->makeCartesian(orig, dirVr, size_x, size_y, size_z);//, 0, 0, 0); // orig.setScalar(2); // file_name = os.path.join(os.environ['TMP'], 'transfo0.vtk') // getCurrentModel()->saveVtk(file_name) - QModelIndex devant = getCurrentModel()->addVector(5, 0, 0); - QModelIndex grid2 = getCurrentModel()->makeTranslation(grid, devant); +// QModelIndex devant = getCurrentModel()->addVector(5, 0, 0); +// QModelIndex grid2 = getCurrentModel()->makeTranslation(grid, devant); // file_name = os.path.join(os.environ['TMP'], 'transfo_translation.vtk') // getCurrentModel()->saveVtk(file_name) - QModelIndex grid4 = getCurrentModel()->makeRotation(grid2, orig, dirVr, 45); +// QModelIndex grid4 = getCurrentModel()->makeRotation(grid2, orig, dirVr, 45); // file_name = os.path.join(os.environ['TMP'], 'transfo_rotation.vtk'); diff --git a/src/HEXABLOCKGUI/HEXABLOCKGUI.hxx b/src/HEXABLOCKGUI/HEXABLOCKGUI.hxx index 6e513cb..a058435 100755 --- a/src/HEXABLOCKGUI/HEXABLOCKGUI.hxx +++ b/src/HEXABLOCKGUI/HEXABLOCKGUI.hxx @@ -300,7 +300,6 @@ private: QStringList getQuickDirList(); - void restoreGraphicViews(); void clearDialogs(); SOCC_Prs* getOccPrs(HEXABLOCK::GUI::VtkDocumentGraphicView* docGView) diff --git a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentDelegate.cxx b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentDelegate.cxx index 18384aa..36c274b 100755 --- a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentDelegate.cxx +++ b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentDelegate.cxx @@ -66,8 +66,14 @@ QWidget *DocumentDelegate::createEditor( QWidget *parent, case QUAD_TREE : editor = new QuadDialog(_dw, HexaBaseDialog::INFO_MODE); break; case HEXA_TREE : editor = new HexaDialog(_dw, HexaBaseDialog::INFO_MODE); break; case VECTOR_TREE : editor = new VectorDialog(_dw, HexaBaseDialog::INFO_MODE); break; - case CYLINDER_TREE : editor = new CylinderDialog(_dw, HexaBaseDialog::INFO_MODE); break; - case PIPE_TREE : editor = new PipeDialog(_dw, HexaBaseDialog::INFO_MODE); break; + +// case ELEMENTS_DIR_TREE : trouver le type exact (cylinder ou pipe) et creer la boite d'info en fonction. + + // * OBSOLETE ****** +// case CYLINDER_TREE : editor = new CylinderDialog(_dw, HexaBaseDialog::INFO_MODE); break; +// case PIPE_TREE : editor = new PipeDialog(_dw, HexaBaseDialog::INFO_MODE); break; + // ****************** + case GROUP_TREE : editor = new GroupDialog(_dw, HexaBaseDialog::INFO_MODE/*UPDATE_MODE*/); break; case LAW_TREE : editor = new LawDialog(_dw, HexaBaseDialog::INFO_MODE); break; case PROPAGATION_TREE : editor = new PropagationDialog(_dw, HexaBaseDialog::INFO_MODE); break; @@ -136,19 +142,32 @@ void DocumentDelegate::setEditorData( QWidget *editor, vectorEditor->setValue(value); } break; - case CYLINDER_TREE : { - HEXA_NS::Cylinder *value = documentModel->getHexaPtr(index); - CylinderDialog *cylinderEditor = static_cast(editor); - cylinderEditor->setValue(value); - } - break; - case PIPE_TREE : { - HEXA_NS::Pipe *value = documentModel->getHexaPtr(index); - PipeDialog *pipeEditor= static_cast(editor); - pipeEditor->setValue(value); + + /* + case ELEMENTS_DIR_TREE : { + HEXA_NS::Elements* value = documentModel->getHexaPtr(index); + // trouver le type exact (cylinder ou pipe) pour choisir le bon editor + // editor->setValue(value) } break; - case GROUP_TREE :{ + */ + + // ************ OBSOLETE ******************** +// case CYLINDER_TREE : { +// HEXA_NS::Cylinder *value = documentModel->getHexaPtr(index); +// CylinderDialog *cylinderEditor = static_cast(editor); +// cylinderEditor->setValue(value); +// } +// break; +// case PIPE_TREE : { +// HEXA_NS::Pipe *value = documentModel->getHexaPtr(index); +// PipeDialog *pipeEditor= static_cast(editor); +// pipeEditor->setValue(value); +// } +// break; + // ************ FIN OBSOLETE ***************** + + case GROUP_TREE : { HEXA_NS::Group *value = index.data( HEXA_DATA_ROLE ).value< HEXA_NS::Group* >(); GroupDialog *groupEditor = static_cast(editor); groupEditor->setValue(value); diff --git a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.cxx b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.cxx index 8405795..dfa87b7 100755 --- a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.cxx +++ b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.cxx @@ -118,8 +118,8 @@ QVariant ElementItem::data( int role ) const case QUADITEM: return QVariant::fromValue( (HEXA_NS::Quad*)m_DocElt ); case HEXAITEM: return QVariant::fromValue( (HEXA_NS::Hexa*)m_DocElt ); case VECTORITEM: return QVariant::fromValue( (HEXA_NS::Vector*)m_DocElt ); - case CYLINDERITEM: return QVariant::fromValue( (HEXA_NS::Cylinder*)m_DocElt ); - case PIPEITEM: return QVariant::fromValue( (HEXA_NS::Pipe*)m_DocElt ); +// case CYLINDERITEM: return QVariant::fromValue( (HEXA_NS::Cylinder*)m_DocElt ); +// case PIPEITEM: return QVariant::fromValue( (HEXA_NS::Pipe*)m_DocElt ); case ELEMENTSITEM: return QVariant::fromValue( (HEXA_NS::Elements*)m_DocElt ); case CROSSELEMENTSITEM: return QVariant::fromValue( (HEXA_NS::CrossElements*)m_DocElt ); case GEOMSHAPEITEM: return QVariant::fromValue( (HEXA_NS::NewShape*) m_DocElt ); @@ -185,17 +185,17 @@ VectorItem::VectorItem( HEXA_NS::Vector* hexaVector, QString entry ): { } -// ----------------------- CYLINDER (BUILDER) -CylinderItem::CylinderItem( HEXA_NS::Cylinder* hexaCylinder, QString entry): - StandardElementItem(hexaCylinder, entry, CYLINDERITEM, CYLINDER_TREE) -{ -} - -// ----------------------- PIPE (BUILDER) -PipeItem::PipeItem( HEXA_NS::Pipe* hexaPipe, QString entry ): - StandardElementItem(hexaPipe, entry, PIPEITEM, PIPE_TREE) -{ -} +//// ----------------------- CYLINDER (BUILDER) +//CylinderItem::CylinderItem( HEXA_NS::Cylinder* hexaCylinder, QString entry): +// StandardElementItem(hexaCylinder, entry, CYLINDERITEM, CYLINDER_TREE) +//{ +//} +// +//// ----------------------- PIPE (BUILDER) +//PipeItem::PipeItem( HEXA_NS::Pipe* hexaPipe, QString entry ): +// StandardElementItem(hexaPipe, entry, PIPEITEM, PIPE_TREE) +//{ +//} // ----------------------- ELEMENTS (NOT USED) ElementsItem::ElementsItem( HEXA_NS::Elements* hexaElements, QString entry ): @@ -204,10 +204,10 @@ ElementsItem::ElementsItem( HEXA_NS::Elements* hexaElements, QString entry ): } // ----------------------- CROSSELEMENTS (NOT USED) -CrossElementsItem::CrossElementsItem( HEXA_NS::CrossElements* hexaCrossElts, QString entry ): - StandardElementItem(hexaCrossElts, entry, CROSSELEMENTSITEM, CROSSELEMENTS_TREE) -{ -} +//CrossElementsItem::CrossElementsItem( HEXA_NS::CrossElements* hexaCrossElts, QString entry ): +// StandardElementItem(hexaCrossElts, entry, CROSSELEMENTSITEM, CROSSELEMENTS_TREE) +//{ +//} // ----------------------- GEOM (GEOMETRY) GeomItem::GeomItem( HEXA_NS::EltBase* geomShape, QString entry, HexaType ttype, HexaTreeRole treeRole, HEXA_NS::EltBase* assoc ): diff --git a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.hxx b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.hxx index 017e2d5..04efacb 100755 --- a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.hxx +++ b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentItem.hxx @@ -82,8 +82,6 @@ namespace HEXABLOCK HEXAITEM, VECTORITEM, - CYLINDERITEM, - PIPEITEM, ELEMENTSITEM, CROSSELEMENTSITEM, @@ -107,8 +105,6 @@ namespace HEXABLOCK HEXA_TREE, VECTOR_TREE, - CYLINDER_TREE, - PIPE_TREE, ELEMENTS_TREE, CROSSELEMENTS_TREE, @@ -131,8 +127,6 @@ namespace HEXABLOCK HEXA_DIR_TREE, VECTOR_DIR_TREE, - CYLINDER_DIR_TREE, - PIPE_DIR_TREE, ELEMENTS_DIR_TREE, CROSSELEMENTS_DIR_TREE, @@ -235,18 +229,18 @@ namespace HEXABLOCK }; //----------------------------------------- - class CylinderItem : public StandardElementItem - { - public: - CylinderItem( HEXA_NS::Cylinder* hexaCyl, QString entry = ""); - }; +// class CylinderItem : public StandardElementItem +// { +// public: +// CylinderItem( HEXA_NS::Cylinder* hexaCyl, QString entry = ""); +// }; //----------------------------------------- - class PipeItem : public StandardElementItem - { - public: - PipeItem( HEXA_NS::Pipe* hexaPipe, QString entry = ""); - }; +// class PipeItem : public StandardElementItem +// { +// public: +// PipeItem( HEXA_NS::Pipe* hexaPipe, QString entry = ""); +// }; //----------------------------------------- class ElementsItem : public StandardElementItem @@ -255,11 +249,11 @@ namespace HEXABLOCK ElementsItem( HEXA_NS::Elements* hexaElements, QString entry = "" ); }; //----------------------------------------- - class CrossElementsItem : public StandardElementItem - { - public: - CrossElementsItem( HEXA_NS::CrossElements* hexaCrossElts, QString entry = ""); - }; +// class CrossElementsItem : public StandardElementItem +// { +// public: +// CrossElementsItem( HEXA_NS::CrossElements* hexaCrossElts, QString entry = ""); +// }; //------------------------------------------------ class GeomItem: public StandardElementItem diff --git a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.cxx b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.cxx index da56ff1..1045efd 100755 --- a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.cxx +++ b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.cxx @@ -77,8 +77,6 @@ DocumentModel::DocumentModel(HEXA_NS::Document* docIn, const QString& entryIn, Q _hexaDirItem( new QStandardItem(tr("TREE_ITEM_HEXA")) ), _vectorDirItem( new QStandardItem(tr("TREE_ITEM_VECTOR")) ), - _cylinderDirItem( new QStandardItem(tr("TREE_ITEM_CYLINDER")) ), - _pipeDirItem( new QStandardItem(tr("TREE_ITEM_PIPE")) ), _elementsDirItem( new QStandardItem(tr("TREE_ITEM_ELEMENT")) ), _crossElementsDirItem( new QStandardItem(tr("TREE_ITEM_CROSSELEMENT")) ), @@ -96,8 +94,6 @@ DocumentModel::DocumentModel(HEXA_NS::Document* docIn, const QString& entryIn, Q _quadItemFlags( Qt::NoItemFlags ), _hexaItemFlags( Qt::NoItemFlags ), _vectorItemFlags( Qt::NoItemFlags ), - _cylinderItemFlags( Qt::NoItemFlags ), - _pipeItemFlags( Qt::NoItemFlags ), _elementsItemFlags( Qt::NoItemFlags ), _crossElementsItemFlags( Qt::NoItemFlags ), @@ -119,8 +115,6 @@ DocumentModel::DocumentModel(HEXA_NS::Document* docIn, const QString& entryIn, Q _hexaDirItem->setData( HEXA_DIR_TREE, HEXA_TREE_ROLE ); _vectorDirItem->setData( VECTOR_DIR_TREE, HEXA_TREE_ROLE ); - _cylinderDirItem->setData( CYLINDER_DIR_TREE, HEXA_TREE_ROLE ); - _pipeDirItem->setData( PIPE_DIR_TREE, HEXA_TREE_ROLE ); _elementsDirItem->setData( ELEMENTS_DIR_TREE, HEXA_TREE_ROLE ); _crossElementsDirItem->setData( CROSSELEMENTS_DIR_TREE, HEXA_TREE_ROLE ); @@ -141,8 +135,6 @@ DocumentModel::DocumentModel(HEXA_NS::Document* docIn, const QString& entryIn, Q parentItem->appendRow(_hexaDirItem); parentItem->appendRow(_vectorDirItem); - parentItem->appendRow(_cylinderDirItem); - parentItem->appendRow(_pipeDirItem); parentItem->appendRow(_elementsDirItem); parentItem->appendRow(_crossElementsDirItem); @@ -178,8 +170,6 @@ HEXA_NS::EltBase* DocumentModel::getHexaPtr(const QModelIndex& iElt) case QUAD_TREE : elt = getHexaPtr(iElt); break; case HEXA_TREE : elt = getHexaPtr(iElt); break; case VECTOR_TREE : elt = getHexaPtr(iElt); break; - case CYLINDER_TREE : elt = getHexaPtr(iElt); break; - case PIPE_TREE : elt = getHexaPtr(iElt); break; case ELEMENTS_TREE : elt = getHexaPtr(iElt); break; case CROSSELEMENTS_TREE : elt = getHexaPtr(iElt); break; case GEOMSHAPE_TREE: elt = getHexaPtr(iElt); break; @@ -308,11 +298,15 @@ void DocumentModel::updateGeomTree() fillGeometry(); } -QModelIndex DocumentModel::addToElementsTree(HEXA_NS::Elements* helts) +QModelIndex DocumentModel::addElementsToTree(HEXA_NS::Elements* helts, QStandardItem* tree) { + QModelIndex eltIndex; + if (helts == NULL || tree == NULL) + return eltIndex; + updateData(); ElementsItem* eltsItem = new ElementsItem(helts); - _elementsDirItem->appendRow(eltsItem); + tree->appendRow(eltsItem); return eltsItem->index(); } @@ -353,8 +347,6 @@ void DocumentModel::clearData() void DocumentModel::clearBuilder() { _vectorDirItem->removeRows(0, _vectorDirItem->rowCount() ); - _cylinderDirItem->removeRows(0, _cylinderDirItem->rowCount() ); - _pipeDirItem->removeRows(0, _pipeDirItem->rowCount() ); _elementsDirItem->removeRows(0, _elementsDirItem->rowCount() ); _crossElementsDirItem->removeRows(0, _crossElementsDirItem->rowCount() ); } @@ -440,25 +432,37 @@ void DocumentModel::fillBuilder() _vectorDirItem->appendRow(vItem); } + //******* A VOIR AVEC ALAIN POUR LE REMPLISSAGE DE L'ARBRE ELEMENTS ET CROSSELEMENTS (ByCylinder) *******/ + //******* OU SONT STOCKES LES ELEMENTS ET LES CROSSELEMENTS DANS LE DOCUMENT? ******/ + // _cylinderDirItem - HEXA_NS::Cylinder *c = NULL; - CylinderItem *cItem = NULL; - int nbCylinder = _hexaDocument->countCylinder(); - for ( int i=0; igetCylinder(i); - cItem = new CylinderItem(c, _entry); - _cylinderDirItem->appendRow(cItem); - } +// HEXA_NS::Cylinder *c = NULL; +// HEXA_NS::Elements* c = NULL; +// CylinderItem *cItem = NULL; +// ElementsItem* cItem = NULL; +// int nbCylinder = _hexaDocument->countCylinder(); +// for ( int i=0; igetCylinder(i); +// cItem = new CylinderItem(c, _entry); +// cItem = new ElementsItem(c, _entry); +// _cylinderDirItem->appendRow(cItem); +// _elementsDirItem->appendRow(cItem); +// } // _pipeDirItem - HEXA_NS::Pipe *p = NULL; - PipeItem *pItem = NULL; - int nbPipe = _hexaDocument->countPipe(); - for ( int i=0; igetPipe(i); - pItem = new PipeItem(p); - _pipeDirItem->appendRow(pItem); - } +// HEXA_NS::Pipe *p = NULL; +// HEXA_NS::Elements* p = NULL; +// PipeItem *pItem = NULL; +// ElementsItem* pItem = NULL; +// int nbPipe = _hexaDocument->countPipe(); +// for ( int i=0; igetPipe(i); +// pItem = new PipeItem(p); +// pItem = new ElementsItem(p, _entry); +// _pipeDirItem->appendRow(pItem); +// _elementsDirItem->appendRow(pItem); +// } + //******************************************************************************************************** } void DocumentModel::fillGeometry() @@ -504,15 +508,23 @@ void DocumentModel::fillGeometry() _implicitShapesDirItem->appendRow(shItem); //add vertices to the tree - QStandardItem* geomPointDirItem = new QStandardItem(tr("TREE_ITEM_VERTEX")); - geomPointDirItem->setData( GEOMPOINT_DIR_TREE, HEXA_TREE_ROLE ); - shItem->appendRow(geomPointDirItem); + QStandardItem* geomPointDirItem = NULL; + if (shape->getOrigin() != HEXA_NS::SH_CLOUD) + { + geomPointDirItem = new QStandardItem(tr("TREE_ITEM_VERTEX")); + geomPointDirItem->setData( GEOMPOINT_DIR_TREE, HEXA_TREE_ROLE ); + } + if (geomPointDirItem != NULL) + shItem->appendRow(geomPointDirItem); int nbVertexShape = shape->countVertex(); for (int j=0; j < nbVertexShape; ++j) { node = shape->getVertexShape(j); GeomPointItem* gPointItem = new GeomPointItem(node); - geomPointDirItem->appendRow(gPointItem); + if (geomPointDirItem != NULL) + geomPointDirItem->appendRow(gPointItem); + else + shItem->appendRow(gPointItem); shapeById[shapeName+","+QString::number(node->getIdent())] = node; // * update the compound of vertices @@ -520,6 +532,9 @@ void DocumentModel::fillGeometry() compoundBuilder.Add(topo_shapes[shapeName], node->getShape()); } + if (shape->getOrigin() == HEXA_NS::SH_CLOUD) + continue; // * it's a cloud of points, there's no edges and no quads to fill + //add edges to the tree QStandardItem* geomEdgeDirItem = new QStandardItem(tr("TREE_ITEM_EDGE")); geomEdgeDirItem->setData( GEOMEDGE_DIR_TREE, HEXA_TREE_ROLE ); @@ -678,8 +693,6 @@ void DocumentModel::allowDataSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _crossElementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); @@ -696,8 +709,6 @@ void DocumentModel::allowVertexSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); _crossElementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); @@ -716,8 +727,6 @@ void DocumentModel::allowEdgeSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _crossElementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); @@ -734,8 +743,6 @@ void DocumentModel::allowQuadSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _crossElementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); @@ -752,8 +759,6 @@ void DocumentModel::allowHexaSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _crossElementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); @@ -770,8 +775,6 @@ void DocumentModel::allowVectorSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _crossElementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); @@ -788,8 +791,6 @@ void DocumentModel::allowCylinderSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _crossElementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); @@ -806,8 +807,6 @@ void DocumentModel::allowPipeSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _crossElementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); @@ -824,8 +823,6 @@ void DocumentModel::allowElementsSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); _crossElementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); @@ -842,8 +839,6 @@ void DocumentModel::allowCrossElementsSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _crossElementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEditable ); @@ -860,8 +855,6 @@ void DocumentModel::allowLawSelectionOnly() _hexaItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _vectorItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _cylinderItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); - _pipeItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _elementsItemFlags = Qt::ItemFlags( ~Qt::ItemIsEnabled ); _crossElementsItemFlags = Qt::ItemFlags( Qt::ItemIsEnabled ); @@ -1576,34 +1569,6 @@ bool DocumentModel::performSymmetryPlane( const QModelIndex& ielts, return false; } -QModelIndex DocumentModel::revolutionQuads( const QModelIndexList& istartquads, - const QModelIndex& icenter, - const QModelIndex& ivecaxis, - const QList& angles ) -{ - QModelIndex ielts; - - HEXA_NS::Quads hstartquads; - HEXA_NS::Quad* hquad = NULL; - foreach( const QModelIndex& iquad, istartquads){ - hquad = data( iquad, HEXA_DATA_ROLE ).value(); - hstartquads.push_back( hquad ); - } - HEXA_NS::Vertex* hcenter = getHexaPtr(icenter); - HEXA_NS::Vector* haxis = getHexaPtr(ivecaxis); - std::vector hangles = angles.toVector().toStdVector(); - - HEXA_NS::Elements* helts = _hexaDocument->revolutionQuads( hstartquads, hcenter, haxis, hangles ); - if ( BadElement(helts) ) return ielts; - - updateData(); - ElementsItem* eltsItem = new ElementsItem(helts); - _elementsDirItem->appendRow(eltsItem); - ielts = eltsItem->index(); - - return ielts; -} - QModelIndex DocumentModel::replace( const QModelIndexList& iquadsPattern, const QModelIndex& ip1, const QModelIndex& ic1, const QModelIndex& ip2, const QModelIndex& ic2, @@ -2229,10 +2194,9 @@ QStandardItem* PatternDataModel::itemFromIndex ( const QModelIndex & index ) con PatternBuilderModel::PatternBuilderModel( QObject * parent ) : QSortFilterProxyModel( parent ) { - QString builderRegExp =QString("(%1|%2|%3|%4|%5|%6|%7|%8|%9|%10)"). - arg(VECTOR_TREE).arg(CYLINDER_TREE).arg(PIPE_TREE).arg(ELEMENTS_TREE). - arg(CROSSELEMENTS_TREE).arg(VECTOR_DIR_TREE).arg(CYLINDER_DIR_TREE). - arg(PIPE_DIR_TREE).arg(ELEMENTS_DIR_TREE).arg(CROSSELEMENTS_DIR_TREE); + QString builderRegExp =QString("(%1|%2|%3|%4|%5|%6)"). + arg(VECTOR_TREE).arg(ELEMENTS_TREE). + arg(CROSSELEMENTS_TREE).arg(VECTOR_DIR_TREE).arg(ELEMENTS_DIR_TREE).arg(CROSSELEMENTS_DIR_TREE); setFilterRole( HEXA_TREE_ROLE ); setFilterRegExp ( QRegExp( builderRegExp ) ); @@ -2486,7 +2450,7 @@ QModelIndex DocumentModel::makeCartesianTop(int nx, int ny, int nz) if ( BadElement(helts) ) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2507,7 +2471,7 @@ QModelIndex DocumentModel::makeCartesianUni(const QModelIndex& icenter, if ( BadElement(helts) ) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2528,7 +2492,7 @@ QModelIndex DocumentModel::makeCartesian(const QModelIndex& icenter, if ( BadElement(helts) ) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2544,7 +2508,7 @@ QModelIndex DocumentModel::makeSphereTop (int nr, int na, int nh) if ( BadElement(helts) ) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2565,7 +2529,7 @@ QModelIndex DocumentModel::makeSphereUni (QModelIndex& icenter, HEXA_NS::Elements* helts = _hexaDocument->makeSphereUni( hcenter, hvec_x, hvec_z, rtrou, rext, ang, hvplan, nr, na, nh); - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2583,7 +2547,7 @@ QModelIndex DocumentModel::makeSphere (QModelIndex& icenter, HEXA_NS::Elements* helts = _hexaDocument->makeSphere( hcenter, hvec_x, hvec_z, tray, tang, thaut); - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2598,7 +2562,7 @@ QModelIndex DocumentModel::makeSphericalTop (int nbre, int crit) if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2618,7 +2582,7 @@ QModelIndex DocumentModel::makeSphericalUni (QModelIndex& icenter, if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2638,7 +2602,7 @@ QModelIndex DocumentModel::makeSpherical (QModelIndex& icenter, if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2652,7 +2616,7 @@ QModelIndex DocumentModel::makeRindTop (int nr, int na, int nh) if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2675,7 +2639,7 @@ QModelIndex DocumentModel::makeRindUni (QModelIndex& icenter, if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2694,7 +2658,7 @@ QModelIndex DocumentModel::makeRind (QModelIndex& icenter, if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2708,7 +2672,7 @@ QModelIndex DocumentModel::makeCylinderTop(int nr, int na, int nh) if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2729,7 +2693,7 @@ QModelIndex DocumentModel::makeCylinderUni(QModelIndex& iorig, QModelIndex& ivec if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2747,7 +2711,7 @@ QModelIndex DocumentModel::makeCylinder(QModelIndex& iorig, QModelIndex& ivecx, if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2769,7 +2733,7 @@ QModelIndex DocumentModel::makeCylinders(QModelIndex& iorig1, QModelIndex& ivecz if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _crossElementsDirItem); return result; } @@ -2783,7 +2747,7 @@ QModelIndex DocumentModel::makePipeTop(int nr, int na, int nh) if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2803,7 +2767,7 @@ QModelIndex DocumentModel::makePipeUni(QModelIndex& iorig, QModelIndex& ivecx, Q if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2821,7 +2785,7 @@ QModelIndex DocumentModel::makePipe(QModelIndex& iorig, QModelIndex& ivecx, QMod if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2842,7 +2806,7 @@ QModelIndex DocumentModel::makePipes(QModelIndex& iorig1, QModelIndex& ivecz1, d if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _crossElementsDirItem); return result; } @@ -2864,7 +2828,7 @@ QModelIndex DocumentModel::joinQuadUni(QModelIndex& istart, QModelIndex& idest, if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2885,7 +2849,7 @@ QModelIndex DocumentModel::joinQuad(QModelIndex& istart, QModelIndex& idest, QM if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2910,7 +2874,7 @@ QModelIndex DocumentModel::joinQuadsUni(QModelIndexList& istarts, QModelIndex& i if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2935,7 +2899,7 @@ QModelIndex DocumentModel::joinQuads(QModelIndexList& istarts, QModelIndex& ides if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2954,7 +2918,7 @@ QModelIndex DocumentModel::revolutionQuadUni(QModelIndex& istart, QModelIndex& i if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2972,7 +2936,7 @@ QModelIndex DocumentModel::revolutionQuad(QModelIndex& istart, QModelIndex& icen if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -2994,7 +2958,7 @@ QModelIndex DocumentModel::revolutionQuadsUni(QModelIndexList& istarts, QModelIn if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -3016,7 +2980,7 @@ QModelIndex DocumentModel::revolutionQuads(QModelIndexList& istarts, QModelIndex if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; @@ -3032,7 +2996,7 @@ QModelIndex DocumentModel::extrudeQuadTop(QModelIndex& istart, int nbre) if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -3048,7 +3012,7 @@ QModelIndex DocumentModel::extrudeQuadUni(QModelIndex& istart, QModelIndex& dv, if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -3063,7 +3027,7 @@ QModelIndex DocumentModel::extrudeQuad(QModelIndex& istart, QModelIndex& dv, vec HEXA_NS::Elements* helts = _hexaDocument->extrudeQuad(hstart, hvec, tlen); if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -3080,7 +3044,7 @@ QModelIndex DocumentModel::extrudeQuadsTop (QModelIndexList& istarts, int nbre) HEXA_NS::Elements* helts = _hexaDocument->extrudeQuadsTop(hquads, nbre); if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -3099,7 +3063,7 @@ QModelIndex DocumentModel::extrudeQuadsUni (QModelIndexList& istarts, QModelInde HEXA_NS::Elements* helts = _hexaDocument->extrudeQuadsUni(hquads, haxis, len, nbre); if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -3118,7 +3082,7 @@ QModelIndex DocumentModel::extrudeQuads(QModelIndexList& istarts, QModelIndex& i HEXA_NS::Elements* helts = _hexaDocument->extrudeQuads(hquads, haxis, tlen); if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -3133,7 +3097,7 @@ QModelIndex DocumentModel::cutUni(QModelIndex& iEdge, int nbre) HEXA_NS::Elements* helts = _hexaDocument->cutUni(hedge, nbre); if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } @@ -3147,550 +3111,9 @@ QModelIndex DocumentModel::cut(QModelIndex& iEdge, vector& tlen) HEXA_NS::Elements* helts = _hexaDocument->cut(hedge, tlen); if (BadElement(helts)) return result; - result = addToElementsTree(helts); + result = addElementsToTree(helts, _elementsDirItem); return result; } // ================================== END NEW ================================== - - -// ================================== OBSOLETE ============================================= - -QModelIndex DocumentModel::makeCartesian( const QModelIndex& i_pt, - const QModelIndex& i_vec_x, const QModelIndex& i_vec_y, const QModelIndex& i_vec_z, - long nx, long ny, long nz) -{ - QModelIndex eltsIndex; - - HEXA_NS::Vertex* hpt = getHexaPtr(i_pt); - HEXA_NS::Vector* hvec_x = getHexaPtr(i_vec_x); - HEXA_NS::Vector* hvec_y = getHexaPtr(i_vec_y); - HEXA_NS::Vector* hvec_z = getHexaPtr(i_vec_z); - - HEXA_NS::Elements* new_helts = _hexaDocument->makeCartesian( hpt, - hvec_x, hvec_y, hvec_z, - nx, ny, nz ); - if ( BadElement(new_helts) ) - return eltsIndex; - - updateData(); //CS_TODO more or less? - ElementsItem* eltsItem = new ElementsItem(new_helts); - _elementsDirItem->appendRow(eltsItem); - eltsIndex = eltsItem->index(); - - return eltsIndex; -} - -QModelIndex DocumentModel::makeCartesian( const QModelIndex& ivex, - const QModelIndex& ivec, - int nx, int ny, int nz ) -{ - QModelIndex iElts; - - HEXA_NS::Vertex* hVex = getHexaPtr(ivex); - HEXA_NS::Vector* hVec = getHexaPtr(ivec); - - HEXA_NS::Elements* hElts = _hexaDocument->makeCartesian( hVex, - hVec, - nx, ny, nz ); - if ( BadElement(hElts) ) return iElts; - - updateData(); //CS_TODO more or less? - ElementsItem* elts = new ElementsItem(hElts); - _elementsDirItem->appendRow(elts); - iElts = elts->index(); - - return iElts; -} - -QModelIndex DocumentModel::makeCylindrical( const QModelIndex& i_pt, - const QModelIndex& i_vec_x, const QModelIndex& i_vec_z, - double dr, double da, double dl, - long nr, long na, long nl, - bool fill ) -{ - - QModelIndex eltsIndex; - - HEXA_NS::Vertex* hpt = getHexaPtr(i_pt); - HEXA_NS::Vector* hvec_x = getHexaPtr(i_vec_x); - HEXA_NS::Vector* hvec_z = getHexaPtr(i_vec_z); - - HEXA_NS::Elements* new_helts = _hexaDocument->makeCylindrical( hpt, hvec_x, hvec_z, dr, da, dl, nr, na, nl, fill ); - if ( BadElement(new_helts) ) return eltsIndex; - - updateData(); //CS_TODO more or less? - ElementsItem* eltsItem = new ElementsItem(new_helts); - _elementsDirItem->appendRow(eltsItem); - eltsIndex = eltsItem->index(); - - return eltsIndex; -} - -QModelIndex DocumentModel::makeCylindricals( - const QModelIndex& icenter, const QModelIndex& ibase, const QModelIndex& iheight, - QList< double> radius, QList angles, QList heights, - bool fill ) //HEXA3 -{ - QModelIndex eltsIndex; - - HEXA_NS::Vertex* hcenter = getHexaPtr(icenter); - HEXA_NS::Vector* hbase =getHexaPtr(ibase); - HEXA_NS::Vector* hheight = getHexaPtr(iheight); - - std::vector r = radius.toVector().toStdVector(); - std::vector a = angles.toVector().toStdVector(); - std::vector h = heights.toVector().toStdVector(); - - HEXA_NS::Elements* helts = _hexaDocument->makeCylindricals( - hcenter, hbase, hheight, - r, a, h, - fill ); - if ( BadElement(helts) ) return eltsIndex; - - updateData(); //CS_TODO more or less? - ElementsItem* eltsItem = new ElementsItem(helts); - _elementsDirItem->appendRow(eltsItem); - eltsIndex = eltsItem->index(); - - return eltsIndex; -} - -QModelIndex DocumentModel::makeSpherical( const QModelIndex& iv, const QModelIndex& ivec, int nb, double k) -{ - QModelIndex iElts; - -// HEXA_NS::Vertex* hv = getHexaPtr(iv); -// HEXA_NS::Vector* hvec = getHexaPtr(ivec); -// -// HEXA_NS::Elements* hElts = _hexaDocument->makeSpherical( hv, hvec, nb, k ); // OBSOLETE -// HEXA_NS::Elements* hElts = NULL; -// if ( BadElement(hElts) ) return iElts; -// -// updateData(); //CS_TODO more or less? -// ElementsItem* elts = new ElementsItem(hElts); -// _elementsDirItem->appendRow(elts); -// iElts = elts->index(); - - return iElts; -} - -QModelIndex DocumentModel::makeSpherical( const QModelIndex& icenter, double radius, int nb, double k ) -{ - QModelIndex iElts; - - HEXA_NS::Vertex* hcenter = getHexaPtr(icenter); - - HEXA_NS::Elements* helts = _hexaDocument->makeSpherical( hcenter, radius, nb, k ); - if ( BadElement(helts) ) return iElts; - - updateData(); //CS_TODO more or less? - ElementsItem* eltsItem = new ElementsItem(helts); - _elementsDirItem->appendRow(eltsItem); - iElts = eltsItem->index(); - - return iElts; -} - -QModelIndex DocumentModel::makeCylinder( const QModelIndex& icyl, const QModelIndex& ivec, - int nr, int na, int nl ) -{ - QModelIndex iElts; - - HEXA_NS::Cylinder* hcyl = getHexaPtr(icyl); - HEXA_NS::Vector* hvec = getHexaPtr(ivec); - - HEXA_NS::Elements* hElts = _hexaDocument->makeCylinder( hcyl, hvec, nr, na, nl ); - if ( BadElement(hElts) ) return iElts; - - updateData(); //CS_TODO more or less? - ElementsItem* elts = new ElementsItem(hElts); - _elementsDirItem->appendRow(elts); - iElts = elts->index(); - - return iElts; -} - -QModelIndex DocumentModel::makeCylinders(const QModelIndex& icyl1, const QModelIndex& icyl2) -{ //CS_TODO - QModelIndex iCrossElts; - - HEXA_NS::Cylinder* hCyl1 = getHexaPtr(icyl1); - HEXA_NS::Cylinder* hCyl2 = getHexaPtr(icyl2); - - HEXA_NS::CrossElements* hCrossElts = _hexaDocument->makeCylinders( hCyl1, hCyl2 ); - if ( BadElement(hCrossElts) ) return iCrossElts; - - updateData(); //CS_TODO more or less? - ElementsItem* crossElts = new ElementsItem(hCrossElts); - _crossElementsDirItem->appendRow(crossElts); - iCrossElts = crossElts->index(); - - return iCrossElts; -} - -QModelIndex DocumentModel::addEdgeVector( const QModelIndex &i_v, const QModelIndex &i_vec ) -{ - QModelIndex edgeIndex; - - HEXA_NS::Vertex* hv = getHexaPtr(i_v); - HEXA_NS::Vector* hvec = getHexaPtr(i_vec); - - if (!hv || !hvec) return edgeIndex; - -// HEXA_NS::Edge* he = _hexaDocument->addEdge( hv, hvec ); //OBSOLETE - HEXA_NS::Edge* he = NULL; - if ( BadElement(he) ) return edgeIndex; - - HEXA_NS::Vertex* hv2 = he->getAval(); //the new vertex resulting from the creation of the edge - if (hv2 == NULL) return edgeIndex; - - //ADD the elements in the treeview - //The Edge - EdgeItem* e = new EdgeItem(he, _entry); - _edgeDirItem->appendRow(e); - - //The resulting Vertex - VertexItem* v = new VertexItem(hv2, _entry); - _vertexDirItem->appendRow(v); - edgeIndex = e->index(); - emit patternDataChanged(); - - return edgeIndex; -} - -QModelIndex DocumentModel::addCylinder( const QModelIndex &iv, const QModelIndex &ivec, double r, double h ) -{ - QModelIndex iCyl; - - HEXA_NS::Vertex* hv = getHexaPtr(iv); - HEXA_NS::Vector* hvec = getHexaPtr(ivec); - - HEXA_NS::Cylinder* hcyl = _hexaDocument->addCylinder( hv, hvec, r, h ); - if ( BadElement(hcyl) ) return iCyl; - - CylinderItem* cyl = new CylinderItem(hcyl); - _cylinderDirItem->appendRow(cyl); - iCyl = cyl->index(); - - return iCyl; -} - - -QModelIndex DocumentModel::addPipe( const QModelIndex &iv, const QModelIndex &ivec, double ri, double re, double h ) -{ - QModelIndex iPipe; - - HEXA_NS::Vertex* hv = getHexaPtr(iv); - HEXA_NS::Vector* hvec = getHexaPtr(ivec); - - HEXA_NS::Pipe* hPipe = _hexaDocument->addPipe( hv, hvec, ri, re, h ); - if ( BadElement(hPipe) ) return iPipe; - - PipeItem* pipe = new PipeItem(hPipe); - _pipeDirItem->appendRow(pipe); - iPipe = pipe->index(); - - return iPipe; -} - -QModelIndex DocumentModel::makePipe( const QModelIndex& ipipe, const QModelIndex& ivecx, - int nr, int na, int nl ) -{ - QModelIndex iElts; - - HEXA_NS::Pipe* hPipe = getHexaPtr(ipipe); - HEXA_NS::Vector* hVecx = getHexaPtr(ivecx); - - HEXA_NS::Elements* hElts = _hexaDocument->makePipe( hPipe, hVecx, nr, na, nl ); - if ( BadElement(hElts) ) return iElts; - - updateData(); //CS_TODO more or less? - ElementsItem* elts = new ElementsItem(hElts); - _elementsDirItem->appendRow(elts); - iElts = elts->index(); - - return iElts; -} - -// -QModelIndex DocumentModel::makePipes( const QModelIndex& ipipe1, const QModelIndex& ipipe2 ) -{ - QModelIndex iCrossElts; - - HEXA_NS::Pipe* hPipe1 = getHexaPtr(ipipe1); - HEXA_NS::Pipe* hPipe2 = getHexaPtr(ipipe2); - - HEXA_NS::CrossElements* hCrossElts = _hexaDocument->makePipes( hPipe1, hPipe2 ); - if ( BadElement(hCrossElts) ) return iCrossElts; - - updateData(); //CS_TODO more or less? - ElementsItem* crossElts = new ElementsItem(hCrossElts); - _crossElementsDirItem->appendRow(crossElts); - iCrossElts = crossElts->index(); - - return iCrossElts; -} - -QModelIndex DocumentModel::makeRind( const QModelIndex& icenter, - const QModelIndex& ivecx, const QModelIndex& ivecz, - double radext, double radint, double radhole, - const QModelIndex& iplorig, - int nrad, int nang, int nhaut ) -{ - QModelIndex iElts; - - HEXA_NS::Vertex* hcenter = getHexaPtr(icenter); - HEXA_NS::Vector* hvecx = getHexaPtr(ivecx); - HEXA_NS::Vector* hvecz = getHexaPtr(ivecz); - HEXA_NS::Vertex* hplorig = getHexaPtr(iplorig); - - HEXA_NS::Elements* hElts = _hexaDocument->makeRind( hcenter, - hvecx, hvecz, - radext, radint, radhole, - hplorig, - nrad, nang, nhaut ); - if ( BadElement(hElts) ) return iElts; - - updateData(); //CS_TODO more or less? - ElementsItem* eltsItem = new ElementsItem(hElts); - _elementsDirItem->appendRow(eltsItem); - iElts = eltsItem->index(); - - return iElts; -} - -QModelIndex DocumentModel::makePartRind( const QModelIndex& icenter, - const QModelIndex& ivecx, const QModelIndex& ivecz, - double radext, double radint, double radhole, - const QModelIndex& iplorig, double angle, - int nrad, int nang, int nhaut ) -{ - QModelIndex iElts; - - HEXA_NS::Vertex* hcenter = getHexaPtr(icenter); - HEXA_NS::Vector* hvecx = getHexaPtr(ivecx); - HEXA_NS::Vector* hvecz = getHexaPtr(ivecz); - HEXA_NS::Vertex* hplorig = getHexaPtr(iplorig); - - HEXA_NS::Elements* hElts = _hexaDocument->makePartRind( hcenter, - hvecx, hvecz, - radext, radint, radhole, - hplorig, angle, - nrad, nang, nhaut ); - if ( BadElement(hElts) ) return iElts; - - updateData(); - ElementsItem* eltsItem = new ElementsItem(hElts); - _elementsDirItem->appendRow(eltsItem); - iElts = eltsItem->index(); - - return iElts; -} - -QModelIndex DocumentModel::makeSphere( const QModelIndex& icenter, - const QModelIndex& ivecx, const QModelIndex& ivecz, - double radius, double radhole, - const QModelIndex& iplorig, - int nrad, int nang, int nhaut ) -{ - QModelIndex iElts; - - HEXA_NS::Vertex* hcenter = getHexaPtr(icenter); - HEXA_NS::Vector* hvecx = getHexaPtr(ivecx); - HEXA_NS::Vector* hvecz = getHexaPtr(ivecz); - HEXA_NS::Vertex* hplorig = getHexaPtr(iplorig); - - HEXA_NS::Elements* hElts = _hexaDocument->makeSphere( hcenter, - hvecx, hvecz, - radius, radhole, - hplorig, - nrad, nang, nhaut); - if ( BadElement(hElts) ) return iElts; - - updateData(); - ElementsItem* eltsItem = new ElementsItem(hElts); - _elementsDirItem->appendRow(eltsItem); - iElts = eltsItem->index(); - - return iElts; -} - -QModelIndex DocumentModel::makePartSphere( const QModelIndex& icenter, - const QModelIndex& ivecx, const QModelIndex& ivecz, - double radius, double radhole, - const QModelIndex& iplorig, double angle, - int nrad, int nang, int nhaut ) -{ - QModelIndex iElts; - - HEXA_NS::Vertex* hcenter = getHexaPtr(icenter); - HEXA_NS::Vector* hvecx = getHexaPtr(ivecx); - HEXA_NS::Vector* hvecz = getHexaPtr(ivecz); - HEXA_NS::Vertex* hplorig = getHexaPtr(iplorig); - - HEXA_NS::Elements* hElts = _hexaDocument->makePartSphere( hcenter, - hvecx, hvecz, - radius, radhole, - hplorig, angle, - nrad, nang, nhaut); - if ( BadElement(hElts) ) return iElts; - - updateData(); - ElementsItem* eltsItem = new ElementsItem(hElts); - _elementsDirItem->appendRow(eltsItem); - iElts = eltsItem->index(); - - return iElts; -} - -QModelIndex DocumentModel::prismQuad( const QModelIndex& iquad, const QModelIndex& ivec, int nb) -{ - QModelIndex iElts; - - HEXA_NS::Quad* hQuad = getHexaPtr(iquad); - HEXA_NS::Vector* hVect = getHexaPtr(ivec); - - HEXA_NS::Elements* hElts = _hexaDocument->prismQuad( hQuad, hVect, nb ); - if ( BadElement(hElts) ) return iElts; - - updateData(); //CS_TODO more or less? - ElementsItem* elts = new ElementsItem(hElts); - _elementsDirItem->appendRow(elts); - iElts = elts->index(); - - return iElts; -} - -QModelIndex DocumentModel::prismQuads( const QModelIndexList& iquads, const QModelIndex& ivec, int nb) -{ - QModelIndex iElts; - - HEXA_NS::Quads hQuads; - HEXA_NS::Quad* hQuad = NULL; - foreach( const QModelIndex& iquad, iquads ){ - hQuad = getHexaPtr(iquad); - hQuads.push_back( hQuad ); - } - HEXA_NS::Vector* hVect = getHexaPtr(ivec); - - HEXA_NS::Elements* hElts = _hexaDocument->prismQuads( hQuads, hVect, nb ); - if ( BadElement(hElts) ) return iElts; - - updateData(); //CS_TODO more or less? - ElementsItem* elts = new ElementsItem(hElts); - _elementsDirItem->appendRow(elts); - iElts = elts->index(); - - return iElts; -} - -QModelIndex DocumentModel::prismQuads( const QModelIndexList& iquads, const QModelIndex& ivec, std::vector layersSize, int nb) -{ - QModelIndex iElts; - - HEXA_NS::Quads hQuads; - HEXA_NS::Quad* hQuad = NULL; - foreach( const QModelIndex& iquad, iquads ){ - hQuad = getHexaPtr(iquad); - hQuads.push_back( hQuad ); - } - HEXA_NS::Vector* hVect = getHexaPtr(ivec); - - HEXA_NS::Elements* hElts = _hexaDocument->prismQuadsVec( hQuads, hVect, layersSize, nb ); - if ( BadElement(hElts) ) return iElts; - - updateData(); //CS_TODO more or less? - ElementsItem* elts = new ElementsItem(hElts); - _elementsDirItem->appendRow(elts); - iElts = elts->index(); - - return iElts; -} - -// -QModelIndex DocumentModel::joinQuad( - const QModelIndex& iquadstart, const QModelIndex& iquaddest, - const QModelIndex& iv0, const QModelIndex& iv1, - const QModelIndex& iv2, const QModelIndex& iv3, - int nb ) -{ - QModelIndex iElts; - - HEXA_NS::Quad* hQuadStart = getHexaPtr(iquadstart); - HEXA_NS::Quad* hQuadDest = getHexaPtr(iquaddest); - - HEXA_NS::Vertex* hVertex0 = getHexaPtr(iv0); - HEXA_NS::Vertex* hVertex1 = getHexaPtr(iv1); - HEXA_NS::Vertex* hVertex2 = getHexaPtr(iv2); - HEXA_NS::Vertex* hVertex3 = getHexaPtr(iv3); - - HEXA_NS::Elements* hElts = _hexaDocument->joinQuad( hQuadStart, hQuadDest, - hVertex0, hVertex1, hVertex2, hVertex3, nb ); - if ( BadElement(hElts) ) return iElts; - - updateData(); //CS_TODO more or less? - ElementsItem* elts = new ElementsItem(hElts); - _elementsDirItem->appendRow(elts); - iElts = elts->index(); - - return iElts; -} - -QModelIndex DocumentModel::joinQuads( - const QModelIndexList& iquadsstart, const QModelIndex& iquaddest, - const QModelIndex& iv0, const QModelIndex& iv1, - const QModelIndex& iv2, const QModelIndex& iv3, - int nb ) -{ - QModelIndex iElts; - - HEXA_NS::Quad* hQuadStart; - HEXA_NS::Quads hQuadsStart; - - foreach( const QModelIndex& iquad, iquadsstart ){ - hQuadStart = data( iquad, HEXA_DATA_ROLE ).value(); - hQuadsStart.push_back( hQuadStart ); - } - HEXA_NS::Quad* hQuadDest = data( iquaddest, HEXA_DATA_ROLE ).value(); - - HEXA_NS::Vertex* hVertex0 = getHexaPtr(iv0); - HEXA_NS::Vertex* hVertex1 = getHexaPtr(iv1); - HEXA_NS::Vertex* hVertex2 = getHexaPtr(iv2); - HEXA_NS::Vertex* hVertex3 = getHexaPtr(iv3); - - HEXA_NS::Elements* hElts = _hexaDocument->joinQuads( - hQuadsStart, hQuadDest, - hVertex0, hVertex1, hVertex2, hVertex3, - nb ); - if ( BadElement(hElts) ) return iElts; - - updateData(); //CS_TODO more or less? - ElementsItem* elts = new ElementsItem(hElts); - _elementsDirItem->appendRow(elts); - iElts = elts->index(); - - return iElts; -} - -QModelIndex DocumentModel::cutEdge( const QModelIndex &i_e0, int nbcuts ) -//CS_TODO : impact sur le model? -{ - QModelIndex iElts; - - HEXA_NS::Edge* he0 = getHexaPtr(i_e0); - HEXA_NS::Elements* helts = _hexaDocument->cut( he0, nbcuts ); - - if ( BadElement(helts) ) return iElts; - - updateData(); //CS_TODO more? - ElementsItem* elts = new ElementsItem(helts); - _elementsDirItem->appendRow(elts); - iElts = elts->index(); - - return iElts; -} - -// ===================================== END OBSOLETE ========================================== - diff --git a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.hxx b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.hxx index 96fd2c4..ad6f624 100755 --- a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.hxx +++ b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentModel.hxx @@ -56,16 +56,6 @@ namespace HEXABLOCK typedef HEXA_NS::EnumGroup Group; typedef HEXA_NS::KindLaw KindLaw; -// struct GeomObj -// { -// QString shapeName; -// QString name; -// QString subid; // sub-shape id -// QString brep; -// double start; -// double end; -// }; - typedef QList GeomObjList; DocumentModel( HEXA_NS::Document* doc, const QString& entry, QObject * parent = 0 ); @@ -136,7 +126,7 @@ namespace HEXABLOCK int getNbrUsedElt(HEXA_NS::EnumElt eltType); int getNbrUnusedElt(HEXA_NS::EnumElt eltType); - QModelIndex addToElementsTree(HEXA_NS::Elements* helts); + QModelIndex addElementsToTree(HEXA_NS::Elements* helts, QStandardItem* tree); //associate a shape to the current document bool addShape(TopoDS_Shape& forme, QString& shapeName, bool publish=true); @@ -199,89 +189,10 @@ namespace HEXABLOCK QModelIndex addVectorVertices( const QModelIndex &i_v0, const QModelIndex &i_v1 ); // - QModelIndex addCylinder( const QModelIndex &iv, const QModelIndex &ivec, double r, double h ); - - // - QModelIndex addPipe( const QModelIndex &iv, const QModelIndex &ivec, double ri, double re, double h ); - - - // ===================== OBSOLETE ================================= - QModelIndex makeCartesian( const QModelIndex& ivex, - const QModelIndex& ivecx, const QModelIndex& ivecy, const QModelIndex& ivecz, - long nx, long ny, long nz); - - QModelIndex makeCartesian( const QModelIndex& ivex, - const QModelIndex& ivec, - int nx, int ny, int nz ); - - QModelIndex makeCylindrical( const QModelIndex& i_pt, - const QModelIndex& i_vx, const QModelIndex& i_vz, - double dr, double da, double dl, - long nr, long na, long nl, - bool fill = false ); - - QModelIndex makeCylindricals( - const QModelIndex& i_center, const QModelIndex& i_base, const QModelIndex& i_height, - QList< double> i_radius, QList i_angles, QList i_heights, - bool fill = false ); //NEW HEXA3 - - QModelIndex makeSpherical( const QModelIndex& i_v, const QModelIndex& i_vec, int nb, double k = 1 ); //CS_TO_DEL - - QModelIndex makeSpherical( const QModelIndex& i_center, double rayon, int nb, double k = 1 ); - - QModelIndex makeCylinder( const QModelIndex& cyl, const QModelIndex& vec, - int nr, int na, int nl ); - - QModelIndex makeCylinders(const QModelIndex& cyl1, const QModelIndex& cyl2); - - // - QModelIndex makePipe( const QModelIndex& pipe, const QModelIndex& vecx, - int nr, int na, int nl ); - - // - QModelIndex makePipes( const QModelIndex& pipe1, const QModelIndex& pipe2 ); - - QModelIndex makeRind( const QModelIndex& center, const QModelIndex& vecx, const QModelIndex& vecz, - double radext, double radint, double radhole, - const QModelIndex& plorig, - int nrad, int nang, int nhaut ); //NEW HEXA3 - - QModelIndex makePartRind( const QModelIndex& center, const QModelIndex& vecx, const QModelIndex& vecz, - double radext, double radint, double radhole, - const QModelIndex& plorig, double angle, - int nrad, int nang, int nhaut ); //NEW HEXA3 - - QModelIndex makeSphere( const QModelIndex& center, const QModelIndex& vecx, const QModelIndex& vecz, - double radius, double radhole, - const QModelIndex& plorig, - int nrad, int nang, int nhaut ); //NEW HEXA3 - - QModelIndex makePartSphere( const QModelIndex& center, const QModelIndex& vecx, const QModelIndex& vecz, - double radius, double radhole, - const QModelIndex& plorig, double angle, - int nrad, int nang, int nhaut ); //NEW HEXA3 - - // OBSOLETE: replaced by extrudeQuad... - QModelIndex prismQuad( const QModelIndex& quad, const QModelIndex& dv, int nb); - QModelIndex prismQuads( const QModelIndexList& quads, const QModelIndex& dv, int nb); - QModelIndex prismQuads( const QModelIndexList& quads, const QModelIndex& dv, std::vector, int nb=0); - - // - QModelIndex joinQuad( const QModelIndex& start_q, const QModelIndex& dest_q, - const QModelIndex& v0, const QModelIndex& v1, - const QModelIndex& v2, const QModelIndex& v3, int nb ); - - QModelIndex joinQuads( const QModelIndexList& start_q, const QModelIndex& dest_q, - const QModelIndex& v0, const QModelIndex& v1, - const QModelIndex& v2, const QModelIndex& v3, int nb ); - - QModelIndex revolutionQuads( const QModelIndexList& startQuads, const QModelIndex& center, - const QModelIndex& vec_axis, const QList& angles); //NEW HEXA3 - - // - QModelIndex cutEdge( const QModelIndex &e, int nbcuts ); - - // ======================= END OBSOLETE ================================= +// QModelIndex addCylinder( const QModelIndex &iv, const QModelIndex &ivec, double r, double h ); +// +// // +// QModelIndex addPipe( const QModelIndex &iv, const QModelIndex &ivec, double ri, double re, double h ); @@ -552,8 +463,6 @@ namespace HEXABLOCK //builder QStandardItem *_vectorDirItem; - QStandardItem *_cylinderDirItem; - QStandardItem *_pipeDirItem; QStandardItem *_elementsDirItem; QStandardItem *_crossElementsDirItem; @@ -579,8 +488,6 @@ namespace HEXABLOCK Qt::ItemFlags _hexaItemFlags; Qt::ItemFlags _vectorItemFlags; - Qt::ItemFlags _cylinderItemFlags; - Qt::ItemFlags _pipeItemFlags; Qt::ItemFlags _elementsItemFlags; Qt::ItemFlags _crossElementsItemFlags; diff --git a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.cxx b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.cxx index 9c5ef82..2bf2f29 100755 --- a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.cxx +++ b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.cxx @@ -137,8 +137,8 @@ HexaBaseDialog::HexaBaseDialog( QWidget * parent, Mode editmode, Qt::WindowFlags _strHexaWidgetType[HEXA_TREE] = tr( "HEXA" ); _strHexaWidgetType[VECTOR_TREE] = tr( "VECTOR" ); - _strHexaWidgetType[CYLINDER_TREE] = tr( "CYLINDER" ); - _strHexaWidgetType[PIPE_TREE] = tr( "PIPE" ); +// _strHexaWidgetType[CYLINDER_TREE] = tr( "CYLINDER" ); +// _strHexaWidgetType[PIPE_TREE] = tr( "PIPE" ); _strHexaWidgetType[ELEMENTS_TREE] = tr( "ELEMENTS" ); _strHexaWidgetType[CROSSELEMENTS_TREE]= tr( "CROSSELEMENTS" ); @@ -535,8 +535,8 @@ QItemSelectionModel* HexaBaseDialog::_getSelector( QObject* obj ) case QUAD_TREE: case HEXA_TREE: selector = getPatternDataSelectionModel(); break; case VECTOR_TREE: - case CYLINDER_TREE: - case PIPE_TREE: +// case CYLINDER_TREE: +// case PIPE_TREE: case ELEMENTS_TREE: case CROSSELEMENTS_TREE: selector = getPatternBuilderSelectionModel(); break; case GEOMPOINT_TREE: @@ -1903,7 +1903,7 @@ MakeGridDialog::MakeGridDialog( QWidget* parent, Mode editmode, Qt::WindowFlags _initWidget(editmode); rb0->click(); - _helpFileName = "creategrids.html#guicartgrid"; + _helpFileName = "creategrids.html#guicartgridsimple"; connect( rb0, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); connect( rb0, SIGNAL(clicked()), this, SLOT(clearVTKSelection()) ); connect( rb0, SIGNAL(clicked()), this, SLOT(clearCurrentObjectFocus()) ); @@ -1944,7 +1944,7 @@ void MakeGridDialog::_initInputWidget( Mode editmode ) radius_lw->setItemDelegate(new HexaPositiveDoubleSpinBoxDelegate(radius_lw)); radius_lw->setEditTriggers(QAbstractItemView::DoubleClicked); - angle_lw->setItemDelegate(new HexaAngleDoubleSpinBoxDelegate(angle_lw)); + angle_lw->setItemDelegate(new HexaPositiveDoubleSpinBoxDelegate(angle_lw)); angle_lw->setEditTriggers(QAbstractItemView::DoubleClicked); height_lw->setItemDelegate(new HexaPositiveDoubleSpinBoxDelegate(height_lw)); @@ -1982,11 +1982,11 @@ void MakeGridDialog::clear() void MakeGridDialog::updateHelpFileName() { if ( sender() == rb0 ){ - _helpFileName = "creategrids.html#guicartgrid"; + _helpFileName = "creategrids.html#guicartgridsimple"; } else if ( sender() == rb1 ){ - _helpFileName = "creategrids.html#guicylgrid"; + _helpFileName = "creategrids.html#guicartgriduniform"; } else if ( sender() == rb2 ){ - _helpFileName = "creategrids.html#guisphergrid"; + _helpFileName = "creategrids.html#guicartgridcustom"; } } @@ -2017,7 +2017,7 @@ void MakeGridDialog::addAngleItem() QListWidgetItem* previousItem = angle_lw->currentItem(); QListWidgetItem* newItem = new QListWidgetItem(); - double defaultValue = 180.; + double defaultValue = 1.; if ( previousItem ) defaultValue = previousItem->data(Qt::EditRole).toDouble(); @@ -2080,15 +2080,15 @@ bool MakeGridDialog::apply(QModelIndex& result) if ( icenter.isValid() && iaxis.isValid() && ibase.isValid() && ivec.isValid() ) { - double nx = nx_spb->value(); - double ny = ny_spb->value(); - double nz = nz_spb->value(); - double lx = lx_spb->value(); - double ly = ly_spb->value(); - double lz = lz_spb->value(); - - iNewElts = docModel->makeCartesianUni( icenter, ibase, ivec, iaxis, - nx, ny, nz, lx, ly, lz); + double lx = lx_spb->value(); + double ly = ly_spb->value(); + double lz = lz_spb->value(); + double nx = nx_spb->value(); + double ny = ny_spb->value(); + double nz = nz_spb->value(); + + iNewElts = docModel->makeCartesianUni( icenter, ibase, ivec, iaxis, + lx, ly, lz, nx, ny, nz); } } else if ( rb2->isChecked() ) @@ -2106,21 +2106,21 @@ bool MakeGridDialog::apply(QModelIndex& result) vector angles; vector heights; - double somme = 0.; +// double somme = 0.; int nbAngles = angle_lw->count(); for ( int r = 0; r < nbAngles; ++r){ item = angle_lw->item(r); double itemValue = item->data(Qt::EditRole).toDouble(); angles.push_back(itemValue); - somme += itemValue; - } - if (somme > 360.01) - { - SUIT_MessageBox::information( 0, - tr("HEXA_INFO"), - tr("The sum of the picked angles has to be \nless or equal than %1 degrees.").arg(360)); - return false; +// somme += itemValue; } +// if (somme > 360.01) +// { +// SUIT_MessageBox::information( 0, +// tr("HEXA_INFO"), +// tr("The sum of the picked angles has to be \nless or equal than %1 degrees.").arg(360)); +// return false; +// } int nbRadius = radius_lw->count(); for ( int r = 0; r < nbRadius; ++r){ @@ -2156,8 +2156,11 @@ bool MakeGridDialog::apply(QModelIndex& result) MakeCylinderDialog::MakeCylinderDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f ) : HexaBaseDialog(parent, editmode, f) { - _helpFileName = "gui_blocks_for_cyl_pipe.html#make-cylinder"; setupUi( this ); + _helpFileName = "gui_blocks_for_cyl_pipe.html#guicylinder"; + connect( rb0, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); + connect( rb1, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); + connect( rb2, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); _initWidget(editmode); rb0->click(); @@ -2202,6 +2205,18 @@ void MakeCylinderDialog::_initInputWidget( Mode editmode ) connect( del_height_pb, SIGNAL(clicked()), this, SLOT(delHeightItem()) ); } +// ============================================================== updateHelpFileName +void MakeCylinderDialog::updateHelpFileName() +{ + if ( sender() == rb0 ){ + _helpFileName = "gui_blocks_for_cyl_pipe.html#guicylindersimple"; + } else if ( sender() == rb1 ){ + _helpFileName = "gui_blocks_for_cyl_pipe.html#guicylinderuniform"; + } else if ( sender() == rb2 ){ + _helpFileName = "gui_blocks_for_cyl_pipe.html#guicylindercustom"; + } +} + // ============================================================== addRadiusItem void MakeCylinderDialog::addRadiusItem() { @@ -2318,21 +2333,21 @@ bool MakeCylinderDialog::apply(QModelIndex& result) vector angles; vector heights; - double somme = 0.; +// double somme = 0.; int nbAngles = angle_lw->count(); for ( int r = 0; r < nbAngles; ++r){ item = angle_lw->item(r); double itemValue = item->data(Qt::EditRole).toDouble(); angles.push_back(itemValue); - somme += itemValue; - } - if (somme > 360.01) - { - SUIT_MessageBox::information( 0, - tr("HEXA_INFO"), - tr("The sum of the picked angles has to be \nless or equal than %1 degrees.").arg(360)); - return false; +// somme += itemValue; } +// if (somme > 360.01) +// { +// SUIT_MessageBox::information( 0, +// tr("HEXA_INFO"), +// tr("The sum of the picked angles has to be \nless or equal than %1 degrees.").arg(360)); +// return false; +// } int nbRadius = radius_lw->count(); for ( int r = 0; r < nbRadius; ++r){ @@ -2367,8 +2382,11 @@ bool MakeCylinderDialog::apply(QModelIndex& result) MakePipeDialog::MakePipeDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f ) : HexaBaseDialog(parent, editmode, f) { - _helpFileName = "gui_blocks_for_cyl_pipe.html#make-pipe"; - setupUi( this ); + setupUi( this ); + _helpFileName = "gui_blocks_for_cyl_pipe.html#guipipe"; + connect( rb0, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); + connect( rb1, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); + connect( rb2, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); _initWidget(editmode); rb0->click(); } @@ -2413,6 +2431,19 @@ void MakePipeDialog::_initInputWidget( Mode editmode ) connect( del_height_pb, SIGNAL(clicked()), this, SLOT(delHeightItem()) ); } + +// ============================================================== updateHelpFileName +void MakePipeDialog::updateHelpFileName() +{ + if ( sender() == rb0 ){ + _helpFileName = "gui_blocks_for_cyl_pipe.html#guipipesimple"; + } else if ( sender() == rb1 ){ + _helpFileName = "gui_blocks_for_cyl_pipe.html#guipipeuniform"; + } else if ( sender() == rb2 ){ + _helpFileName = "gui_blocks_for_cyl_pipe.html#guipipecustom"; + } +} + // ============================================================== addRadiusItem void MakePipeDialog::addRadiusItem() { @@ -2530,21 +2561,21 @@ bool MakePipeDialog::apply(QModelIndex& result) vector angles; vector heights; - double somme = 0.; +// double somme = 0.; int nbAngles = angle_lw->count(); for ( int r = 0; r < nbAngles; ++r){ item = angle_lw->item(r); double itemValue = item->data(Qt::EditRole).toDouble(); angles.push_back(itemValue); - somme += itemValue; - } - if (somme > 360.01) - { - SUIT_MessageBox::information( 0, - tr("HEXA_INFO"), - tr("The sum of the picked angles has to be \nless or equal than %1 degrees.").arg(360)); - return false; +// somme += itemValue; } +// if (somme > 360.01) +// { +// SUIT_MessageBox::information( 0, +// tr("HEXA_INFO"), +// tr("The sum of the picked angles has to be \nless or equal than %1 degrees.").arg(360)); +// return false; +// } int nbRadius = radius_lw->count(); for ( int r = 0; r < nbRadius; ++r){ @@ -2578,7 +2609,7 @@ bool MakePipeDialog::apply(QModelIndex& result) MakeCylindersDialog::MakeCylindersDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f ) : HexaBaseDialog(parent, editmode, f) { - _helpFileName = "gui_blocks_for_cyl_pipe.html#make-cylinders"; + _helpFileName = "gui_blocks_for_cyl_pipe.html#guicylinders"; setupUi( this ); _initWidget(editmode); } @@ -2665,7 +2696,7 @@ bool MakeCylindersDialog::apply(QModelIndex& result) MakePipesDialog::MakePipesDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f ) : HexaBaseDialog(parent, editmode, f) { - _helpFileName = "gui_blocks_for_cyl_pipe.html#make-pipes"; + _helpFileName = "gui_blocks_for_cyl_pipe.html#guipipes"; setupUi( this ); _initWidget(editmode); } @@ -2825,8 +2856,11 @@ bool RemoveHexaDialog::apply(QModelIndex& result) PrismQuadDialog::PrismQuadDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f ) : HexaBaseDialog(parent, editmode, f) { - _helpFileName = "gui_prism_join_quad.html#prism-quadrangles"; - setupUi( this ); + setupUi( this ); + _helpFileName = "gui_prism_join_quad.html#guiextrudequads"; + connect( extrudeTop_rb, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); + connect( extrudeUni_rb, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); + connect( extrude_rb, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); _initWidget(editmode); extrudeTop_rb->click(); } @@ -2882,6 +2916,18 @@ void PrismQuadDialog::_initInputWidget( Mode editmode ) connect( del_height_pb, SIGNAL(clicked()), this, SLOT(delHeightItem()) ); } +// ============================================================== updateHelpFileName +void PrismQuadDialog::updateHelpFileName() +{ + if ( sender() == extrudeTop_rb ){ + _helpFileName = "gui_prism_join_quad.html#guiextrudequadssimple"; + } else if ( sender() == extrudeUni_rb ){ + _helpFileName = "gui_prism_join_quad.html#guiextrudequadsuniform"; + } else if ( sender() == extrude_rb ){ + _helpFileName = "gui_prism_join_quad.html#guiextrudequadscustom"; + } +} + // ============================================================== clear void PrismQuadDialog::clear() { @@ -2988,8 +3034,10 @@ bool PrismQuadDialog::apply(QModelIndex& result) JoinQuadDialog::JoinQuadDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f ) : HexaBaseDialog(parent, editmode, f) { - _helpFileName = "gui_prism_join_quad.html#join-quadrangles"; - setupUi( this ); + setupUi( this ); + _helpFileName = "gui_prism_join_quad.html#guijoinquads"; + connect( joinUni_rb, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); + connect( join_rb, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); _initWidget(editmode); joinUni_rb->click(); } @@ -3062,6 +3110,16 @@ void JoinQuadDialog::_initInputWidget( Mode editmode ) connect( del_height_pb, SIGNAL(clicked()), this, SLOT(delHeightItem()) ); } +// ============================================================== updateHelpFileName +void JoinQuadDialog::updateHelpFileName() +{ + if ( sender() == joinUni_rb ){ + _helpFileName = "gui_prism_join_quad.html#guijoinquadsuniform"; + } else if ( sender() == join_rb ){ + _helpFileName = "gui_prism_join_quad.html#guijoinquadscustom"; + } +} + // ============================================================== addHeightItem void JoinQuadDialog::addHeightItem() { @@ -3658,8 +3716,10 @@ bool DisconnectDialog::apply(QModelIndex& result) CutEdgeDialog::CutEdgeDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f ): HexaBaseDialog(parent, editmode, f) { - _helpFileName = "gui_cut_hexa.html"; setupUi( this ); + _helpFileName = "gui_cut_hexa.html"; + connect( cutUni_rb, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); + connect( cut_rb, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); _initWidget(editmode); cutUni_rb->click(); @@ -3687,6 +3747,16 @@ void CutEdgeDialog::_initInputWidget( Mode editmode ) connect( del_height_pb, SIGNAL(clicked()), this, SLOT(delHeightItem()) ); } +// ============================================================== updateHelpFileName +void CutEdgeDialog::updateHelpFileName() +{ + if ( sender() == cutUni_rb ){ + _helpFileName = "gui_cut_hexa.html#guicuthexauniform"; + } else if ( sender() == cut_rb ){ + _helpFileName = "gui_cut_hexa.html#guicuthexacustom"; + } +} + // ============================================================== clear void CutEdgeDialog::clear() { @@ -5748,8 +5818,10 @@ bool ReplaceHexaDialog::apply(QModelIndex& result) QuadRevolutionDialog::QuadRevolutionDialog( QWidget* parent, Mode editmode, Qt::WindowFlags f ): HexaBaseDialog(parent, editmode, f) { - _helpFileName = "gui_quad_revolution.html"; setupUi( this ); + _helpFileName = "gui_quad_revolution.html#guiquadsrevolution"; + connect( revolutionUni_rb, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); + connect( revolution_rb, SIGNAL(clicked()), this, SLOT(updateHelpFileName()) ); _initWidget(editmode); revolutionUni_rb->click(); } @@ -5810,6 +5882,16 @@ void QuadRevolutionDialog::_initInputWidget( Mode editmode ) connect(quads_lw, SIGNAL(itemSelectionChanged()), this, SLOT(selectElementOfModel()), Qt::UniqueConnection); } +// ============================================================== updateHelpFileName +void QuadRevolutionDialog::updateHelpFileName() +{ + if ( sender() == revolutionUni_rb ){ + _helpFileName = "gui_quad_revolution.html#guiquadsrevolutionuniform"; + } else if ( sender() == revolution_rb ){ + _helpFileName = "gui_quad_revolution.html#guiquadsrevolutioncustom"; + } +} + // ============================================================== clear void QuadRevolutionDialog::clear() { @@ -5994,6 +6076,28 @@ void MakeHemiSphereDialog::_initInputWidget( Mode editmode ) connect( del_height_pb, SIGNAL(clicked()), this, SLOT(delHeightItem()) ); } +// ============================================================== updateHelpFileName +void MakeHemiSphereDialog::updateHelpFileName() +{ + if ( sender() == sphereTop_rb || sender() == rindTop_rb ){ + _helpFileName = "gui_hemisphere.html#guisphereandrindsimple"; + } else if ( sender() == sphereUni_rb ){ + _helpFileName = "gui_hemisphere.html#guisphereuniform"; + } else if ( sender() == sphere2_rb ){ + _helpFileName = "gui_hemisphere.html#guispherecustom"; + } else if ( sender() == rindUni_rb ){ + _helpFileName = "gui_hemisphere.html#guirinduniform"; + } else if ( sender() == rind2_rb ){ + _helpFileName = "gui_hemisphere.html#guirindcustom"; + } else if ( sender() == sphericalTop_rb ){ + _helpFileName = "gui_hemisphere.html#guiconcentricsimple"; + } else if ( sender() == sphericalUni_rb ){ + _helpFileName = "gui_hemisphere.html#guiconcentricuniform"; + } else if ( sender() == spherical2_rb ){ + _helpFileName = "gui_hemisphere.html#guiconcentriccustom"; + } +} + // ============================================================== addRadiusItem void MakeHemiSphereDialog::addRadiusItem1() { @@ -6078,11 +6182,6 @@ void MakeHemiSphereDialog::delHeightItem() delete height_lw->currentItem(); } -// ============================================================== updateHelpFileName -void MakeHemiSphereDialog::updateHelpFileName() -{ -} - // ============================================================== clear void MakeHemiSphereDialog::clear() { @@ -6137,13 +6236,13 @@ bool MakeHemiSphereDialog::apply(QModelIndex& result) vector heights; //angles collection - double somme = 0.; +// double somme = 0.; int nbAngles = angle_lw->count(); for ( int r = 0; r < nbAngles; ++r){ item = angle_lw->item(r); double itemValue = item->data(Qt::EditRole).toDouble(); angles.push_back(itemValue); - somme += itemValue; +// somme += itemValue; } //radius1 collection @@ -6179,13 +6278,13 @@ bool MakeHemiSphereDialog::apply(QModelIndex& result) } else if (sphere2_rb->isChecked()) { - if (somme > 360.01) - { - SUIT_MessageBox::information( 0, - tr("HEXA_INFO"), - tr("The sum of the picked angles has to be \nless or equal than %1 degrees.").arg(360)); - return false; - } +// if (somme > 360.01) +// { +// SUIT_MessageBox::information( 0, +// tr("HEXA_INFO"), +// tr("The sum of the picked angles has to be \nless or equal than %1 degrees.").arg(360)); +// return false; +// } if (icenter.isValid() && ivecx.isValid() && ivecz.isValid()) iElts = docModel->makeSphere(icenter, ivecx, ivecz, radius2, angles, heights); } @@ -6218,13 +6317,13 @@ bool MakeHemiSphereDialog::apply(QModelIndex& result) } else if (rind2_rb->isChecked()) { - if (somme > 360.01) - { - SUIT_MessageBox::information( 0, - tr("HEXA_INFO"), - tr("The sum of the picked angles has to be \nless or equal than %1 degrees.").arg(360)); - return false; - } +// if (somme > 360.01) +// { +// SUIT_MessageBox::information( 0, +// tr("HEXA_INFO"), +// tr("The sum of the picked angles has to be \nless or equal than %1 degrees.").arg(360)); +// return false; +// } if (icenter.isValid() && ivecx.isValid() && ivecz.isValid()) iElts = docModel->makeRind(icenter, ivecx, ivecz, radius2, angles, heights); } @@ -6490,42 +6589,42 @@ HEXA_NS::Cylinder* CylinderDialog::getValue() // ============================================================== apply bool CylinderDialog::apply(QModelIndex& result) { - if (_currentObj != NULL) _highlightWidget(_currentObj, Qt::white); - _currentObj = NULL; - - if ( !getDocumentModel() ) return false; - const PatternDataModel* patternDataModel = getPatternDataModel(); - const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel(); - if ( !patternDataModel || !patternBuilderModel) return false; - - QModelIndex iCyl; - QModelIndex ivex = patternDataModel->mapToSource( _index[vex_le] ); - QModelIndex ivec = patternBuilderModel->mapToSource( _index[vec_le] ); - double r = r_spb->value(); - double h = h_spb->value(); - - if ( ivex.isValid() - && ivec.isValid() ){ - iCyl = getDocumentModel()->addCylinder( ivex, ivec, r, h ); - } - - if ( !iCyl.isValid() ){ - SUIT_MessageBox::critical( this, tr( "ERR_ERROR" ), tr( "CANNOT ADD CYLINDER" ) ); - return false; - } - - _value = iCyl.model()->data(iCyl, HEXA_DATA_ROLE).value(); - - QString newName = name_le->text(); - if (!newName.isEmpty()) /*{*/ - getDocumentModel()->setName( iCyl, newName ); - - //update the default name in the dialog box - if (_value != NULL) - updateDefaultName(name_le, _value->getType()); - - // to select/highlight result - result = patternBuilderModel->mapFromSource(iCyl); +// if (_currentObj != NULL) _highlightWidget(_currentObj, Qt::white); +// _currentObj = NULL; +// +// if ( !getDocumentModel() ) return false; +// const PatternDataModel* patternDataModel = getPatternDataModel(); +// const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel(); +// if ( !patternDataModel || !patternBuilderModel) return false; +// +// QModelIndex iCyl; +// QModelIndex ivex = patternDataModel->mapToSource( _index[vex_le] ); +// QModelIndex ivec = patternBuilderModel->mapToSource( _index[vec_le] ); +// double r = r_spb->value(); +// double h = h_spb->value(); +// +// if ( ivex.isValid() +// && ivec.isValid() ){ +// iCyl = getDocumentModel()->addCylinder( ivex, ivec, r, h ); +// } +// +// if ( !iCyl.isValid() ){ +// SUIT_MessageBox::critical( this, tr( "ERR_ERROR" ), tr( "CANNOT ADD CYLINDER" ) ); +// return false; +// } +// +// _value = iCyl.model()->data(iCyl, HEXA_DATA_ROLE).value(); +// +// QString newName = name_le->text(); +// if (!newName.isEmpty()) /*{*/ +// getDocumentModel()->setName( iCyl, newName ); +// +// //update the default name in the dialog box +// if (_value != NULL) +// updateDefaultName(name_le, _value->getType()); +// +// // to select/highlight result +// result = patternBuilderModel->mapFromSource(iCyl); return true; } @@ -6638,48 +6737,48 @@ HEXA_NS::Pipe* PipeDialog::getValue() // ============================================================== apply bool PipeDialog::apply(QModelIndex& result) { - if (_currentObj != NULL) _highlightWidget(_currentObj, Qt::white); - _currentObj = NULL; - - if ( !getDocumentModel() ) return false; - const PatternDataModel* patternDataModel = getPatternDataModel(); - const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel(); - if ( !patternDataModel || !patternBuilderModel) return false; - - QModelIndex iPipe; - QModelIndex ivex = patternDataModel->mapToSource( _index[vex_le] ); - QModelIndex ivec = patternBuilderModel->mapToSource( _index[vec_le] ); - double ir = ir_spb->value(); - double er = er_spb->value(); - double h = h_spb->value(); - - if (ir >= er) { - SUIT_MessageBox::information( this, tr( "CANNOT ADD PIPE" ), tr( "External radius must be greather than Internal radius!" ) ); - return false; - } - - - if ( ivex.isValid() - && ivec.isValid() ){ - iPipe = getDocumentModel()->addPipe( ivex, ivec, ir, er, h ); - } - - if ( !iPipe.isValid() ){ - SUIT_MessageBox::critical( this, tr( "ERR_ERROR" ), tr( "CANNOT ADD PIPE" ) ); - return false; - } - _value = iPipe.model()->data(iPipe, HEXA_DATA_ROLE).value(); - - QString newName = name_le->text(); - if ( !newName.isEmpty() )/*{*/ - getDocumentModel()->setName( iPipe, newName ); - - //update the default name in the dialog box - if (_value != NULL) - updateDefaultName(name_le, _value->getType()); - - // to select/highlight result - result = patternBuilderModel->mapFromSource(iPipe); +// if (_currentObj != NULL) _highlightWidget(_currentObj, Qt::white); +// _currentObj = NULL; +// +// if ( !getDocumentModel() ) return false; +// const PatternDataModel* patternDataModel = getPatternDataModel(); +// const PatternBuilderModel* patternBuilderModel = getPatternBuilderModel(); +// if ( !patternDataModel || !patternBuilderModel) return false; +// +// QModelIndex iPipe; +// QModelIndex ivex = patternDataModel->mapToSource( _index[vex_le] ); +// QModelIndex ivec = patternBuilderModel->mapToSource( _index[vec_le] ); +// double ir = ir_spb->value(); +// double er = er_spb->value(); +// double h = h_spb->value(); +// +// if (ir >= er) { +// SUIT_MessageBox::information( this, tr( "CANNOT ADD PIPE" ), tr( "External radius must be greather than Internal radius!" ) ); +// return false; +// } +// +// +// if ( ivex.isValid() +// && ivec.isValid() ){ +// iPipe = getDocumentModel()->addPipe( ivex, ivec, ir, er, h ); +// } +// +// if ( !iPipe.isValid() ){ +// SUIT_MessageBox::critical( this, tr( "ERR_ERROR" ), tr( "CANNOT ADD PIPE" ) ); +// return false; +// } +// _value = iPipe.model()->data(iPipe, HEXA_DATA_ROLE).value(); +// +// QString newName = name_le->text(); +// if ( !newName.isEmpty() )/*{*/ +// getDocumentModel()->setName( iPipe, newName ); +// +// //update the default name in the dialog box +// if (_value != NULL) +// updateDefaultName(name_le, _value->getType()); +// +// // to select/highlight result +// result = patternBuilderModel->mapFromSource(iPipe); return true; } diff --git a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.hxx b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.hxx index 2d1c08c..551be9e 100755 --- a/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.hxx +++ b/src/HEXABLOCKGUI/HEXABLOCKGUI_DocumentPanel.hxx @@ -568,6 +568,7 @@ namespace HEXABLOCK protected slots: void addHeightItem(); void delHeightItem(); + void updateHelpFileName(); private slots: void addQuad(); @@ -597,6 +598,7 @@ namespace HEXABLOCK protected slots: void addHeightItem(); void delHeightItem(); + void updateHelpFileName(); private slots: void addQuad(); @@ -670,6 +672,7 @@ namespace HEXABLOCK protected slots: void addHeightItem(); void delHeightItem(); + void updateHelpFileName(); public slots: virtual bool apply(QModelIndex& result); @@ -1006,6 +1009,7 @@ class HEXABLOCKGUI_DOCUMENTPANEL_EXPORT EdgeAssocDialog : public HexaBaseDialog, void addAngleItem(); void delAngleItem(); void delQuadItem(); + void updateHelpFileName(); private: HEXA_NS::Elements *_value; diff --git a/src/HEXABLOCKGUI/JoinQuad_QTD.ui b/src/HEXABLOCKGUI/JoinQuad_QTD.ui index deec71f..ded45f7 100644 --- a/src/HEXABLOCKGUI/JoinQuad_QTD.ui +++ b/src/HEXABLOCKGUI/JoinQuad_QTD.ui @@ -7,7 +7,7 @@ 0 0 344 - 532 + 558 @@ -54,325 +54,275 @@ 0 0 306 - 646 + 527 - + - - - - - + + + + + + Quad(s): + + + + + + - + + + QFormLayout::AllNonFixedFieldsGrow + + + + + From point a + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + false + + + + + + + From point b + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + false + + + + + + + + + + + + + + + Quadrangle + + + + + - + 0 0 - - + + false - - - - - - 0 - 0 - - - - Quad(s) - - - - - - - - - - - - - 0 - 0 - - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - From point a - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - false - - - - - - - From point b - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - false - - - - - - - - - + + + + To point a + + + + + - + 0 0 - - + + + 16777215 + 16777215 + + + + false - - - - - Quadrangle - - - - - - - - 0 - 0 - - - - false - - - - - - - To point a - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - false - - - - - - - To point b - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - false - - - - - - + + + + To point b + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + false + + + + + + + + + + + + + 0 0 - - + + Nb layers - - - - - - 0 - 0 - - - - Nb layers - - - - - - - - 0 - 0 - - - - 1 - - - 1000000 - - - 1 - - - - - - + + - + 0 0 - - 0 + + 1 + + + 1000000 + + + 1 - - - height - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - + + + + + 0 + 0 + + + + 0 + + + + height + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + @@ -393,12 +343,9 @@ - vex0_le - vex1_le quad_dest_le vex2_le vex3_le - nb_spb @@ -435,34 +382,34 @@ - join_rb + joinUni_rb clicked() - groupBox_3 - hide() + widget_3 + show() - 222 - 53 + 93 + 28 162 - 571 + 403 - joinUni_rb + join_rb clicked() - groupBox_3 - show() + widget_3 + hide() - 102 - 53 + 250 + 28 162 - 571 + 403 diff --git a/src/HEXABLOCKGUI/MakeCylinder_QTD.ui b/src/HEXABLOCKGUI/MakeCylinder_QTD.ui index 48f6825..00fb8e1 100644 --- a/src/HEXABLOCKGUI/MakeCylinder_QTD.ui +++ b/src/HEXABLOCKGUI/MakeCylinder_QTD.ui @@ -6,8 +6,8 @@ 0 0 - 297 - 620 + 368 + 695 @@ -102,246 +102,35 @@ 0 0 - 259 - 592 + 354 + 638 - - - - 0 - 0 - - - - - 5 - 0 - - - - - - - - - - - - - origin - - - - - - - - - - axis - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - false - - - - - - - - - - base - - - - + + + + + + origin + - - - - - - - radius - - - - - - - 6 - - - 1000000000.000000000000000 - - - 2.000000000000000 - - - - - - - hole radius - - - - - - - 6 - - - 1000000000.000000000000000 - - - 1.000000000000000 - - - 1.000000000000000 - - - - - - - slice angle - - - - - - - 6 - - - 360.000000000000000 - - - 10.000000000000000 - - - 360.000000000000000 - - - - - - - height - - - - - - - 6 - - - 1000000000.000000000000000 - - - 1.000000000000000 - - - - - + + - - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - nb Radial - - - - - - - 1 - - - 1000000 - - - 1 - - - - - - - nb Angular - - - - - - - 1 - - - 1000000 - - - 3 - - - - - - - nb Height - - - - - - - 1 - - - 1000000 - - - 1 - - - - + + + + axis + - - + + - + 0 0 @@ -349,200 +138,390 @@ 16777215 - 150 + 16777215 - - 2 - - - - radius - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - - - - angle - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - - - - height - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - + + false + - - - - Qt::Vertical + + + + + + + base - - - 20 - 0 - + + + + + + + + + + + + radius + + + + + + + 6 + + + 1000000000.000000000000000 + + + 2.000000000000000 + + + + + + + hole radius + + + + + + + 6 + + + 1000000000.000000000000000 + + + 1.000000000000000 + + + 1.000000000000000 + + + + + + + slice angle - + + + + + + 6 + + + 360.000000000000000 + + + 10.000000000000000 + + + 90.000000000000000 + + + + + + + height + + + + + + + 6 + + + 1000000000.000000000000000 + + + 1.000000000000000 + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + nb Radial + + + + + + + 1 + + + 1000000 + + + 4 + + + + + + + nb Angular + + + + + + + 1 + + + 1000000 + + + 8 + + + + + + + nb Height + + + + + + + 1 + + + 1000000 + + + 4 + + + + + + + + + + + 0 + 0 + + + + + 16777215 + 150 + + + + 2 + + + + radius + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + angle + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + height + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + diff --git a/src/HEXABLOCKGUI/MakeCylinders_QTD.ui b/src/HEXABLOCKGUI/MakeCylinders_QTD.ui index 26075e0..302e7b8 100644 --- a/src/HEXABLOCKGUI/MakeCylinders_QTD.ui +++ b/src/HEXABLOCKGUI/MakeCylinders_QTD.ui @@ -29,7 +29,7 @@ - Cylinder 1 + Big Cylinder @@ -84,7 +84,7 @@ 1000000000.000000000000000 - 1.000000000000000 + 4.000000000000000 @@ -97,7 +97,7 @@ 1000000000.000000000000000 - 1.000000000000000 + 2.000000000000000 @@ -121,7 +121,7 @@ - Cylinder 2 + Small Cylinder @@ -176,7 +176,7 @@ 1000000000.000000000000000 - 1.000000000000000 + 2.000000000000000 diff --git a/src/HEXABLOCKGUI/MakeGrid_QTD.ui b/src/HEXABLOCKGUI/MakeGrid_QTD.ui index 16ac9cb..070b929 100644 --- a/src/HEXABLOCKGUI/MakeGrid_QTD.ui +++ b/src/HEXABLOCKGUI/MakeGrid_QTD.ui @@ -29,7 +29,7 @@ - Grid Construction + Cartesian Grid Construction false @@ -132,455 +132,443 @@ - - - - 0 - 0 - - - - - 5 - 0 - - - - - - - - - - - - - origin - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Select a point (vertex) - - - - false - - - - - - - vec Z - - - - - - - - 16777215 - 16777215 - - - - Select a vector - - - false - - - - - - - - 16777215 - 16777215 - - - - Select a vector - - - false - - - - - - - vec X - - - - - - - vec Y - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - false - - - - + + + + + + origin + - - + + - + 0 0 - + - 0 - 0 + 16777215 + 16777215 - - - - - len X - - - - - - - 6 - - - - - - - len Y - - - - - - - 6 - - - - - - - len Z - - - - - - - 6 - - - - + + Select a point (vertex) + + + + false + - - - - - 0 - 0 - + + + + vec Z - + + + + + - 0 - 0 + 16777215 + 16777215 - - - - - nb X - - - - - - - 1 - - - 1000000 - - - 1 - - - - - - - nb Y - - - - - - - 1 - - - 1000000 - - - 3 - - - - - - - nb Z - - - - - - - 1 - - - 1000000 - - - 1 - - - - + + Select a vector + + + false + + + + + + + + 16777215 + 16777215 + + + + Select a vector + + + false + + + + + + + vec X + - - + + + + vec Y + + + + + - + 0 0 - + + + 16777215 + 16777215 + + + + false + + + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + + + len X + + + + + + + 6 + + + 1.000000000000000 + + + + + + + len Y + + + + + + + 6 + + + 1.000000000000000 + + + + + + + len Z + + + + + + + 6 + + + 1.000000000000000 + + + + + + + + + + + 0 + 0 + + + + + 0 + 0 + + + + + + + nb X + + + + + + 1 - - - X - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - - - - Y - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - - - - Z - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - + + 1000000 + + + 4 + + + + + + + nb Y + + + + + + + 1 + + + 1000000 + + + 8 + + + + + + + nb Z + + + + + + + 1 + + + 1000000 + + + 4 + + + + + + 0 + 0 + + + + 1 + + + + X + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + Y + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + Z + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + @@ -615,7 +603,6 @@ nx_spb ny_spb nz_spb - random_param_w add_radius_pb del_radius_pb radius_lw diff --git a/src/HEXABLOCKGUI/MakeHemiSphere_QTD.ui b/src/HEXABLOCKGUI/MakeHemiSphere_QTD.ui index 0a56206..aec53ea 100644 --- a/src/HEXABLOCKGUI/MakeHemiSphere_QTD.ui +++ b/src/HEXABLOCKGUI/MakeHemiSphere_QTD.ui @@ -91,745 +91,730 @@ 0 0 366 - 1076 + 1022 - - - - - + + - - - - - - Simple - - - true - - - - - - - Uniform - - - - - - - Custom - - - - + + + Simple + + + true + - - - - - - Simple - - - true - - - - - - - Uniform - - - - - - - Custom - - - - + + + Uniform + - - - - - - Simple - - - true - - - - - - - Uniform - - - - - - - Custom - - - - + + + Custom + + + + + + + - - - - - - center - - - - - - - - 0 - 0 - - - - - - - false - - - - - - - axis - - - - - - - - 0 - 0 - - - - - - - false - - - - - - - base - - - - - - - + + + Simple + + + true + - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - hole radius - - - - - - - - 0 - 0 - - - - 6 - - - 1000000000.000000000000000 - - - 1.000000000000000 - - - - + + + Uniform + - - - - - - external radius - - - - - - - - 0 - 0 - - - - 6 - - - 1000000000.000000000000000 - - - 2.000000000000000 - - - - - - - true - - - internal radius - - - - - - - true - - - - 0 - 0 - - - - 6 - - - 1000000000.000000000000000 - - - 1.000000000000000 - - - - - - - true - - - slice angle - - - - - - - true - - - - 0 - 0 - - - - 6 - - - 360.000000000000000 - - - 180.000000000000000 - - - - + + + Custom + + + + + + + - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - vplan - - - - - - - + + + Simple + + + true + - - - - - - Criteria - - - - - - - 1000000 - - - 0 - - - - + + + Uniform + - - - - - - Nb layers - - - - - - - 1000000 - - - 1 - - - - - - - Criteria - - - - - - - 1000000 - - - - + + + Custom + - - + + + + + + + + + + center + + + + + - + 0 0 - - - 16777215 - 150 - + + - - 0 + + false - - - radius - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - - - + + + + axis + + + + + + + + 0 + 0 + + + + + + + false + + + + + + + base + + + + + + + + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + external radius + + + + + + + + 0 + 0 + + + + 6 + + + 1000000000.000000000000000 + + + 2.000000000000000 + + + + + + + true + + + internal radius + + + + + + + true + + + + 0 + 0 + + + + 6 + + + 1000000000.000000000000000 + + + 1.000000000000000 + + + + + + + true + + + slice angle + + + + + + + true + + + + 0 + 0 + + + + 6 + + + 360.000000000000000 + + + 180.000000000000000 + + + + + - + 0 0 - - - 16777215 - 150 - + + 6 + + + 1000000000.000000000000000 + + + 0.500000000000000 + + + + + + + hole radius + + + + + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + vertex for cut plan + + + + + + + + + + + + + + + + Criteria + + + + + + + 1000000 - + 0 - - - radius - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - + + + + + + + + + + + + Nb layers + + + + + + + 1000000 + + + 2 + + + + + + + Criteria + + + + + + + 1000000 + + + + + + + + + + + 0 + 0 + + + + + 16777215 + 150 + + + + 0 + + + + radius + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + + + + + 0 + 0 + + + + + 16777215 + 150 + + + + 0 + + + + radius + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + angle + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + height + + + + + + true + + + + 0 + 0 + + + + + + - - - angle - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - + + + + + + 0 + 0 + + - - - height - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - + + + + + + 0 + 0 + + + + - + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + + + + + + + nb Radial + - - - - - - - nb Radial - - - - - - - - 0 - 0 - - - - 1 - - - 1000000 - - - 1 - - - - - - - nb Angular - - - - - - - - 0 - 0 - - - - 1 - - - 1000000 - - - 3 - - - - - - - nb Height - - - - - - - - 0 - 0 - - - - 1 - - - 1000000 - - - 1 - - - - + + + + + 0 + 0 + + + + 1 + + + 1000000 + + + 4 + - - - - Qt::Vertical + + + + nb Angular + + + + + + + + 0 + 0 + + + + 1 + + + 1000000 + + + 8 + + + + + + + nb Height + + + + + + + + 0 + 0 + + + + 1 - - - 20 - 40 - + + 1000000 - + + 4 + + + + + + Qt::Vertical + + + + 20 + 40 + + + + @@ -853,7 +838,6 @@ center_le hole_axis_le base_le - hole_rad_spb sphere_radext_spb sphere_radint_spb radial_angle_spb @@ -861,11 +845,9 @@ crit_spb nbre_spb crit_spb_2 - random_param_w_3 add_radius_pb_1 del_radius_pb_1 radius_lw_1 - random_param_w add_angle_pb add_radius_pb_2 del_radius_pb_2 @@ -929,22 +911,6 @@ - - sphere_rb - clicked() - widget_3 - hide() - - - 72 - 28 - - - 192 - 417 - - - sphere_rb clicked() @@ -1380,7 +1346,7 @@ sphericalTop_rb clicked() - widget_3 + random_param_w_3 hide() @@ -1389,14 +1355,14 @@ 192 - 417 + 768 sphericalTop_rb clicked() - random_param_w_3 + widget_20 hide() @@ -1405,28 +1371,12 @@ 192 - 768 + 588 - sphericalTop_rb - clicked() - widget_20 - hide() - - - 88 - 145 - - - 192 - 588 - - - - - sphericalUni_rb + sphericalUni_rb clicked() widget_2 show() @@ -1441,22 +1391,6 @@ - - sphericalUni_rb - clicked() - widget_3 - show() - - - 202 - 145 - - - 192 - 417 - - - sphericalUni_rb clicked() @@ -1585,22 +1519,6 @@ - - spherical2_rb - clicked() - widget_3 - hide() - - - 306 - 145 - - - 192 - 417 - - - spherical2_rb clicked() @@ -1777,22 +1695,6 @@ - - rindTop_rb - clicked() - widget_3 - hide() - - - 85 - 191 - - - 192 - 417 - - - rindTop_rb clicked() @@ -1857,22 +1759,6 @@ - - rindUni_rb - clicked() - widget_3 - show() - - - 192 - 191 - - - 192 - 417 - - - rindUni_rb clicked() @@ -1972,7 +1858,7 @@ rind2_rb clicked() - widget_3 + widget_4 hide() @@ -1981,14 +1867,14 @@ 192 - 417 + 504 rind2_rb clicked() - widget_4 + widget_6 hide() @@ -1997,23 +1883,343 @@ 192 - 504 + 1040 - rind2_rb + sphereUni_rb clicked() - widget_6 + int_rad_label hide() - 299 - 191 + 192 + 86 + 73 + 377 + + + + + sphereUni_rb + clicked() + sphere_radint_spb + hide() + + 192 - 1040 + 86 + + + 243 + 377 + + + + + rindUni_rb + clicked() + int_rad_label + show() + + + 192 + 178 + + + 73 + 377 + + + + + rindUni_rb + clicked() + sphere_radint_spb + show() + + + 192 + 178 + + + 243 + 377 + + + + + sphericalUni_rb + clicked() + widget_4 + show() + + + 192 + 132 + + + 192 + 396 + + + + + sphericalUni_rb + clicked() + int_rad_label + hide() + + + 192 + 132 + + + 73 + 377 + + + + + sphericalUni_rb + clicked() + sphere_radint_spb + hide() + + + 192 + 132 + + + 243 + 377 + + + + + sphericalUni_rb + clicked() + label_6 + hide() + + + 192 + 132 + + + 62 + 410 + + + + + sphericalUni_rb + clicked() + hole_rad_spb + hide() + + + 192 + 132 + + + 243 + 410 + + + + + sphericalUni_rb + clicked() + angle_label + hide() + + + 192 + 132 + + + 61 + 449 + + + + + sphericalUni_rb + clicked() + radial_angle_spb + hide() + + + 192 + 132 + + + 243 + 449 + + + + + sphereUni_rb + clicked() + label_6 + show() + + + 192 + 86 + + + 62 + 410 + + + + + sphereUni_rb + clicked() + hole_rad_spb + show() + + + 192 + 86 + + + 243 + 410 + + + + + sphereUni_rb + clicked() + angle_label + show() + + + 192 + 86 + + + 61 + 449 + + + + + sphereUni_rb + clicked() + radial_angle_spb + show() + + + 192 + 86 + + + 243 + 449 + + + + + rindUni_rb + clicked() + label_6 + show() + + + 192 + 178 + + + 62 + 410 + + + + + rindUni_rb + clicked() + hole_rad_spb + show() + + + 192 + 178 + + + 243 + 410 + + + + + rindUni_rb + clicked() + angle_label + show() + + + 192 + 178 + + + 61 + 449 + + + + + rindUni_rb + clicked() + radial_angle_spb + show() + + + 192 + 178 + + + 243 + 449 + + + + + sphericalTop_rb + clicked() + widget_4 + hide() + + + 80 + 132 + + + 192 + 396 + + + + + spherical2_rb + clicked() + widget_4 + hide() + + + 304 + 132 + + + 192 + 396 diff --git a/src/HEXABLOCKGUI/MakePipe_QTD.ui b/src/HEXABLOCKGUI/MakePipe_QTD.ui index 6cff7c1..c3ecb3f 100644 --- a/src/HEXABLOCKGUI/MakePipe_QTD.ui +++ b/src/HEXABLOCKGUI/MakePipe_QTD.ui @@ -6,8 +6,8 @@ 0 0 - 357 - 376 + 351 + 695 @@ -102,243 +102,42 @@ 0 0 - 319 - 580 + 337 + 638 - - - - 0 - 0 - - - - - 5 - 0 - - - - - - - - - - - - - origin - - - - - - - - - - axis - - - - - - - base - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - false - - - - - - - + + + + + + origin + - - - - - - - radius - - - - - - - 6 - - - 1000000000.000000000000000 - - - 2.000000000000000 - - - - - - - hole radius - - - - - - - 6 - - - 1000000000.000000000000000 - - - 1.000000000000000 - - - - - - - slice angle - - - - - - - 6 - - - 360.000000000000000 - - - 10.000000000000000 - - - 360.000000000000000 - - - - - - - height - - - - - - - 6 - - - 1000000000.000000000000000 - - - 1.000000000000000 - - - - + + + + + + + axis + - - - - - QFormLayout::AllNonFixedFieldsGrow - - - - - 1 - - - 1000000 - - - 1 - - - - - - - nb Angular - - - - - - - 1 - - - 1000000 - - - 3 - - - - - - - nb Height - - - - - - - 1 - - - 1000000 - - - 1 - - - - - - - nb Radial - - - - + + + + base + - - + + - + 0 0 @@ -346,200 +145,380 @@ 16777215 - 150 + 16777215 - - 0 - - - - radius - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - - - - angle - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - - - - height - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - + + false + - - - - Qt::Vertical + + + + + + + + + + + + + radius - - - 20 - 0 - + + + + + + 6 + + + 1000000000.000000000000000 + + + 2.000000000000000 + + + + + + + hole radius + + + + + + + 6 + + + 1000000000.000000000000000 + + + 1.000000000000000 + + + + + + + slice angle + + + + + + + 6 + + + 360.000000000000000 + + + 10.000000000000000 + + + 90.000000000000000 + + + + + + + height + + + + + + + 6 + + + 1000000000.000000000000000 + + + 1.000000000000000 + + + + + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + 1 + + + 1000000 + + + 4 + + + + + + + nb Angular - + + + + + + 1 + + + 1000000 + + + 8 + + + + + + + nb Height + + + + + + + 1 + + + 1000000 + + + 4 + + + + + + + nb Radial + + + + + + + 0 + 0 + + + + + 16777215 + 150 + + + + 0 + + + + radius + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + angle + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + height + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + @@ -561,7 +540,6 @@ nr_spb na_spb nh_spb - random_param_w add_radius_pb del_radius_pb radius_lw diff --git a/src/HEXABLOCKGUI/MakePipes_QTD.ui b/src/HEXABLOCKGUI/MakePipes_QTD.ui index 75f4aa3..3df3a49 100644 --- a/src/HEXABLOCKGUI/MakePipes_QTD.ui +++ b/src/HEXABLOCKGUI/MakePipes_QTD.ui @@ -29,7 +29,7 @@ - Pipe 1 + Big Pipe @@ -82,7 +82,7 @@ 1000000000.000000000000000 - 1.000000000000000 + 4.000000000000000 @@ -102,7 +102,7 @@ 1000000000.000000000000000 - 0.500000000000000 + 1.000000000000000 @@ -122,7 +122,7 @@ 1000000000.000000000000000 - 1.000000000000000 + 2.000000000000000 @@ -132,7 +132,7 @@ - Pipe 2 + Small Pipe @@ -185,7 +185,7 @@ 1000000000.000000000000000 - 1.000000000000000 + 2.000000000000000 diff --git a/src/HEXABLOCKGUI/PrismQuad_QTD.ui b/src/HEXABLOCKGUI/PrismQuad_QTD.ui index ee8bc69..71505ad 100644 --- a/src/HEXABLOCKGUI/PrismQuad_QTD.ui +++ b/src/HEXABLOCKGUI/PrismQuad_QTD.ui @@ -6,8 +6,8 @@ 0 0 - 424 - 599 + 353 + 540 @@ -32,285 +32,237 @@ Extrude Quad(s) Operation + + + + + + + Simple + + + true + + + + + + + Uniform + + + + + + + Custom + + + + + + true - + 0 0 - 404 - 579 + 333 + 474 - + - - - true + + + Quad(s): - - - - 0 - 0 - 384 - 559 - - - - - - - - 0 - 0 - + + + + + + + 0 + 0 + + + + + + + + + + + + 0 + 0 + + + + direction + + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + false + + + + + + + + + + + + + length + + + + + + + 6 + + + 1000000000.000000000000000 + + + 1.000000000000000 + + + + + + + 1 + + + 1000000 + + + 1 + + + + + + + Nb layers + + + + + + + + + + + 0 + 0 + + + + 0 + + + + height + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + + + + + + 0 + 0 + - - + + - - - - - - - - - Simple - - - true - - - - - - - Uniform - - - - - - - Custom - - - - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Quad(s) - - - - - - - 0 - 0 - - - - - - - - - - - - - - - 0 - 0 - - - - direction - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - false - - - - - - - - - - - - - length - - - - - - - 6 - - - 1000000000.000000000000000 - - - 1.000000000000000 - - - - - - - 1 - - - 1000000 - - - 1 - - - - - - - Nb layers - - - - - - - - - - - 0 - 0 - - - - 0 - - - - height - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 0 - - - - - + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + Qt::Vertical + + + + 20 + 0 + + + + diff --git a/src/HEXABLOCKGUI/Propagation_QTD.ui b/src/HEXABLOCKGUI/Propagation_QTD.ui index 91f862a..f9ea14b 100644 --- a/src/HEXABLOCKGUI/Propagation_QTD.ui +++ b/src/HEXABLOCKGUI/Propagation_QTD.ui @@ -21,92 +21,77 @@ - + 0 0 + + + 16777215 + 16777215 + + - + Propagation(s) - + - + 0 0 - - - 16777215 - 16777215 - - - - Propagation(s) - - - - - - - 0 - 0 - - - - - + + + + + + + + 0 + 0 + + + + Law + + - + 0 0 - - Law + + + 16777215 + 16777215 + - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - false - - - - - - - - - - way + + false + + + + way + + + @@ -125,7 +110,6 @@ propagations_lw law_le - way_cb buttonBox diff --git a/src/HEXABLOCKGUI/QuadRevolution_QTD.ui b/src/HEXABLOCKGUI/QuadRevolution_QTD.ui index 86011b0..6b661e8 100644 --- a/src/HEXABLOCKGUI/QuadRevolution_QTD.ui +++ b/src/HEXABLOCKGUI/QuadRevolution_QTD.ui @@ -7,7 +7,7 @@ 0 0 389 - 443 + 584 @@ -53,162 +53,75 @@ 0 0 - 351 - 490 + 369 + 518 - - - - 5 - 0 - + + + Quad(s): - - + + + + + + + 0 + 0 + - - - - - Quad(s) + + + + + + + QFormLayout::AllNonFixedFieldsGrow + + + + + center - - - - - - 0 - 0 - - - - - - - - - - - - center - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Select a vertex - - - - false - - - - - - - axis - - - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Select a vector + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + Select a vertex - - - false - - - - - center_le - label_5 - axis_le - label_4 + + + false + - - - - - - - angle - - - - - - - 6 - - - 360.000000000000000 - - - 10.000000000000000 - - - 360.000000000000000 - - - - - - - Nb layers - - - - - - - 1000000 - - - 1 - - - - + + + + axis + - - + + - + 0 0 @@ -219,79 +132,139 @@ 16777215 - - 0 + + Select a vector + + + + false - - - angle - - - - - - true - - - - 0 - 0 - - - - + - - - - - - - - 0 - 0 - - - - - - - - - - - - Qt::Vertical - - - - 20 - 139 - - - - - - - - - - - - - Qt::Vertical + + center_le + label_5 + axis_le + label_4 + + + + + + + + + angle - - - 20 - 40 - + + + + + + 6 + + + 360.000000000000000 - + + 10.000000000000000 + + + 360.000000000000000 + + + + + + + Nb layers + + + + + + + 1000000 + + + 1 + + + + + + + 0 + 0 + + + + + 16777215 + 16777215 + + + + 0 + + + + angle + + + + + + true + + + + 0 + 0 + + + + + + + + + + + + + 0 + 0 + + + + - + + + + + + + Qt::Vertical + + + + 20 + 139 + + + + + + + + + + + diff --git a/src/HEXABLOCKGUI/ReplaceHexa_QTD.ui b/src/HEXABLOCKGUI/ReplaceHexa_QTD.ui index 969f574..a1908f0 100644 --- a/src/HEXABLOCKGUI/ReplaceHexa_QTD.ui +++ b/src/HEXABLOCKGUI/ReplaceHexa_QTD.ui @@ -36,174 +36,54 @@ - + 0 0 - - - 0 - 0 - - - + Quad(s) source - + - + 0 0 - - Quad(s) source + + + 16777215 + 16777215 + + + + Select hexa - - - - - - 0 - 0 - - - - - 16777215 - 16777215 - - - - Select hexa - - - - - - - - 0 - 0 - - - - QFrame::StyledPanel - - - QFrame::Raised - - - - - - Point a - - - - - - - - 0 - 0 - - - - Select vertex - - - - - - false - - - - - - - Point b - - - - - - - - 0 - 0 - - - - Select vertex - - - - - - false - - - - - - - Point c - - - - - - - - 0 - 0 - - - - Select vertex - - - - - - false - - - - - - - - + 0 0 - - Quad destination - - + - + Point a - + 0 @@ -222,14 +102,14 @@ - + Point b - + 0 @@ -248,14 +128,14 @@ - + Point c - + 0 @@ -279,6 +159,99 @@ + + + + + 0 + 0 + + + + Quad destination + + + + + + Point a + + + + + + + + 0 + 0 + + + + Select vertex + + + + + + false + + + + + + + Point b + + + + + + + + 0 + 0 + + + + Select vertex + + + + + + false + + + + + + + Point c + + + + + + + + 0 + 0 + + + + Select vertex + + + + + + false + + + + + + diff --git a/src/HEXABLOCKGUI/resources/HEXABLOCK_msg_en.ts b/src/HEXABLOCKGUI/resources/HEXABLOCK_msg_en.ts index e06e2d6..1a5a121 100755 --- a/src/HEXABLOCKGUI/resources/HEXABLOCK_msg_en.ts +++ b/src/HEXABLOCKGUI/resources/HEXABLOCK_msg_en.ts @@ -655,7 +655,7 @@ Please select a %2. CANNOT PRISM QUAD(S) - Cannot prism quadrangle(s) + Cannot extrude quadrangle(s) @@ -1003,7 +1003,7 @@ Please select a %2. Prism quadrangles - + Extrude quadrangles ICON_PRISM_QUAD @@ -1011,7 +1011,7 @@ Please select a %2. Prism Quadrangles - + Extrude Quadrangles Join quadrangles diff --git a/src/HEXABLOCK_SWIG/hexablock_swig.py b/src/HEXABLOCK_SWIG/hexablock_swig.py index 9c4fb41..cb4015d 100644 --- a/src/HEXABLOCK_SWIG/hexablock_swig.py +++ b/src/HEXABLOCK_SWIG/hexablock_swig.py @@ -682,6 +682,8 @@ class Quad(EltBase): def addAssociation(*args): return _hexablock_swig.Quad_addAssociation(*args) def clearAssociation(*args): return _hexablock_swig.Quad_clearAssociation(*args) def setColor(*args): return _hexablock_swig.Quad_setColor(*args) + def nearestVertex(*args): return _hexablock_swig.Quad_nearestVertex(*args) + def getCenter(*args): return _hexablock_swig.Quad_getCenter(*args) def __init__(self, *args): this = _hexablock_swig.new_Quad(*args) try: self.this.append(this) diff --git a/src/HEXABLOCK_SWIG/hexablock_swig_wrap.cc b/src/HEXABLOCK_SWIG/hexablock_swig_wrap.cc index 33530a3..e09a7cd 100644 --- a/src/HEXABLOCK_SWIG/hexablock_swig_wrap.cc +++ b/src/HEXABLOCK_SWIG/hexablock_swig_wrap.cc @@ -20069,6 +20069,68 @@ fail: } +SWIGINTERN PyObject *_wrap_Quad_nearestVertex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + Hex::Quad *arg1 = (Hex::Quad *) 0 ; + Hex::Vertex *arg2 = (Hex::Vertex *) 0 ; + Hex::Vertex *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + void *argp2 = 0 ; + int res2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:Quad_nearestVertex",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Quad, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Quad_nearestVertex" "', argument " "1"" of type '" "Hex::Quad *""'"); + } + arg1 = reinterpret_cast< Hex::Quad * >(argp1); + res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_Hex__Vertex, 0 | 0 ); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Quad_nearestVertex" "', argument " "2"" of type '" "Hex::Vertex *""'"); + } + arg2 = reinterpret_cast< Hex::Vertex * >(argp2); + result = (Hex::Vertex *)(arg1)->nearestVertex(arg2); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_Hex__Vertex, 0 | 0 ); + return resultobj; +fail: + return NULL; +} + + +SWIGINTERN PyObject *_wrap_Quad_getCenter(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { + PyObject *resultobj = 0; + Hex::Quad *arg1 = (Hex::Quad *) 0 ; + double *arg2 = (double *) 0 ; + double *result = 0 ; + void *argp1 = 0 ; + int res1 = 0 ; + void *argp2 = 0 ; + int res2 = 0 ; + PyObject * obj0 = 0 ; + PyObject * obj1 = 0 ; + + if (!PyArg_ParseTuple(args,(char *)"OO:Quad_getCenter",&obj0,&obj1)) SWIG_fail; + res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_Hex__Quad, 0 | 0 ); + if (!SWIG_IsOK(res1)) { + SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "Quad_getCenter" "', argument " "1"" of type '" "Hex::Quad *""'"); + } + arg1 = reinterpret_cast< Hex::Quad * >(argp1); + res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_double, 0 | 0 ); + if (!SWIG_IsOK(res2)) { + SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "Quad_getCenter" "', argument " "2"" of type '" "double *""'"); + } + arg2 = reinterpret_cast< double * >(argp2); + result = (double *)(arg1)->getCenter(arg2); + resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0 ); + return resultobj; +fail: + return NULL; +} + + SWIGINTERN PyObject *_wrap_new_Quad(PyObject *SWIGUNUSEDPARM(self), PyObject *args) { PyObject *resultobj = 0; Hex::Vertex *arg1 = (Hex::Vertex *) 0 ; @@ -32653,6 +32715,8 @@ static PyMethodDef SwigMethods[] = { { (char *)"Quad_addAssociation", _wrap_Quad_addAssociation, METH_VARARGS, NULL}, { (char *)"Quad_clearAssociation", _wrap_Quad_clearAssociation, METH_VARARGS, NULL}, { (char *)"Quad_setColor", _wrap_Quad_setColor, METH_VARARGS, NULL}, + { (char *)"Quad_nearestVertex", _wrap_Quad_nearestVertex, METH_VARARGS, NULL}, + { (char *)"Quad_getCenter", _wrap_Quad_getCenter, METH_VARARGS, NULL}, { (char *)"new_Quad", _wrap_new_Quad, METH_VARARGS, NULL}, { (char *)"delete_Quad", _wrap_delete_Quad, METH_VARARGS, NULL}, { (char *)"Quad_swigregister", Quad_swigregister, METH_VARARGS, NULL}, diff --git a/src/TEST_PY/recettes/troisCylindres.py b/src/TEST_PY/recettes/troisCylindres.py index 50a767c..9a6ee9a 100644 --- a/src/TEST_PY/recettes/troisCylindres.py +++ b/src/TEST_PY/recettes/troisCylindres.py @@ -24,14 +24,14 @@ import geompy import hexablock -# Charger la géométrie +# Charger la geometrie # ==================== nom = "troisCylindres" piece = geompy.ImportBREP(nom+".brep") -# Sélectionner des sous-parties de la géométrie +# Selectionner des sous-parties de la geometrie # --------------------------------------------- sommets = geompy.SubShapeAllSortedCentres(piece, geompy.ShapeType["VERTEX"]) @@ -49,12 +49,12 @@ moyen0, moyen_x , moyen_y , moyen_z , moyen1, moyen2, moyen3, moyen_rayon = ge petit0, petit_xb, petit_yb, petit_zb, petit1, petit2, petit3, petit_rayon = geompy.KindOfShape(aretes[12]) petit4, petit_xh, petit_yh, petit_zh, petit5, petit6, petit7, petit8 = geompy.KindOfShape(aretes[13]) -# Construire le modèle de bloc +# Construire le modele de bloc # ============================ doc = hexablock.addDocument(nom) -doc.setShape(piece) +### doc.addShape(piece,nom) # Construire le grand cylindre # ---------------------------- @@ -66,9 +66,9 @@ grand_dir = doc.addVectorVertices(grand_base, grand_oppo) grand_hauteur = grand_dir.getNorm() -grand_cylindre = doc.addCylinder(grand_base, grand_dir, grand_rayon, grand_hauteur) +### grand_cylindre = doc.addCylinder(grand_base, grand_dir, grand_rayon, grand_hauteur) -# Construire le moyen cylindre coté grand +# Construire le moyen cylindre cote grand # --------------------------------------- moy_g_r1 = 0.8 @@ -85,9 +85,9 @@ moy_g_dir = doc.addVectorVertices(moy_g_base, moy_g_oppo) moy_g_hauteur = moy_g_dir.getNorm() -moy_g_cylindre = doc.addCylinder(moy_g_base, moy_g_dir, moyen_rayon, moy_g_hauteur) +### moy_g_cylindre = doc.addCylinder(moy_g_base, moy_g_dir, moyen_rayon, moy_g_hauteur) -# Construire le moyen cylindre coté petit +# Construire le moyen cylindre cote petit # --------------------------------------- moy_p_r = 0.18 @@ -98,9 +98,9 @@ moy_p_oppo = doc.addVertex( moy_p_x+(moy_g_x-moy_p_x) * moy_p_r, moy_p_y+(moy_g_ moy_p_dir = doc.addVectorVertices(moy_b_base, moy_p_oppo) -moy_p_hauteur = moy_p_dir.getNorm() +moy_p_hauteur = moy_p_dir.getNorm()*1.2 -moy_p_cylindre = doc.addCylinder(moy_p_base, moy_p_dir, moyen_rayon, moy_p_hauteur) +### moy_p_cylindre = doc.addCylinder(moy_p_base, moy_p_dir, moyen_rayon, moy_p_hauteur) # Construire le petit cylindre # ---------------------------- @@ -108,100 +108,73 @@ moy_p_cylindre = doc.addCylinder(moy_p_base, moy_p_dir, moyen_rayon, moy_p_haute petit_base = doc.addVertex(petit_xb, petit_yb, petit_zb) petit_oppo = doc.addVertex(petit_xh, petit_yh, petit_zh) -petit_dir = doc.addVectorVertices(petit_base, petit_oppo) +petit_dir = doc.addVectorVertices(petit_base, petit_oppo) petit_hauteur = petit_dir.getNorm() -petit_cylindre = doc.addCylinder(petit_base, petit_dir, petit_rayon, petit_hauteur) +### petit_cylindre = doc.addCylinder(petit_base, petit_dir, petit_rayon, petit_hauteur) # Construire le T et la X # ----------------------- -en_te = doc.makeCylinders(grand_cylindre, moy_g_cylindre) -croix = doc.makeCylinders(moy_p_cylindre, petit_cylindre) +en_te = doc.makeCylinders (grand_base, grand_dir, grand_rayon, grand_hauteur, + moy_g_base, moy_g_dir, moyen_rayon, moy_g_hauteur) -# Relier le T et la X -# ------------------- - -croix_quads = [] - -for i in xrange(1, -1, -1): - for j in xrange( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ): - quad = croix.getQuadIJ(hexablock.CYL_BIG, i, j, hexablock.CYL_BIG_SLICES) - croix_quads.append(quad) - -en_te_q = en_te.getQuadIJ(hexablock.CYL_SMALL, 1, hexablock.V_N, 0) +hexablock.what () -en_te_v0 = en_te.getVertexIJK(hexablock.CYL_SMALL, 2, hexablock.V_N , 0) -en_te_v1 = en_te.getVertexIJK(hexablock.CYL_SMALL, 2, hexablock.V_NW, 0) +croix = doc.makeCylinders (moy_p_base, moy_p_dir, moyen_rayon, moy_p_hauteur, + petit_base, petit_dir, petit_rayon, petit_hauteur) -croix_v0 = croix.getVertexIJK(hexablock.CYL_BIG, 2, hexablock.V_E , hexablock.CYL_BIG_SLICES) -croix_v1 = croix.getVertexIJK(hexablock.CYL_BIG, 2, hexablock.V_NE, hexablock.CYL_BIG_SLICES) - -prisme = doc.joinQuads(croix_quads, en_te_q, croix_v0, en_te_v0, croix_v1, en_te_v1, 1) - -# Associer -# ======== +hexablock.what () -# fkl: comme pour la tuyauterie: associer pour le prisme (sauf si item 142 et 146 de Taches.ods) - -# Mailler le modèle de bloc -# ========================= +# Relier le T et la X +# ------------------- -# Définir 5 groupes de faces -# -------------------------- +CYL_SMALL = 0 +CYL_BIG = 1 +CYL_KMAX = 3 +CYL_JMAX = 4 -groupe_grand_a = doc.addQuadGroup("Grand_A") -groupe_grand_b = doc.addQuadGroup("Grand_B") -groupe_moyen_f = doc.addQuadGroup("Moyen") -groupe_petit_a = doc.addQuadGroup("Petit_A") -groupe_petit_b = doc.addQuadGroup("Petit_B") -for i in xrange(2): - for j in xrange( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ): - quad = en_te.getQuadIJ(hexablock.CYL_BIG , i, j, 0) - groupe_grand_a.addElement(quad) +qstart = croix.getQuadIJ (CYL_BIG, 0,0,CYL_KMAX) +## qstart.setColor(5) +croix_quads = [qstart] - quad = en_te.getQuadIJ(hexablock.CYL_BIG , i, j, hexablock.CYL_BIG_SLICES) - groupe_grand_b.addElement(quad) +for nj in range (CYL_JMAX) : + quad = croix.getQuadIJ (CYL_BIG, 1,nj, CYL_KMAX) + quad.setColor(5) + croix_quads.append (quad) - quad = croix.getQuadIJ(hexablock.CYL_BIG , i, j, 0) - groupe_moyen_f.addElement(quad) +qdest = en_te.getQuadIJ (CYL_SMALL, 0,0,0) +qdest.setColor(5) - quad = croix.getQuadIJ(hexablock.CYL_SMALL, i, j, 0) - groupe_petit_a.addElement(quad) +va1 = qstart.getVertex (0) +va2 = qstart.getVertex (1) - quad = croix.getQuadIJ(hexablock.CYL_SMALL, i, j, hexablock.CYL_SMALL_SLICES) - groupe_petit_b.addElement(quad) +vb1 = qdest.nearestVertex (va1) +vb2 = qdest.nearestVertex (va2) -# Définir 3 groupes de volumes -# ---------------------------- +prisme = doc.joinQuadsUni (croix_quads, qdest, va1,vb1,va2,vb2, 1) -groupe_grand = doc.addHexaGroup("Grand") -groupe_moyen = doc.addHexaGroup("Moyen") -groupe_petit = doc.addHexaGroup("Petit") +# Associer +# ======== -for i in xrange( doc.countUsedHexa() ): - h = doc.getUsedHexa(i) - groupe_moyen.addElement(h) -for i in xrange(2): - for j in xrange( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ): - for k in [ 0, hexablock.CYL_BIG_SLICES-1 ]: - h = en_te.getHexaIJK(hexablock.CYL_BIG, i, j, k) - groupe_grand.addElement(h) - groupe_moyen.removeElement(h) +# Mailler le modele de bloc avec association +# ------------------------------------------ - for k in [0, hexablock.CYL_SMALL_SLICES-1 ]: - h = croix.getHexaIJK(hexablock.CYL_SMALL, i, j, k) - groupe_petit.addElement(h) - groupe_moyen.removeElement(h) +doc.addLaws(10, True) -# Mailler le modèle de bloc avec association -# ------------------------------------------ +law = doc.addLaw("Uniform", 4) +for j in range(doc.countPropagation()): + propa = doc.getPropagation(j) + propa.setLaw(law) -hexablock.addLaws(doc, 10, True) +doc.save("troisCylindres") +doc.setName("troisCylindres") +doc.saveVtk("troisCylindres1.vtk") +hexablock.addToStudy(doc) -blocs = hexablock.mesh(doc) +blocs = hexablock.mesh(doc, dim=3) muv, mue, muq, muh = hexablock.dump(doc, blocs) diff --git a/src/TEST_PY/recettes/tuyauterie.py b/src/TEST_PY/recettes/tuyauterie.py index d7d0512..c90aec2 100644 --- a/src/TEST_PY/recettes/tuyauterie.py +++ b/src/TEST_PY/recettes/tuyauterie.py @@ -88,8 +88,8 @@ grand_dir_b = doc.addVectorVertices(grand_oppo, grand_base) grand_hauteur_a = grand_dir_a.getNorm()*0.20 grand_hauteur_b = grand_dir_b.getNorm()*0.60 -grand_cylindre_a = doc.addCylinder(grand_base, grand_dir_a, grand_rayon, grand_hauteur_a) -grand_cylindre_b = doc.addCylinder(grand_oppo, grand_dir_b, grand_rayon, grand_hauteur_b) +#### grand_cylindre_a = doc.addCylinder(grand_base, grand_dir_a, grand_rayon, grand_hauteur_a) +#### grand_cylindre_b = doc.addCylinder(grand_oppo, grand_dir_b, grand_rayon, grand_hauteur_b) # Construire le moyen cylindre # ---------------------------- @@ -103,7 +103,6 @@ moyen_dir = doc.addVectorVertices(moyen_arri, moyen_avan) moyen_hauteur = geompy.MinDistance(moyen_arri_v, grand_generat) - grand_rayon -moyen_cylindre = doc.addCylinder(moyen_base, moyen_dir, moyen_rayon, moyen_hauteur) # Construire le petit cylindre # ---------------------------- @@ -117,54 +116,75 @@ petit_dir = doc.addVectorVertices(petit_arri, petit_avan) petit_hauteur = geompy.MinDistance(petit_arri_v, grand_generat) -petit_cylindre = doc.addCylinder(petit_base, petit_dir, petit_rayon, petit_hauteur) # Construire les 2 cylindres qui s'intersectent # --------------------------------------------- -cylindres_gm = doc.makeCylinders(grand_cylindre_a, moyen_cylindre) -cylindres_gp = doc.makeCylinders(grand_cylindre_b, petit_cylindre) +moyen_rayon = moyen_rayon*0.7 +cylindres_gm = doc.makeCylinders (grand_base, grand_dir_a, grand_rayon, grand_hauteur_a, + moyen_base, moyen_dir, moyen_rayon, moyen_hauteur) +cylindres_gp = doc.makeCylinders (grand_oppo, grand_dir_b, grand_rayon, grand_hauteur_b, + petit_base, petit_dir, petit_rayon, petit_hauteur) + +doc.saveVtk ("tuyauterie0.vtk") + +print "grand_rayon = ", grand_rayon +print "moyen_rayon = ", moyen_rayon +print "petit_rayon = ", petit_rayon + # Joindre les 2 croix # ------------------- -gm_quads = [] +CYL_BIG = 1 +CYL_KMAX = 3 +CYL_JMAX = 4 -for i in xrange(1, -1, -1): - for j in xrange( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ): - quad = cylindres_gm.getQuadIJ(hexablock.CYL_BIG, i, j, hexablock.CYL_BIG_SLICES) - gm_quads.append(quad) +qstart = cylindres_gm.getQuadIJ (CYL_BIG, 0,0,CYL_KMAX) + +qdest = cylindres_gp.getQuadIJ (CYL_BIG, 0,0,CYL_KMAX) + +va1 = qstart.getVertex (0) +va2 = qstart.getVertex (1) +vb1 = qdest .nearestVertex (va1) +vb2 = qdest .nearestVertex (va2) -gp_q = cylindres_gp.getQuadIJ(hexablock.CYL_BIG, 1, hexablock.V_SW, hexablock.CYL_BIG_SLICES) +gm_quads = [qstart] -gp_v0 = cylindres_gp.getVertexIJK(hexablock.CYL_BIG, 2, hexablock.V_S , hexablock.CYL_BIG_SLICES) -gp_v1 = cylindres_gp.getVertexIJK(hexablock.CYL_BIG, 2, hexablock.V_SW, hexablock.CYL_BIG_SLICES) +for nj in range (CYL_JMAX) : + quad = cylindres_gm.getQuadIJ (CYL_BIG, 1,nj, CYL_KMAX) + gm_quads.append (quad) -gm_v0 = cylindres_gm.getVertexIJK(hexablock.CYL_BIG, 2, hexablock.V_E , hexablock.CYL_BIG_SLICES) -gm_v1 = cylindres_gm.getVertexIJK(hexablock.CYL_BIG, 2, hexablock.V_NE, hexablock.CYL_BIG_SLICES) +prisme = doc.joinQuadsUni (gm_quads, qdest, va1,vb1,va2,vb2, 1) -prisme = doc.joinQuads(gm_quads, gp_q, gm_v0, gp_v0, gm_v1, gp_v1, 1) # Ajouter le coude au grand cylindre # ---------------------------------- -coude_quads = [] +coude_quads = [ cylindres_gp.getQuadIJ(CYL_BIG, 0, 0, 0) ] -for i in xrange(1, -1, -1): - for j in xrange( [hexablock.CV_MAXI_INT, hexablock.CV_MAXI_EXT][i] ): - quad = cylindres_gp.getQuadIJ(hexablock.CYL_BIG, i, j, 0) +for nj in range (CYL_JMAX) : + quad = cylindres_gp.getQuadIJ(CYL_BIG, 1, nj, 0) coude_quads.append(quad) coude_centre = doc.addVertex(arc_x , arc_y , arc_z ) coude_dir = doc.addVector(arc_dx, arc_dy, arc_dz) coude_angle = geompy.GetAngle(arc_a1, arc_a2) -coude = doc.revolutionQuads(coude_quads, coude_centre, coude_dir, [coude_angle]) +coude = doc.revolutionQuads (coude_quads, coude_centre, coude_dir, [coude_angle]) +##coude = doc.revolutionQuadsUni (coude_quads, coude_centre, coude_dir, coude_angle, 8) + +doc.saveVtk ("tuyauterie1.vtk") +doc.addLaws (0.02, True) +blocs = hexablock.mesh(doc) +muv, mue, muq, muh = hexablock.dump(doc, blocs) + +arret_procedure () # Associer la géométrie au modèle de bloc # ======================================= -doc.setShape(geometrie) +doc.addShape(geometrie, nom) # Associer les arêtes du modèle issues du joinQuads # ------------------------------------------------- diff --git a/src/TEST_PY/test_unit/bielle.brep b/src/TEST_PY/test_unit/bielle.brep deleted file mode 100644 index c0f086e..0000000 --- a/src/TEST_PY/test_unit/bielle.brep +++ /dev/null @@ -1,639 +0,0 @@ - -CASCADE Topology V1, (c) Matra-Datavision -Locations 0 -Curve2ds 32 -7 0 0 1 2 2 4.788278205588 0 5.2098401385170003 0 - 4.788278205588 2 5.2098401385170003 2 -7 0 0 1 2 2 4.2149378222529998 0 8.3514327921059994 0 - 4.2149378222529998 2 8.3514327921059994 2 -7 0 0 1 2 2 1.073345168663 0 1.5013870935939999 0 - 1.073345168663 2 1.5013870935939999 2 -7 0 0 1 2 2 1.5013870935939999 0 2.1966580997439999 0 - 1.5013870935939999 2 2.1966580997439999 2 -7 0 0 1 2 2 0.944934553846 0 5.3382507533329999 0 - 0.944934553846 2 5.3382507533329999 2 -7 0 0 1 2 2 4.0865272074360002 0 4.9161778732129999 0 - 4.0865272074360002 2 4.9161778732129999 2 -7 0 0 1 2 2 6.2831853071800001 0.020000199552965 0 0.020000199552965 - 1.570796326795 2 7.8539816339739996 2 -7 0 0 1 2 2 6.2831853071800001 0.020000199552965 0 0.020000199552965 - 1.570796326795 2 7.8539816339739996 2 -7 0 0 1 2 2 4.788278205588 0 4.788278205588 0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 4.788278205588 0.039999999105930002 5.2098401385170003 0.039999999105930002 - 4.788278205588 2 5.2098401385170003 2 -7 0 0 1 2 2 5.2098401385170003 0 5.2098401385170003 0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 4.2149378222529998 0 4.2149378222529998 -0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 4.2149378222529998 -0.039999999105930002 8.3514327921059994 -0.039999999105930002 - 4.2149378222529998 2 8.3514327921059994 2 -7 0 0 1 2 2 8.3514327921059994 0 8.3514327921059994 -0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 1.073345168663 0 1.073345168663 0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 1.073345168663 0.039999999105930002 1.5013870935939999 0.039999999105930002 - 1.073345168663 2 1.5013870935939999 2 -7 0 0 1 2 2 1.5013870935939999 0 1.5013870935939999 0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 1.5013870935939999 0 1.5013870935939999 0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 1.5013870935939999 0.039999999105930002 2.1966580997439999 0.039999999105930002 - 1.5013870935939999 2 2.1966580997439999 2 -7 0 0 1 2 2 2.1966580997439999 0 2.1966580997439999 0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 0.944934553846 0 0.944934553846 -0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 0.944934553846 -0.039999999105930002 5.3382507533329999 -0.039999999105930002 - 0.944934553846 2 5.3382507533329999 2 -7 0 0 1 2 2 5.3382507533329999 0 5.3382507533329999 -0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 4.0865272074360002 0 4.0865272074360002 0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 4.0865272074360002 0.039999999105930002 4.9161778732129999 0.039999999105930002 - 4.0865272074360002 2 4.9161778732129999 2 -7 0 0 1 2 2 4.9161778732129999 0 4.9161778732129999 0.039999999105930002 - 0 2 0.039999999105924999 2 -7 0 0 1 2 2 6.2831853071800001 0.020000199552965 6.2831853071800001 0.060000198658895006 - 0.020000199552970003 2 0.060000198658894999 2 -7 0 0 1 2 2 0 0.020000199552965 0 0.060000198658895006 - 0.020000199552970003 2 0.060000198658894999 2 -7 0 0 1 2 2 6.2831853071800001 0.060000198658895006 0 0.060000198658895006 - 1.570796326795 2 7.8539816339739996 2 -7 0 0 1 2 2 6.2831853071800001 0.020000199552965 6.2831853071800001 0.060000198658895006 - 0.020000199552970003 2 0.060000198658894999 2 -7 0 0 1 2 2 0 0.020000199552965 0 0.060000198658895006 - 0.020000199552970003 2 0.060000198658894999 2 -7 0 0 1 2 2 6.2831853071800001 0.060000198658895006 0 0.060000198658895006 - 1.570796326795 2 7.8539816339739996 2 -Curves 30 -2 0.057963432099881002 0.10218666633037 -0.019999999552959998 0 0 1 1 0 -0 -0 1 0 0.074466478447737003 -2 0.11481915663942001 -0.00252048112452 -0.019999999552959998 0 0 -1 1 0 0 0 -1 0 0.044681161650829998 -2 0.053295957524102003 -0.1158233848133 -0.019999999552959998 0 0 1 1 0 -0 -0 1 0 0.084247702509660002 -1 0.059138831836925004 -0.031778538463840003 -0.019999999552959998 -0.99759214608755542 0.069353515155509096 0 -2 -0.074126212430210003 -0.0471383620928 -0.019999999552959998 0 0 1 1 0 -0 -0 1 0 0.024565238684828 -2 -0.1059604867346 -0.0030951034277679999 -0.019999999552959998 0 0 -1 1 0 0 0 -1 0 0.029778387016109003 -2 -0.07655497863763 0.037587915977931999 -0.019999999552959998 0 0 1 1 0 -0 -0 1 0 0.02041914254867 -1 -0.072422526776789994 0.017591310665011 -0.019999999552959998 0.99712179448755867 0.075816402960776436 0 -2 -0.10647201538080001 -0.0028093000873920001 -0.019999999552959998 0 0 -1 0 1 0 1 -0 0 0.015057678156153002 -2 0.11857245862484 -0.0046067601069809993 -0.019999999552959998 0 0 -1 0 1 0 1 -0 0 0.023404166834120003 -1 0.063609212636948007 0.027934517711401 -0.019999999552959998 0 0 1 -2 0.057963432099881002 0.10218666633037 0.019999999552965001 0 0 1 1 0 -0 -0 1 0 0.074466478447737003 -1 0.093497879803181 0.036745399236679001 -0.019999999552959998 0 0 1 -2 0.11481915663942001 -0.00252048112452 0.019999999552965001 0 0 -1 1 0 0 0 -1 0 0.044681161650829998 -1 0.093497879803181 -0.04178636148572 -0.019999999552959998 0 0 1 -2 0.053295957524102003 -0.1158233848133 0.019999999552965001 0 0 1 1 0 -0 -0 1 0 0.084247702509660002 -1 0.059138831836925004 -0.031778538463840003 -0.019999999552959998 0 0 1 -1 0.059138831836925004 -0.031778538463840003 0.019999999552965001 -0.99759214608755542 0.069353515155509096 0 -1 -0.072422526776789994 -0.022632272914050001 -0.019999999552959998 0 0 1 -2 -0.074126212430210003 -0.0471383620928 0.019999999552965001 0 0 1 1 0 -0 -0 1 0 0.024565238684828 -1 -0.088516429066650013 -0.027229253202670001 -0.019999999552959998 0 0 1 -2 -0.1059604867346 -0.0030951034277679999 0.019999999552965001 0 0 -1 1 0 0 0 -1 0 0.029778387016109003 -1 -0.088516429066650013 0.021039046347140999 -0.019999999552959998 0 0 1 -2 -0.07655497863763 0.037587915977931999 0.019999999552965001 0 0 1 1 0 -0 -0 1 0 0.02041914254867 -1 -0.072422526776789994 0.017591310665011 -0.019999999552959998 0 0 1 -1 -0.072422526776789994 0.017591310665011 0.019999999552965001 0.99712179448755867 0.075816402960776436 0 -1 -0.091414337224700007 -0.0028093000873920001 -0.040000199105930001 0 0 1 -2 -0.10647201538080001 -0.0028093000873920001 0.019999999552965001 0 0 -1 0 1 0 1 -0 0 0.015057678156153002 -1 0.14197662545896 -0.0046067601069809993 -0.040000199105930001 0 0 1 -2 0.11857245862484 -0.0046067601069809993 0.019999999552965001 0 0 -1 0 1 0 1 -0 0 0.023404166834120003 -Polygon3D 0 -PolygonOnTriangulations 0 -Surfaces 12 -1 0 0 -0.019999999552959998 0 0 1 1 0 -0 -0 1 0 -2 0.057963432099881002 0.10218666633037 -0.019999999552959998 0 0 1 1 0 -0 -0 1 0 0.074466478447737003 -2 0.11481915663942001 -0.00252048112452 -0.019999999552959998 0 0 -1 1 0 0 0 -1 0 0.044681161650829998 -2 0.053295957524102003 -0.1158233848133 -0.019999999552959998 0 0 1 1 0 -0 -0 1 0 0.084247702509660002 -2 -0.074126212430210003 -0.0471383620928 -0.019999999552959998 0 0 1 1 0 -0 -0 1 0 0.024565238684828 -2 -0.1059604867346 -0.0030951034277679999 -0.019999999552959998 0 0 -1 1 0 0 0 -1 0 0.029778387016109003 -2 -0.07655497863763 0.037587915977931999 -0.019999999552959998 0 0 1 1 0 -0 -0 1 0 0.02041914254867 -2 -0.10647201538080001 -0.0028093000873920001 -0.040000199105930001 0 0 1 1 0 -0 -0 1 0 0.015057678156153002 -2 0.11857245862484 -0.0046067601069809993 -0.040000199105930001 0 0 1 1 0 -0 -0 1 0 0.023404166834120003 -1 -0.072422526776789994 0.017591310665011 -0.019999999552959998 -0.075816402960776449 0.99712179448755867 0 0.99712179448755867 0.075816402960776449 0 0 0 -1 -1 0.059138831836925004 -0.031778538463840003 -0.019999999552959998 -0.069353515155509096 -0.99759214608755542 0 -0.99759214608755542 0.069353515155509096 0 -0 0 -1 -1 0 0 0.019999999552965001 0 0 1 1 0 -0 -0 1 0 -Triangulations 0 - -TShapes 80 -Ve -1.0001000025e-07 -0.063609212636948 0.027934517711401 -0.01999999955296 -0 0 - -0101101 -* -Ve -1.00005e-07 -0.093497879803181 0.036745399236679 -0.01999999955296 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 1 0 4.78827820558768 5.20984013851675 -2 1 2 0 4.78827820558768 5.20984013851675 -0 - -0101000 -+80 0 -79 0 * -Ve -1.00005e-07 -0.093497879803181 -0.04178636148572 -0.01999999955296 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 2 0 4.21493782225269 8.35143279210647 -2 2 3 0 4.21493782225269 8.35143279210647 -0 - -0101000 -+79 0 -77 0 * -Ve -1.0001000025e-07 -0.059138831836925 -0.03177853846384 -0.01999999955296 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 3 0 1.07334516866233 1.50138709359361 -2 3 4 0 1.07334516866233 1.50138709359361 -0 - -0101000 -+77 0 -75 0 * -Ve -1.0001000025e-07 --0.07242252677679 -0.02263227291405 -0.01999999955296 -0 0 - -0101101 -* -Ed - 1.0001000025e-07 1 1 0 -1 4 0 0 0.131878903748074 -0 - -0101000 -+75 0 -73 0 * -Ve -1.00005e-07 --0.08851642906665 -0.02722925320267 -0.01999999955296 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 5 0 1.501387093594 2.19665809974347 -2 4 5 0 1.501387093594 2.19665809974347 -0 - -0101000 -+73 0 -71 0 * -Ve -1.00005e-07 --0.08851642906665 0.021039046347141 -0.01999999955296 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 6 0 0.944934553846607 5.33825075333284 -2 5 6 0 0.944934553846607 5.33825075333284 -0 - -0101000 -+71 0 -69 0 * -Ve -1.0001000025e-07 --0.07242252677679 0.017591310665011 -0.01999999955296 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 7 0 4.08652720743619 4.91617787321301 -2 6 7 0 4.08652720743619 4.91617787321301 -0 - -0101000 -+69 0 -67 0 * -Ed - 1.0001000025e-07 1 1 0 -1 8 0 0 0.136424396864826 -0 - -0101000 -+67 0 -80 0 * -Wi - -0101000 -+78 0 +76 0 +74 0 +72 0 +70 0 +68 0 +66 0 +65 0 * -Ve -1.00005e-07 --0.0914143372247 -0.002809300087392 -0.01999999955296 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 9 0 1.5707963267949 7.85398163397448 -2 7 8 0 1.5707963267949 7.85398163397448 -0 - -0101100 -+63 0 -63 0 * -Wi - -0101000 -+62 0 * -Ve -1.00005e-07 -0.14197662545896 -0.004606760106981 -0.01999999955296 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 10 0 1.5707963267949 7.85398163397448 -2 8 9 0 1.5707963267949 7.85398163397448 -0 - -0101100 -+60 0 -60 0 * -Wi - -0101000 -+59 0 * -Fa -0 1e-07 1 0 - -0111000 --64 0 +61 0 +58 0 * -Ve -1.0001000025e-07 -0.063609212636948 0.027934517711401 0.019999999552965 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 11 0 0 0.039999999105925 -2 9 2 0 0 0.039999999105925 -4 G1 2 0 10 0 -0 - -0101000 -+80 0 -56 0 * -Ve -1.00005e-07 -0.093497879803181 0.036745399236679 0.019999999552965 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 12 0 4.78827820558768 5.20984013851675 -2 10 2 0 4.78827820558768 5.20984013851675 -0 - -0101000 -+56 0 -54 0 * -Ed - 1e-07 1 1 0 -1 13 0 0 0.039999999105925 -2 11 2 0 0 0.039999999105925 -2 12 3 0 0 0.039999999105925 -4 G1 2 0 3 0 -0 - -0101000 -+79 0 -54 0 * -Wi - -0101000 -+55 0 +53 0 -52 0 -78 0 * -Fa -0 1e-07 2 0 - -0111000 --51 0 * -Ve -1.00005e-07 -0.093497879803181 -0.04178636148572 0.019999999552965 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 14 0 4.21493782225269 8.35143279210647 -2 13 3 0 4.21493782225269 8.35143279210647 -0 - -0101000 -+54 0 -49 0 * -Ed - 1e-07 1 1 0 -1 15 0 0 0.039999999105925 -2 14 3 0 0 0.039999999105925 -2 15 4 0 0 0.039999999105925 -4 G1 3 0 4 0 -0 - -0101000 -+77 0 -49 0 * -Wi - -0101000 -+52 0 +48 0 -47 0 -76 0 * -Fa -0 1e-07 3 0 - -0111000 -+46 0 * -Ve -1.0001000025e-07 -0.059138831836925 -0.03177853846384 0.019999999552965 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 16 0 1.07334516866233 1.50138709359361 -2 16 4 0 1.07334516866233 1.50138709359361 -0 - -0101000 -+49 0 -44 0 * -Ed - 1.00005e-07 1 1 0 -1 17 0 0 0.039999999105925 -2 17 4 0 0 0.039999999105925 -4 G1 4 0 11 0 -0 - -0101000 -+75 0 -44 0 * -Wi - -0101000 -+47 0 +43 0 -42 0 -74 0 * -Fa -0 1e-07 4 0 - -0111000 --41 0 * -Ve -1.0001000025e-07 --0.07242252677679 -0.02263227291405 0.019999999552965 -0 0 - -0101101 -* -Ed - 1.0001000025e-07 1 1 0 -1 18 0 0 0.131878903748074 -0 - -0101000 -+44 0 -39 0 * -Ed - 1.00005e-07 1 1 0 -1 19 0 0 0.039999999105925 -2 18 5 0 0 0.039999999105925 -4 G1 11 0 5 0 -0 - -0101000 -+73 0 -39 0 * -Wi - -0101000 -+42 0 +38 0 -37 0 -72 0 * -Fa -0 1e-07 11 0 - -0111000 -+36 0 * -Ve -1.00005e-07 --0.08851642906665 -0.02722925320267 0.019999999552965 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 20 0 1.501387093594 2.19665809974347 -2 19 5 0 1.501387093594 2.19665809974347 -0 - -0101000 -+39 0 -34 0 * -Ed - 1e-07 1 1 0 -1 21 0 0 0.039999999105925 -2 20 5 0 0 0.039999999105925 -2 21 6 0 0 0.039999999105925 -4 G1 5 0 6 0 -0 - -0101000 -+71 0 -34 0 * -Wi - -0101000 -+37 0 +33 0 -32 0 -70 0 * -Fa -0 1e-07 5 0 - -0111000 --31 0 * -Ve -1.00005e-07 --0.08851642906665 0.021039046347141 0.019999999552965 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 22 0 0.944934553846607 5.33825075333284 -2 22 6 0 0.944934553846607 5.33825075333284 -0 - -0101000 -+34 0 -29 0 * -Ed - 1e-07 1 1 0 -1 23 0 0 0.039999999105925 -2 23 6 0 0 0.039999999105925 -2 24 7 0 0 0.039999999105925 -4 G1 6 0 7 0 -0 - -0101000 -+69 0 -29 0 * -Wi - -0101000 -+32 0 +28 0 -27 0 -68 0 * -Fa -0 1e-07 6 0 - -0111000 -+26 0 * -Ve -1.0001000025e-07 --0.07242252677679 0.017591310665011 0.019999999552965 -0 0 - -0101101 -* -Ed - 1.00005e-07 1 1 0 -1 24 0 4.08652720743619 4.91617787321301 -2 25 7 0 4.08652720743619 4.91617787321301 -0 - -0101000 -+29 0 -24 0 * -Ed - 1.00005e-07 1 1 0 -1 25 0 0 0.039999999105925 -2 26 7 0 0 0.039999999105925 -0 - -0101000 -+67 0 -24 0 * -Wi - -0101000 -+27 0 +23 0 -22 0 -66 0 * -Fa -0 1e-07 7 0 - -0111000 --21 0 * -Ed - 1.0001000025e-07 1 1 0 -1 26 0 0 0.136424396864826 -0 - -0101000 -+24 0 -56 0 * -Wi - -0101000 -+22 0 +19 0 -55 0 -65 0 * -Fa -0 1e-07 10 0 - -0111000 -+18 0 * -Ve -1.00005e-07 --0.0914143372247 -0.002809300087392 0.019999999552965 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 27 0 0.02000019955297 0.060000198658895 -3 27 28G1 8 0 0.02000019955297 0.060000198658895 -0 - -0101000 -+63 0 -16 0 * -Ed - 1.00005e-07 1 1 0 -1 28 0 1.5707963267949 7.85398163397448 -2 29 8 0 1.5707963267949 7.85398163397448 -0 - -0101100 -+16 0 -16 0 * -Wi - -0101000 -+15 0 -14 0 -15 0 +62 0 * -Fa -0 1e-07 8 0 - -0111000 --13 0 * -Ve -1.00005e-07 -0.14197662545896 -0.004606760106981 0.019999999552965 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 29 0 0.02000019955297 0.060000198658895 -3 30 31G1 9 0 0.02000019955297 0.060000198658895 -0 - -0101000 -+60 0 -11 0 * -Ed - 1.00005e-07 1 1 0 -1 30 0 1.5707963267949 7.85398163397448 -2 32 9 0 1.5707963267949 7.85398163397448 -0 - -0101100 -+11 0 -11 0 * -Wi - -0101000 -+10 0 -9 0 -10 0 +59 0 * -Fa -0 1e-07 9 0 - -0111000 --8 0 * -Wi - -0101000 -+53 0 +48 0 +43 0 +38 0 +33 0 +28 0 +23 0 +19 0 * -Wi - -0101000 -+14 0 * -Wi - -0101000 -+9 0 * -Fa -0 1e-07 12 0 - -0111000 --6 0 +5 0 +4 0 * -Sh - -0101100 --57 0 -50 0 +45 0 -40 0 +35 0 -30 0 +25 0 -20 0 +17 0 -12 0 --7 0 +3 0 * -So - -0100000 -+2 0 * - -+1 0 diff --git a/src/TEST_PY/test_unit/bielle.stp b/src/TEST_PY/test_unit/bielle.stp deleted file mode 100644 index ef67fa5..0000000 --- a/src/TEST_PY/test_unit/bielle.stp +++ /dev/null @@ -1,1178 +0,0 @@ -ISO-10303-21; -HEADER; - FILE_DESCRIPTION(('a Product shape'),'1'); - FILE_NAME('Euclid Shape Model','1998-12-23T10:04:46',('Author Name'),( - 'MATRA-DATAVISION'),'OL-2.0D','EUCLID','Authorisation status'); - FILE_SCHEMA(('AUTOMOTIVE_DESIGN_CC2 { 1 2 10303 214 -1 1 5 4 }')); -ENDSEC; -DATA; -#1 = PRODUCT_TYPE('part',$,(#2)); -#2 = PRODUCT('bielle','bielle','void',(#3)); -#3 = MECHANICAL_CONTEXT('Mechanical',#4,'Assembly'); -#4 = APPLICATION_CONTEXT('EUCLID'); -#5 = APPLICATION_PROTOCOL_DEFINITION('CommitteeDraft', - 'automotive_design',1997,#4); -#6 = SHAPE_DEFINITION_REPRESENTATION(#7,#11); -#7 = PRODUCT_DEFINITION_SHAPE('void','void',#8); -#8 = PRODUCT_DEFINITION('void','void',#9,#10); -#9 = PRODUCT_DEFINITION_FORMATION('ID','void',#2); -#10 = PRODUCT_DEFINITION_CONTEXT('as proposed',#4,'First_Design'); -#11 = ADVANCED_BREP_SHAPE_REPRESENTATION('',(#12),#866); -#12 = MANIFOLD_SOLID_BREP('',#13); -#13 = CLOSED_SHELL('',(#14,#338,#415,#466,#518,#566,#617,#668,#720,#747, - #798,#849)); -#14 = ADVANCED_FACE('',(#15,#270,#304),#30,.F.); -#15 = FACE_BOUND('',#16,.T.); -#16 = EDGE_LOOP('',(#17,#56,#88,#120,#148,#180,#212,#244)); -#17 = ORIENTED_EDGE('',*,*,#18,.T.); -#18 = EDGE_CURVE('',#19,#21,#23,.T.); -#19 = VERTEX_POINT('',#20); -#20 = CARTESIAN_POINT('',(63.609212636948,27.934517711401, - -19.99999955296)); -#21 = VERTEX_POINT('',#22); -#22 = CARTESIAN_POINT('',(93.497879803181,36.745399236679, - -19.99999955296)); -#23 = SURFACE_CURVE('',#24,(#29,#45),.PCURVE_S2.); -#24 = CIRCLE('',#25,74.466478447737); -#25 = AXIS2_PLACEMENT_3D('',#26,#27,#28); -#26 = CARTESIAN_POINT('',(57.963432099881,102.18666633037, - -19.99999955296)); -#27 = DIRECTION('',(0.,0.,1.)); -#28 = DIRECTION('',(1.,0.,0.)); -#29 = PCURVE('',#30,#35); -#30 = PLANE('',#31); -#31 = AXIS2_PLACEMENT_3D('',#32,#33,#34); -#32 = CARTESIAN_POINT('',(0.,0.,-19.99999955296)); -#33 = DIRECTION('',(0.,0.,1.)); -#34 = DIRECTION('',(1.,0.,0.)); -#35 = DEFINITIONAL_REPRESENTATION('',(#36),#44); -#36 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#37,#38,#39,#40,#41,#42,#43), -.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#37 = CARTESIAN_POINT('',(132.42991054761,102.18666633037)); -#38 = CARTESIAN_POINT('',(132.42991054761,231.16639046259)); -#39 = CARTESIAN_POINT('',(20.730192876013,166.67652839648)); -#40 = CARTESIAN_POINT('',(-90.96952479559,102.18666633037)); -#41 = CARTESIAN_POINT('',(20.730192876013,37.696804264271)); -#42 = CARTESIAN_POINT('',(132.42991054761,-26.79305780183)); -#43 = CARTESIAN_POINT('',(132.42991054761,102.18666633037)); -#44 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#45 = PCURVE('',#46,#51); -#46 = CYLINDRICAL_SURFACE('',#47,74.466478447737); -#47 = AXIS2_PLACEMENT_3D('',#48,#49,#50); -#48 = CARTESIAN_POINT('',(57.963432099881,102.18666633037, - -19.99999955296)); -#49 = DIRECTION('',(0.,0.,1.)); -#50 = DIRECTION('',(1.,0.,0.)); -#51 = DEFINITIONAL_REPRESENTATION('',(#52),#55); -#52 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#53,#54),.UNSPECIFIED.,.F.,.F.,(2, - 2),(4.788278205588,5.209840138517),.PIECEWISE_BEZIER_KNOTS.); -#53 = CARTESIAN_POINT('',(4.788278205588,0.)); -#54 = CARTESIAN_POINT('',(5.209840138517,0.)); -#55 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#56 = ORIENTED_EDGE('',*,*,#57,.T.); -#57 = EDGE_CURVE('',#21,#58,#60,.T.); -#58 = VERTEX_POINT('',#59); -#59 = CARTESIAN_POINT('',(93.497879803181,-41.78636148572, - -19.99999955296)); -#60 = SURFACE_CURVE('',#61,(#66,#77),.PCURVE_S2.); -#61 = CIRCLE('',#62,44.68116165083); -#62 = AXIS2_PLACEMENT_3D('',#63,#64,#65); -#63 = CARTESIAN_POINT('',(114.81915663942,-2.52048112452,-19.99999955296 - )); -#64 = DIRECTION('',(0.,0.,-1.)); -#65 = DIRECTION('',(1.,0.,0.)); -#66 = PCURVE('',#30,#67); -#67 = DEFINITIONAL_REPRESENTATION('',(#68),#76); -#68 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#69,#70,#71,#72,#73,#74,#75), -.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#69 = CARTESIAN_POINT('',(159.50031829025,-2.52048112452)); -#70 = CARTESIAN_POINT('',(159.50031829025,-79.91052324495)); -#71 = CARTESIAN_POINT('',(92.478575814005,-41.21550218473)); -#72 = CARTESIAN_POINT('',(25.45683333776,-2.52048112452)); -#73 = CARTESIAN_POINT('',(92.478575814005,36.174539935697)); -#74 = CARTESIAN_POINT('',(159.50031829025,74.869560995915)); -#75 = CARTESIAN_POINT('',(159.50031829025,-2.52048112452)); -#76 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#77 = PCURVE('',#78,#83); -#78 = CYLINDRICAL_SURFACE('',#79,44.68116165083); -#79 = AXIS2_PLACEMENT_3D('',#80,#81,#82); -#80 = CARTESIAN_POINT('',(114.81915663942,-2.52048112452,-19.99999955296 - )); -#81 = DIRECTION('',(0.,0.,-1.)); -#82 = DIRECTION('',(1.,0.,0.)); -#83 = DEFINITIONAL_REPRESENTATION('',(#84),#87); -#84 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#85,#86),.UNSPECIFIED.,.F.,.F.,(2, - 2),(4.214937822253,8.351432792106),.PIECEWISE_BEZIER_KNOTS.); -#85 = CARTESIAN_POINT('',(4.214937822253,0.)); -#86 = CARTESIAN_POINT('',(8.351432792106,0.)); -#87 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#88 = ORIENTED_EDGE('',*,*,#89,.T.); -#89 = EDGE_CURVE('',#58,#90,#92,.T.); -#90 = VERTEX_POINT('',#91); -#91 = CARTESIAN_POINT('',(59.138831836925,-31.77853846384, - -19.99999955296)); -#92 = SURFACE_CURVE('',#93,(#98,#109),.PCURVE_S2.); -#93 = CIRCLE('',#94,84.24770250966); -#94 = AXIS2_PLACEMENT_3D('',#95,#96,#97); -#95 = CARTESIAN_POINT('',(53.295957524102,-115.8233848133, - -19.99999955296)); -#96 = DIRECTION('',(0.,0.,1.)); -#97 = DIRECTION('',(1.,0.,0.)); -#98 = PCURVE('',#30,#99); -#99 = DEFINITIONAL_REPRESENTATION('',(#100),#108); -#100 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#101,#102,#103,#104,#105,#106 -,#107),.UNSPECIFIED.,.T.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#101 = CARTESIAN_POINT('',(137.54366003376,-115.8233848133)); -#102 = CARTESIAN_POINT('',(137.54366003376,30.097916354281)); -#103 = CARTESIAN_POINT('',(11.172106269272,-42.86273422955)); -#104 = CARTESIAN_POINT('',(-115.1994474952,-115.8233848133)); -#105 = CARTESIAN_POINT('',(11.172106269272,-188.7840353972)); -#106 = CARTESIAN_POINT('',(137.54366003376,-261.744685981)); -#107 = CARTESIAN_POINT('',(137.54366003376,-115.8233848133)); -#108 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#109 = PCURVE('',#110,#115); -#110 = CYLINDRICAL_SURFACE('',#111,84.24770250966); -#111 = AXIS2_PLACEMENT_3D('',#112,#113,#114); -#112 = CARTESIAN_POINT('',(53.295957524102,-115.8233848133, - -19.99999955296)); -#113 = DIRECTION('',(0.,0.,1.)); -#114 = DIRECTION('',(1.,0.,0.)); -#115 = DEFINITIONAL_REPRESENTATION('',(#116),#119); -#116 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#117,#118),.UNSPECIFIED.,.F.,.F., - (2,2),(1.073345168663,1.501387093594),.PIECEWISE_BEZIER_KNOTS.); -#117 = CARTESIAN_POINT('',(1.073345168663,0.)); -#118 = CARTESIAN_POINT('',(1.501387093594,0.)); -#119 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#120 = ORIENTED_EDGE('',*,*,#121,.T.); -#121 = EDGE_CURVE('',#90,#122,#124,.T.); -#122 = VERTEX_POINT('',#123); -#123 = CARTESIAN_POINT('',(-72.42252677679,-22.63227291405, - -19.99999955296)); -#124 = SURFACE_CURVE('',#125,(#129,#136),.PCURVE_S2.); -#125 = LINE('',#126,#127); -#126 = CARTESIAN_POINT('',(59.138831836925,-31.77853846384, - -19.99999955296)); -#127 = VECTOR('',#128,1.); -#128 = DIRECTION('',(-0.997592146088,6.935351515554E-02,0.)); -#129 = PCURVE('',#30,#130); -#130 = DEFINITIONAL_REPRESENTATION('',(#131),#135); -#131 = LINE('',#132,#133); -#132 = CARTESIAN_POINT('',(59.138831836925,-31.77853846384)); -#133 = VECTOR('',#134,1.); -#134 = DIRECTION('',(-0.997592146088,6.935351515554E-02)); -#135 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#136 = PCURVE('',#137,#142); -#137 = PLANE('',#138); -#138 = AXIS2_PLACEMENT_3D('',#139,#140,#141); -#139 = CARTESIAN_POINT('',(59.138831836925,-31.77853846384, - -19.99999955296)); -#140 = DIRECTION('',(-6.935351515554E-02,-0.997592146088,0.)); -#141 = DIRECTION('',(-0.997592146088,6.935351515554E-02,0.)); -#142 = DEFINITIONAL_REPRESENTATION('',(#143),#147); -#143 = LINE('',#144,#145); -#144 = CARTESIAN_POINT('',(0.,-3.552713678801E-14)); -#145 = VECTOR('',#146,1.); -#146 = DIRECTION('',(1.,0.)); -#147 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#148 = ORIENTED_EDGE('',*,*,#149,.T.); -#149 = EDGE_CURVE('',#122,#150,#152,.T.); -#150 = VERTEX_POINT('',#151); -#151 = CARTESIAN_POINT('',(-88.51642906665,-27.22925320267, - -19.99999955296)); -#152 = SURFACE_CURVE('',#153,(#158,#169),.PCURVE_S2.); -#153 = CIRCLE('',#154,24.565238684828); -#154 = AXIS2_PLACEMENT_3D('',#155,#156,#157); -#155 = CARTESIAN_POINT('',(-74.12621243021,-47.1383620928, - -19.99999955296)); -#156 = DIRECTION('',(0.,0.,1.)); -#157 = DIRECTION('',(1.,0.,0.)); -#158 = PCURVE('',#30,#159); -#159 = DEFINITIONAL_REPRESENTATION('',(#160),#168); -#160 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#161,#162,#163,#164,#165,#166 -,#167),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#161 = CARTESIAN_POINT('',(-49.56097374539,-47.1383620928)); -#162 = CARTESIAN_POINT('',(-49.56097374539,-4.590120590624)); -#163 = CARTESIAN_POINT('',(-86.40883177263,-25.86424134171)); -#164 = CARTESIAN_POINT('',(-123.2566897998,-47.1383620928)); -#165 = CARTESIAN_POINT('',(-86.40883177263,-68.41248284389)); -#166 = CARTESIAN_POINT('',(-49.56097374539,-89.68660359498)); -#167 = CARTESIAN_POINT('',(-49.56097374539,-47.1383620928)); -#168 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#169 = PCURVE('',#170,#175); -#170 = CYLINDRICAL_SURFACE('',#171,24.565238684828); -#171 = AXIS2_PLACEMENT_3D('',#172,#173,#174); -#172 = CARTESIAN_POINT('',(-74.12621243021,-47.1383620928, - -19.99999955296)); -#173 = DIRECTION('',(0.,0.,1.)); -#174 = DIRECTION('',(1.,0.,0.)); -#175 = DEFINITIONAL_REPRESENTATION('',(#176),#179); -#176 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#177,#178),.UNSPECIFIED.,.F.,.F., - (2,2),(1.501387093594,2.196658099744),.PIECEWISE_BEZIER_KNOTS.); -#177 = CARTESIAN_POINT('',(1.501387093594,0.)); -#178 = CARTESIAN_POINT('',(2.196658099744,0.)); -#179 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#180 = ORIENTED_EDGE('',*,*,#181,.T.); -#181 = EDGE_CURVE('',#150,#182,#184,.T.); -#182 = VERTEX_POINT('',#183); -#183 = CARTESIAN_POINT('',(-88.51642906665,21.039046347141, - -19.99999955296)); -#184 = SURFACE_CURVE('',#185,(#190,#201),.PCURVE_S2.); -#185 = CIRCLE('',#186,29.778387016109); -#186 = AXIS2_PLACEMENT_3D('',#187,#188,#189); -#187 = CARTESIAN_POINT('',(-105.9604867346,-3.095103427768, - -19.99999955296)); -#188 = DIRECTION('',(0.,0.,-1.)); -#189 = DIRECTION('',(1.,0.,0.)); -#190 = PCURVE('',#30,#191); -#191 = DEFINITIONAL_REPRESENTATION('',(#192),#200); -#192 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#193,#194,#195,#196,#197,#198 -,#199),.UNSPECIFIED.,.T.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#193 = CARTESIAN_POINT('',(-76.18209971851,-3.095103427768)); -#194 = CARTESIAN_POINT('',(-76.18209971851,-54.67278270711)); -#195 = CARTESIAN_POINT('',(-120.8496802426,-28.88394306744)); -#196 = CARTESIAN_POINT('',(-165.5172607668,-3.095103427768)); -#197 = CARTESIAN_POINT('',(-120.8496802426,22.693736211908)); -#198 = CARTESIAN_POINT('',(-76.18209971851,48.482575851583)); -#199 = CARTESIAN_POINT('',(-76.18209971851,-3.095103427768)); -#200 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#201 = PCURVE('',#202,#207); -#202 = CYLINDRICAL_SURFACE('',#203,29.778387016109); -#203 = AXIS2_PLACEMENT_3D('',#204,#205,#206); -#204 = CARTESIAN_POINT('',(-105.9604867346,-3.095103427768, - -19.99999955296)); -#205 = DIRECTION('',(0.,0.,-1.)); -#206 = DIRECTION('',(1.,0.,0.)); -#207 = DEFINITIONAL_REPRESENTATION('',(#208),#211); -#208 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#209,#210),.UNSPECIFIED.,.F.,.F., - (2,2),(0.944934553846,5.338250753333),.PIECEWISE_BEZIER_KNOTS.); -#209 = CARTESIAN_POINT('',(0.944934553846,0.)); -#210 = CARTESIAN_POINT('',(5.338250753333,0.)); -#211 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#212 = ORIENTED_EDGE('',*,*,#213,.T.); -#213 = EDGE_CURVE('',#182,#214,#216,.T.); -#214 = VERTEX_POINT('',#215); -#215 = CARTESIAN_POINT('',(-72.42252677679,17.591310665011, - -19.99999955296)); -#216 = SURFACE_CURVE('',#217,(#222,#233),.PCURVE_S2.); -#217 = CIRCLE('',#218,20.41914254867); -#218 = AXIS2_PLACEMENT_3D('',#219,#220,#221); -#219 = CARTESIAN_POINT('',(-76.55497863763,37.587915977932, - -19.99999955296)); -#220 = DIRECTION('',(0.,0.,1.)); -#221 = DIRECTION('',(1.,0.,0.)); -#222 = PCURVE('',#30,#223); -#223 = DEFINITIONAL_REPRESENTATION('',(#224),#232); -#224 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#225,#226,#227,#228,#229,#230 -,#231),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#225 = CARTESIAN_POINT('',(-56.13583608896,37.587915977932)); -#226 = CARTESIAN_POINT('',(-56.13583608896,72.954908319219)); -#227 = CARTESIAN_POINT('',(-86.76454991196,55.271412148575)); -#228 = CARTESIAN_POINT('',(-117.3932637349,37.587915977932)); -#229 = CARTESIAN_POINT('',(-86.76454991196,19.904419807288)); -#230 = CARTESIAN_POINT('',(-56.13583608896,2.220923636644)); -#231 = CARTESIAN_POINT('',(-56.13583608896,37.587915977932)); -#232 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#233 = PCURVE('',#234,#239); -#234 = CYLINDRICAL_SURFACE('',#235,20.41914254867); -#235 = AXIS2_PLACEMENT_3D('',#236,#237,#238); -#236 = CARTESIAN_POINT('',(-76.55497863763,37.587915977932, - -19.99999955296)); -#237 = DIRECTION('',(0.,0.,1.)); -#238 = DIRECTION('',(1.,0.,0.)); -#239 = DEFINITIONAL_REPRESENTATION('',(#240),#243); -#240 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#241,#242),.UNSPECIFIED.,.F.,.F., - (2,2),(4.086527207436,4.916177873213),.PIECEWISE_BEZIER_KNOTS.); -#241 = CARTESIAN_POINT('',(4.086527207436,0.)); -#242 = CARTESIAN_POINT('',(4.916177873213,0.)); -#243 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#244 = ORIENTED_EDGE('',*,*,#245,.T.); -#245 = EDGE_CURVE('',#214,#19,#246,.T.); -#246 = SURFACE_CURVE('',#247,(#251,#258),.PCURVE_S2.); -#247 = LINE('',#248,#249); -#248 = CARTESIAN_POINT('',(-72.42252677679,17.591310665011, - -19.99999955296)); -#249 = VECTOR('',#250,1.); -#250 = DIRECTION('',(0.997121794488,7.581640296081E-02,0.)); -#251 = PCURVE('',#30,#252); -#252 = DEFINITIONAL_REPRESENTATION('',(#253),#257); -#253 = LINE('',#254,#255); -#254 = CARTESIAN_POINT('',(-72.42252677679,17.591310665011)); -#255 = VECTOR('',#256,1.); -#256 = DIRECTION('',(0.997121794488,7.581640296081E-02)); -#257 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#258 = PCURVE('',#259,#264); -#259 = PLANE('',#260); -#260 = AXIS2_PLACEMENT_3D('',#261,#262,#263); -#261 = CARTESIAN_POINT('',(-72.42252677679,17.591310665011, - -19.99999955296)); -#262 = DIRECTION('',(-7.581640296081E-02,0.997121794488,0.)); -#263 = DIRECTION('',(0.997121794488,7.581640296081E-02,0.)); -#264 = DEFINITIONAL_REPRESENTATION('',(#265),#269); -#265 = LINE('',#266,#267); -#266 = CARTESIAN_POINT('',(0.,-3.552713678801E-14)); -#267 = VECTOR('',#268,1.); -#268 = DIRECTION('',(1.,0.)); -#269 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#270 = FACE_BOUND('',#271,.F.); -#271 = EDGE_LOOP('',(#272)); -#272 = ORIENTED_EDGE('',*,*,#273,.T.); -#273 = EDGE_CURVE('',#274,#274,#276,.T.); -#274 = VERTEX_POINT('',#275); -#275 = CARTESIAN_POINT('',(-91.4143372247,-2.809300087392, - -19.99999955296)); -#276 = SURFACE_CURVE('',#277,(#282,#293),.PCURVE_S2.); -#277 = CIRCLE('',#278,15.057678156153); -#278 = AXIS2_PLACEMENT_3D('',#279,#280,#281); -#279 = CARTESIAN_POINT('',(-106.4720153808,-2.809300087392, - -19.99999955296)); -#280 = DIRECTION('',(0.,0.,-1.)); -#281 = DIRECTION('',(0.,1.,0.)); -#282 = PCURVE('',#30,#283); -#283 = DEFINITIONAL_REPRESENTATION('',(#284),#292); -#284 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#285,#286,#287,#288,#289,#290 -,#291),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#285 = CARTESIAN_POINT('',(-106.4720153808,12.24837806876)); -#286 = CARTESIAN_POINT('',(-80.39135177038,12.24837806876)); -#287 = CARTESIAN_POINT('',(-93.43168357562,-10.33813916546)); -#288 = CARTESIAN_POINT('',(-106.4720153808,-32.92465639969)); -#289 = CARTESIAN_POINT('',(-119.512347186,-10.33813916546)); -#290 = CARTESIAN_POINT('',(-132.5526789913,12.24837806876)); -#291 = CARTESIAN_POINT('',(-106.4720153808,12.24837806876)); -#292 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#293 = PCURVE('',#294,#299); -#294 = CYLINDRICAL_SURFACE('',#295,15.057678156153); -#295 = AXIS2_PLACEMENT_3D('',#296,#297,#298); -#296 = CARTESIAN_POINT('',(-106.4720153808,-2.809300087392, - -40.00019910593)); -#297 = DIRECTION('',(0.,0.,1.)); -#298 = DIRECTION('',(1.,0.,0.)); -#299 = DEFINITIONAL_REPRESENTATION('',(#300),#303); -#300 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#301,#302),.UNSPECIFIED.,.F.,.F., - (2,2),(1.570796326795,7.853981633974),.PIECEWISE_BEZIER_KNOTS.); -#301 = CARTESIAN_POINT('',(6.28318530718,20.000199552965)); -#302 = CARTESIAN_POINT('',(0.,20.000199552965)); -#303 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#304 = FACE_BOUND('',#305,.F.); -#305 = EDGE_LOOP('',(#306)); -#306 = ORIENTED_EDGE('',*,*,#307,.T.); -#307 = EDGE_CURVE('',#308,#308,#310,.T.); -#308 = VERTEX_POINT('',#309); -#309 = CARTESIAN_POINT('',(141.97662545896,-4.606760106981, - -19.99999955296)); -#310 = SURFACE_CURVE('',#311,(#316,#327),.PCURVE_S2.); -#311 = CIRCLE('',#312,23.40416683412); -#312 = AXIS2_PLACEMENT_3D('',#313,#314,#315); -#313 = CARTESIAN_POINT('',(118.57245862484,-4.606760106981, - -19.99999955296)); -#314 = DIRECTION('',(0.,0.,-1.)); -#315 = DIRECTION('',(0.,1.,0.)); -#316 = PCURVE('',#30,#317); -#317 = DEFINITIONAL_REPRESENTATION('',(#318),#326); -#318 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#319,#320,#321,#322,#323,#324 -,#325),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#319 = CARTESIAN_POINT('',(118.57245862484,18.797406727139)); -#320 = CARTESIAN_POINT('',(159.10966469035,18.797406727139)); -#321 = CARTESIAN_POINT('',(138.84106165759,-16.30884352404)); -#322 = CARTESIAN_POINT('',(118.57245862484,-51.41509377522)); -#323 = CARTESIAN_POINT('',(98.303855592083,-16.30884352404)); -#324 = CARTESIAN_POINT('',(78.035252559326,18.797406727139)); -#325 = CARTESIAN_POINT('',(118.57245862484,18.797406727139)); -#326 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#327 = PCURVE('',#328,#333); -#328 = CYLINDRICAL_SURFACE('',#329,23.40416683412); -#329 = AXIS2_PLACEMENT_3D('',#330,#331,#332); -#330 = CARTESIAN_POINT('',(118.57245862484,-4.606760106981, - -40.00019910593)); -#331 = DIRECTION('',(0.,0.,1.)); -#332 = DIRECTION('',(1.,0.,0.)); -#333 = DEFINITIONAL_REPRESENTATION('',(#334),#337); -#334 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#335,#336),.UNSPECIFIED.,.F.,.F., - (2,2),(1.570796326795,7.853981633974),.PIECEWISE_BEZIER_KNOTS.); -#335 = CARTESIAN_POINT('',(6.28318530718,20.000199552965)); -#336 = CARTESIAN_POINT('',(0.,20.000199552965)); -#337 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#338 = ADVANCED_FACE('',(#339),#46,.F.); -#339 = FACE_BOUND('',#340,.T.); -#340 = EDGE_LOOP('',(#341,#363,#395,#414)); -#341 = ORIENTED_EDGE('',*,*,#342,.T.); -#342 = EDGE_CURVE('',#19,#343,#345,.T.); -#343 = VERTEX_POINT('',#344); -#344 = CARTESIAN_POINT('',(63.609212636948,27.934517711401, - 19.999999552965)); -#345 = SURFACE_CURVE('',#346,(#350,#356),.PCURVE_S2.); -#346 = LINE('',#347,#348); -#347 = CARTESIAN_POINT('',(63.609212636948,27.934517711401, - -19.99999955296)); -#348 = VECTOR('',#349,1.); -#349 = DIRECTION('',(0.,0.,1.)); -#350 = PCURVE('',#46,#351); -#351 = DEFINITIONAL_REPRESENTATION('',(#352),#355); -#352 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#353,#354),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#353 = CARTESIAN_POINT('',(4.788278205588,0.)); -#354 = CARTESIAN_POINT('',(4.788278205588,39.99999910593)); -#355 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#356 = PCURVE('',#259,#357); -#357 = DEFINITIONAL_REPRESENTATION('',(#358),#362); -#358 = LINE('',#359,#360); -#359 = CARTESIAN_POINT('',(136.42439686482,0.)); -#360 = VECTOR('',#361,1.); -#361 = DIRECTION('',(0.,-1.)); -#362 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#363 = ORIENTED_EDGE('',*,*,#364,.T.); -#364 = EDGE_CURVE('',#343,#365,#367,.T.); -#365 = VERTEX_POINT('',#366); -#366 = CARTESIAN_POINT('',(93.497879803181,36.745399236679, - 19.999999552965)); -#367 = SURFACE_CURVE('',#368,(#373,#379),.PCURVE_S2.); -#368 = CIRCLE('',#369,74.466478447737); -#369 = AXIS2_PLACEMENT_3D('',#370,#371,#372); -#370 = CARTESIAN_POINT('',(57.963432099881,102.18666633037, - 19.999999552965)); -#371 = DIRECTION('',(0.,0.,1.)); -#372 = DIRECTION('',(1.,0.,0.)); -#373 = PCURVE('',#46,#374); -#374 = DEFINITIONAL_REPRESENTATION('',(#375),#378); -#375 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#376,#377),.UNSPECIFIED.,.F.,.F., - (2,2),(4.788278205588,5.209840138517),.PIECEWISE_BEZIER_KNOTS.); -#376 = CARTESIAN_POINT('',(4.788278205588,39.99999910593)); -#377 = CARTESIAN_POINT('',(5.209840138517,39.99999910593)); -#378 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#379 = PCURVE('',#380,#385); -#380 = PLANE('',#381); -#381 = AXIS2_PLACEMENT_3D('',#382,#383,#384); -#382 = CARTESIAN_POINT('',(0.,0.,19.999999552965)); -#383 = DIRECTION('',(0.,0.,1.)); -#384 = DIRECTION('',(1.,0.,0.)); -#385 = DEFINITIONAL_REPRESENTATION('',(#386),#394); -#386 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#387,#388,#389,#390,#391,#392 -,#393),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#387 = CARTESIAN_POINT('',(132.42991054761,102.18666633037)); -#388 = CARTESIAN_POINT('',(132.42991054761,231.16639046259)); -#389 = CARTESIAN_POINT('',(20.730192876013,166.67652839648)); -#390 = CARTESIAN_POINT('',(-90.96952479559,102.18666633037)); -#391 = CARTESIAN_POINT('',(20.730192876013,37.696804264271)); -#392 = CARTESIAN_POINT('',(132.42991054761,-26.79305780183)); -#393 = CARTESIAN_POINT('',(132.42991054761,102.18666633037)); -#394 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#395 = ORIENTED_EDGE('',*,*,#396,.F.); -#396 = EDGE_CURVE('',#21,#365,#397,.T.); -#397 = SURFACE_CURVE('',#398,(#402,#408),.PCURVE_S2.); -#398 = LINE('',#399,#400); -#399 = CARTESIAN_POINT('',(93.497879803181,36.745399236679, - -19.99999955296)); -#400 = VECTOR('',#401,1.); -#401 = DIRECTION('',(0.,0.,1.)); -#402 = PCURVE('',#46,#403); -#403 = DEFINITIONAL_REPRESENTATION('',(#404),#407); -#404 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#405,#406),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#405 = CARTESIAN_POINT('',(5.209840138517,0.)); -#406 = CARTESIAN_POINT('',(5.209840138517,39.99999910593)); -#407 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#408 = PCURVE('',#78,#409); -#409 = DEFINITIONAL_REPRESENTATION('',(#410),#413); -#410 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#411,#412),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#411 = CARTESIAN_POINT('',(4.214937822253,0.)); -#412 = CARTESIAN_POINT('',(4.214937822253,-39.99999910593)); -#413 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#414 = ORIENTED_EDGE('',*,*,#18,.F.); -#415 = ADVANCED_FACE('',(#416),#78,.T.); -#416 = FACE_BOUND('',#417,.T.); -#417 = EDGE_LOOP('',(#418,#419,#446,#465)); -#418 = ORIENTED_EDGE('',*,*,#396,.T.); -#419 = ORIENTED_EDGE('',*,*,#420,.T.); -#420 = EDGE_CURVE('',#365,#421,#423,.T.); -#421 = VERTEX_POINT('',#422); -#422 = CARTESIAN_POINT('',(93.497879803181,-41.78636148572, - 19.999999552965)); -#423 = SURFACE_CURVE('',#424,(#429,#435),.PCURVE_S2.); -#424 = CIRCLE('',#425,44.68116165083); -#425 = AXIS2_PLACEMENT_3D('',#426,#427,#428); -#426 = CARTESIAN_POINT('',(114.81915663942,-2.52048112452, - 19.999999552965)); -#427 = DIRECTION('',(0.,0.,-1.)); -#428 = DIRECTION('',(1.,0.,0.)); -#429 = PCURVE('',#78,#430); -#430 = DEFINITIONAL_REPRESENTATION('',(#431),#434); -#431 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#432,#433),.UNSPECIFIED.,.F.,.F., - (2,2),(4.214937822253,8.351432792106),.PIECEWISE_BEZIER_KNOTS.); -#432 = CARTESIAN_POINT('',(4.214937822253,-39.99999910593)); -#433 = CARTESIAN_POINT('',(8.351432792106,-39.99999910593)); -#434 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#435 = PCURVE('',#380,#436); -#436 = DEFINITIONAL_REPRESENTATION('',(#437),#445); -#437 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#438,#439,#440,#441,#442,#443 -,#444),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#438 = CARTESIAN_POINT('',(159.50031829025,-2.52048112452)); -#439 = CARTESIAN_POINT('',(159.50031829025,-79.91052324495)); -#440 = CARTESIAN_POINT('',(92.478575814005,-41.21550218473)); -#441 = CARTESIAN_POINT('',(25.45683333776,-2.52048112452)); -#442 = CARTESIAN_POINT('',(92.478575814005,36.174539935697)); -#443 = CARTESIAN_POINT('',(159.50031829025,74.869560995915)); -#444 = CARTESIAN_POINT('',(159.50031829025,-2.52048112452)); -#445 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#446 = ORIENTED_EDGE('',*,*,#447,.F.); -#447 = EDGE_CURVE('',#58,#421,#448,.T.); -#448 = SURFACE_CURVE('',#449,(#453,#459),.PCURVE_S2.); -#449 = LINE('',#450,#451); -#450 = CARTESIAN_POINT('',(93.497879803181,-41.78636148572, - -19.99999955296)); -#451 = VECTOR('',#452,1.); -#452 = DIRECTION('',(0.,0.,1.)); -#453 = PCURVE('',#78,#454); -#454 = DEFINITIONAL_REPRESENTATION('',(#455),#458); -#455 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#456,#457),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#456 = CARTESIAN_POINT('',(8.351432792106,0.)); -#457 = CARTESIAN_POINT('',(8.351432792106,-39.99999910593)); -#458 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#459 = PCURVE('',#110,#460); -#460 = DEFINITIONAL_REPRESENTATION('',(#461),#464); -#461 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#462,#463),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#462 = CARTESIAN_POINT('',(1.073345168663,0.)); -#463 = CARTESIAN_POINT('',(1.073345168663,39.99999910593)); -#464 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#465 = ORIENTED_EDGE('',*,*,#57,.F.); -#466 = ADVANCED_FACE('',(#467),#110,.F.); -#467 = FACE_BOUND('',#468,.T.); -#468 = EDGE_LOOP('',(#469,#470,#497,#517)); -#469 = ORIENTED_EDGE('',*,*,#447,.T.); -#470 = ORIENTED_EDGE('',*,*,#471,.T.); -#471 = EDGE_CURVE('',#421,#472,#474,.T.); -#472 = VERTEX_POINT('',#473); -#473 = CARTESIAN_POINT('',(59.138831836925,-31.77853846384, - 19.999999552965)); -#474 = SURFACE_CURVE('',#475,(#480,#486),.PCURVE_S2.); -#475 = CIRCLE('',#476,84.24770250966); -#476 = AXIS2_PLACEMENT_3D('',#477,#478,#479); -#477 = CARTESIAN_POINT('',(53.295957524102,-115.8233848133, - 19.999999552965)); -#478 = DIRECTION('',(0.,0.,1.)); -#479 = DIRECTION('',(1.,0.,0.)); -#480 = PCURVE('',#110,#481); -#481 = DEFINITIONAL_REPRESENTATION('',(#482),#485); -#482 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#483,#484),.UNSPECIFIED.,.F.,.F., - (2,2),(1.073345168663,1.501387093594),.PIECEWISE_BEZIER_KNOTS.); -#483 = CARTESIAN_POINT('',(1.073345168663,39.99999910593)); -#484 = CARTESIAN_POINT('',(1.501387093594,39.99999910593)); -#485 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#486 = PCURVE('',#380,#487); -#487 = DEFINITIONAL_REPRESENTATION('',(#488),#496); -#488 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#489,#490,#491,#492,#493,#494 -,#495),.UNSPECIFIED.,.T.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#489 = CARTESIAN_POINT('',(137.54366003376,-115.8233848133)); -#490 = CARTESIAN_POINT('',(137.54366003376,30.097916354281)); -#491 = CARTESIAN_POINT('',(11.172106269272,-42.86273422955)); -#492 = CARTESIAN_POINT('',(-115.1994474952,-115.8233848133)); -#493 = CARTESIAN_POINT('',(11.172106269272,-188.7840353972)); -#494 = CARTESIAN_POINT('',(137.54366003376,-261.744685981)); -#495 = CARTESIAN_POINT('',(137.54366003376,-115.8233848133)); -#496 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#497 = ORIENTED_EDGE('',*,*,#498,.F.); -#498 = EDGE_CURVE('',#90,#472,#499,.T.); -#499 = SURFACE_CURVE('',#500,(#504,#510),.PCURVE_S2.); -#500 = LINE('',#501,#502); -#501 = CARTESIAN_POINT('',(59.138831836925,-31.77853846384, - -19.99999955296)); -#502 = VECTOR('',#503,1.); -#503 = DIRECTION('',(0.,0.,1.)); -#504 = PCURVE('',#110,#505); -#505 = DEFINITIONAL_REPRESENTATION('',(#506),#509); -#506 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#507,#508),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#507 = CARTESIAN_POINT('',(1.501387093594,0.)); -#508 = CARTESIAN_POINT('',(1.501387093594,39.99999910593)); -#509 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#510 = PCURVE('',#137,#511); -#511 = DEFINITIONAL_REPRESENTATION('',(#512),#516); -#512 = LINE('',#513,#514); -#513 = CARTESIAN_POINT('',(0.,0.)); -#514 = VECTOR('',#515,1.); -#515 = DIRECTION('',(0.,-1.)); -#516 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#517 = ORIENTED_EDGE('',*,*,#89,.F.); -#518 = ADVANCED_FACE('',(#519),#137,.T.); -#519 = FACE_BOUND('',#520,.T.); -#520 = EDGE_LOOP('',(#521,#522,#545,#565)); -#521 = ORIENTED_EDGE('',*,*,#498,.T.); -#522 = ORIENTED_EDGE('',*,*,#523,.T.); -#523 = EDGE_CURVE('',#472,#524,#526,.T.); -#524 = VERTEX_POINT('',#525); -#525 = CARTESIAN_POINT('',(-72.42252677679,-22.63227291405, - 19.999999552965)); -#526 = SURFACE_CURVE('',#527,(#531,#538),.PCURVE_S2.); -#527 = LINE('',#528,#529); -#528 = CARTESIAN_POINT('',(59.138831836925,-31.77853846384, - 19.999999552965)); -#529 = VECTOR('',#530,1.); -#530 = DIRECTION('',(-0.997592146088,6.935351515554E-02,0.)); -#531 = PCURVE('',#137,#532); -#532 = DEFINITIONAL_REPRESENTATION('',(#533),#537); -#533 = LINE('',#534,#535); -#534 = CARTESIAN_POINT('',(0.,-39.99999910593)); -#535 = VECTOR('',#536,1.); -#536 = DIRECTION('',(1.,0.)); -#537 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#538 = PCURVE('',#380,#539); -#539 = DEFINITIONAL_REPRESENTATION('',(#540),#544); -#540 = LINE('',#541,#542); -#541 = CARTESIAN_POINT('',(59.138831836925,-31.77853846384)); -#542 = VECTOR('',#543,1.); -#543 = DIRECTION('',(-0.997592146088,6.935351515554E-02)); -#544 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#545 = ORIENTED_EDGE('',*,*,#546,.F.); -#546 = EDGE_CURVE('',#122,#524,#547,.T.); -#547 = SURFACE_CURVE('',#548,(#552,#559),.PCURVE_S2.); -#548 = LINE('',#549,#550); -#549 = CARTESIAN_POINT('',(-72.42252677679,-22.63227291405, - -19.99999955296)); -#550 = VECTOR('',#551,1.); -#551 = DIRECTION('',(0.,0.,1.)); -#552 = PCURVE('',#137,#553); -#553 = DEFINITIONAL_REPRESENTATION('',(#554),#558); -#554 = LINE('',#555,#556); -#555 = CARTESIAN_POINT('',(131.87890374807,0.)); -#556 = VECTOR('',#557,1.); -#557 = DIRECTION('',(0.,-1.)); -#558 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#559 = PCURVE('',#170,#560); -#560 = DEFINITIONAL_REPRESENTATION('',(#561),#564); -#561 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#562,#563),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#562 = CARTESIAN_POINT('',(1.501387093594,0.)); -#563 = CARTESIAN_POINT('',(1.501387093594,39.99999910593)); -#564 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#565 = ORIENTED_EDGE('',*,*,#121,.F.); -#566 = ADVANCED_FACE('',(#567),#170,.F.); -#567 = FACE_BOUND('',#568,.T.); -#568 = EDGE_LOOP('',(#569,#570,#597,#616)); -#569 = ORIENTED_EDGE('',*,*,#546,.T.); -#570 = ORIENTED_EDGE('',*,*,#571,.T.); -#571 = EDGE_CURVE('',#524,#572,#574,.T.); -#572 = VERTEX_POINT('',#573); -#573 = CARTESIAN_POINT('',(-88.51642906665,-27.22925320267, - 19.999999552965)); -#574 = SURFACE_CURVE('',#575,(#580,#586),.PCURVE_S2.); -#575 = CIRCLE('',#576,24.565238684828); -#576 = AXIS2_PLACEMENT_3D('',#577,#578,#579); -#577 = CARTESIAN_POINT('',(-74.12621243021,-47.1383620928, - 19.999999552965)); -#578 = DIRECTION('',(0.,0.,1.)); -#579 = DIRECTION('',(1.,0.,0.)); -#580 = PCURVE('',#170,#581); -#581 = DEFINITIONAL_REPRESENTATION('',(#582),#585); -#582 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#583,#584),.UNSPECIFIED.,.F.,.F., - (2,2),(1.501387093594,2.196658099744),.PIECEWISE_BEZIER_KNOTS.); -#583 = CARTESIAN_POINT('',(1.501387093594,39.99999910593)); -#584 = CARTESIAN_POINT('',(2.196658099744,39.99999910593)); -#585 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#586 = PCURVE('',#380,#587); -#587 = DEFINITIONAL_REPRESENTATION('',(#588),#596); -#588 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#589,#590,#591,#592,#593,#594 -,#595),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#589 = CARTESIAN_POINT('',(-49.56097374539,-47.1383620928)); -#590 = CARTESIAN_POINT('',(-49.56097374539,-4.590120590624)); -#591 = CARTESIAN_POINT('',(-86.40883177263,-25.86424134171)); -#592 = CARTESIAN_POINT('',(-123.2566897998,-47.1383620928)); -#593 = CARTESIAN_POINT('',(-86.40883177263,-68.41248284389)); -#594 = CARTESIAN_POINT('',(-49.56097374539,-89.68660359498)); -#595 = CARTESIAN_POINT('',(-49.56097374539,-47.1383620928)); -#596 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#597 = ORIENTED_EDGE('',*,*,#598,.F.); -#598 = EDGE_CURVE('',#150,#572,#599,.T.); -#599 = SURFACE_CURVE('',#600,(#604,#610),.PCURVE_S2.); -#600 = LINE('',#601,#602); -#601 = CARTESIAN_POINT('',(-88.51642906665,-27.22925320267, - -19.99999955296)); -#602 = VECTOR('',#603,1.); -#603 = DIRECTION('',(0.,0.,1.)); -#604 = PCURVE('',#170,#605); -#605 = DEFINITIONAL_REPRESENTATION('',(#606),#609); -#606 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#607,#608),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#607 = CARTESIAN_POINT('',(2.196658099744,0.)); -#608 = CARTESIAN_POINT('',(2.196658099744,39.99999910593)); -#609 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#610 = PCURVE('',#202,#611); -#611 = DEFINITIONAL_REPRESENTATION('',(#612),#615); -#612 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#613,#614),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#613 = CARTESIAN_POINT('',(0.944934553846,0.)); -#614 = CARTESIAN_POINT('',(0.944934553846,-39.99999910593)); -#615 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#616 = ORIENTED_EDGE('',*,*,#149,.F.); -#617 = ADVANCED_FACE('',(#618),#202,.T.); -#618 = FACE_BOUND('',#619,.T.); -#619 = EDGE_LOOP('',(#620,#621,#648,#667)); -#620 = ORIENTED_EDGE('',*,*,#598,.T.); -#621 = ORIENTED_EDGE('',*,*,#622,.T.); -#622 = EDGE_CURVE('',#572,#623,#625,.T.); -#623 = VERTEX_POINT('',#624); -#624 = CARTESIAN_POINT('',(-88.51642906665,21.039046347141, - 19.999999552965)); -#625 = SURFACE_CURVE('',#626,(#631,#637),.PCURVE_S2.); -#626 = CIRCLE('',#627,29.778387016109); -#627 = AXIS2_PLACEMENT_3D('',#628,#629,#630); -#628 = CARTESIAN_POINT('',(-105.9604867346,-3.095103427768, - 19.999999552965)); -#629 = DIRECTION('',(0.,0.,-1.)); -#630 = DIRECTION('',(1.,0.,0.)); -#631 = PCURVE('',#202,#632); -#632 = DEFINITIONAL_REPRESENTATION('',(#633),#636); -#633 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#634,#635),.UNSPECIFIED.,.F.,.F., - (2,2),(0.944934553846,5.338250753333),.PIECEWISE_BEZIER_KNOTS.); -#634 = CARTESIAN_POINT('',(0.944934553846,-39.99999910593)); -#635 = CARTESIAN_POINT('',(5.338250753333,-39.99999910593)); -#636 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#637 = PCURVE('',#380,#638); -#638 = DEFINITIONAL_REPRESENTATION('',(#639),#647); -#639 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#640,#641,#642,#643,#644,#645 -,#646),.UNSPECIFIED.,.T.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#640 = CARTESIAN_POINT('',(-76.18209971851,-3.095103427768)); -#641 = CARTESIAN_POINT('',(-76.18209971851,-54.67278270711)); -#642 = CARTESIAN_POINT('',(-120.8496802426,-28.88394306744)); -#643 = CARTESIAN_POINT('',(-165.5172607668,-3.095103427768)); -#644 = CARTESIAN_POINT('',(-120.8496802426,22.693736211908)); -#645 = CARTESIAN_POINT('',(-76.18209971851,48.482575851583)); -#646 = CARTESIAN_POINT('',(-76.18209971851,-3.095103427768)); -#647 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#648 = ORIENTED_EDGE('',*,*,#649,.F.); -#649 = EDGE_CURVE('',#182,#623,#650,.T.); -#650 = SURFACE_CURVE('',#651,(#655,#661),.PCURVE_S2.); -#651 = LINE('',#652,#653); -#652 = CARTESIAN_POINT('',(-88.51642906665,21.039046347141, - -19.99999955296)); -#653 = VECTOR('',#654,1.); -#654 = DIRECTION('',(0.,0.,1.)); -#655 = PCURVE('',#202,#656); -#656 = DEFINITIONAL_REPRESENTATION('',(#657),#660); -#657 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#658,#659),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#658 = CARTESIAN_POINT('',(5.338250753333,0.)); -#659 = CARTESIAN_POINT('',(5.338250753333,-39.99999910593)); -#660 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#661 = PCURVE('',#234,#662); -#662 = DEFINITIONAL_REPRESENTATION('',(#663),#666); -#663 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#664,#665),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#664 = CARTESIAN_POINT('',(4.086527207436,0.)); -#665 = CARTESIAN_POINT('',(4.086527207436,39.99999910593)); -#666 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#667 = ORIENTED_EDGE('',*,*,#181,.F.); -#668 = ADVANCED_FACE('',(#669),#234,.F.); -#669 = FACE_BOUND('',#670,.T.); -#670 = EDGE_LOOP('',(#671,#672,#699,#719)); -#671 = ORIENTED_EDGE('',*,*,#649,.T.); -#672 = ORIENTED_EDGE('',*,*,#673,.T.); -#673 = EDGE_CURVE('',#623,#674,#676,.T.); -#674 = VERTEX_POINT('',#675); -#675 = CARTESIAN_POINT('',(-72.42252677679,17.591310665011, - 19.999999552965)); -#676 = SURFACE_CURVE('',#677,(#682,#688),.PCURVE_S2.); -#677 = CIRCLE('',#678,20.41914254867); -#678 = AXIS2_PLACEMENT_3D('',#679,#680,#681); -#679 = CARTESIAN_POINT('',(-76.55497863763,37.587915977932, - 19.999999552965)); -#680 = DIRECTION('',(0.,0.,1.)); -#681 = DIRECTION('',(1.,0.,0.)); -#682 = PCURVE('',#234,#683); -#683 = DEFINITIONAL_REPRESENTATION('',(#684),#687); -#684 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#685,#686),.UNSPECIFIED.,.F.,.F., - (2,2),(4.086527207436,4.916177873213),.PIECEWISE_BEZIER_KNOTS.); -#685 = CARTESIAN_POINT('',(4.086527207436,39.99999910593)); -#686 = CARTESIAN_POINT('',(4.916177873213,39.99999910593)); -#687 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#688 = PCURVE('',#380,#689); -#689 = DEFINITIONAL_REPRESENTATION('',(#690),#698); -#690 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#691,#692,#693,#694,#695,#696 -,#697),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#691 = CARTESIAN_POINT('',(-56.13583608896,37.587915977932)); -#692 = CARTESIAN_POINT('',(-56.13583608896,72.954908319219)); -#693 = CARTESIAN_POINT('',(-86.76454991196,55.271412148575)); -#694 = CARTESIAN_POINT('',(-117.3932637349,37.587915977932)); -#695 = CARTESIAN_POINT('',(-86.76454991196,19.904419807288)); -#696 = CARTESIAN_POINT('',(-56.13583608896,2.220923636644)); -#697 = CARTESIAN_POINT('',(-56.13583608896,37.587915977932)); -#698 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#699 = ORIENTED_EDGE('',*,*,#700,.F.); -#700 = EDGE_CURVE('',#214,#674,#701,.T.); -#701 = SURFACE_CURVE('',#702,(#706,#712),.PCURVE_S2.); -#702 = LINE('',#703,#704); -#703 = CARTESIAN_POINT('',(-72.42252677679,17.591310665011, - -19.99999955296)); -#704 = VECTOR('',#705,1.); -#705 = DIRECTION('',(0.,0.,1.)); -#706 = PCURVE('',#234,#707); -#707 = DEFINITIONAL_REPRESENTATION('',(#708),#711); -#708 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#709,#710),.UNSPECIFIED.,.F.,.F., - (2,2),(0.,39.99999910593),.PIECEWISE_BEZIER_KNOTS.); -#709 = CARTESIAN_POINT('',(4.916177873213,0.)); -#710 = CARTESIAN_POINT('',(4.916177873213,39.99999910593)); -#711 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#712 = PCURVE('',#259,#713); -#713 = DEFINITIONAL_REPRESENTATION('',(#714),#718); -#714 = LINE('',#715,#716); -#715 = CARTESIAN_POINT('',(0.,0.)); -#716 = VECTOR('',#717,1.); -#717 = DIRECTION('',(0.,-1.)); -#718 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#719 = ORIENTED_EDGE('',*,*,#213,.F.); -#720 = ADVANCED_FACE('',(#721),#259,.T.); -#721 = FACE_BOUND('',#722,.T.); -#722 = EDGE_LOOP('',(#723,#724,#745,#746)); -#723 = ORIENTED_EDGE('',*,*,#700,.T.); -#724 = ORIENTED_EDGE('',*,*,#725,.T.); -#725 = EDGE_CURVE('',#674,#343,#726,.T.); -#726 = SURFACE_CURVE('',#727,(#731,#738),.PCURVE_S2.); -#727 = LINE('',#728,#729); -#728 = CARTESIAN_POINT('',(-72.42252677679,17.591310665011, - 19.999999552965)); -#729 = VECTOR('',#730,1.); -#730 = DIRECTION('',(0.997121794488,7.581640296081E-02,0.)); -#731 = PCURVE('',#259,#732); -#732 = DEFINITIONAL_REPRESENTATION('',(#733),#737); -#733 = LINE('',#734,#735); -#734 = CARTESIAN_POINT('',(0.,-39.99999910593)); -#735 = VECTOR('',#736,1.); -#736 = DIRECTION('',(1.,0.)); -#737 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#738 = PCURVE('',#380,#739); -#739 = DEFINITIONAL_REPRESENTATION('',(#740),#744); -#740 = LINE('',#741,#742); -#741 = CARTESIAN_POINT('',(-72.42252677679,17.591310665011)); -#742 = VECTOR('',#743,1.); -#743 = DIRECTION('',(0.997121794488,7.581640296081E-02)); -#744 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#745 = ORIENTED_EDGE('',*,*,#342,.F.); -#746 = ORIENTED_EDGE('',*,*,#245,.F.); -#747 = ADVANCED_FACE('',(#748),#294,.F.); -#748 = FACE_BOUND('',#749,.T.); -#749 = EDGE_LOOP('',(#750,#771,#796,#797)); -#750 = ORIENTED_EDGE('',*,*,#751,.T.); -#751 = EDGE_CURVE('',#274,#752,#754,.T.); -#752 = VERTEX_POINT('',#753); -#753 = CARTESIAN_POINT('',(-91.4143372247,-2.809300087392, - 19.999999552965)); -#754 = SEAM_CURVE('',#755,(#759,#765),.PCURVE_S2.); -#755 = LINE('',#756,#757); -#756 = CARTESIAN_POINT('',(-91.4143372247,-2.809300087392, - -40.00019910593)); -#757 = VECTOR('',#758,1.); -#758 = DIRECTION('',(0.,0.,1.)); -#759 = PCURVE('',#294,#760); -#760 = DEFINITIONAL_REPRESENTATION('',(#761),#764); -#761 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#762,#763),.UNSPECIFIED.,.F.,.F., - (2,2),(20.000199552965,60.000198658895),.PIECEWISE_BEZIER_KNOTS.); -#762 = CARTESIAN_POINT('',(0.,20.000199552965)); -#763 = CARTESIAN_POINT('',(0.,60.000198658895)); -#764 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#765 = PCURVE('',#294,#766); -#766 = DEFINITIONAL_REPRESENTATION('',(#767),#770); -#767 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#768,#769),.UNSPECIFIED.,.F.,.F., - (2,2),(20.000199552965,60.000198658895),.PIECEWISE_BEZIER_KNOTS.); -#768 = CARTESIAN_POINT('',(6.28318530718,20.000199552965)); -#769 = CARTESIAN_POINT('',(6.28318530718,60.000198658895)); -#770 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#771 = ORIENTED_EDGE('',*,*,#772,.F.); -#772 = EDGE_CURVE('',#752,#752,#773,.T.); -#773 = SURFACE_CURVE('',#774,(#779,#785),.PCURVE_S2.); -#774 = CIRCLE('',#775,15.057678156153); -#775 = AXIS2_PLACEMENT_3D('',#776,#777,#778); -#776 = CARTESIAN_POINT('',(-106.4720153808,-2.809300087392, - 19.999999552965)); -#777 = DIRECTION('',(0.,0.,-1.)); -#778 = DIRECTION('',(0.,1.,0.)); -#779 = PCURVE('',#294,#780); -#780 = DEFINITIONAL_REPRESENTATION('',(#781),#784); -#781 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#782,#783),.UNSPECIFIED.,.F.,.F., - (2,2),(1.570796326795,7.853981633974),.PIECEWISE_BEZIER_KNOTS.); -#782 = CARTESIAN_POINT('',(6.28318530718,60.000198658895)); -#783 = CARTESIAN_POINT('',(0.,60.000198658895)); -#784 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#785 = PCURVE('',#380,#786); -#786 = DEFINITIONAL_REPRESENTATION('',(#787),#795); -#787 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#788,#789,#790,#791,#792,#793 -,#794),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#788 = CARTESIAN_POINT('',(-106.4720153808,12.24837806876)); -#789 = CARTESIAN_POINT('',(-80.39135177038,12.24837806876)); -#790 = CARTESIAN_POINT('',(-93.43168357562,-10.33813916546)); -#791 = CARTESIAN_POINT('',(-106.4720153808,-32.92465639969)); -#792 = CARTESIAN_POINT('',(-119.512347186,-10.33813916546)); -#793 = CARTESIAN_POINT('',(-132.5526789913,12.24837806876)); -#794 = CARTESIAN_POINT('',(-106.4720153808,12.24837806876)); -#795 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#796 = ORIENTED_EDGE('',*,*,#751,.F.); -#797 = ORIENTED_EDGE('',*,*,#273,.T.); -#798 = ADVANCED_FACE('',(#799),#328,.F.); -#799 = FACE_BOUND('',#800,.T.); -#800 = EDGE_LOOP('',(#801,#822,#847,#848)); -#801 = ORIENTED_EDGE('',*,*,#802,.T.); -#802 = EDGE_CURVE('',#308,#803,#805,.T.); -#803 = VERTEX_POINT('',#804); -#804 = CARTESIAN_POINT('',(141.97662545896,-4.606760106981, - 19.999999552965)); -#805 = SEAM_CURVE('',#806,(#810,#816),.PCURVE_S2.); -#806 = LINE('',#807,#808); -#807 = CARTESIAN_POINT('',(141.97662545896,-4.606760106981, - -40.00019910593)); -#808 = VECTOR('',#809,1.); -#809 = DIRECTION('',(0.,0.,1.)); -#810 = PCURVE('',#328,#811); -#811 = DEFINITIONAL_REPRESENTATION('',(#812),#815); -#812 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#813,#814),.UNSPECIFIED.,.F.,.F., - (2,2),(20.000199552965,60.000198658895),.PIECEWISE_BEZIER_KNOTS.); -#813 = CARTESIAN_POINT('',(0.,20.000199552965)); -#814 = CARTESIAN_POINT('',(0.,60.000198658895)); -#815 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#816 = PCURVE('',#328,#817); -#817 = DEFINITIONAL_REPRESENTATION('',(#818),#821); -#818 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#819,#820),.UNSPECIFIED.,.F.,.F., - (2,2),(20.000199552965,60.000198658895),.PIECEWISE_BEZIER_KNOTS.); -#819 = CARTESIAN_POINT('',(6.28318530718,20.000199552965)); -#820 = CARTESIAN_POINT('',(6.28318530718,60.000198658895)); -#821 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#822 = ORIENTED_EDGE('',*,*,#823,.F.); -#823 = EDGE_CURVE('',#803,#803,#824,.T.); -#824 = SURFACE_CURVE('',#825,(#830,#836),.PCURVE_S2.); -#825 = CIRCLE('',#826,23.40416683412); -#826 = AXIS2_PLACEMENT_3D('',#827,#828,#829); -#827 = CARTESIAN_POINT('',(118.57245862484,-4.606760106981, - 19.999999552965)); -#828 = DIRECTION('',(0.,0.,-1.)); -#829 = DIRECTION('',(0.,1.,0.)); -#830 = PCURVE('',#328,#831); -#831 = DEFINITIONAL_REPRESENTATION('',(#832),#835); -#832 = B_SPLINE_CURVE_WITH_KNOTS('',1,(#833,#834),.UNSPECIFIED.,.F.,.F., - (2,2),(1.570796326795,7.853981633974),.PIECEWISE_BEZIER_KNOTS.); -#833 = CARTESIAN_POINT('',(6.28318530718,60.000198658895)); -#834 = CARTESIAN_POINT('',(0.,60.000198658895)); -#835 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#836 = PCURVE('',#380,#837); -#837 = DEFINITIONAL_REPRESENTATION('',(#838),#846); -#838 = ( BOUNDED_CURVE() B_SPLINE_CURVE(2,(#839,#840,#841,#842,#843,#844 -,#845),.UNSPECIFIED.,.F.,.F.) B_SPLINE_CURVE_WITH_KNOTS((1,2,2,2,2,1),( - -2.094395102393,0.,2.094395102393,4.188790204786,6.28318530718, -8.377580409573),.UNSPECIFIED.) CURVE() GEOMETRIC_REPRESENTATION_ITEM() -RATIONAL_B_SPLINE_CURVE((1.,0.5,1.,0.5,1.,0.5,1.)) REPRESENTATION_ITEM( - '') ); -#839 = CARTESIAN_POINT('',(118.57245862484,18.797406727139)); -#840 = CARTESIAN_POINT('',(159.10966469035,18.797406727139)); -#841 = CARTESIAN_POINT('',(138.84106165759,-16.30884352404)); -#842 = CARTESIAN_POINT('',(118.57245862484,-51.41509377522)); -#843 = CARTESIAN_POINT('',(98.303855592083,-16.30884352404)); -#844 = CARTESIAN_POINT('',(78.035252559326,18.797406727139)); -#845 = CARTESIAN_POINT('',(118.57245862484,18.797406727139)); -#846 = ( GEOMETRIC_REPRESENTATION_CONTEXT(2) -PARAMETRIC_REPRESENTATION_CONTEXT() REPRESENTATION_CONTEXT('2D SPACE','' - ) ); -#847 = ORIENTED_EDGE('',*,*,#802,.F.); -#848 = ORIENTED_EDGE('',*,*,#307,.T.); -#849 = ADVANCED_FACE('',(#850,#860,#863),#380,.T.); -#850 = FACE_BOUND('',#851,.F.); -#851 = EDGE_LOOP('',(#852,#853,#854,#855,#856,#857,#858,#859)); -#852 = ORIENTED_EDGE('',*,*,#364,.T.); -#853 = ORIENTED_EDGE('',*,*,#420,.T.); -#854 = ORIENTED_EDGE('',*,*,#471,.T.); -#855 = ORIENTED_EDGE('',*,*,#523,.T.); -#856 = ORIENTED_EDGE('',*,*,#571,.T.); -#857 = ORIENTED_EDGE('',*,*,#622,.T.); -#858 = ORIENTED_EDGE('',*,*,#673,.T.); -#859 = ORIENTED_EDGE('',*,*,#725,.T.); -#860 = FACE_BOUND('',#861,.T.); -#861 = EDGE_LOOP('',(#862)); -#862 = ORIENTED_EDGE('',*,*,#772,.T.); -#863 = FACE_BOUND('',#864,.T.); -#864 = EDGE_LOOP('',(#865)); -#865 = ORIENTED_EDGE('',*,*,#823,.T.); -#866 = ( GEOMETRIC_REPRESENTATION_CONTEXT(3) -GLOBAL_UNCERTAINTY_ASSIGNED_CONTEXT((#869)) GLOBAL_UNIT_ASSIGNED_CONTEXT -((#867,#868)) REPRESENTATION_CONTEXT('Context #1', - '3D Context with UNIT and UNCERTAINTY') ); -#867 = ( LENGTH_UNIT() NAMED_UNIT(*) SI_UNIT(.MILLI.,.METRE.) ); -#868 = ( NAMED_UNIT(*) PLANE_ANGLE_UNIT() SI_UNIT($,.RADIAN.) ); -#869 = UNCERTAINTY_MEASURE_WITH_UNIT(LENGTH_MEASURE(1.E-04),#867, - 'distance_accuracy_value','Confusion accuracy'); -ENDSEC; -END-ISO-10303-21; - diff --git a/src/TEST_PY/test_unit/bielle_v1.py b/src/TEST_PY/test_unit/bielle_v1.py deleted file mode 100644 index 870a6e4..0000000 --- a/src/TEST_PY/test_unit/bielle_v1.py +++ /dev/null @@ -1,275 +0,0 @@ -# -*- coding: latin-1 -*- -# Copyright (C) 2009-2013 CEA/DEN, EDF R&D -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# - -# Francis KLOSS : 2011-2013 : CEA-Saclay, DEN, DM2S, SFME, LGLS, F-91191 Gif-sur-Yvette, France -# ============================================================================================= - -import math - -import geompy -import hexablock - -# Construire le modèle de bloc -# ============================ - -doc = hexablock.addDocument("bielle") - -# Construire les 2 grilles cylindriques -# ------------------------------------- - -centre_pb = doc.addVertex(0, 0, 0) -centre_gb = doc.addVertex(7, 0, 0) - -angle_px = math.pi / 3 -vecteur_px = doc.addVector(math.cos(angle_px), math.sin(angle_px), 0) -vecteur_gx = doc.addVector(1, 0, 0) - -vecteur_z = doc.addVector(0, 0, 1) - -grille_p = doc.makeCylindrical(centre_pb, vecteur_px, vecteur_z, 1, 360, 1, 1, 3, 1, False) -grille_g = doc.makeCylindrical(centre_gb, vecteur_gx, vecteur_z, 1, 360, 1, 1, 3, 1, False) - -# Relier les 2 grilles -# -------------------- - -quad_p = grille_p.getQuadJK(1, 2, 0) -quad_g = grille_g.getQuadJK(1, 1, 0) - -point_p1 = grille_p.getVertexIJK(1, 0, 0) -point_p2 = grille_p.getVertexIJK(1, 2, 0) - -point_g1 = grille_g.getVertexIJK(1, 1, 0) -point_g2 = grille_g.getVertexIJK(1, 2, 0) - -prisme = doc.joinQuad(quad_p, quad_g, point_p1, point_g1, point_p2, point_g2, 3) - -# Charger la géométrie -# ==================== - -bielle = geompy.ImportSTEP("bielle.stp") - -# Sélectionner des sous-parties de la géométrie -# --------------------------------------------- - -sommets = geompy.SubShapeAllSortedCentres(bielle, geompy.ShapeType["VERTEX"]) - -sommets_petit = [ 6, 8, 7, 9 ] -sommets_grand = [ 10, 12, 11, 13 ] - -aretes = geompy.SubShapeAllSortedCentres(bielle, geompy.ShapeType["EDGE"]) - -aretes_petit = [ 7, 9, 8, 10 ] -aretes_grand = [ 19, 21, 20, 22 ] - -ga_pbcd = aretes[ 0] -ga_pbe = aretes[ 2] - -ga_phcd = aretes[ 1] -ga_phe = aretes[ 3] - -ga_gbcd = aretes[27] -ga_gbe = aretes[25] - -ga_ghcd = aretes[28] -ga_ghe = aretes[26] - -# Associer le modèle de bloc avec la géométrie -# ============================================ - -doc.setShape(bielle) - -# Netoyer les associations implicites du prisme -# --------------------------------------------- - -for i in xrange( prisme.countEdge() ): - em = prisme.getEdge(i) - if em != None: - em.clearAssociation() - -# Associer les cercles extérieurs -# ------------------------------- - -def cercle(grille, k, ge, p): - ms = grille.getVertexIJK(0, 0, k) - - ma1 = grille.getEdgeJ(0, 2, k) - ma2 = grille.getEdgeJ(0, 1, k) - ma3 = grille.getEdgeJ(0, 0, k) - - doc.associateClosedLine(ms, ma1, [ ma2, ma3 ], ge, p, False, []) - -cercle(grille_p, 0, ga_pbe, 5.0/6) -cercle(grille_p, 1, ga_phe, 5.0/6) - -cercle(grille_g, 0, ga_gbe, 0) -cercle(grille_g, 1, ga_ghe, 0) - -# Associer les arcs extérieurs (excentrés) -# ---------------------------------------- - -def arc(grille, i1, i2, k, ge): - ma1 = grille.getEdgeJ(1, i1, k) - ma2 = grille.getEdgeJ(1, i2, k) - - doc.associateOpenedLine(ma1, [ ma2 ], ge, 0, [], 1) - -arc(grille_p, 1, 0, 0, ga_pbcd) -arc(grille_p, 1, 0, 1, ga_phcd) - -arc(grille_g, 0, 2, 0, ga_gbcd) -arc(grille_g, 0, 2, 1, ga_ghcd) - -# Associer les sommets des arcs de cercle de raccord -# -------------------------------------------------- - -hm = prisme.getHexa(1) -for i in xrange(0, 4): - vm = hm.getVertex(i) - ga = sommets[ sommets_petit[i] ] - vm.setAssociation(ga) - -hm = prisme.getHexa(2) -for i in xrange(0, 4): - vm = hm.getVertex(i) - ga = sommets[ sommets_grand[i] ] - vm.setAssociation(ga) - -# Associer les arcs de cercle de raccord -# -------------------------------------- - -hm = prisme.getHexa(0) -for i in xrange(0, 4): - em = hm.getEdge(i+8) - ga = aretes[ aretes_petit[i] ] - em.addAssociation(ga, 0, 1) - -hm = prisme.getHexa(2) -for i in xrange(0, 4): - em = hm.getEdge(i+8) - ga = aretes[ aretes_grand[i] ] - em.addAssociation(ga, 0, 1) - -# Arrondir des associations implicites cylindriques -# ------------------------------------------------- - -for h, i, ech in [ [0, 0, 0.95], [0, 1, 0.95], [2, 2, 0.85], [2, 3, 0.85] ]: - hm = prisme.getHexa(h) - em = hm.getEdge(i) - - va = em.getVertex(0).getAssociation() - vb = em.getVertex(1).getAssociation() - vax, vay, vaz = geompy.PointCoordinates(va) - vbx, vby, vbz = geompy.PointCoordinates(vb) - - va = em.getVertex(0) - vb = em.getVertex(1) - - print " vax, vay, vaz = ", vax, vay, vaz - vax = va.getAssoX (); - vay = va.getAssoY (); - vaz = va.getAssoZ (); - print " vax, vay, vaz = ", vax, vay, vaz - - print " vbx, vby, vbz = ", vbx, vby, vbz - vbx = vb.getAssoX (); - vby = vb.getAssoY (); - vbz = vb.getAssoZ (); - print " vbx, vby, vbz = ", vbx, vby, vbz - - vmx = ( vax + vbx ) / 2.0 * ech - vmy = ( vay + vby ) / 2.0 - vmz = ( vaz + vbz ) / 2.0 - vm = geompy.MakeVertex(vmx, vmy, vmz) - eg = geompy.MakeArc(va, vm, vb) - em.clearAssociation() - em.addAssociation(eg, 0, 1) - -# Mailler le modèle de bloc -# ========================= - -# Définir 5 groupes de faces -# -------------------------- - -groupe_petit = doc.addQuadGroup("Petit") -groupe_grand = doc.addQuadGroup("Grand") -groupe_bas = doc.addQuadGroup("Bas") -groupe_haut = doc.addQuadGroup("Haut") -groupe_contour = doc.addQuadGroup("Contour") - -# Constituer les groupes petit et grand -# ------------------------------------- - -for i in xrange(3): - groupe_petit.addElement( grille_p.getQuadJK(0, i, 0) ) - groupe_grand.addElement( grille_g.getQuadJK(0, i, 0) ) - -# Constituer les groupes bas et haut -# ---------------------------------- - -for i in xrange(3): - groupe_bas.addElement( grille_p.getQuadIJ(0, i, 0) ) - groupe_bas.addElement( grille_g.getQuadIJ(0, i, 0) ) - - groupe_haut.addElement( grille_p.getQuadIJ(0, i, 1) ) - groupe_haut.addElement( grille_g.getQuadIJ(0, i, 1) ) - -for i in xrange(3): - h = prisme.getHexa(i) - - groupe_bas.addElement( h.getQuad(2) ) - groupe_haut.addElement( h.getQuad(3) ) - -# Constituer le groupe contour -# ---------------------------- - -for i in xrange(2): - groupe_contour.addElement( grille_p.getQuadJK(1, i, 0) ) - -for i in [0, 2]: - groupe_contour.addElement( grille_g.getQuadJK(1, i, 0) ) - -for i in xrange(3): - h = prisme.getHexa(i) - - groupe_contour.addElement( h.getQuad(4) ) - groupe_contour.addElement( h.getQuad(5) ) - -# Définir 3 groupes de volumes -# ---------------------------- - -groupe_petit = doc.addHexaGroup("Petit") -groupe_grand = doc.addHexaGroup("Grand") -groupe_prisme = doc.addHexaGroup("Prisme") - -for i in xrange(3): - groupe_petit.addElement( grille_p.getHexa(i) ) - groupe_grand.addElement( grille_g.getHexa(i) ) - -for i in xrange(3): - groupe_prisme.addElement( prisme.getHexa(i) ) - -# Mailler le modèle de bloc avec association -# ------------------------------------------ - -hexablock.addLaws(doc, 0.003, True) - -blocs = hexablock.mesh(doc) - -muv, mue, muq, muh = hexablock.dump(doc, blocs) diff --git a/src/TEST_PY/test_unit/bielle_v5.py b/src/TEST_PY/test_unit/bielle_v5.py deleted file mode 100644 index 4c8192b..0000000 --- a/src/TEST_PY/test_unit/bielle_v5.py +++ /dev/null @@ -1,315 +0,0 @@ -# -*- coding: latin-1 -*- -# Copyright (C) 2009-2013 CEA/DEN, EDF R&D -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# - -# Francis KLOSS : 2011-2013 : CEA-Saclay, DEN, DM2S, SFME, LGLS, F-91191 Gif-sur-Yvette, France -# ============================================================================================= - -import math - -import geompy -import hexablock - -# Construire le modele de bloc -# ============================ - -doc = hexablock.addDocument("bielle_v5") - -# Construire les 2 grilles cylindriques -# ------------------------------------- - -centre_pb = doc.addVertex(-0.107, 0, -0.02) -centre_gb = doc.addVertex(0.119, 0, -0.02) - -angle_px = math.pi / 3 -vecteur_px = doc.addVector(math.cos(angle_px), math.sin(angle_px), 0) -vecteur_gx = doc.addVector(1, 0, 0) - -vecteur_z = doc.addVector(0, 0, 1) - -grille_p = doc.makeCylindrical(centre_pb, vecteur_px, vecteur_z, 0.012, 360, 0.04, 1, 3, 1, False) -grille_g = doc.makeCylindrical(centre_gb, vecteur_gx, vecteur_z, 0.025, 360, 0.04, 1, 3, 1, False) - -# Relier les 2 grilles -# -------------------- - -quad_p = grille_p.getQuadJK(1, 2, 0) -quad_g = grille_g.getQuadJK(1, 1, 0) - -point_p1 = grille_p.getVertexIJK(1, 0, 0) -point_p2 = grille_p.getVertexIJK(1, 2, 0) - -point_g1 = grille_g.getVertexIJK(1, 1, 0) -point_g2 = grille_g.getVertexIJK(1, 2, 0) - -prisme = doc.joinQuad(quad_p, quad_g, point_p1, point_g1, point_p2, point_g2, 3) - -# Charger la geometrie -# ==================== - -bielle = geompy.ImportSTEP("bielle.stp") - -# Selectionner des sous-parties de la geometrie -# --------------------------------------------- - -sommets = geompy.SubShapeAllSortedCentres (bielle, geompy.ShapeType["VERTEX"]) -nodes_id = geompy.SubShapeAllSortedCentresIDs (bielle, geompy.ShapeType["VERTEX"]) - ## 0 1 2 3 4 5 6 7 8 9 - ## 23, 70, 15, 52, 17, 57, 13, 47, 19, 62, - ## 11, 42, 6, 30, 9, 37, 7, 32, 26, 75] - -sommets_petit = [ 6, 8, 7, 9 ] -sommets_grand = [ 10, 12, 11, 13 ] -node_little_subid = [ 13, 19, 47, 62 ] -node_big_subid = [ 11, 6, 42, 30 ] - -aretes = geompy.SubShapeAllSortedCentres (bielle, geompy.ShapeType["EDGE"]) -edge_id = geompy.SubShapeAllSortedCentresIDs (bielle, geompy.ShapeType["EDGE"]) - ## 0 1 2 3 4 5 6 7 8 9 - ## 16, 56, 22, 71, 69, 53, 58, 14, 51, 18, - ## 61, 48, 63, 12, 46, 20, 66, 43, 29, 10, - ## 41, 5, 31, 38, 33, 25, 76, 8, 36, 74 - - -aretes_petit = [ 7, 9, 8, 10 ] -aretes_grand = [ 19, 21, 20, 22 ] -arc_little_subid = [ 14, 18, 51, 61 ] -arc_big_subid = [ 10, 5, 41, 31 ] - -subid_pbcd = 16 -subid_pbe = 22 - -subid_phcd = 56 -subid_phe = 71 - -subid_gbcd = 8 -subid_gbe = 25 - -subid_ghcd = 36 -subid_ghe = 76 - -ga_pbcd = aretes[ 0] -ga_pbe = aretes[ 2] - -ga_phcd = aretes[ 1] -ga_phe = aretes[ 3] - -ga_gbcd = aretes[27] -ga_gbe = aretes[25] - -ga_ghcd = aretes[28] -ga_ghe = aretes[26] - -# Associer le modele de bloc avec la geometrie -# ============================================ - -geometry = doc.addShape(bielle, "bielle") -doc.setLevel (748) - -# Nettoyer les associations implicites du document -# ------------------------------------------------ - -doc.clearAssociation() - -# Associer les cercles exterieurs -# ------------------------------- - -def cercle(grille, k, subid, p): - ms = grille.getVertexIJK(0, 0, k) - - ma1 = grille.getEdgeJ (0, 2, k) - ma2 = grille.getEdgeJ (0, 1, k) - ma3 = grille.getEdgeJ (0, 0, k) - - doc.associateClosedLine (ms, [ma1, ma2, ma3 ], [geometry], [subid], p, False) - -cercle (grille_p, 0, subid_pbe, 5.0/6) -cercle (grille_p, 1, subid_phe, 5.0/6) - -cercle (grille_g, 0, subid_gbe, 0) -cercle (grille_g, 1, subid_ghe, 0) - -# Associer les arcs exterieurs (excentres) -# ---------------------------------------- - -def arc(grille, i1, i2, k, subid): - ma1 = grille.getEdgeJ(1, i1, k) - ma2 = grille.getEdgeJ(1, i2, k) - - doc.associateOpenedLine ([ma1, ma2 ], [geometry], [subid], 0, 1) - -arc(grille_p, 1, 0, 0, subid_pbcd) -arc(grille_p, 1, 0, 1, subid_phcd) - -arc(grille_g, 0, 2, 0, subid_gbcd) -arc(grille_g, 0, 2, 1, subid_ghcd) - -# Associer les sommets des arcs de cercle de raccord -# -------------------------------------------------- - -hm = prisme.getHexa(1) -for i in xrange(0, 4): - vm = hm.getVertex(i) - subid = node_little_subid [i] - vm.setAssociation (geometry, subid) - -hm = prisme.getHexa(2) -for i in xrange(0, 4): - vm = hm.getVertex(i) - subid = node_big_subid [i] - vm.setAssociation (geometry, subid) - -# Associer les arcs de cercle de raccord -# -------------------------------------- - -hm = prisme.getHexa(0) -for i in xrange(0, 4): - em = hm.getEdge(i+8) - subid = arc_little_subid [i] - em.addAssociation (geometry, subid, 0, 1) - -hm = prisme.getHexa(2) -for i in xrange(0, 4): - em = hm.getEdge(i+8) - subid = arc_big_subid [i] - em.addAssociation (geometry, subid, 0, 1) - -# Arrondir des associations implicites cylindriques -# ------------------------------------------------- - -larc = [] -for h, i, ech in [ [0, 0, 0.95], [0, 1, 0.95], [2, 2, 0.85], [2, 3, 0.85] ]: - hm = prisme.getHexa(h) - em = hm.getEdge(i) - - v1 = em.getVertex(0) - v2 = em.getVertex(1) - - vax = v1.getAssoX (); - vay = v1.getAssoY (); - vaz = v1.getAssoZ (); - - vbx = v2.getAssoX (); - vby = v2.getAssoY (); - vbz = v2.getAssoZ (); - - vmx = ( vax + vbx ) / 2.0 * ech - vmy = ( vay + vby ) / 2.0 - vmz = ( vaz + vbz ) / 2.0 - - va = geompy.MakeVertex(vax, vay, vaz) - vb = geompy.MakeVertex(vbx, vby, vbz) - vm = geompy.MakeVertex(vmx, vmy, vmz) - eg = geompy.MakeArc(va, vm, vb) - larc.append(eg) - -arc = geompy.MakeCompound(larc) -shape = doc.addShape (arc, "arc") - -# Mailler le modele de bloc -for h, i in [ [0, 0], [0, 1], [2, 2], [2, 3] ]: - hm = prisme.getHexa(h) - em = hm.getEdge(i) - - em.clearAssociation() - shape_subid = 2+3*i - em.addAssociation (shape, shape_subid, 0.0, 1.0) - -# Mailler le modele de bloc -# ========================= - -# Definir 5 groupes de faces -# -------------------------- - -groupe_petit = doc.addQuadGroup("Petit") -groupe_grand = doc.addQuadGroup("Grand") -groupe_bas = doc.addQuadGroup("Bas") -groupe_haut = doc.addQuadGroup("Haut") -groupe_contour = doc.addQuadGroup("Contour") - -# Constituer les groupes petit et grand -# ------------------------------------- - -for i in xrange(3): - groupe_petit.addElement( grille_p.getQuadJK(0, i, 0) ) - groupe_grand.addElement( grille_g.getQuadJK(0, i, 0) ) - -# Constituer les groupes bas et haut -# ---------------------------------- - -for i in xrange(3): - groupe_bas.addElement( grille_p.getQuadIJ(0, i, 0) ) - groupe_bas.addElement( grille_g.getQuadIJ(0, i, 0) ) - - groupe_haut.addElement( grille_p.getQuadIJ(0, i, 1) ) - groupe_haut.addElement( grille_g.getQuadIJ(0, i, 1) ) - -for i in xrange(3): - h = prisme.getHexa(i) - - groupe_bas.addElement( h.getQuad(2) ) - groupe_haut.addElement( h.getQuad(3) ) - -# Constituer le groupe contour -# ---------------------------- - -for i in xrange(2): - groupe_contour.addElement( grille_p.getQuadJK(1, i, 0) ) - -for i in [0, 2]: - groupe_contour.addElement( grille_g.getQuadJK(1, i, 0) ) - -for i in xrange(3): - h = prisme.getHexa(i) - - groupe_contour.addElement( h.getQuad(4) ) - groupe_contour.addElement( h.getQuad(5) ) - -# Definir 3 groupes de volumes -# ---------------------------- - -groupe_petit = doc.addHexaGroup("Petit") -groupe_grand = doc.addHexaGroup("Grand") -groupe_prisme = doc.addHexaGroup("Prisme") - -for i in xrange(3): - groupe_petit.addElement( grille_p.getHexa(i) ) - groupe_grand.addElement( grille_g.getHexa(i) ) - -for i in xrange(3): - groupe_prisme.addElement( prisme.getHexa(i) ) - -# Mailler le modele de bloc avec association -# ------------------------------------------ - -########## hexablock.addLaws(doc, 0.003, True) Ne marche plus !!!! - -law = doc.addLaw("Uniform", 4) - -for j in range(doc.countPropagation()): - propa = doc.getPropagation(j) - propa.setLaw(law) - -doc.save("bielle_v5") -doc.setName("bielle_v5") -hexablock.addToStudy(doc) - -blocs = hexablock.mesh(doc) - -muv, mue, muq, muh = hexablock.dump(doc, blocs) diff --git a/src/TEST_PY/test_unit/tuyau.brep b/src/TEST_PY/test_unit/tuyau.brep deleted file mode 100755 index aa50342..0000000 --- a/src/TEST_PY/test_unit/tuyau.brep +++ /dev/null @@ -1,425 +0,0 @@ - -CASCADE Topology V1, (c) Matra-Datavision -Locations 0 -Curve2ds 28 -1 0 0 0 1 -1 0 0 0 1 -1 0 0 1 0 -3 5.0000000000000009 0 -1 -0 -0 1 5 2 -1 3.1415926535897931 0 0 1 -1 3.1415926535897931 0 0 1 -1 0 1 1 0 -2 0 -4.5 -6.123233995736766e-17 1 1 6.123233995736766e-17 4.5 -3 5.0000000000000009 0 -1 -0 -0 1 5 2 -2 0 -4.5 -6.123233995736766e-17 1 1 6.123233995736766e-17 4.5 -1 0 0 1 0 -1 0 0 1 0 -1 0 0 1 0 -3 5.0000000000000009 0 -1 -0 -0 1 4 1.6000000000000001 -1 10.000000000000002 2.4492935982947064e-16 -1 -4.8985871965894112e-17 -1 10.000000000000002 2.4492935982947064e-16 -1 -4.8985871965894112e-17 -1 0 0 0 1 -1 0 0 0 1 -1 3.1415926535897931 0 0 1 -1 3.1415926535897931 0 0 1 -1 0 1 1 0 -2 0 -4.5 -6.123233995736766e-17 1 1 6.123233995736766e-17 3.6000000000000001 -3 5.0000000000000009 0 -1 -0 -0 1 4 1.6000000000000001 -2 0 -4.5 -6.123233995736766e-17 1 1 6.123233995736766e-17 3.6000000000000001 -1 0 -0 6.1232339957367759e-17 -1 -1 0 -0 6.1232339957367759e-17 -1 -1 1.1021821192326179e-15 -9 -1.8369701987210317e-16 1 -1 1.1021821192326179e-15 -9 -1.8369701987210317e-16 1 -Curves 16 -7 1 0 7 8 2 3.5355339059327386 -3.5355339059327386 4.4408920985006262e-16 1 9.6048855423786907 5.6779402750195374 -5.742238377723344e-16 0.99999999999999989 18.214762018199355 14.344823330601708 -3.1843740466902976e-15 1.0000000000000058 31.904943295729403 14.237869646355081 1.2028108957336017e-14 0.99999999999998868 37.172160522651843 17.64988141136174 -8.7773709183773399e-15 1.0000000000000071 52.812746249130484 14.81612372870539 2.3298725788871153e-15 0.99999999999999833 63.447227270624914 15.5 0 1 75 15.5 0 1 - 0 8 1 8 -7 0 0 10 11 2 3.5355339059327386 -3.5355339059327386 4.4408920985006262e-16 3.5355339059328195 -3.5355339059328195 -0.62831853071801369 3.1478202812511471 -3.1478202812511471 -1.2566370068591419 2.3723834259365431 -2.3723834259365431 -1.7988274783398068 1.2775986014269276 -1.2775986014269276 -2.1687580291315651 1.1719514247943195e-12 -1.1719514247943195e-12 -2.3005529012372383 -1.2775986014289811 1.2775986014289811 -2.1687580291316819 -2.3723834259351833 2.3723834259351833 -1.7988274783396521 -3.1478202812517777 3.1478202812517777 -1.256637006859245 -3.5355339059326556 3.5355339059326556 -0.62831853071798205 -3.5355339059327386 3.5355339059327386 2.2204460492503131e-16 - 0 11 3.1415926535897931 11 -7 1 0 7 8 2 -3.5355339059327386 3.5355339059327386 2.2204460492503131e-16 1 3.5505706064268643 12.92839695201633 -1.5975347728255742e-15 0.99999999999999989 14.233536249242547 23.186298181990903 -5.559004606855246e-15 1.0000000000000058 28.117657554132329 15.130373948082415 1.4762487599297348e-14 0.99999999999998868 41.978695964977959 33.453377516518131 -1.3515968997086305e-14 1.0000000000000071 51.368462505527539 21.938158843438853 1.6901778625232096e-15 0.99999999999999833 63.447227270624914 24.500000000000004 -1.5086264655892687e-15 1 75.000000000000014 24.5 -1.5086264655892687e-15 1 - 0 8 1 8 -7 0 0 10 11 2 75 15.5 0 74.999999999999105 15.49999999999994 -1.4137166941154202 75.000000000003425 15.993478879707238 -2.8274332654334842 74.999999999990621 16.98044886550209 -4.0473618262637086 75.000000000018389 18.373882457535071 -4.8797055655472787 74.999999999974861 19.999999999996184 -5.1762440277824107 75.00000000002386 21.626117542471153 -4.879705565547396 74.999999999984084 23.019551134494474 -4.047361826263554 75.000000000007219 24.006521120294067 -2.8274332654335823 74.999999999998124 24.499999999999748 -1.4137166941153954 75.000000000000014 24.5 -1.5086264655892687e-15 - 0 11 3.1415926535897931 11 -7 0 0 10 11 2 3.5355339059327386 -3.5355339059327386 -4.4408920985006262e-16 3.5355339059328195 -3.5355339059328195 0.62831853071801369 3.1478202812511471 -3.1478202812511471 1.2566370068591419 2.3723834259365431 -2.3723834259365431 1.7988274783398068 1.2775986014269276 -1.2775986014269276 2.1687580291315651 1.1719514247943195e-12 -1.1719514247943195e-12 2.3005529012372383 -1.2775986014289811 1.2775986014289811 2.1687580291316819 -2.3723834259351833 2.3723834259351833 1.7988274783396521 -3.1478202812517777 3.1478202812517777 1.256637006859245 -3.5355339059326556 3.5355339059326556 0.62831853071798205 -3.5355339059327386 3.5355339059327386 -2.2204460492503131e-16 - 0 11 3.1415926535897931 11 -7 0 0 10 11 2 75 15.5 0 74.999999999999105 15.49999999999994 1.4137166941154202 75.000000000003425 15.993478879707238 2.8274332654334842 74.999999999990621 16.98044886550209 4.0473618262637086 75.000000000018389 18.373882457535071 4.8797055655472787 74.999999999974861 19.999999999996184 5.1762440277824107 75.00000000002386 21.626117542471153 4.879705565547396 74.999999999984084 23.019551134494474 4.047361826263554 75.000000000007219 24.006521120294067 2.8274332654335823 74.999999999998124 24.499999999999748 1.4137166941153954 75.000000000000014 24.5 1.5086264655892687e-15 - 0 11 3.1415926535897931 11 -1 3.5355339059327378 -3.5355339059327378 0 -0.70710678118654757 0.70710678118654757 0 -7 0 0 10 11 2 2.8284271247461912 -2.8284271247461912 4.4408920985006262e-16 2.8284271247462276 -2.8284271247462276 -0.50265482457439326 2.5182562250010312 -2.5182562250010312 -1.0053096054873778 1.8979067407489889 -1.8979067407489889 -1.4390619826717084 1.0220788811419279 -1.0220788811419279 -1.7350064233054643 4.6762593797211755e-13 -4.6762593797211755e-13 -1.8404423209895382 -1.0220788811427488 1.0220788811427488 -1.73500642330558 -1.8979067407484411 1.8979067407484411 -1.4390619826715594 -2.5182562250012874 2.5182562250012874 -1.0053096054874726 -2.8284271247461601 2.8284271247461601 -0.50265482457436672 -2.8284271247461903 2.8284271247461903 2.2204460492503131e-16 - 0 11 3.1415926535897931 11 -1 -3.5355339059327378 3.5355339059327378 -2.4492935982947064e-16 0.70710678118654757 -0.70710678118654757 4.89858719658941e-17 -7 1 0 7 8 2 2.8284271247461912 -2.8284271247461912 4.4408920985006262e-16 1 9.0159805468327825 6.4281751612018496 2.0133058846416192e-16 1 17.777778499972118 15.165580394866463 -8.0236115873956118e-16 0.99999999999998979 31.571168515292573 14.409868988290894 5.8731757129539919e-15 1.0000000000000278 37.64839458161984 19.182925960538899 -3.5800583136374853e-15 0.99999999999997424 52.67616934408646 15.539676739546138 1.5172914623676952e-15 1.0000000000000095 63.449895514329839 16.399999999999999 4.4408920985006262e-16 1 75 16.399999999999999 4.4408920985006262e-16 1 - 0 8 1 8 -7 1 0 7 8 2 -2.8284271247461903 2.8284271247461903 2.2204460492503131e-16 1 4.1746945180469197 12.228938087750445 -4.3498515050138725e-16 1 14.587149100985133 22.237911020917949 -1.2111033831702273e-15 0.99999999999998979 28.549479609839526 15.123956971356947 2.3425383791132212e-15 1.0000000000000278 41.490579147983965 31.827861148346255 -1.0269151715707795e-15 0.99999999999997424 51.521030626222753 21.236230289860686 5.1873396212586411e-16 1.0000000000000095 63.449895514329832 23.600000000000001 2.141842990487521e-16 1 75.000000000000014 23.600000000000001 2.1418429904875208e-16 1 - 0 8 1 8 -7 0 0 10 11 2 75 16.399999999999999 4.4408920985006262e-16 74.999999999999105 16.399999999999604 -1.1309733552923305 75.000000000003425 16.79478310376723 -2.2619466123468186 74.999999999990621 17.584359092398095 -3.2378894610108695 75.000000000018389 18.699105966034271 -3.9037644524379904 74.999999999974861 19.999999999989107 -4.1409952222257402 75.00000000002386 21.300894033984143 -3.9037644524380775 74.999999999984084 22.415640907590802 -3.2378894610107412 75.000000000007219 23.205216896237388 -2.261946612346911 74.999999999998124 23.599999999999262 -1.1309733552923047 75.000000000000014 23.600000000000001 2.1418429904875208e-16 - 0 11 3.1415926535897931 11 -7 0 0 10 11 2 2.8284271247461912 -2.8284271247461912 -4.4408920985006262e-16 2.8284271247462276 -2.8284271247462276 0.50265482457439326 2.5182562250010312 -2.5182562250010312 1.0053096054873778 1.8979067407489889 -1.8979067407489889 1.4390619826717084 1.0220788811419279 -1.0220788811419279 1.7350064233054643 4.6762593797211755e-13 -4.6762593797211755e-13 1.8404423209895382 -1.0220788811427488 1.0220788811427488 1.73500642330558 -1.8979067407484411 1.8979067407484411 1.4390619826715594 -2.5182562250012874 2.5182562250012874 1.0053096054874726 -2.8284271247461601 2.8284271247461601 0.50265482457436672 -2.8284271247461903 2.8284271247461903 -2.2204460492503131e-16 - 0 11 3.1415926535897931 11 -7 0 0 10 11 2 75 16.399999999999999 -4.4408920985006262e-16 74.999999999999105 16.399999999999604 1.1309733552923305 75.000000000003425 16.79478310376723 2.2619466123468186 74.999999999990621 17.584359092398095 3.2378894610108695 75.000000000018389 18.699105966034271 3.9037644524379904 74.999999999974861 19.999999999989107 4.1409952222257402 75.00000000002386 21.300894033984143 3.9037644524380775 74.999999999984084 22.415640907590802 3.2378894610107412 75.000000000007219 23.205216896237388 2.261946612346911 74.999999999998124 23.599999999999262 1.1309733552923047 75.000000000000014 23.600000000000001 -2.1418429904875208e-16 - 0 11 3.1415926535897931 11 -1 75 15.5 2.7554552980815448e-16 0 1 -6.1232339957367759e-17 -1 75 24.5 -8.2663658942446333e-16 0 -1 1.8369701987210317e-16 -Polygon3D 0 -PolygonOnTriangulations 0 -Surfaces 8 -9 1 0 0 0 10 7 11 8 2 2 3.5355339059327386 -3.5355339059327386 4.4408920985006262e-16 1 9.6048855423786907 5.6779402750195374 -5.742238377723344e-16 0.99999999999999989 18.214762018199355 14.344823330601708 -3.1843740466902976e-15 1.0000000000000058 31.904943295729403 14.237869646355081 1.2028108957336017e-14 0.99999999999998868 37.172160522651843 17.64988141136174 -8.7773709183773399e-15 1.0000000000000071 52.812746249130484 14.81612372870539 2.3298725788871153e-15 0.99999999999999833 63.447227270624914 15.5 0 1 75 15.5 0 1 -3.5355339059328195 -3.5355339059328195 -0.62831853071801369 1 9.604885542379284 5.6779402750195667 -0.73164124169730604 0.99999999999999989 18.214762018200037 14.344823330601164 -1.0469888149911395 1.0000000000000058 31.904943295730241 14.237869646359984 -0.39948502431303995 0.99999999999998868 37.172160522650039 17.649881411357878 -2.4092611365725189 1.0000000000000071 52.812746249132488 14.816123728706323 -1.1284938924273324 0.99999999999999833 63.447227270625511 15.499999999999938 -1.4137166941154204 1 74.999999999999105 15.49999999999994 -1.4137166941154202 1 -3.1478202812511471 -3.1478202812511471 -1.2566370068591419 1 9.2729214810444986 6.0754899681670214 -1.463282419842884 0.99999999999999989 17.996467481271083 14.829610120007128 -2.0939775390394035 1.0000000000000058 31.697282681850869 14.286806537772526 -0.79897001392370559 0.99999999999998868 37.435707603251764 18.516402695092999 -4.8185220638754691 1.0000000000000071 52.733554746481623 15.206631940884614 -2.2569876868315566 0.99999999999999833 63.447227270622655 15.993478879707236 -2.8274332654334846 1 75.000000000003425 15.993478879707238 -2.8274332654334842 1 -2.3723834259365431 -2.3723834259365431 -1.7988274783398068 1 8.6089851336806884 6.8705992041127821 -2.0946324284719631 0.99999999999999989 17.559872998990649 15.799195709829741 -2.9974482015801436 1.0000000000000058 31.28195630911361 14.384681533173158 -1.1436948041305759 0.99999999999998868 37.962808294048074 20.249466731308765 -6.897528758237212 1.0000000000000071 52.575169779178417 15.987658040456525 -3.2307909501209608 0.99999999999999833 63.447227270628531 16.98044886550209 -4.0473618262637086 1 74.999999999990621 16.98044886550209 -4.0473618262637086 1 -1.2775986014269276 -1.2775986014269276 -2.1687580291315651 1 7.6716200438365361 7.9931580809223801 -2.5253955435015549 0.99999999999999989 16.943475918531011 17.168085494405027 -3.6138762234641644 1.0000000000000058 30.695586178585053 14.522864363617154 -1.3788967086524706 0.99999999999998868 38.706984732566291 22.696258103010518 -8.3160119887771682 1.0000000000000071 52.351557169731038 17.090333926265838 -3.8952061261517525 0.99999999999999833 63.447227270621916 18.373882457535071 -4.8797055655472787 1 75.000000000018389 18.373882457535071 -4.8797055655472787 1 -1.1719514247943195e-12 -1.1719514247943195e-12 -2.3005529012372383 1 6.5777280744114703 9.3031686135167266 -2.6788631863653043 0.99999999999999989 16.224149133738432 18.76556075628185 -3.8334905595379762 1.0000000000000058 30.011300424905656 14.684121797300168 -1.462691909845385 0.99999999999998868 39.575428243818408 25.551629463869848 -8.8213739156197359 1.0000000000000071 52.09060437734513 18.377141286086164 -4.1319168086379028 0.99999999999999833 63.447227270625667 19.999999999996184 -5.1762440277824107 1 74.999999999974861 19.999999999996184 -5.1762440277824107 1 --1.2775986014289811 1.2775986014289811 -2.1687580291316819 1 5.4838361049540145 10.613179146115629 -2.5253955435017352 0.99999999999999989 15.504822348881138 20.363036018212849 -3.613876223464215 1.0000000000000058 29.327014671318086 14.845379230678686 -1.3788967086533002 0.99999999999998868 40.443871755058836 28.407000824990529 -8.3160119887766726 1.0000000000000071 51.829651584897462 19.663948645853612 -3.8952061261520572 0.99999999999999833 63.447227270625788 21.626117542471153 -4.879705565547396 1 75.00000000002386 21.626117542471153 -4.879705565547396 1 --2.3723834259351833 2.3723834259351833 -1.7988274783396521 1 4.5464710151344043 11.735738022921637 -2.0946324284717539 0.99999999999999989 14.888425268470534 21.73192580274673 -2.9974482015801169 1.0000000000000058 28.740644540721632 14.983562061355201 -1.1436948041293928 0.99999999999998868 41.188048193587157 30.853792196494638 -6.8975287582379137 1.0000000000000071 51.606038975498372 20.766624531703982 -3.2307909501205487 0.99999999999999833 63.447227270623706 23.019551134494478 -4.047361826263554 1 74.999999999984084 23.019551134494474 -4.047361826263554 1 --3.1478202812517777 3.1478202812517777 -1.256637006859245 1 3.8825346677568429 12.530847258869537 -1.4632824198430057 0.99999999999999989 14.451830786163059 22.701511392593083 -2.093977539039428 1.0000000000000058 28.32531816801977 15.081437056623322 -0.79897001392448364 0.99999999999998868 41.715148884378252 32.586856232821489 -4.8185220638750348 1.0000000000000071 51.447654008166793 21.547650631251887 -2.2569876868317986 0.99999999999999833 63.447227270625731 24.006521120294064 -2.8274332654335819 1 75.000000000007219 24.006521120294067 -2.8274332654335823 1 --3.5355339059326556 3.5355339059326556 -0.62831853071798205 1 3.5505706064273257 12.928396952016087 -0.73164124169727363 0.99999999999999989 14.233536249244064 23.186298181990281 -1.0469888149911422 1.0000000000000058 28.117657554128364 15.130373948086152 -0.39948502431278238 0.99999999999998868 41.978695964980815 33.453377516515026 -2.4092611365726784 1.0000000000000071 51.368462505527397 21.938158843439282 -1.1284938924272563 0.99999999999999833 63.447227270624651 24.499999999999744 -1.4137166941153956 1 74.999999999998124 24.499999999999748 -1.4137166941153954 1 --3.5355339059327386 3.5355339059327386 2.2204460492503131e-16 1 3.5505706064268643 12.92839695201633 -1.5975347728255742e-15 0.99999999999999989 14.233536249242547 23.186298181990903 -5.559004606855246e-15 1.0000000000000058 28.117657554132329 15.130373948082415 1.4762487599297348e-14 0.99999999999998868 41.978695964977959 33.453377516518131 -1.3515968997086305e-14 1.0000000000000071 51.368462505527539 21.938158843438853 1.6901778625232096e-15 0.99999999999999833 63.447227270624914 24.500000000000004 -1.5086264655892687e-15 1 75.000000000000014 24.5 -1.5086264655892687e-15 1 - -0 11 -3.1415926535897931 11 - -0 8 -1 8 - -9 1 0 0 0 10 7 11 8 2 2 3.5355339059327386 -3.5355339059327386 -4.4408920985006262e-16 1 9.6048855423786907 5.6779402750195374 5.742238377723344e-16 0.99999999999999989 18.214762018199355 14.344823330601708 3.1843740466902976e-15 1.0000000000000058 31.904943295729403 14.237869646355081 -1.2028108957336017e-14 0.99999999999998868 37.172160522651843 17.64988141136174 8.7773709183773399e-15 1.0000000000000071 52.812746249130484 14.81612372870539 -2.3298725788871153e-15 0.99999999999999833 63.447227270624914 15.5 0 1 75 15.5 0 1 -3.5355339059328195 -3.5355339059328195 0.62831853071801369 1 9.604885542379284 5.6779402750195667 0.73164124169730604 0.99999999999999989 18.214762018200037 14.344823330601164 1.0469888149911395 1.0000000000000058 31.904943295730241 14.237869646359984 0.39948502431303995 0.99999999999998868 37.172160522650039 17.649881411357878 2.4092611365725189 1.0000000000000071 52.812746249132488 14.816123728706323 1.1284938924273324 0.99999999999999833 63.447227270625511 15.499999999999938 1.4137166941154204 1 74.999999999999105 15.49999999999994 1.4137166941154202 1 -3.1478202812511471 -3.1478202812511471 1.2566370068591419 1 9.2729214810444986 6.0754899681670214 1.463282419842884 0.99999999999999989 17.996467481271083 14.829610120007128 2.0939775390394035 1.0000000000000058 31.697282681850869 14.286806537772526 0.79897001392370559 0.99999999999998868 37.435707603251764 18.516402695092999 4.8185220638754691 1.0000000000000071 52.733554746481623 15.206631940884614 2.2569876868315566 0.99999999999999833 63.447227270622655 15.993478879707236 2.8274332654334846 1 75.000000000003425 15.993478879707238 2.8274332654334842 1 -2.3723834259365431 -2.3723834259365431 1.7988274783398068 1 8.6089851336806884 6.8705992041127821 2.0946324284719631 0.99999999999999989 17.559872998990649 15.799195709829741 2.9974482015801436 1.0000000000000058 31.28195630911361 14.384681533173158 1.1436948041305759 0.99999999999998868 37.962808294048074 20.249466731308765 6.897528758237212 1.0000000000000071 52.575169779178417 15.987658040456525 3.2307909501209608 0.99999999999999833 63.447227270628531 16.98044886550209 4.0473618262637086 1 74.999999999990621 16.98044886550209 4.0473618262637086 1 -1.2775986014269276 -1.2775986014269276 2.1687580291315651 1 7.6716200438365361 7.9931580809223801 2.5253955435015549 0.99999999999999989 16.943475918531011 17.168085494405027 3.6138762234641644 1.0000000000000058 30.695586178585053 14.522864363617154 1.3788967086524706 0.99999999999998868 38.706984732566291 22.696258103010518 8.3160119887771682 1.0000000000000071 52.351557169731038 17.090333926265838 3.8952061261517525 0.99999999999999833 63.447227270621916 18.373882457535071 4.8797055655472787 1 75.000000000018389 18.373882457535071 4.8797055655472787 1 -1.1719514247943195e-12 -1.1719514247943195e-12 2.3005529012372383 1 6.5777280744114703 9.3031686135167266 2.6788631863653043 0.99999999999999989 16.224149133738432 18.76556075628185 3.8334905595379762 1.0000000000000058 30.011300424905656 14.684121797300168 1.462691909845385 0.99999999999998868 39.575428243818408 25.551629463869848 8.8213739156197359 1.0000000000000071 52.09060437734513 18.377141286086164 4.1319168086379028 0.99999999999999833 63.447227270625667 19.999999999996184 5.1762440277824107 1 74.999999999974861 19.999999999996184 5.1762440277824107 1 --1.2775986014289811 1.2775986014289811 2.1687580291316819 1 5.4838361049540145 10.613179146115629 2.5253955435017352 0.99999999999999989 15.504822348881138 20.363036018212849 3.613876223464215 1.0000000000000058 29.327014671318086 14.845379230678686 1.3788967086533002 0.99999999999998868 40.443871755058836 28.407000824990529 8.3160119887766726 1.0000000000000071 51.829651584897462 19.663948645853612 3.8952061261520572 0.99999999999999833 63.447227270625788 21.626117542471153 4.879705565547396 1 75.00000000002386 21.626117542471153 4.879705565547396 1 --2.3723834259351833 2.3723834259351833 1.7988274783396521 1 4.5464710151344043 11.735738022921637 2.0946324284717539 0.99999999999999989 14.888425268470534 21.73192580274673 2.9974482015801169 1.0000000000000058 28.740644540721632 14.983562061355201 1.1436948041293928 0.99999999999998868 41.188048193587157 30.853792196494638 6.8975287582379137 1.0000000000000071 51.606038975498372 20.766624531703982 3.2307909501205487 0.99999999999999833 63.447227270623706 23.019551134494478 4.047361826263554 1 74.999999999984084 23.019551134494474 4.047361826263554 1 --3.1478202812517777 3.1478202812517777 1.256637006859245 1 3.8825346677568429 12.530847258869537 1.4632824198430057 0.99999999999999989 14.451830786163059 22.701511392593083 2.093977539039428 1.0000000000000058 28.32531816801977 15.081437056623322 0.79897001392448364 0.99999999999998868 41.715148884378252 32.586856232821489 4.8185220638750348 1.0000000000000071 51.447654008166793 21.547650631251887 2.2569876868317986 0.99999999999999833 63.447227270625731 24.006521120294064 2.8274332654335819 1 75.000000000007219 24.006521120294067 2.8274332654335823 1 --3.5355339059326556 3.5355339059326556 0.62831853071798205 1 3.5505706064273257 12.928396952016087 0.73164124169727363 0.99999999999999989 14.233536249244064 23.186298181990281 1.0469888149911422 1.0000000000000058 28.117657554128364 15.130373948086152 0.39948502431278238 0.99999999999998868 41.978695964980815 33.453377516515026 2.4092611365726784 1.0000000000000071 51.368462505527397 21.938158843439282 1.1284938924272563 0.99999999999999833 63.447227270624651 24.499999999999744 1.4137166941153956 1 74.999999999998124 24.499999999999748 1.4137166941153954 1 --3.5355339059327386 3.5355339059327386 -2.2204460492503131e-16 1 3.5505706064268643 12.92839695201633 1.5975347728255742e-15 0.99999999999999989 14.233536249242547 23.186298181990903 5.559004606855246e-15 1.0000000000000058 28.117657554132329 15.130373948082415 -1.4762487599297348e-14 0.99999999999998868 41.978695964977959 33.453377516518131 1.3515968997086305e-14 1.0000000000000071 51.368462505527539 21.938158843438853 -1.6901778625232096e-15 0.99999999999999833 63.447227270624914 24.500000000000004 1.5086264655892687e-15 1 75.000000000000014 24.5 1.5086264655892687e-15 1 - -0 11 -3.1415926535897931 11 - -0 8 -1 8 - -1 3.5355339059327378 -3.5355339059327378 0 -0.70710678118654757 -0.70710678118654757 0 -0.70710678118654757 0.70710678118654757 0 -0 0 -1 -1 75 15.5 2.7554552980815448e-16 -1 0 0 0 0 -1 -0 -1 -0 -1 3.5355339059327378 -3.5355339059327378 0 -0.70710678118654757 -0.70710678118654757 -0 -0.70710678118654757 0.70710678118654757 -0 -0 -0 1 -1 75 15.5 -2.7554552980815448e-16 -1 -0 -0 -0 0 1 -0 -1 0 -9 1 0 0 0 10 7 11 8 2 2 2.8284271247461912 -2.8284271247461912 4.4408920985006262e-16 1 9.0159805468327825 6.4281751612018496 2.0133058846416192e-16 1 17.777778499972118 15.165580394866463 -8.0236115873956118e-16 0.99999999999998979 31.571168515292573 14.409868988290894 5.8731757129539919e-15 1.0000000000000278 37.64839458161984 19.182925960538899 -3.5800583136374853e-15 0.99999999999997424 52.67616934408646 15.539676739546138 1.5172914623676952e-15 1.0000000000000095 63.449895514329839 16.399999999999999 4.4408920985006262e-16 1 75 16.399999999999999 4.4408920985006262e-16 1 -2.8284271247462276 -2.8284271247462276 -0.50265482457439326 1 9.0159805468328216 6.4281751612018621 -0.58553428033384047 1 17.777778499971209 15.165580394865655 -0.83702922341251151 0.99999999999998979 31.571168515297988 14.409868988295917 -0.32030380321158969 1.0000000000000278 37.648394581614838 19.182925960534281 -1.9273256235209786 0.99999999999997424 52.676169344089331 15.539676739546854 -0.90272885493142008 1.0000000000000095 63.449895514330436 16.399999999999601 -1.1309733552923305 1 74.999999999999105 16.399999999999604 -1.1309733552923305 1 -2.5182562250010312 -2.5182562250010312 -1.0053096054873778 1 8.7505280572964637 6.7462367156950842 -1.1710685098071594 1 17.602833142044837 15.553363260898562 -1.674058374119779 0.99999999999998979 31.405486331285697 14.449023136926375 -0.64060757859783735 1.0000000000000278 37.85906535224138 19.876260232829232 -3.8546510796345723 0.99999999999997424 52.612831948476334 15.852024391121061 -1.8054576314498902 1.0000000000000095 63.449895514327579 16.79478310376723 -2.2619466123468186 1 75.000000000003425 16.79478310376723 -2.2619466123468186 1 -1.8979067407489889 -1.8979067407489889 -1.4390619826717084 1 8.2196165014000666 7.3823677049416423 -1.676339470317372 1 17.252938091745996 16.328938600612986 -2.3963500893836529 0.99999999999998979 31.074117858447767 14.527332404383019 -0.91700507699040601 1.0000000000000278 38.280412112952412 21.262945955287442 -5.5177845659494009 0.99999999999997424 52.486155588068115 16.476727432979835 -2.5844430656618647 1.0000000000000095 63.449895514333448 17.584359092398095 -3.2378894610108699 1 74.999999999990621 17.584359092398095 -3.2378894610108695 1 -1.0220788811419279 -1.0220788811419279 -1.7350064233054643 1 7.4700597701643572 8.2804763628600888 -2.021080247871553 1 16.758945849069651 17.423918941557226 -2.8891617231474176 0.99999999999998979 30.606281988837953 14.637891757957481 -1.1055880274247882 1.0000000000000278 38.875282006554237 23.220710117598962 -6.6525221148448219 0.99999999999997424 52.307310133244791 17.358701774719187 -3.1159361956481719 1.0000000000000095 63.44989551432684 18.699105966034271 -3.9037644524379909 1 75.000000000018389 18.699105966034271 -3.9037644524379904 1 -4.6762593797211755e-13 -4.6762593797211755e-13 -1.8404423209895382 1 6.5953375324381369 9.3285566244738707 -2.1439007788875823 1 16.182463800463946 18.701745707871858 -3.064735343935824 0.99999999999998979 30.060324062636926 14.76691297991343 -1.1727743297930939 1.0000000000000278 39.569486864737151 25.505393554351894 -7.0567941864600172 0.99999999999997424 52.098599985188997 18.387953514714269 -3.3052908432768442 1.0000000000000095 63.449895514330578 19.999999999989107 -4.1409952222257402 1 74.999999999974861 19.999999999989107 -4.1409952222257402 1 --1.0220788811427488 1.0220788811427488 -1.73500642330558 1 5.7206152947181215 10.376636886096147 -2.0210802478716676 1 15.605981751912061 19.97957247426147 -2.8891617231474713 0.99999999999998979 29.514366136174079 14.895934201537747 -1.1055880274253354 1.0000000000000278 40.26369172315826 27.790076991440177 -6.6525221148445537 0.99999999999997424 51.889889837005235 19.417205254669291 -3.1159361956483513 1.0000000000000095 63.449895514330713 21.300894033984143 -3.9037644524380779 1 75.00000000002386 21.300894033984143 -3.9037644524380775 1 --1.8979067407484411 1.8979067407484411 -1.4390619826715594 1 4.9710585634781923 11.274745544008159 -1.6763394703172221 1 15.111989509197203 21.074552815149307 -2.3963500893835668 0.99999999999998979 29.04653026675712 15.006493555362955 -0.91700507698972389 1.0000000000000278 40.858561616586826 29.747841153500076 -5.5177845659496922 0.99999999999997424 51.711044382278359 20.299179596439458 -2.584443065661632 1.0000000000000095 63.449895514328631 22.415640907590799 -3.2378894610107416 1 74.999999999984084 22.415640907590802 -3.2378894610107412 1 --2.5182562250012874 2.5182562250012874 -1.0053096054874726 1 4.4401470075837057 11.910876533258277 -1.1710685098072586 1 14.762094458918183 21.850128154895057 -1.6740583741198436 0.99999999999998979 28.715161793814971 15.084802822679471 -0.6406075785982992 1.0000000000000278 41.279908377390043 31.134526876097311 -3.8546510796343862 0.99999999999997424 51.584368021816545 20.92388263828046 -1.8054576314500514 1.0000000000000095 63.449895514330656 23.205216896237385 -2.261946612346911 1 75.000000000007219 23.205216896237388 -2.261946612346911 1 --2.8284271247461601 2.8284271247461601 -0.50265482457436672 1 4.1746945180467883 12.228938087750157 -0.58553428033381372 1 14.587149100984806 22.237911020916648 -0.83702922341252328 0.99999999999998979 28.549479609841558 15.123956971361764 -0.3203038032113672 1.0000000000000278 41.490579147982118 31.82786114834126 -1.9273256235211105 0.99999999999997424 51.521030626224039 21.236230289861044 -0.90272885493134847 1.0000000000000095 63.449895514329569 23.599999999999262 -1.1309733552923047 1 74.999999999998124 23.599999999999262 -1.1309733552923047 1 --2.8284271247461903 2.8284271247461903 2.2204460492503131e-16 1 4.1746945180469197 12.228938087750445 -4.3498515050138725e-16 1 14.587149100985133 22.237911020917949 -1.2111033831702273e-15 0.99999999999998979 28.549479609839526 15.123956971356947 2.3425383791132212e-15 1.0000000000000278 41.490579147983965 31.827861148346255 -1.0269151715707795e-15 0.99999999999997424 51.521030626222753 21.236230289860686 5.1873396212586411e-16 1.0000000000000095 63.449895514329832 23.600000000000001 2.141842990487521e-16 1 75.000000000000014 23.600000000000001 2.1418429904875208e-16 1 - -0 11 -3.1415926535897931 11 - -0 8 -1 8 - -9 1 0 0 0 10 7 11 8 2 2 2.8284271247461912 -2.8284271247461912 -4.4408920985006262e-16 1 9.0159805468327825 6.4281751612018496 -2.0133058846416192e-16 1 17.777778499972118 15.165580394866463 8.0236115873956118e-16 0.99999999999998979 31.571168515292573 14.409868988290894 -5.8731757129539919e-15 1.0000000000000278 37.64839458161984 19.182925960538899 3.5800583136374853e-15 0.99999999999997424 52.67616934408646 15.539676739546138 -1.5172914623676952e-15 1.0000000000000095 63.449895514329839 16.399999999999999 -4.4408920985006262e-16 1 75 16.399999999999999 -4.4408920985006262e-16 1 -2.8284271247462276 -2.8284271247462276 0.50265482457439326 1 9.0159805468328216 6.4281751612018621 0.58553428033384047 1 17.777778499971209 15.165580394865655 0.83702922341251151 0.99999999999998979 31.571168515297988 14.409868988295917 0.32030380321158969 1.0000000000000278 37.648394581614838 19.182925960534281 1.9273256235209786 0.99999999999997424 52.676169344089331 15.539676739546854 0.90272885493142008 1.0000000000000095 63.449895514330436 16.399999999999601 1.1309733552923305 1 74.999999999999105 16.399999999999604 1.1309733552923305 1 -2.5182562250010312 -2.5182562250010312 1.0053096054873778 1 8.7505280572964637 6.7462367156950842 1.1710685098071594 1 17.602833142044837 15.553363260898562 1.674058374119779 0.99999999999998979 31.405486331285697 14.449023136926375 0.64060757859783735 1.0000000000000278 37.85906535224138 19.876260232829232 3.8546510796345723 0.99999999999997424 52.612831948476334 15.852024391121061 1.8054576314498902 1.0000000000000095 63.449895514327579 16.79478310376723 2.2619466123468186 1 75.000000000003425 16.79478310376723 2.2619466123468186 1 -1.8979067407489889 -1.8979067407489889 1.4390619826717084 1 8.2196165014000666 7.3823677049416423 1.676339470317372 1 17.252938091745996 16.328938600612986 2.3963500893836529 0.99999999999998979 31.074117858447767 14.527332404383019 0.91700507699040601 1.0000000000000278 38.280412112952412 21.262945955287442 5.5177845659494009 0.99999999999997424 52.486155588068115 16.476727432979835 2.5844430656618647 1.0000000000000095 63.449895514333448 17.584359092398095 3.2378894610108699 1 74.999999999990621 17.584359092398095 3.2378894610108695 1 -1.0220788811419279 -1.0220788811419279 1.7350064233054643 1 7.4700597701643572 8.2804763628600888 2.021080247871553 1 16.758945849069651 17.423918941557226 2.8891617231474176 0.99999999999998979 30.606281988837953 14.637891757957481 1.1055880274247882 1.0000000000000278 38.875282006554237 23.220710117598962 6.6525221148448219 0.99999999999997424 52.307310133244791 17.358701774719187 3.1159361956481719 1.0000000000000095 63.44989551432684 18.699105966034271 3.9037644524379909 1 75.000000000018389 18.699105966034271 3.9037644524379904 1 -4.6762593797211755e-13 -4.6762593797211755e-13 1.8404423209895382 1 6.5953375324381369 9.3285566244738707 2.1439007788875823 1 16.182463800463946 18.701745707871858 3.064735343935824 0.99999999999998979 30.060324062636926 14.76691297991343 1.1727743297930939 1.0000000000000278 39.569486864737151 25.505393554351894 7.0567941864600172 0.99999999999997424 52.098599985188997 18.387953514714269 3.3052908432768442 1.0000000000000095 63.449895514330578 19.999999999989107 4.1409952222257402 1 74.999999999974861 19.999999999989107 4.1409952222257402 1 --1.0220788811427488 1.0220788811427488 1.73500642330558 1 5.7206152947181215 10.376636886096147 2.0210802478716676 1 15.605981751912061 19.97957247426147 2.8891617231474713 0.99999999999998979 29.514366136174079 14.895934201537747 1.1055880274253354 1.0000000000000278 40.26369172315826 27.790076991440177 6.6525221148445537 0.99999999999997424 51.889889837005235 19.417205254669291 3.1159361956483513 1.0000000000000095 63.449895514330713 21.300894033984143 3.9037644524380779 1 75.00000000002386 21.300894033984143 3.9037644524380775 1 --1.8979067407484411 1.8979067407484411 1.4390619826715594 1 4.9710585634781923 11.274745544008159 1.6763394703172221 1 15.111989509197203 21.074552815149307 2.3963500893835668 0.99999999999998979 29.04653026675712 15.006493555362955 0.91700507698972389 1.0000000000000278 40.858561616586826 29.747841153500076 5.5177845659496922 0.99999999999997424 51.711044382278359 20.299179596439458 2.584443065661632 1.0000000000000095 63.449895514328631 22.415640907590799 3.2378894610107416 1 74.999999999984084 22.415640907590802 3.2378894610107412 1 --2.5182562250012874 2.5182562250012874 1.0053096054874726 1 4.4401470075837057 11.910876533258277 1.1710685098072586 1 14.762094458918183 21.850128154895057 1.6740583741198436 0.99999999999998979 28.715161793814971 15.084802822679471 0.6406075785982992 1.0000000000000278 41.279908377390043 31.134526876097311 3.8546510796343862 0.99999999999997424 51.584368021816545 20.92388263828046 1.8054576314500514 1.0000000000000095 63.449895514330656 23.205216896237385 2.261946612346911 1 75.000000000007219 23.205216896237388 2.261946612346911 1 --2.8284271247461601 2.8284271247461601 0.50265482457436672 1 4.1746945180467883 12.228938087750157 0.58553428033381372 1 14.587149100984806 22.237911020916648 0.83702922341252328 0.99999999999998979 28.549479609841558 15.123956971361764 0.3203038032113672 1.0000000000000278 41.490579147982118 31.82786114834126 1.9273256235211105 0.99999999999997424 51.521030626224039 21.236230289861044 0.90272885493134847 1.0000000000000095 63.449895514329569 23.599999999999262 1.1309733552923047 1 74.999999999998124 23.599999999999262 1.1309733552923047 1 --2.8284271247461903 2.8284271247461903 -2.2204460492503131e-16 1 4.1746945180469197 12.228938087750445 4.3498515050138725e-16 1 14.587149100985133 22.237911020917949 1.2111033831702273e-15 0.99999999999998979 28.549479609839526 15.123956971356947 -2.3425383791132212e-15 1.0000000000000278 41.490579147983965 31.827861148346255 1.0269151715707795e-15 0.99999999999997424 51.521030626222753 21.236230289860686 -5.1873396212586411e-16 1.0000000000000095 63.449895514329832 23.600000000000001 -2.141842990487521e-16 1 75.000000000000014 23.600000000000001 -2.1418429904875208e-16 1 - -0 11 -3.1415926535897931 11 - -0 8 -1 8 - -Triangulations 0 - -TShapes 42 -Ve -1.00000011584738e-07 -3.53553390593274 -3.53553390593274 0 -0 0 - -0101101 -* -Ve -2.00001022062862e-07 -75 15.5 -6.88863824520386e-17 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 1 0 0 1 -2 1 1 0 0 1 -2 2 2 0 0 1 -0 - -0101000 -+42 0 -41 0 * -Ve -2.00001005003195e-07 --3.53553390593273 3.53553390593274 -7.40818758532816e-16 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 2 0 0 3.14159265358979 -2 3 1 0 0 3.14159265358979 -2 4 3 0 0 3.14159265358979 -0 - -0101000 -+42 0 -39 0 * -Ve -2.00001041588069e-07 -75 24.5 2.06659147356116e-16 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 3 0 0 1 -2 5 1 0 0 1 -2 6 2 0 0 1 -0 - -0101000 -+39 0 -37 0 * -Ed - 1e-07 1 1 0 -1 4 0 0 3.14159265358979 -2 7 1 0 0 3.14159265358979 -2 8 4 0 0 3.14159265358979 -0 - -0101000 -+41 0 -37 0 * -Wi - -0101000 --40 0 +38 0 +36 0 -35 0 * -Fa -1 1e-07 1 0 - -0101000 -+34 0 * -Ed - 1e-07 1 1 0 -1 5 0 0 3.14159265358979 -2 3 2 0 0 3.14159265358979 -2 9 5 0 0 3.14159265358979 -0 - -0101000 -+42 0 -39 0 * -Ed - 1e-07 1 1 0 -1 6 0 0 3.14159265358979 -2 7 2 0 0 3.14159265358979 -2 10 6 0 0 3.14159265358979 -0 - -0101000 -+41 0 -37 0 * -Wi - -0101000 --40 0 +32 0 +36 0 -31 0 * -Fa -1 1e-07 2 0 - -0101000 -+30 0 * -Ve -1.00000003092948e-07 -2.82842712474619 -2.82842712474619 0 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 7 0 0 1 -2 11 3 0 0 1 -2 12 5 0 0 1 -0 - -0101000 -+42 0 -28 0 * -Ve -2.000010012582e-07 --2.82842712474619 2.82842712474619 9.68596121552874e-16 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 8 0 0 3.14159265358979 -2 13 7 0 0 3.14159265358979 -2 14 3 0 0 3.14159265358979 -0 - -0101000 -+28 0 -26 0 * -Ed - 1e-07 1 1 0 -1 9 0 0 1 -2 15 3 0 0 1 -2 16 5 0 0 1 -0 - -0101000 -+39 0 -26 0 * -Wi - -0101000 -+38 0 -27 0 -25 0 +24 0 * -Fa -0 1e-07 3 0 - -0101000 --23 0 * -Ve -2.00001030198519e-07 -75 16.4 -5.51091059616309e-17 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 10 0 0 1 -2 17 7 0 0 1 -2 18 8 0 0 1 -0 - -0101000 -+28 0 -21 0 * -Ve -2.00001064344293e-07 -75 23.5999999999999 1.65327317884893e-16 -0 0 - -0101101 -* -Ed - 1e-07 1 1 0 -1 11 0 0 1 -2 19 7 0 0 1 -2 20 8 0 0 1 -0 - -0101000 -+26 0 -19 0 * -Ed - 1e-07 1 1 0 -1 12 0 0 3.14159265358979 -2 21 7 0 0 3.14159265358979 -2 22 4 0 0 3.14159265358979 -0 - -0101000 -+21 0 -19 0 * -Wi - -0101000 --20 0 +25 0 +18 0 -17 0 * -Fa -1 1e-07 7 0 - -0101000 -+16 0 * -Ed - 1e-07 1 1 0 -1 13 0 0 3.14159265358979 -2 13 8 0 0 3.14159265358979 -2 23 5 0 0 3.14159265358979 -0 - -0101000 -+28 0 -26 0 * -Ed - 1e-07 1 1 0 -1 14 0 0 3.14159265358979 -2 21 8 0 0 3.14159265358979 -2 24 6 0 0 3.14159265358979 -0 - -0101000 -+21 0 -19 0 * -Wi - -0101000 --20 0 +14 0 +18 0 -13 0 * -Fa -1 1e-07 8 0 - -0101000 -+12 0 * -Wi - -0101000 -+32 0 -27 0 -14 0 +24 0 * -Fa -0 1e-07 5 0 - -0101000 --10 0 * -Ed - 1e-07 1 1 0 -1 15 0 0 0.899999999999999 -2 25 4 0 0 0.899999999999999 -2 26 6 0 0 0.899999999999999 -0 - -0101000 -+41 0 -21 0 * -Ed - 1e-07 1 1 0 -1 16 0 0 0.899999999999999 -2 27 4 0 0 0.899999999999999 -2 28 6 0 0 0.899999999999999 -0 - -0101000 -+37 0 -19 0 * -Wi - -0101000 -+35 0 -8 0 -17 0 +7 0 * -Fa -0 1e-07 4 0 - -0101000 --6 0 * -Wi - -0101000 -+31 0 -8 0 -13 0 +7 0 * -Fa -0 1e-07 6 0 - -0101000 --4 0 * -Sh - -0101100 -+33 0 -29 0 +22 0 -15 0 +11 0 -9 0 -5 0 +3 0 * -So - -1100000 -+2 0 * - -+1 0 diff --git a/src/TEST_PY/test_unit/tuyau_v5.py b/src/TEST_PY/test_unit/tuyau_v5.py deleted file mode 100644 index 99ad475..0000000 --- a/src/TEST_PY/test_unit/tuyau_v5.py +++ /dev/null @@ -1,260 +0,0 @@ -# -*- coding: latin-1 -*- -# Copyright (C) 2009-2013 CEA/DEN, EDF R&D -# -# This library is free software; you can redistribute it and/or -# modify it under the terms of the GNU Lesser General Public -# License as published by the Free Software Foundation; either -# version 2.1 of the License. -# -# This library is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# Lesser General Public License for more details. -# -# You should have received a copy of the GNU Lesser General Public -# License along with this library; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# -# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com -# - -# Francis KLOSS : 2012 : CEA-Saclay, DEN, DM2S, SFME, LGLS, F-91191 Gif-sur-Yvette, France -# ======================================================================================== - -import geompy -import hexablock - -# Charger la geometrie -# ==================== - -nom = "tuyau" - -geometrie = geompy.ImportBREP(nom+".brep") - -# Selectionner des sous-parties de la geometrie -# --------------------------------------------- - -aretes = geompy.SubShapeAllSortedCentres (geometrie, geompy.ShapeType["EDGE"]) -edge_id = geompy.SubShapeAllSortedCentresIDs (geometrie, geompy.ShapeType["EDGE"]) -faces = geompy.SubShapeAllSortedCentres (geometrie, geompy.ShapeType["FACE"]) -face_id = geompy.SubShapeAllSortedCentresIDs (geometrie, geompy.ShapeType["FACE"]) - -subid_arc_int_bas = 30 -subid_arc_int_haut = 34 -subid_arc_ext_bas = 12 -subid_arc_ext_haut = 16 - -arc_int_bas = aretes[12] -arc_int_haut = aretes[13] -arc_ext_bas = aretes[11] -arc_ext_haut = aretes[14] - -subid_ell_int_bas = 21 -subid_ell_int_haut = 33 -subid_ell_ext_bas = 8 -subid_ell_ext_haut = 15 - -ell_int_bas = aretes[2] -ell_int_haut = aretes[3] -ell_ext_bas = aretes[1] -ell_ext_haut = aretes[4] - -subid_gen_int_avan = 26 -subid_gen_int_arri = 28 -subid_gen_ext_avan = 5 -subid_gen_ext_arri = 10 - -gen_int_avan = aretes[8] -gen_int_arri = aretes[7] -gen_ext_avan = aretes[9] -gen_ext_arri = aretes[6] - -subid_face_int_bas = 24 -subid_face_int_haut = 31 -subid_face_ext_bas = 3 -subid_face_ext_haut = 13 - -face_int_bas = faces[4] -face_int_haut = faces[5] -face_ext_bas = faces[2] -face_ext_haut = faces[3] - -# Construire le modele de bloc -# ============================ - -doc = hexablock.addDocument(nom) - -# Definir le tuyau -# ---------------- - -base = doc.addVertex(0, 0, 0) - -direction = doc.addVector(1, 0, 0) - -tuyau = doc.addPipe(base, direction, 1, 2, 10) - -# Construire le modele de blocs du tuyau -# -------------------------------------- - -depart = doc.addVector(0, 1, 0) - -modele = doc.makePipe(tuyau, depart, 1, 4, 1) - -# Associer le modele de bloc a la geometrie -# ========================================= - -sh_tuyau = doc.addShape(geometrie,nom) -doc.clearAssociation() - -# Associer les cercles -# -------------------- - -cer_int_dep = modele.getVertexIJK(0, 0, 1) -cer_ext_dep = modele.getVertexIJK(1, 0, 1) - -cer_int = [] -cer_ext = [] -for j in xrange(4): - a = modele.getEdgeJ(0, j, 1) - cer_int.append(a) - - a = modele.getEdgeJ(1, j, 1) - cer_ext.append(a) - -doc.associateClosedLine(cer_int_dep, cer_int, [sh_tuyau], [34,30], 1, True) -doc.associateClosedLine(cer_ext_dep, cer_ext, [sh_tuyau], [16,12], 1, True) - -# Associer les ellipses -# --------------------- - -ell_int_dep = modele.getVertexIJK(0, 0, 0) -ell_ext_dep = modele.getVertexIJK(1, 0, 0) - -ell_int = [] -ell_ext = [] -for j in xrange(4): - a = modele.getEdgeJ(0, j, 0) - ell_int.append(a) - - a = modele.getEdgeJ(1, j, 0) - ell_ext.append(a) - -doc.associateClosedLine(ell_int_dep, ell_int, [sh_tuyau], [33,21], 1, True) -doc.associateClosedLine(ell_ext_dep, ell_ext, [sh_tuyau], [15, 8], 1, True) - -# Associer les generatrices -# ------------------------- - -def generatrice(face): - n = 10 - l = [] - for i in xrange(0, n+1): - v = float(i) / n - s = geompy.MakeVertexOnSurface(face, 0.5, v) - l.append(s) - - return geompy.MakeInterpol(l) - -gen = [] -gen_int_haut = generatrice(face_int_haut) -gen_ext_haut = generatrice(face_ext_haut) -gen_int_bas = generatrice(face_int_bas ) -gen_ext_bas = generatrice(face_ext_bas ) -gen.append(gen_int_haut) -gen.append(gen_ext_haut) -gen.append(gen_int_bas) -gen.append(gen_ext_bas) - -generatrices = geompy.MakeCompound(gen) -sh_gen = doc.addShape(generatrices,"generatrices") - -modele.getEdgeK(0, 0, 0).addAssociation(sh_tuyau, 28, 0, 1) -modele.getEdgeK(1, 0, 0).addAssociation(sh_tuyau, 10, 0, 1) - -modele.getEdgeK(0, 1, 0).addAssociation(sh_gen , 2, 0, 1) -modele.getEdgeK(1, 1, 0).addAssociation(sh_gen , 5, 0, 1) - -modele.getEdgeK(0, 2, 0).addAssociation(sh_tuyau, 26, 0, 1) -modele.getEdgeK(1, 2, 0).addAssociation(sh_tuyau, 5, 0, 1) - -modele.getEdgeK(0, 3, 0).addAssociation(sh_gen , 8, 0, 1) -modele.getEdgeK(1, 3, 0).addAssociation(sh_gen , 11, 0, 1) - -# Associer les faces courbees -# --------------------------- - -modele.getQuadJK(0, 0, 0).addAssociation(sh_tuyau, 31) -modele.getQuadJK(0, 1, 0).addAssociation(sh_tuyau, 31) -modele.getQuadJK(0, 2, 0).addAssociation(sh_tuyau, 24) -modele.getQuadJK(0, 3, 0).addAssociation(sh_tuyau, 24) - -modele.getQuadJK(1, 0, 0).addAssociation(sh_tuyau, 13) -modele.getQuadJK(1, 1, 0).addAssociation(sh_tuyau, 13) -modele.getQuadJK(1, 2, 0).addAssociation(sh_tuyau, 3) -modele.getQuadJK(1, 3, 0).addAssociation(sh_tuyau, 3) - -# Mailler le modele de bloc -# ========================= - -# Definir 3 groupes d'aretes -# -------------------------- - -groupe_cercles = doc.addEdgeGroup("Cercles") -groupe_ellipses = doc.addEdgeGroup("Ellipses") -groupe_generatrices = doc.addEdgeGroup("Generatrices") - -# Definir 4 groupes de faces -# -------------------------- - -groupe_couronne = doc.addQuadGroup("Couronne") -groupe_ovale = doc.addQuadGroup("Ovale") -groupe_interieur = doc.addQuadGroup("Interieur") -groupe_exterieur = doc.addQuadGroup("Exterieur") - -# Constituer les groupes d'aretes -# ------------------------------- - -for i in xrange(2): - for j in xrange(4): - arete = modele.getEdgeJ(i, j, 1) - groupe_cercles.addElement(arete) - - arete = modele.getEdgeJ(i, j, 0) - groupe_ellipses.addElement(arete) - - arete = modele.getEdgeK(i, j, 0) - groupe_generatrices.addElement(arete) - -# Constituer les groupes de faces -# ------------------------------- - -for j in xrange(4): - quad = modele.getQuadIJ(0, j, 1) - groupe_couronne.addElement(quad) - - quad = modele.getQuadIJ(0, j, 0) - groupe_ovale.addElement(quad) - - quad = modele.getQuadJK(0, j, 0) - groupe_interieur.addElement(quad) - - quad = modele.getQuadJK(1, j, 0) - groupe_exterieur.addElement(quad) - -# Mailler le modele de bloc avec ses associations -# ----------------------------------------------- - -########## hexablock.addLaws(doc, 0.7, True) Ne marche pas - -law = doc.addLaw("Uniform", 4) -for j in range(doc.countPropagation()): - propa = doc.getPropagation(j) - propa.setLaw(law) - -doc.save("tuyau_v5") -doc.setName("tuyau_v5") -hexablock.addToStudy(doc) - -blocs = hexablock.mesh(doc) - -muv, mue, muq, muh = hexablock.dump(doc, blocs) -- 2.39.2