From 64680c27c16f878decc136ec6c38dc9a72f12f3b Mon Sep 17 00:00:00 2001 From: eap Date: Fri, 18 Jan 2019 21:31:22 +0300 Subject: [PATCH] 23617: EDF 14133 - Complete Merge Nodes / Merge Elements operations + 1) fix bug that SMESH_MeshEditor::DoubleElements() can't duplicate all elements if they are of different dimension 2) Add QString GetName( Handle(SALOME_InteractiveObject)& ) that gets missing name from SObject. --- .../examples/transforming_meshes_ex05.py | 16 +- .../examples/transforming_meshes_ex06.py | 30 +- doc/salome/gui/SMESH/images/mergeelems.png | Bin 27400 -> 39575 bytes .../gui/SMESH/images/mergeelems_auto.png | Bin 13338 -> 28075 bytes doc/salome/gui/SMESH/images/mergenodes.png | Bin 41290 -> 47757 bytes .../gui/SMESH/images/mergenodes_auto.png | Bin 30511 -> 33785 bytes .../gui/SMESH/input/merging_elements.rst | 32 +- doc/salome/gui/SMESH/input/merging_nodes.rst | 25 +- idl/SMESH_MeshEditor.idl | 8 +- src/SMESH/SMESH_MeshEditor.cxx | 5 +- src/SMESHGUI/SMESHGUI_MergeDlg.cxx | 412 +++++++++--------- src/SMESHGUI/SMESHGUI_MergeDlg.h | 55 +-- src/SMESHGUI/SMESHGUI_Utils.cxx | 19 +- src/SMESHGUI/SMESHGUI_Utils.h | 3 + src/SMESHGUI/SMESH_msg_en.ts | 8 + src/SMESH_I/SMESH_MeshEditor_i.cxx | 130 ++++-- src/SMESH_I/SMESH_MeshEditor_i.hxx | 8 +- src/SMESH_SWIG/smeshBuilder.py | 71 ++- 18 files changed, 487 insertions(+), 335 deletions(-) diff --git a/doc/salome/examples/transforming_meshes_ex05.py b/doc/salome/examples/transforming_meshes_ex05.py index deba1c407..0adf0247c 100644 --- a/doc/salome/examples/transforming_meshes_ex05.py +++ b/doc/salome/examples/transforming_meshes_ex05.py @@ -1,14 +1,24 @@ # Merging Nodes import SMESH_mechanic, SMESH -mesh = SMESH_mechanic.mesh +mesh = SMESH_mechanic.mesh +smesh = SMESH_mechanic.smesh -# merge nodes +# criterion of coincidence Tolerance = 4.0 +# find close nodes of triangle elements only +triangleFilter = smesh.GetFilter( SMESH.FACE, SMESH.FT_ElemGeomType,'=', SMESH.Geom_TRIANGLE ) +GroupsOfNodesOfTriangles = mesh.FindCoincidentNodesOnPart([triangleFilter],Tolerance) + # prevent nodes located on geom edges from removal during merge: # create a group including all nodes on edges allSegs = mesh.MakeGroup( "all segments", SMESH.EDGE, SMESH.FT_ElemGeomType,'=', SMESH.Geom_EDGE ) -GroupsOfNodes = mesh.FindCoincidentNodes(Tolerance) +mesh.MergeNodes(GroupsOfNodesOfTriangles, NodesToKeep=allSegs) + + +# find close nodes in the whole mesh +GroupsOfNodes = mesh.FindCoincidentNodes(Tolerance) + mesh.MergeNodes(GroupsOfNodes, NodesToKeep=allSegs) diff --git a/doc/salome/examples/transforming_meshes_ex06.py b/doc/salome/examples/transforming_meshes_ex06.py index 1d973dadb..433ae1928 100644 --- a/doc/salome/examples/transforming_meshes_ex06.py +++ b/doc/salome/examples/transforming_meshes_ex06.py @@ -3,11 +3,10 @@ import salome salome.salome_init() -import GEOM from salome.geom import geomBuilder geompy = geomBuilder.New() -import SMESH, SALOMEDS +import SMESH from salome.smesh import smeshBuilder smesh = smeshBuilder.New() @@ -43,6 +42,9 @@ algo2D.LengthFromEdges() trias.Compute() +# create a group of all triangles currently present in the mesh +faceTriGroup = trias.Group( face1, "face triangles" ) + # create a path mesh circlemesh = smesh.Mesh(circle, "Path mesh") algo = circlemesh.Segment() @@ -50,14 +52,19 @@ algo.NumberOfSegments(10) circlemesh.Compute() # extrusion of the mesh -trias.ExtrusionAlongPath([], circlemesh, circle, - 1, 0, [], 0, SMESH.PointStruct(0, 0, 0)) +trias.ExtrusionAlongPath([], circlemesh, circle, 1, MakeGroups=True ) + +# get a group "opposite" to faceTriGroup within the generated prismatic mesh +oppositeGroup = trias.GetGroupByName( faceTriGroup.GetName() + "_top" )[0] + +# get edges of the groups +edgeGroup = trias.CreateDimGroup([ faceTriGroup, oppositeGroup ], SMESH.EDGE, "face edges") -# merge nodes +# merge nodes of the groups only print("Number of nodes before MergeNodes:", end=' ') trias.NbNodes() tolerance = 0.001 -array_of_nodes_groups = trias.FindCoincidentNodes(tolerance) +array_of_nodes_groups = trias.FindCoincidentNodesOnPart([faceTriGroup, oppositeGroup], tolerance) trias.MergeNodes(array_of_nodes_groups) @@ -65,16 +72,15 @@ print("Number of nodes after MergeNodes:", trias.NbNodes()) print("") print("Number of elements before MergeEqualElements:") print("Edges : ", trias.NbEdges()) -print("Triangles : ", trias.NbTriangles()) -print("Quadrangles: ", trias.NbQuadrangles()) +print("Faces : ", trias.NbFaces()) print("Volumes : ", trias.NbVolumes()) -# merge elements -trias.MergeEqualElements() +# merge elements of the groups +equalFaces = trias.FindEqualElements( [faceTriGroup, oppositeGroup, edgeGroup] ) +trias.MergeElements( equalFaces ) print("Number of elements after MergeEqualElements:") print("Edges : ", trias.NbEdges()) -print("Triangles : ", trias.NbTriangles()) -print("Quadrangles: ", trias.NbQuadrangles()) +print("Faces : ", trias.NbFaces()) print("Volumes : ", trias.NbVolumes()) salome.sg.updateObjBrowser() diff --git a/doc/salome/gui/SMESH/images/mergeelems.png b/doc/salome/gui/SMESH/images/mergeelems.png index 40d614f5e28bc0f480e15309b685bb68e79dba46..f35955aedb8005b5e952f59f5f33b3d132f4cc06 100644 GIT binary patch literal 39575 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 literal 27400 zcmbrm1z1$u+c!KGj7X<+h#(*!-Q5ks0Fu%TN=l=YNP{#;cek`icZYO$ch9@$~3X-RGRk!?035WF&KWaS9{ zc=|!|ogD;%+Is)rgD5&wLhvG;y_mYasF9t4t=R{AGaGA&nwhnsjT4!OrJkJ~H<^+> zy`6);-iHsCW(IoqfA6mZ()%O`gbX4j zDx~r$ac9;^3u~Paa=_somhu{hGUXvH^ouK|iei3RnuC6&>a)?$n!ko$p`!P;=SOs5J6!R`zD}!+MlbH`+7XH%+|!x)!yzbn zfGD%wxZgRKFErKBN|SW%{8@mgFcjrXWAxXp^5SNTU1y4W`5HZe;qIh-0-NV?LUmaD zc2;<%*v^CyMffZJ>;vqKwyZCr6s0bjByMryCb2<;ED+aB4B>!k)DuEZkrpx)TCrEy zW`&`)l=`J9dZ9(%JMdb+JBs%aP_c2?!ZT^HB8~O(Z#1jkqz>iOohLO#hNUUSc~yK` zpOQbVL_|qooZb?k#59`kU&TgpUftsJ6-&-YE;FCiKfdy!)j6HPIE9<2>_HK{BQkBr6T14FrAbfT3)pN2mD@PR|dQ zvo}Yw#dbOMt;a_!)Zq~kZ&_HBeb6J^oS$?ApCcxp_e69;+XsSP2#KErq={~_5SN*ywRpIbg)YS)r;R4pPQdBoa=E516iRu+j zo-=_laaNYE4JaPL8*kN9%NWE1;R7ntBWcgcr8>^693>E+6nk}<+}C3lp-<F&I6g4Xs@;YTLw zp&|G#m$lwaBxA~<|TSfc7~mySu>}TvehP0Y615@*)hj!D1kvi8==V=g<3c- z#;j0=DT?z{4r>yH`ID%s*e^%>YRe?9tBhsw%q>D`=S=jRvoemNR*pNEF?X#PmJYiG z+|uZRAzyJ^862-pHtp8?vlPvqJP}*(Pih&ah>-jQ%T%U95rOi#oRl0LuUAxX++LlX zo_xSNihkCKtA1QkQaN2Ekr1napP+G+CoO@z9g2>Ggmkw%8kbFD#-xBBtfToq|Cu{Pgl>+=na-Muay>##TRl_@Mim6vI3 z=0{J9Dvf#ub#KNC0+r6L?_Lgtb&ZDWJkr#xQo*Sx$+;L_<j2!tV0o?K;pdZJBL}l^2@#ZKy4y(_zTQ4T%w-tIF-6>wQC-_$#BZqz}4q7>>iT<<4qNdA1Z~M1!kSo&9ELOr+Gx zm*1h|vd?sN;aJr2`o6nUm9FP|+O86~XC<|@wa&+?7Z%zli^>)~(Yw>taP?>t6N_}c zSIiAuI_2$b=95g}lA_rOvFU~3Qv0uD#H|>;YQQ%%`3nn8PJ6vel97f7k1bB zESQ4s6NFAnSFDJobzA<)ri-#n@zw8ZGR$w_Gbw0l_zL~HhtgP?(o~=*g}rkxvow#o z=rL-t44+ke7NxyYzgkvkGHh^HR6qG_WbGXj+4+5BeJO_FMsK}8_9Ir-S5ZSmM9pc( z@ka;>nL|Mb=7vZ(o`uWBRK1D(j?-1037*vM$9*YNzQR!Qj4lFN( z3@Lu$!;WE9`aTMFtKQ{kv0YwY^lxwj-J=n_wzik3#M9(H-90@&xfnInCov9&S>=wn zOxKH8^6c7TzJFk35~GZ+Fx5+=H3c7XeXfkt?r!KaxZX|6RwKFf4wUjokMf%4fBxX( zj`|)oUvt~ql0K0l#1|aTgi6x*>N{7!xM784(Iu@JN1bhqV?+}P_P0)UOwqzp{y_xh zxSK00>(zB*)P8SdQ@`QWrliK3Ly@^r8UqPu6x;w&n|WjKoX<}Kr?p)|qKo{R#;?)Z z<5{zVP6(#b>y+(#_eutFD8eO=6`|xP6FGWpupR;%JSm3XKio|o8Y>WS8$yLmR|m-1 zcWZgC*E1sxH0ko^9)3PJT&C`cW~5fmjVHR%rMu)~aZ`tz&=i}Si%HieYZwrh-8@}` zcet4AqE-$>fLmGXOPVYdneNWp(ykk5a6V>OO`dpQM}4}tYH2=fc|JGUEv+L*eC-Jb zKq@;v+j>xjTqZFV$KV>bl9kpVnc-U9>Lq10PULffA_)4@W(%iJSmd^%-;n2eEG#OM zF?n7Pdb+{$fbLQ;_Ar&qyCa`0T+;7k&3J8GmAzj&VPvzyoJ3%IH$6h3#^X+4cdC?+ zjxIkkQs$h0dCWf|eUX4IH_QB8%i1^B^q;SI_TBRoJ3F4S=*}14+(?lvgi9Lwh3Cpm zGxP<)=7=t~Hm`PP>YR$8u}$w_uw0XLQwqS1WgStb!KA1 zT4g~`*0KT737+40*hsJuO@@?By*EMHu0fU?I*^7jNP3$K8FPRVhA<_k%|pnjOk{Uz z82STa8re;Xx3lK=7PFrSjPyXYVFJHplb$k;BtbU<_ zceJE2HM$vN6wyC~cp*y$0&xFmm;wUn^s0bDAk1X{pD%lNGUhLpa6J}RW_-mdX|nwg z;s%3)9>{KT<8yc#%JR$oSA&mhd;u!+3y2`$SFV7y5-#OzIpPKWg`?FTdm4p^WaJN| zg2gC4VN_#T@(Fo8%`}jOZJ}SL;Vo+ySC{%dc>TJuODw*!ml0N>#5{iJzax^?SPS;I z*Pj`PLm-P^@#&eLBO`c!Mz^)It8=_1I6Jtzy+#c|y(q^<^6fKrb@}At@~P~PC6e!# zDCOKyIgA8^pJ)ds2fQ9ToI3M^g9i(ry>(vH&%E2yv-nMk`BbF2{_^;JFBC$C%VdTj z06&Fyc>)CK=jUh7?Jm(9!ezI%Ft9gUcfOlYeWY{_sPHy!o%%GNgq z2loX;QcqP`<^RML3s3A!Ss=TZdjj!#E1#68lhrg@!puZH#7h#|vApTGj+Dh%)>P8eQPmOr+qs2ae^+5P^5voT4*^dd9i1N$5zMY< zmOqfxYw`KZcA-Mn;+vw20n4Q`$zZn-%J$hMTXt%{X@kKp?*{>@b6k z+QZYuF)`(^Vi>jk5}}Ymgx^`;1`iVu$*CVgDttNv+Q?uJAn}k`Kiq%gun_z(-23I6 zAqIhj{U^2kzkOL${&m(X8m6bZjs`Vm4%#VF=A!;#Y$M#E2@``2kjI0n8m%E~Bz!K4 zudr#Oq*E0!F)_msB&zD_c!Z((1wX1ng=;Q83~s9vqmo->ovNOV?>E6o7;Bu5*G~4c zTb?1Bi_uXJNd-s&$Q{O?LWAAC(CqDxLdgE{w7!*sEBgZe1vQzN zEjK8!fTI>A<|3NY?o8%w|CcQBzzN(;G*h>C?vX4e{TCM(vOjn)d*fI>rLv7^)S{lD z!%01(2iE=l{2aHZ3NhDV9GYBK&1LOnP1gGxTu&Q4;ry!P zFJ2goE0lBdIPI-WcFhmKmpekGmzSRjr+(OuE_8P}|G2eMVKVT;W%osjD!4fgj_PN4 z4DWj;igouVOJCf5AI2jfH|(q6cR4Yg=Xc-T-Rbxg>U??hQip*U-!q36)s*?GLg3`Q zb0#9IuW*g)c~M@|nHxX6xalsQ(`+fDEAsBu8!jc?*y*yE><=pB|=Hx zF%_~~&*ZT3TLZ3xM#9VKy0_!)kM`49x{(}rG;)UA5UdqFz0@vpAM~rC^Nu7QM*tRm z6e+2Xvfl|TD$uy6GF9I-;t=9p?+1D!qT$!;Um~5(Dq|tCqG;gL=XD2c!KXSpI-EAA ze7g*p<76ioiqwjt~XmzI9Fw3M!aiUa=lAUnEP-P+QU_v3JDcXzi@PqbdoMan{Z zFyY?bo;~+$YpdaEca-P+jppq)`DFeEj}{jm9v)@ok;?7y@w`Yukzpvh4EKtt z&)^>x6L&Ya5+hR5TSM zAb2+~AC7hu?>=}$Kx`F^YmtBz`0bnZd}G7=yN5frbHATFvze`hsi^p%GqbW5RAPsUn zdU$neakKdIv|Ar^FoAiGIXI1qH0^?Ci|U-CbSpaO-7ZZZp`)H2G?U z{r&w6^z_XsamYU zOHK^CwO;&W8vfyz7q=UIn(T1*W1E1|kSiN7xw92|sW^F5L7B0&;b!wjg1KSih zf~FF{`yY9I7J;I7=0=Y6oWyKx4?d?_g?)*Lz_fDje!}C3h)VQI?V*?70{TM~vAW~{ zzvbtnSVY2t=kF1S|DOu+|5D8>6KsZZBO{})0AO=T!!-*}7%2QWZUcds?krFe{O`R0 z{n9swh~58}DP$udWg*3H@8RH+-@_FCefR=;ZiVpxP<>!rBvB$JbJVWgNnlVbyxukc z#V5syn(!#@&;lqnD}O;4Jp)6?w{I>V;6l#MHGzRWL2)bys6;u9F;h76cjWP&J8dvl2%EosAMU^->-fWf#I04PW|9>^+O}3!O{P?B${mUocA z;|&gNt-4q2f4~ZaoIm(M@&laS!l76c5Z@_%9-1F$5qxbjcjNp4zrpMU75(t0J$KSv zrNx9*`1H~7@n%^FDbF3aobvU4s#%2yNlH*e)w$*rVZM)=NF?Ru`JMJ=ZV}G~u-#Ke zHfx+~ps6$UGc)yCHI>N3+^k$&aq`&!pC*W>&o;Qm$Y)av$lt9c*pxWDq@-+ZZ{vrb zUk;{T6ssgpb{d&#npGH-z(=b(SlkDdn>4y&J|INWr3l5#yYwfa%3z0+cecoTZ zDcHqx&@i#FD-63LVm28EbUBl+6lh80?neekw8;NLSYLl>%t8%d;_#@bO3!%@_emnQ z;@`^>p^Vy%-y;)VOc)OQ;Jci;N${MnciG*#y*|(6P^^^-F18^)LraoJLq_uHo%9L+ zk!2Jg7l+S+d;v3Zc=kD285;-Z<78sKTCu9CD(bDVDZqyo`Qy-3p+|_s+-^A{{;29n zL+RoIZYSvXt-ODEEjRaPQ%kB z*81akR_kcI5z(rQH3Vdwjm^vg(DU;0Y&Ulz!s7tX*xq+s*}%9*yn{V4jJIyLn30%l zn+aMmIvEXbSXh>iFCD8KFUr!r4OAVYr+qD zzKTYNYuu`a&CSh5fh+y#>5_!>HQ1+%4ZQ?*E9~m2!lvocN@mGRf{!lFOSz(R#vp@oKE*An)33tfFGbV zq@@02hXaee_5GVqyd+hL$;mbr7J>BB)6;e}S}5049lgEC-9yE{7vyOqWsQike|gNJK5&N!Bqmfx+#JUl$=9Cuf$ zBul|VFQ&-6mdFJ>0X3n;xZEP>>B$3*rZqKE3}Hyb!UjkfaD-QT1nHWv!^L7O>w?1QL93a4`51mxW&s5D^gx zg8jx~EPVMY%E|zY`7Mr!kB_e^ONVluWsLTUAs=aJYs+O};X#0??QwhGuguR1$$YR{ zq)dxe8Wep~Q}uW60<@>-Ucdg1`o+dZRTa0fVRGzgeS8RqL|=Z2`Eg-E0U&{;L;9+! z(Ruv&-?XN0(^V*`nE^dM)@2{`O62A;)H8eD+6>B6#-5-@MW9BwCHsDrSU?B~nh+TuKULsdKG)!4Gx>8-re?q}Rg%-Ge`aPzOOt2X_Zgo4Dx6J4Y0;n5;}soU z0<)1c3^q37RimB?SGWTxf|ild^KRd+#`}YzF$qFA2|VKq>bXU29LB_$A#aa`a#70=~g`ei6yP4*y1z`y|2#rOrZivA3AN+j<6UW` z3XP34ea#X=#1;`|3NcNC<*VM^-97y5wb~!gWao!EytFD4Lr(310_6;7Zzj|d8bRPH zJsdujVnszIfCyqiMh5?X>OKFcLu5xRLsw)pOj7xWv+C9w!DtZE4*+9R__T)*=Vx|$ zBcS|ltat_)^kHkRc!e2AQ2PwxC0_6}ORQ9KW>6afVbzy=L;p>bo0#7G+MEg^$oISW zf&-k2yX{gj*6ZF&Qm4Lu` zR};t1w1(5pq>>BvyBEw90No=6q)Bqq>omBqy?*^#KtSNdi}Z2LCy+s$!VEEsEQe4M zzPs9!7<(xa4h6#Pw;794_8q9i)-!ykyY+=na54sbzuw$6aGq z3!XH^=Md}4GC~$A#7bbb|Dypg;~*YVe{>i4T?1hcihTZq zLAxpGz*OncjE;ZL0$2#&-rj;$V)p($nf8zHaEwwW3P4mSF;Sksc~9qR5r|8VE<7%~ zy-F9o|EIxUKHKI`*-Jh?cTkzd#l?9X_crF61cW7DtD`PGW*CAxLe8bHA zw$_}DdI-ptF^sx*>sA=%i!&|j)4!#?W6+Y_Tp|x@7GPpJdF8%J9U;VheSIi72$e3! zF9Jl&POj>$6ikTl374Vm2p2_$C^7SWy!)Cll z+jYI4I8||Da}%GK_`VSMgekt70pvUYiyD{@;QJdtEDBpr|FJw9N|)&A?yhfW_+!al zwOegHi}duVl!8KaNr`%++r50jw$B0)#Ied0qo$^IioQ-2@i!j$L9fkkF<#)XJ>ItS zb@BKTeCgcJk1rDX+JDf#e&u#@F_i3i!(}s9Pctv)d~nbVe!{P!dVMF&D{KnCy9IT| zWFU!+jZM43{B)dNbHb-k35-p8n_X$C6nw2tPQBY=@8C##sBYbJoswuRYUM35GRmhX zv;LuFWo70@L*Hb{C$`d=f#N88xlcLu>;CWpj@#wUBSci7k`fRQsH&+MzzyV#`xCns zKZFo*{a!zwD0qiOLel7ZZtXJ&I&DNm1mNz**4B-BEeHTK`Y5WXs0a)H2541QPVUj8 zM=vNSsx1F}L67HiJv-Z-mIx+*sjL44C)a4BKynC&M=E3iMK|z!(3B_Z4$H!cOc)rW zeC7DEG$+Rt!1W0mEe<9oB^RsG`udrX7M4pX=J6Fkn!$VclWj~a{26(;IgO1>$bAq{ zi0n5GQc;Py$$UyW(Mb7Jv>e{*zXcED``Ndi)xC?;YR5;OX&Mf$Ki=J3&2=TZBJOD7 zs~lg(?f-13<#y*8uLG+HXrXy~qVR(jv~T-i($cc#(?x};spP@p>G*>sPrwZ-D=Yhi zWo8-y<_u;SklZn)K;pxXo{rA$<40%s9iMP#bMxZO<#AC_(J)S8QWB%q&%s<}Y9B=* zA)zLZTQK(M!oVQX1fv4r|GgSo(E?$0evK;=c}~ymVCxch_tu@5pe3VTTJi1Mv^Jh0 zTwL6dY=zJ%5*$o|FL+rQ8J6lz9aX~gU#9k*e8cm=uoLt7c>Ll`YYQtQXT80o!#AB6>~E)vvT7;05L}LV01{n z!kz1e0NsA#odZwn_U2}9rsl=@4ru&pz$iJ{9047cJoh#%GSYih(d^HkKMV{El6uqN zCegvHaNM23rPmM@6ALEdD!ZFSfS5Wpw*9d)?$8YYigL5e!!-oiv$#Ziflc@RYdkYX zRs}&IHUvlo?Ay()udJ+lG<*xIOi7VF$xWnQ#F?I+;^gAt;^aKp z8H;Sw=W=oc-j9gMAdIcJ1sNMG-p`*uEBxS9a@(rgZ%hE9JXlRW!g?P+GBuKdF}_~w zBdqBL!`@>4O_U-)^o!cwpYnA8ae<5jW-$L*ZuGfPWL z!^4&2<@?JPjN<*{x$KNTd^iAb;K@TF4UMUp8avn+c3`WtXRNC1TQO^oMMP01!-`#9 z^^n)}ualCJrl+f&K79D#Xv@yQLQNi#w-!I|6DQ#5;o?#&NcIV=Vo<|*`S@_Q-R^Gw zw6nvXIy~{%^X9Mvz#n5nL$|9Fv(4d5bv;4BUj^^VhlhtR+&s+9x18qP{i76; zxKG;x@g9DLkgMc#XaMtP@M?ef;&8c~x%|LCQL^9fl#qy?+`nXQPJoGNdvozo&gmsYkiKxn z)=UuS$Y;B|QT#8%B>`DcEq*6KO7QO8NfxJ>fVa?e!)lCbp@tdfXuN<;<65FZaSZ)RBV+s2DMj5o9G)-U{C^~!M-;TSVk!YunN~K zV`RzCcPC;*-Otv8C0G#(#d>i2;yJKnTHmB{Kp+#K{a?Ah=nIN>*xV6Kf6MQ216W#B zMM;L@tN%P9l{7#W)YH5uF*=m(N03H#IVSq8Gnr@T!hv}7-imT#g?wQT}&F@9WL*L(~M3_pFK>Ld`-bvrixd z9RIE;@hS~%z4yBI0=P7OuGT!TWlhldaSH!ese6}it0EWVztsCu}# zYinz&T3Yo^19M%G)cIx?H}mTb>Phjc4)QPu)12iB^?bIgtIPX$_kXQf{r&#UbL95V zx@eCXP)^RytpAi{rl-H4j_{6Beud4Ru)Ddqxw+V7Tuy_Hq`J4Y^o=nwlt)1S;;Rmy z>+PFc|MUHMgH?cXfCACtk780&Dxb(nKJiUD)B4*a>o0e&Z2$E`gN{S%=L7^m85#sa zB~K5ZrCh8ig;F`L8lIX@SbiWKiE4bFVtm0iun}K#jK3dfe){yOKN=~?0{{C-j+VE| z%1<{}Ks5)twae)a8~AcS0BFzL?$w@LJg-{vf0KKD#K&*34F?vz-=Ax+nXeCS!XyPI z;#j`g_1SJq_o3h4QJ(xcxen(i<+cZM$17Ejg^5R9U0uKwsDm%u`KO`T7J?EUla%DX zycP_M2B*Eb=AO`hm5$8EBNAc)(YyP4`ucicJ2ml&Y^tyRSA7S4xC^kBmom}yvYyU& zzb{8U-{QE+XOBGcen`&pP!TaB+bj+|`gY_;9aAzX-XS1wZ)masw3ud zX&oBEAU`=;l@ZWwYRwS!`NxCur|11waYesW9TAPh-ZmmG`JqjltpPE=?Q=99!vpjJ zx4~aRKwsDzOnoGr^AA?I@A>7pyeSlHspeV}ffab*I^6i@`^Qmr9qm8#cK7FbQoEjS z@!8Dr0ysH7K2Ffc4OW>ca^w-M5Ww5?MfA*tv0HQ%*0Z%gf5vuwFOL3i0!LewI)xyV z={Yh*VnJ@`qA+434)7q9f#UUXpI zPfU>794&OM1}z74UhTbi|M;tx>M`NrdTkZIx0X>d@iIs?G&M~O4LgHz4^0YV;l6#n zy{$b~mX`8~yhBx1nl)E>Hf&(H~c~SThHlEMt=VGXKzGG%&tB{jz=*F{O)He zW^fGQe{9)4G$fY{dgUi@f z!QTT|wLn5L01~a6(B7g?0G7w)YRp8j4jwjk0XTo}4=4pbem=$~MkXdk{spMbJ=t;z zxY*B60A4yeI{N|&j4%|zUvptckc2gN{523fkSVLPUqh8aQ68^h|Alv=NCmzKIM!32$5tlh7`H-NyR--*W_>fbfNfiurV@g_r92W5AQLJ#Rz-C5D zNXk<$Gt>Vkdl>yP&JDu6=3`ih+)dNNi+Do}FKH68+q{rQtKO&F|zG~owkfD=L>F!4~5LcP9b zZ^V3jBq5DaOzjLY%m5$y9DL!ty!1R?etwVb@j}34K%Gw)51y)bw(E(e57=RaXuLp& zLIWO|DaqJ};~v^@7l{zVR>Q-?o12>fI{}jo83iQ?z`SJ7J1N8L2ZIEk75V9_-q;)- zj&w}5V+4@Xn~NFn1vI*x(pC)u&Q_>d%^cV3w~Gde$3pTMMgz86jkJtM6-LF{f86kt;PoyeEd!f|$rE!CpLWY=;RH6@)=)1kC?P2Q76Qvj` zN~!~b%%`K)u4yOh_0?4xD;Y`n)9jIRdi`h8^9?z9A$dnBDP%rj<>f3SsX!G3^haZZ zAM#k42su7B_7%NaXb#WN@JEeGbC{~CUsNKugE^2M*vHwSsZn%lpz8yfM1YQ63APIW zex1{Pd%GWyS)a{`!fjHv_uK;=@|CA;At%W*g!bsdK!tp(QADC-@N$z=i(z7P6q~NA zuaB6^mh#^y7;{|E#CPkoJPjai-wXLXxtZi7p9u~t#UKPUHRa0yNPUl3ic&~%D8c%=yJ=ZiMw*+2T(oViPL&NBs-S|)F9&0VX*pxOk~82nJ2q=qzKXz^)x< z?wiVhN6c;Rin6Gv&v2E`N%9Av9Ysi5RAS?MiPN)J1va`<)dpJNF~`lMi3I}3Z4d6y z1RxczbN6=|XzI(rn3c6P5J&1y79gcNKR&-#uR$F*p&1xeNnkP%UtRAeHMvs<^%W#? zGObRr5=9@SSg0)(qho?45qm@VPEMWl?@^NtVmRzpQ>>fu()r<%8D7p09vnX$tsWDp zl?>F;A&#LpC{?!-a9`4{J#lIKX3^FLvvr`1VB9x~A~epUC1vZ@YePEsxSevlQFl1q zng$VV9BjAoDO`x)bM7R5V{v^3(vwLq zF#}>49C(~ui?myZ#b#xwhPabPehEcV3nPg%Z}^@m#nRD9dVx*tU#aTmRAwnS*a~KD6hK~O4EOsBBPuo%f!Ye2JMSw@|Mq@$fM5? zqaV`NI60}{u{E4o=`zu6prxXv3aA)wZGH1*aCf2E1`&l@R7D+PpQS@R6oy+VB4PHi z8#|`66T_h6E;>>6K*hqyXe>Njs=4{Ke#^r_vIR;F(v1!Ilcly>KUBV}qgBK-eG)!y zeu|~N1P;=|f_O&VJ&$cwT&3^_gS23{w6ua6*!-n4&w%eF5lRBRPvwAo2$|23?Xl1O zb6Yw5v?bzO_;f_bzeyNO5~BVOK8hMsZuPB`oM~xa7_|{SpP^QHHOVN!E=fHzlDXNs zx^iJc&FeBTIs>sEb?T-e5Fx6x2rC@Bq< ziS;0*Bbk_(ST`PFz2=A}T+}5*ds7>yUa*Gt@V<@R?EJwq8EDK=tA?0Df%mYuW>@N# z-33RPoiE0a#d+W*|M9p6bpJIthrMT$I3Q?)xf-jY&*|BrR!O3C9$IJ+FLMD6pWYnT zHyV!xv&pEp1hg~SWMUYcKYbe9w70O>CiT22O-T_fMcst6zU}}o=Q!g++#gNgo+dL4 zQzZ21lo?8a@&ZCd0D6@E8DEj4#LUzkNXsL#Tj>lZFu{KySp3UW3BI|6!VP4`))-I? zz@M^`lK@rv`uPFLdaSD}Aj}K00nySN_2h1-x&ROiv>s#<-q7&; zLhK*errnLqs$fjw2!fUf_}-O->%oE$P$hsExJ8Nt(f%@Ye}<_NMfmsVXoSa)FD@^~ z1g3^FWzdK?1*uw+><2pq<-zyJ(fx;Zlk1t2kwFQ@`G$&ZCI}(;$xOhwCwQJ5V0}K{P4MZa6vMcU9Ki7EVM|wF>0*vSMTLM3gz*A}l10;0+0Nz*R zz(LkEMfr`!sOSCTqPagODNBs4e0J0kfjHuIp*OSRRs_84>kcXxZa%(ifL%o+HV4^Rmn6RoSLc!m?OB^KZTkcl7T5oWFIP^|DdVTKh_8S zK=qxhduho0XK*m=mlwno?f#k>hSTgZDQT(Yleitm@?aq$ApituSD1!}hAP||JWP2c z8iLyf7Q3*M&7cz6-{qAp4_n2elD)XQ-X9qmnXWK9o^_fp1XzE94qD@=PmzT}B56<=^PepH5e77C++hvf^je1?m!L-UVDNke6KK*r;@W0ppau@ z5g!A(EEB^>?gO%<2S0LXZS3utyhEt|dFDQf($d{P{)*?Yx%ZjDY+t%Y@xn#t^bS#{ z9N!ukqf^t?(gO8_p8hom8oGfTTfq&WHRR;v>dumq(EDr9xE*S@$Vd-pTWQQufIaE! z(FIPCac?X>i*Y>&D$>ww0#ESq`E$rFnPWu`3}}zb?ZGY49l?ZngoJ_gfJLcmY8vza z*wyTsmZz0paY(>69=QQrejGYgH~8&2l-$nl7|d~Y`%uWBq(Kc9xFk0)4}hZ#jBbOM z*hrb+WT4K01L%yz-1dS{5RO^oQ-aNHY?y*Q6M92HV+3^;n2lIv+17LQ0k>x6f67*Y zhan>^y>-9h$j+1*rmkx~9i~-RJ8d1S+?ec4mg2#G0%uP=m;?s{qq%P#2u*}9*q6ZP z7LAcw)r*5=j2V!Tld}PsqdyP@?beX*I)e{z%k=I~X=V?jh{ zeO1m_!`esEca`vk3{>qDBQ=fwGW4VC! z2H_*zVgfFqWk6A*w_dJX#jiyNRo*T!e`04Z{rUh7Spqjs$hUr zi<*W9{LY>DT=bsbu*L0WRk3V<8VPuD-Or!zV|Yt$pk8+tTFJIbwB$;c>*<7>CK}kA z6!hlI({ffOgF?_kkeCE|_URTrgnQyE|LW10dBMKsw*7Zp<+pF68Fhbzh286~BqV$5>(puwnwDQXg=V(f1_cC2 znVHcvCm{$v`$|AxTRH=UPkr(lYV(J){&TgG3SD-4GhCMaGLRF}&*@?*FKeIEo4Zye zfJ8=XTN?%;7AR*2Qxt=k+CjLL+|zwPrv}pzq&%QOPrc6Wt3Q|(8cDmxEq*9~^}TpQ z2GI~(K;{;dvHyrU3#K86KUh{JJE+f9zQF$64p!vncMZi@i%m*Hj5xI4X!8bQ{XW053mHqMULEKY&-ugj` z-9en`Eh6dNqyN$vRZx-Hlb99LhmNIC|;5p-Zcz*!bIE+uv z&aS#S;jQPef|(P41b`7p)T{tm9hwTpTsE1XkBKRK()v-#ORy7hykrfi@%NwiBfTv# zk;rE-TOk>hh_eK6GqA22_=n;#wcV&RrlRRJqhG&!3+DvsSUS}LAXkAyv&Pm)T3Y(P z=o3B+&JBHm8Mt-h&B4LM2Er$2U@g*N20j*U1_cx3=k}MDFrPnH*HH=?GXq&8@FFOH zGvFG4=s3hQ1dK3ni-6X((yAQhfp7?5RC5ik=YxZTv^rxz=Xv)!T9LAq7Ahu;8+Zy7 z-aJ*MWEAp5`4NiG<+DKqY~T8f0U(S1{@rr6)?qY9=`{4Im-Sy7xeSk_!-HB#2cCLy zFfuTJjGS7wd=j9D|H>oV>DKX9=4F0@B3fa(nC51EmsIBj%qk%EaTf^NtJu4^T(t=> z=-e#pYiMZ5+6Ng>O8^q@>a?$ivp3gZp>Mvlv5{krbNUDU_a-YnCg=41jfN6&=>wI~ z+S&uuKrmBup!NFM19?tpZZ@oGAz-Cp6!^t1%s-u)Ks_(G>vjg$FFhfBK7vurPzx zPcqy9YPop(qZO%w-(6VL)C%zh#{XR2o;+)5`RvWba_C5wTnqnAHK_P;EG9a2j=^D_ z5YvREKOfEB>QLu0)*7 z!YBV&gB=ARqZ||*j3G>?R@7>f{~!g9JrDxC^Y795Y6CuB*g$pvQ)bljokkh7!j8W@ znA$z=nXd0iEp`kLZ9uMw$9}^Ly}P#;;0Npg(Y|=L?j`__S#nQ6j)$kV*){{TULla^;`lbOF z%TY=%Ir_NVp2X$42DbLx_iSmELg8ZT8qiYJm;bK&bugkJ_5h+_B2ciS=7mIvY34k{ z^nqhpVs!M{&JGbak&3DY_-AW%6^Ihiv9Yny(OHXsSjp4HdM}CbWB=UYn*C_iW zb-yj8a2H?;HX`~f_)3%e^cfAmGP-b!KN{fRE#0o?oAe97eQIzy|1Ayl%`|hIEARiF zhlaJ(eBrW0^=~0}tbGTG4+6>^q6FfN9@yaxWU=p2(Ry5m$)lbbbOUjG)a(qZo5ebB z^&^rRlFqL4_i=l5Q@Y#&|Jk*pqU+!OhNc)3Xt%%o;gCVL&F1$&c!GT`PdK`1|^r z+x{Erq`+%Y-;BtdZqAdyxhK}T`S#7yHQWvUBoedUa3LM@B z(zkScVtt*Rv8N*i{Xl5say&XehF=`MP;wPfva+Li+W@L8xcA-Z?Ba%`+vodCjJh6i zR6hT@TZp_>zjUtA9e7>?1J$KfG@XosP_RSRuT8(JP@W9^=IEF)3H&;S?I|m;d*V~g zaEauibk0eOHjk6T?r>$f-8!tP;BBILN&AFaBzGRII!hra?0chKxvtfFYQy9K0VG%#%W~w^Sn2>_S@3&G4zal5s+Zar>WdhY`-nhQu^1KhUc(B8VkWr05wE?KH zx($w}Yx5lQ_3l{2^tw%d2gsZj8yB13<;Jw_8xGLcdl)-C4-SMB718<6gW~w!w7|*ZJD7hgu{~ksnrwZks7FQRhhqx}NXiAo&2k`C)5? z)$`8HlFS>O`{Ru$H~<<3fg_O#pS#lu-TOJj36z*Clx>hR2Cq*P0pgTwGxKwCZx5K2 za0#k9)?kKWx^y13=t%RH}2)}{z6cSlW%gSs)&zofC&r%&x+|-E@NmWET zdIq@Bdjo@(#Si8)IGn)s1HmB|ga;aFvlTh4_hSLv@dS1om!p#|u%k8_HyR9WOSj$M zT=#U9*>roBTy@dx(a{Q`OCBwl9l)%NKj(V+vdyF{v^=t$ZKO8RAp7_4-%~c#SqHa+ ze`?CL>EAD<_ia3hPg8@dulcICc{B zz)mqBLlt~fTL2pym@B zV`{MGsdjE4h<8b?^{T*zg`iJ*QPc^3+Rxv)1FW*Tx(e3sL`nE5Sp(^ct-jTHC@t6* z02nWjG@z+qGb&YN0D9WUCKwcdG-3en>HyuDu-3lcYqGHL-qiHfL}HiWQeSyl*{Hu5 z6sWksUj)XlPuPqucD;wABfAc%+VXb36tUbF^kK!l3sAaxnne&_Vs-@+ay$ffs*H1% zUZMcQ-4Lh@e;?baCWG`o{VOZxWq*7ybH>KT{!e9J9ToNZ?mG%d2ucVj5*wtHQb0iz zP(ngly1Tm@6i{IVM5IfQ&H?G(bcl49fPl1g!+B`47otBn%P-aqW+B*x| zNIn9Eq8YSNhK3)*!@sb)-niiL^uDE_cy~(3V$;|uZa$@3!dHV`YYg6%`P@$l< zXoX+HV(jYb{+Ivb$B*^(^{;h*A`*gbT!*BR5tOR%0D*i93cAWk$geOmnujVK+Cz3K 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 diff --git a/doc/salome/gui/SMESH/images/mergenodes.png b/doc/salome/gui/SMESH/images/mergenodes.png index fc75f70dd9c5d91df331d56d70eeccf1ac1bfd7f..267602507e61f8f78718aadba7759275b10e8258 100644 GIT binary patch literal 47757 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

15OSekl%M~2vKDl7oj{jQa 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 r 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 literal 30511 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 diff --git a/doc/salome/gui/SMESH/input/merging_elements.rst b/doc/salome/gui/SMESH/input/merging_elements.rst index 43a27090e..628e364a8 100644 --- a/doc/salome/gui/SMESH/input/merging_elements.rst +++ b/doc/salome/gui/SMESH/input/merging_elements.rst @@ -17,10 +17,23 @@ To merge elements choose in the main menu **Modification** -> **Transformation** .. image:: ../images/mergeelems_auto.png :align: center +.. |ad| image:: ../images/add.png +.. |rm| image:: ../images/remove.png +.. |mv| image:: ../images/sort.png + In this dialog: - * **Name** is the name of the mesh object whose elements will be merged. + * **Names** contains names of the selected mesh objects whose elements will be merged. * **Automatic** or **Manual** Mode allows choosing how the elements are processed. In the **Automatic** Mode all elements created on the same nodes will be merged. In **Manual** mode you can adjust groups of coincident elements detected by the program. + * **Exclude groups from detection** group allows to ignore the elements which belong to the specified mesh groups. This control is active provided that the mesh includes groups. + * **Elements to keep during the merge** group allows to specify elements to keep in the mesh. (By default an element being the first in a group of coincident elements is kept.) It is possible to either select elements in the Viewer or select groups whose elements will be kept. + + * *Selection* button activates selection of elements to keep. + * **Elements** button activates selection of elements in the Viewer. + * **Groups and sub-meshes** button activates selection of groups and sub-meshes. + * **Add** button adds selected elements or groups to the list. + * Elements or groups selected in the list can be removed using **Remove** button. + If the **Manual** Mode is selected, additional controls are available: @@ -36,20 +49,9 @@ In this dialog: * **Show double elements IDs** check-box shows/hides identifiers of elements of the selected groups in the 3D viewer. * **Edit selected group of coincident elements** list allows editing the selected group: - .. image:: ../images/add.png - :align: center - - * adds to the group the elements selected in the viewer. - - .. image:: ../images/remove.png - :align: center - - * removes the selected elements from the group. - - .. image:: ../images/sort.png - :align: center - - * moves the selected element to the first position in the group in order to keep it in the mesh. + * |ad| adds to the group the elements selected in the viewer. + * |rm| removes the selected elements from the group. + * |mv| moves the selected element to the first position in the group in order to keep it in the mesh. diff --git a/doc/salome/gui/SMESH/input/merging_nodes.rst b/doc/salome/gui/SMESH/input/merging_nodes.rst index e7bba52d4..18096ba22 100644 --- a/doc/salome/gui/SMESH/input/merging_nodes.rst +++ b/doc/salome/gui/SMESH/input/merging_nodes.rst @@ -12,14 +12,18 @@ This functionality allows user to detect groups of coincident nodes with specifi .. centered:: *"Merge nodes"* menu button +.. |ad| image:: ../images/add.png +.. |rm| image:: ../images/remove.png +.. |mv| image:: ../images/sort.png + *To merge nodes of your mesh:* #. Choose **Modification** -> **Transformation** -> **Merge nodes** menu item. The following dialog box shall appear: .. image:: ../images/mergenodes_auto.png :align: center - - * **Name** is the name of the mesh whose nodes will be merged. + + * **Names** contains names of the selected mesh objects whose nodes will be merged. * **Automatic** or **Manual** mode allows choosing how the nodes are processed. In **Manual** mode you can adjust groups of coincident nodes detected by the program and/or select any nodes to be merged. * **Tolerance** is a maximum distance between nodes sufficient for merging. * Activation of **No merge of corner and medium nodes of quadratic cells** check-box prevents merging medium nodes of quadratic elements with corner nodes. This check-box is enabled provided that the selected mesh includes quadratic elements. @@ -53,20 +57,9 @@ This functionality allows user to detect groups of coincident nodes with specifi * **Edit selected group of coincident nodes** list allows editing the selected group: - .. image:: ../images/add.png - :align: center - - * adds to the group the nodes selected in the viewer. - - .. image:: ../images/remove.png - :align: center - - * removes from the group the selected nodes. - - .. image:: ../images/sort.png - :align: center - - * moves the selected node to the first position in the group in order to keep it in the mesh. + * |ad| adds to the group the nodes selected in the viewer. + * |rm| removes from the group the selected nodes. + * |mv| moves the selected node to the first position in the group in order to keep it in the mesh. #. To confirm your choice click **Apply** or **Apply and Close** button. diff --git a/idl/SMESH_MeshEditor.idl b/idl/SMESH_MeshEditor.idl index 9491b9214..482f8e9b6 100644 --- a/idl/SMESH_MeshEditor.idl +++ b/idl/SMESH_MeshEditor.idl @@ -723,7 +723,7 @@ module SMESH in boolean SeparateCornersAndMedium) raises (SALOME::SALOME_Exception); - void FindCoincidentNodesOnPartBut (in SMESH_IDSource SubMeshOrGroup, + void FindCoincidentNodesOnPartBut (in ListOfIDSources SubMeshOrGroup, in double Tolerance, out array_of_long_array GroupsOfNodes, in ListOfIDSources ExceptSubMeshOrGroups, @@ -740,7 +740,8 @@ module SMESH * \param MeshOrSubMeshOrGroup Mesh or SubMesh, or Group of elements for searching. * \return List of groups of equal elements. */ - void FindEqualElements (in SMESH_IDSource MeshOrSubMeshOrGroup, + void FindEqualElements (in ListOfIDSources MeshOrSubMeshOrGroup, + in ListOfIDSources ExceptSubMeshOrGroups, out array_of_long_array GroupsOfElementsID) raises (SALOME::SALOME_Exception); @@ -748,7 +749,8 @@ module SMESH * \brief Merge elements in each given group. * \param GroupsOfElementsID Groups of elements for merging. */ - void MergeElements(in array_of_long_array GroupsOfElementsID) + void MergeElements(in array_of_long_array GroupsOfElementsID, + in SMESH::ListOfIDSources ElementsToKeep) raises (SALOME::SALOME_Exception); /*! diff --git a/src/SMESH/SMESH_MeshEditor.cxx b/src/SMESH/SMESH_MeshEditor.cxx index 6ec53053c..81db6b65f 100644 --- a/src/SMESH/SMESH_MeshEditor.cxx +++ b/src/SMESH/SMESH_MeshEditor.cxx @@ -10941,7 +10941,7 @@ void SMESH_MeshEditor::DoubleElements( const TIDSortedElemSet& theElements ) } else { - type = (*theElements.begin())->GetType(); + //type = (*theElements.begin())->GetType(); elemIt = SMESHUtils::elemSetIterator( theElements ); } @@ -10956,7 +10956,8 @@ void SMESH_MeshEditor::DoubleElements( const TIDSortedElemSet& theElements ) while ( elemIt->more() ) { const SMDS_MeshElement* elem = elemIt->next(); - if ( elem->GetType() != type || elem->isMarked() ) + if (( type != SMDSAbs_All && elem->GetType() != type ) || + ( elem->isMarked() )) continue; elemType.Init( elem, /*basicOnly=*/false ); diff --git a/src/SMESHGUI/SMESHGUI_MergeDlg.cxx b/src/SMESHGUI/SMESHGUI_MergeDlg.cxx index 6bba06313..f76bab499 100644 --- a/src/SMESHGUI/SMESHGUI_MergeDlg.cxx +++ b/src/SMESHGUI/SMESHGUI_MergeDlg.cxx @@ -114,9 +114,10 @@ SMESHGUI_MergeDlg::SMESHGUI_MergeDlg (SMESHGUI* theModule, int theAction) mySelectionMgr(SMESH::GetSelectionMgr(theModule)), myAction(theAction) { + const bool isElems = ( myAction == MERGE_ELEMENTS ); setModal(false); setAttribute(Qt::WA_DeleteOnClose, true); - setWindowTitle(myAction == MERGE_ELEMENTS ? tr("SMESH_MERGE_ELEMENTS") : tr("SMESH_MERGE_NODES")); + setWindowTitle( isElems ? tr("SMESH_MERGE_ELEMENTS") : tr("SMESH_MERGE_NODES")); myIdPreview = new SMESHGUI_IdPreview(SMESH::GetViewWindow( mySMESHGUI )); @@ -155,7 +156,7 @@ SMESHGUI_MergeDlg::SMESHGUI_MergeDlg (SMESHGUI* theModule, int theAction) GroupMeshLayout->setSpacing(SPACING); GroupMeshLayout->setMargin(MARGIN); - TextLabelName = new QLabel(tr("SMESH_NAME"), GroupMesh); + TextLabelName = new QLabel(tr("SMESH_NAMES"), GroupMesh); SelectMeshButton = new QPushButton(GroupMesh); SelectMeshButton->setIcon(IconSelect); LineEditMesh = new QLineEdit(GroupMesh); @@ -168,10 +169,7 @@ SMESHGUI_MergeDlg::SMESHGUI_MergeDlg (SMESHGUI* theModule, int theAction) /***************************************************************/ // Controls for coincident elements detecting - GroupCoincident = new QGroupBox(myAction == MERGE_ELEMENTS ? - tr("COINCIDENT_ELEMENTS") : - tr("COINCIDENT_NODES"), - this); + GroupCoincident = new QGroupBox(tr(isElems ? "COINCIDENT_ELEMENTS" : "COINCIDENT_NODES"), this); QGridLayout* aCoincidentLayout = new QGridLayout(GroupCoincident); aCoincidentLayout->setSpacing(SPACING); @@ -202,55 +200,6 @@ SMESHGUI_MergeDlg::SMESHGUI_MergeDlg (SMESHGUI* theModule, int theAction) NodeSpecLayout->addWidget(SpinBoxTolerance, 0, 1 ); NodeSpecLayout->addWidget(SeparateCornersAndMedium, 1, 0, 1, 2 ); NodeSpecLayout->addWidget(AvoidMakingHoles, 2, 0, 1, 2 ); - - /***************************************************************/ - // Exclude groups - - GroupExclude = new QGroupBox(tr("EXCLUDE_GROUPS"), this ); - GroupExclude->setCheckable( true ); - GroupExclude->setChecked( false ); - ListExclude = new QListWidget( GroupExclude ); - QVBoxLayout* GroupExcludeLayout = new QVBoxLayout(GroupExclude); - GroupExcludeLayout->setSpacing(SPACING); - GroupExcludeLayout->setMargin(MARGIN); - GroupExcludeLayout->addWidget(ListExclude); - - /***************************************************************/ - // Nodes to keep - - GroupKeep = new QGroupBox(tr("KEEP_NODES"), this); - SelectKeepNodesButton = new QPushButton( GroupKeep ); - SelectKeepNodesButton->setIcon( IconSelect ); - QLabel* selectLabel = new QLabel(tr("SELECT")); - QRadioButton* idsButton = new QRadioButton(tr("SMESH_NODES"), GroupKeep); - QRadioButton* groupButton = new QRadioButton(tr("GROUP_SUBMESH"), GroupKeep); - KeepFromButGroup = new QButtonGroup( this ); - KeepFromButGroup->addButton( idsButton, 0 ); - KeepFromButGroup->addButton( groupButton, 1 ); - groupButton->setChecked( true ); - KeepList = new QListWidget( GroupKeep ); - KeepList->setSelectionMode(QAbstractItemView::ExtendedSelection); - KeepList->setFlow(QListView::TopToBottom); - AddKeepNodesButton = new QPushButton(tr("SMESH_BUT_ADD"), GroupKeep ); - RemoveKeepNodesButton = new QPushButton(tr("SMESH_BUT_REMOVE"), GroupKeep ); - QGridLayout* GroupKeepLayout = new QGridLayout(GroupKeep); - GroupKeepLayout->setSpacing( SPACING ); - GroupKeepLayout->setMargin ( MARGIN ); - GroupKeepLayout->addWidget( SelectKeepNodesButton, 0, 0 ); - GroupKeepLayout->addWidget( selectLabel, 0, 1 ); - GroupKeepLayout->addWidget( idsButton, 0, 2 ); - GroupKeepLayout->addWidget( groupButton, 0, 3, 1, 2 ); - GroupKeepLayout->addWidget( KeepList, 1, 0, 3, 4 ); - GroupKeepLayout->addWidget( AddKeepNodesButton, 1, 4, 1, 1 ); - GroupKeepLayout->addWidget( RemoveKeepNodesButton, 2, 4, 1, 1 ); - GroupKeepLayout->setRowStretch(3, 5); - - // Costruction of the logical filter - QList aListOfFilters; - aListOfFilters << new SMESH_TypeFilter (SMESH::SUBMESH) - << new SMESH_TypeFilter (SMESH::GROUP); - mySubMeshOrGroupFilter = - new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR, /*takeOwnership=*/true); } else { NodeSpecWidget = 0; @@ -258,13 +207,63 @@ SMESHGUI_MergeDlg::SMESHGUI_MergeDlg (SMESHGUI* theModule, int theAction) GroupExclude = 0; ListExclude = 0; KeepFromButGroup = 0; - SelectKeepNodesButton = 0; - AddKeepNodesButton = 0; - RemoveKeepNodesButton = 0; + SelectKeepButton = 0; + AddKeepButton = 0; + RemoveKeepButton = 0; KeepList = 0; mySubMeshOrGroupFilter = 0; } + /***************************************************************/ + // Exclude groups + + GroupExclude = new QGroupBox(tr("EXCLUDE_GROUPS"), this ); + GroupExclude->setCheckable( true ); + GroupExclude->setChecked( false ); + ListExclude = new QListWidget( GroupExclude ); + QVBoxLayout* GroupExcludeLayout = new QVBoxLayout(GroupExclude); + GroupExcludeLayout->setSpacing(SPACING); + GroupExcludeLayout->setMargin(MARGIN); + GroupExcludeLayout->addWidget(ListExclude); + + /***************************************************************/ + // Nodes/elements to keep + + GroupKeep = new QGroupBox(tr( isElems ? "KEEP_ELEMENTS" : "KEEP_NODES"), this); + SelectKeepButton = new QPushButton( GroupKeep ); + SelectKeepButton->setIcon( IconSelect ); + QLabel* selectLabel = new QLabel(tr("SELECT")); + QRadioButton* idsButton = new QRadioButton(tr(isElems ? "SMESH_ELEMENTS" : "SMESH_NODES"), + GroupKeep); + QRadioButton* groupButton = new QRadioButton(tr("GROUP_SUBMESH"), GroupKeep); + KeepFromButGroup = new QButtonGroup( this ); + KeepFromButGroup->addButton( idsButton, 0 ); + KeepFromButGroup->addButton( groupButton, 1 ); + groupButton->setChecked( true ); + KeepList = new QListWidget( GroupKeep ); + KeepList->setSelectionMode(QAbstractItemView::ExtendedSelection); + KeepList->setFlow(QListView::TopToBottom); + AddKeepButton = new QPushButton(tr("SMESH_BUT_ADD"), GroupKeep ); + RemoveKeepButton = new QPushButton(tr("SMESH_BUT_REMOVE"), GroupKeep ); + QGridLayout* GroupKeepLayout = new QGridLayout(GroupKeep); + GroupKeepLayout->setSpacing( SPACING ); + GroupKeepLayout->setMargin ( MARGIN ); + GroupKeepLayout->addWidget( SelectKeepButton, 0, 0 ); + GroupKeepLayout->addWidget( selectLabel, 0, 1 ); + GroupKeepLayout->addWidget( idsButton, 0, 2 ); + GroupKeepLayout->addWidget( groupButton, 0, 3, 1, 2 ); + GroupKeepLayout->addWidget( KeepList, 1, 0, 3, 4 ); + GroupKeepLayout->addWidget( AddKeepButton, 1, 4, 1, 1 ); + GroupKeepLayout->addWidget( RemoveKeepButton, 2, 4, 1, 1 ); + GroupKeepLayout->setRowStretch(3, 5); + + // Costruction of the logical filter + QList aListOfFilters; + aListOfFilters << new SMESH_TypeFilter (SMESH::SUBMESH) + << new SMESH_TypeFilter (SMESH::GROUP); + mySubMeshOrGroupFilter = + new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR, /*takeOwnership=*/true); + ListCoincident = new QListWidget(GroupCoincident); ListCoincident->setSelectionMode(QListWidget::ExtendedSelection); @@ -273,7 +272,7 @@ SMESHGUI_MergeDlg::SMESHGUI_MergeDlg (SMESHGUI* theModule, int theAction) RemoveGroupButton = new QPushButton(tr("SMESH_BUT_REMOVE"), GroupCoincident); SelectAllCB = new QCheckBox(tr("SELECT_ALL"), GroupCoincident); - ShowIDs = new QCheckBox(myAction == MERGE_ELEMENTS ? tr("SHOW_ELEMS_IDS") : tr("SHOW_NODES_IDS"), GroupCoincident); + ShowIDs = new QCheckBox( isElems ? tr("SHOW_ELEMS_IDS") : tr("SHOW_NODES_IDS"), GroupCoincident); aCoincidentLayout->addWidget(ListCoincident, 0, 0, 4, 2); aCoincidentLayout->addWidget(DetectButton, 0, 2); @@ -287,9 +286,7 @@ SMESHGUI_MergeDlg::SMESHGUI_MergeDlg (SMESHGUI* theModule, int theAction) /***************************************************************/ // Controls for editing the selected group - GroupEdit = new QGroupBox(myAction == MERGE_NODES ? - tr("EDIT_SELECTED_NODE_GROUP") : - tr("EDIT_SELECTED_ELEM_GROUP"), this); + GroupEdit = new QGroupBox( tr(isElems ? "EDIT_SELECTED_ELEM_GROUP" : "EDIT_SELECTED_NODE_GROUP"), this); QGridLayout* GroupEditLayout = new QGridLayout(GroupEdit); GroupEditLayout->setSpacing(SPACING); GroupEditLayout->setMargin(MARGIN); @@ -338,7 +335,7 @@ SMESHGUI_MergeDlg::SMESHGUI_MergeDlg (SMESHGUI* theModule, int theAction) GroupButtonsLayout->addWidget(buttonHelp); /***************************************************************/ - if (myAction == MERGE_NODES) + //if (myAction == MERGE_NODES) { QWidget* LeftWdg = new QWidget( this ); QVBoxLayout* LeftLayout = new QVBoxLayout(LeftWdg); @@ -346,7 +343,8 @@ SMESHGUI_MergeDlg::SMESHGUI_MergeDlg (SMESHGUI* theModule, int theAction) LeftLayout->setMargin(0); LeftLayout->addWidget(TypeBox); LeftLayout->addWidget(GroupMesh); - LeftLayout->addWidget(NodeSpecWidget); + if ( !isElems ) + LeftLayout->addWidget(NodeSpecWidget); LeftLayout->addWidget(GroupCoincident); LeftLayout->addStretch(); LeftLayout->addWidget(GroupButtons); @@ -368,17 +366,17 @@ SMESHGUI_MergeDlg::SMESHGUI_MergeDlg (SMESHGUI* theModule, int theAction) DlgLayout->addWidget( LeftWdg ); DlgLayout->addWidget( RightWdg ); } - else - { - QVBoxLayout* DlgLayout = new QVBoxLayout(this); - DlgLayout->setSpacing(SPACING); - DlgLayout->setMargin(MARGIN); - DlgLayout->addWidget(TypeBox); - DlgLayout->addWidget(GroupMesh); - DlgLayout->addWidget(GroupCoincident); - DlgLayout->addWidget(GroupEdit); - DlgLayout->addWidget(GroupButtons); - } + // else + // { + // QVBoxLayout* DlgLayout = new QVBoxLayout(this); + // DlgLayout->setSpacing(SPACING); + // DlgLayout->setMargin(MARGIN); + // DlgLayout->addWidget(TypeBox); + // DlgLayout->addWidget(GroupMesh); + // DlgLayout->addWidget(GroupCoincident); + // DlgLayout->addWidget(GroupEdit); + // DlgLayout->addWidget(GroupButtons); + // } GroupCoincident->hide(); GroupEdit->hide(); @@ -415,7 +413,7 @@ void SMESHGUI_MergeDlg::Init() myEditCurrentArgument = (QWidget*)LineEditMesh; myActor = 0; - mySubMeshOrGroup = SMESH::SMESH_subMesh::_nil(); + mySubMeshOrGroups = new SMESH::ListOfIDSources; mySelector = (SMESH::GetViewWindow( mySMESHGUI ))->GetSelector(); @@ -430,11 +428,11 @@ void SMESHGUI_MergeDlg::Init() if ( KeepList ) { - connect(SelectKeepNodesButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument())); - connect(KeepFromButGroup, SIGNAL (buttonClicked(int)), SLOT(onKeepNodeSourceChanged(int))); - connect(AddKeepNodesButton, SIGNAL (clicked()), this, SLOT(onAddKeepNode())); - connect(RemoveKeepNodesButton, SIGNAL (clicked()), this, SLOT(onRemoveKeepNode())); - connect(KeepList, SIGNAL (itemSelectionChanged()), this, SLOT(onSelectKeepNode())); + connect(SelectKeepButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument())); + connect(KeepFromButGroup, SIGNAL (buttonClicked(int)), SLOT(onKeepSourceChanged(int))); + connect(AddKeepButton, SIGNAL (clicked()), this, SLOT(onAddKeep())); + connect(RemoveKeepButton, SIGNAL (clicked()), this, SLOT(onRemoveKeep())); + connect(KeepList, SIGNAL (itemSelectionChanged()), this, SLOT(onSelectKeep())); } connect(SelectMeshButton, SIGNAL (clicked()), this, SLOT(SetEditCurrentArgument())); connect(DetectButton, SIGNAL (clicked()), this, SLOT(onDetect())); @@ -539,7 +537,8 @@ bool SMESHGUI_MergeDlg::ClickOnApply() aGroupsOfElements->length(ListCoincident->count()); int anArrayNum = 0; - for (int i = 0; i < ListCoincident->count(); i++) { + for (int i = 0; i < ListCoincident->count(); i++) + { QStringList aListIds = ListCoincident->item(i)->text().split(" ", QString::SkipEmptyParts); anIds->length(aListIds.count()); @@ -549,13 +548,13 @@ bool SMESHGUI_MergeDlg::ClickOnApply() aGroupsOfElements[anArrayNum++] = anIds.inout(); } - SMESH::ListOfIDSources_var nodesToKeep; + SMESH::ListOfIDSources_var toKeep; SMESH::IDSource_wrap tmpIdSource; - if ( myAction == MERGE_NODES ) + //if ( myAction == MERGE_NODES ) { - nodesToKeep = new SMESH::ListOfIDSources(); + toKeep = new SMESH::ListOfIDSources(); int i, nb = KeepList->count(); - if ( isKeepNodesIDsSelection() ) + if ( isKeepIDsSelection() ) { SMESH::long_array_var anIdList = new SMESH::long_array(); anIdList->length(nb); @@ -565,13 +564,13 @@ bool SMESHGUI_MergeDlg::ClickOnApply() if ( nb > 0 ) { tmpIdSource = aMeshEditor->MakeIDSource( anIdList, SMESH::NODE ); - nodesToKeep->length( 1 ); - nodesToKeep[0] = SMESH::SMESH_IDSource::_duplicate( tmpIdSource.in() ); + toKeep->length( 1 ); + toKeep[0] = SMESH::SMESH_IDSource::_duplicate( tmpIdSource.in() ); } } else { - nodesToKeep->length( nb ); + toKeep->length( nb ); int nbObj = 0; for (i = 0; i < nb; i++) { @@ -581,17 +580,17 @@ bool SMESHGUI_MergeDlg::ClickOnApply() SMESH::SMESH_IDSource_var idSrc = SMESH::IObjectToInterface( anIO ); if ( !idSrc->_is_nil() ) - nodesToKeep[ nbObj++ ] = SMESH::SMESH_IDSource::_duplicate( idSrc ); + toKeep[ nbObj++ ] = SMESH::SMESH_IDSource::_duplicate( idSrc ); } - nodesToKeep->length( nbObj ); + toKeep->length( nbObj ); } KeepList->clear(); } if( myAction == MERGE_NODES ) - aMeshEditor->MergeNodes( aGroupsOfElements.inout(), nodesToKeep, AvoidMakingHoles->isChecked() ); + aMeshEditor->MergeNodes( aGroupsOfElements.inout(), toKeep, AvoidMakingHoles->isChecked() ); else - aMeshEditor->MergeElements( aGroupsOfElements.inout() ); + aMeshEditor->MergeElements( aGroupsOfElements.inout(), toKeep ); if ( myTypeId == TYPE_AUTO ) { if ( myAction == MERGE_NODES ) @@ -601,8 +600,8 @@ bool SMESHGUI_MergeDlg::ClickOnApply() SUIT_MessageBox::information(SMESHGUI::desktop(), tr("SMESH_INFORMATION"), tr("SMESH_MERGED_ELEMENTS").arg(QString::number(ListCoincident->count()).toLatin1().data())); } - if ( & nodesToKeep.in() ) - nodesToKeep->length(0); // release before tmpIdSource calls UnRegister() + if ( & toKeep.in() ) + toKeep->length(0); // release before tmpIdSource calls UnRegister() } catch(...) { @@ -747,11 +746,12 @@ void SMESHGUI_MergeDlg::updateControls() myMesh->NbVolumesOfOrder( SMESH::ORDER_QUADRATIC ) > 0 )); SeparateCornersAndMedium->setEnabled( has2ndOrder ); - + } + { if ( myEditCurrentArgument != KeepList ) { - AddKeepNodesButton->setEnabled( false ); - RemoveKeepNodesButton->setEnabled( false ); + AddKeepButton->setEnabled( false ); + RemoveKeepButton->setEnabled( false ); KeepList->clearSelection(); } } @@ -776,38 +776,38 @@ void SMESHGUI_MergeDlg::onDetect() SMESH::array_of_long_array_var aGroupsArray; SMESH::ListOfIDSources_var aExcludeGroups = new SMESH::ListOfIDSources; - SMESH::SMESH_IDSource_var src; - if ( mySubMeshOrGroup->_is_nil() ) src = SMESH::SMESH_IDSource::_duplicate( myMesh ); - else src = SMESH::SMESH_IDSource::_duplicate( mySubMeshOrGroup ); + for ( int i = 0; GroupExclude->isChecked() && i < ListExclude->count(); i++ ) { + if ( ListExclude->item( i )->checkState() == Qt::Checked ) { + aExcludeGroups->length( aExcludeGroups->length()+1 ); + aExcludeGroups[ aExcludeGroups->length()-1 ] = SMESH::SMESH_IDSource::_narrow( myGroups[i] ); + } + } switch (myAction) { case MERGE_NODES : - for ( int i = 0; GroupExclude->isChecked() && i < ListExclude->count(); i++ ) { - if ( ListExclude->item( i )->checkState() == Qt::Checked ) { - aExcludeGroups->length( aExcludeGroups->length()+1 ); - aExcludeGroups[ aExcludeGroups->length()-1 ] = SMESH::SMESH_IDSource::_duplicate( myGroups[i] ); - } - } - aMeshEditor->FindCoincidentNodesOnPartBut(src.in(), - SpinBoxTolerance->GetValue(), + aMeshEditor->FindCoincidentNodesOnPartBut(mySubMeshOrGroups.in(), + SpinBoxTolerance->GetValue(), aGroupsArray.out(), aExcludeGroups.in(), SeparateCornersAndMedium->isEnabled() && SeparateCornersAndMedium->isChecked()); break; case MERGE_ELEMENTS : - aMeshEditor->FindEqualElements(src.in(), aGroupsArray.out()); + aMeshEditor->FindEqualElements(mySubMeshOrGroups.in(), + aExcludeGroups.in(), + aGroupsArray.out()); break; } - - for (int i = 0; i < (int)aGroupsArray->length(); i++) { + + for ( CORBA::ULong i = 0; i < aGroupsArray->length(); i++) + { SMESH::long_array& aGroup = aGroupsArray[i]; QStringList anIDs; - for (int j = 0; j < (int)aGroup.length(); j++) - anIDs.append(QString::number(aGroup[j])); + for ( CORBA::ULong j = 0; j < aGroup.length(); j++ ) + anIDs.append( QString::number( aGroup[j] )); - ListCoincident->addItem(anIDs.join(" ")); + ListCoincident->addItem( anIDs.join(" ")); } } catch(...) { } @@ -830,7 +830,7 @@ void SMESHGUI_MergeDlg::onSelectGroup() SelectAllCB->setChecked( false ); if ( myEditCurrentArgument == (QWidget*)KeepList && KeepList && - !isKeepNodesIDsSelection() ) + !isKeepIDsSelection() ) { // restore selection of nodes after selection of sub-meshes mySelectionMgr->clearFilters(); @@ -938,7 +938,7 @@ void SMESHGUI_MergeDlg::onSelectElementFromGroup() myIdPreview->SetPointsLabeled(false); if ( myEditCurrentArgument == (QWidget*)KeepList && KeepList && - !isKeepNodesIDsSelection() ) + !isKeepIDsSelection() ) { // restore selection of nodes after selection of sub-meshes mySelectionMgr->clearFilters(); @@ -1113,15 +1113,16 @@ void SMESHGUI_MergeDlg::SetEditCurrentArgument() if (myTypeId == TYPE_MANUAL) mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter); } - else if ( send == SelectKeepNodesButton && send ) + else if ( send == SelectKeepButton && send ) { myEditCurrentArgument = (QWidget*)KeepList; - KeepList->setWrapping( isKeepNodesIDsSelection() ); - if ( isKeepNodesIDsSelection() ) + KeepList->setWrapping( isKeepIDsSelection() ); + if ( isKeepIDsSelection() ) { - SMESH::SetPointRepresentation( true ); + bool isElems = ( myAction == MERGE_ELEMENTS ); + SMESH::SetPointRepresentation( !isElems ); if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) - aViewWindow->SetSelectionMode( NodeSelection ); + aViewWindow->SetSelectionMode( isElems ? CellSelection : NodeSelection ); } else { @@ -1150,12 +1151,13 @@ void SMESHGUI_MergeDlg::SelectionIntoArgument() ListCoincident->clear(); ListEdit->clear(); + ListExclude->clear(); myActor = 0; myMesh = SMESH::SMESH_Mesh::_nil(); QString aCurrentEntry = myEntry; int nbSel = SMESH::GetNameOfSelectedIObjects(mySelectionMgr, aString); - if (nbSel != 1) { + if (nbSel == 0) { myIdPreview->SetPointsLabeled(false); SMESH::SetPointRepresentation(false); mySelectionMgr->clearFilters(); @@ -1177,43 +1179,72 @@ void SMESHGUI_MergeDlg::SelectionIntoArgument() if (myMesh->_is_nil()) return; - LineEditMesh->setText(aString); - myActor = SMESH::FindActorByEntry(IO->getEntry()); if (!myActor) myActor = SMESH::FindActorByObject(myMesh); - if ( myActor && myTypeId == TYPE_MANUAL && mySelector->IsSelectionEnabled() ) { - mySubMeshOrGroup = SMESH::SMESH_IDSource::_nil(); - mySelectionMgr->installFilter(myMeshOrSubMeshOrGroupFilter); + mySubMeshOrGroups->length( nbSel ); + nbSel = 0; + bool isMeshSelected = false; + while ( !aList.IsEmpty() ) + { + IO = aList.First(); + aList.RemoveFirst(); + SMESH::SMESH_IDSource_var idSrc = SMESH::IObjectToInterface(IO); + if ( !idSrc->_is_nil() ) + { + SMESH::SMESH_Mesh_var mesh = idSrc->GetMesh(); + if ( !mesh->_is_equivalent( myMesh )) + { + nbSel = 0; + break; + } + mySubMeshOrGroups[ nbSel++ ] = idSrc; + if ( idSrc->_is_equivalent( myMesh )) + { + isMeshSelected = true; + mySubMeshOrGroups[ 0 ] = idSrc; + aString = SMESH::GetName( IO ); + // break; -- to check if other selected belongs to myMesh + } + } + } - if ((!SMESH::IObjectToInterface(IO)->_is_nil() || //SUBMESH OR GROUP - !SMESH::IObjectToInterface(IO)->_is_nil()) && - !SMESH::IObjectToInterface(IO)->_is_nil()) - mySubMeshOrGroup = SMESH::IObjectToInterface(IO); + if ( isMeshSelected && nbSel > 1 ) + nbSel = 1; + mySubMeshOrGroups->length( nbSel ); - if (myAction == MERGE_NODES) { - SMESH::SetPointRepresentation(true); - if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) - aViewWindow->SetSelectionMode(NodeSelection); - } - else - if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) - aViewWindow->SetSelectionMode(CellSelection); + if ( nbSel == 0 ) + { + LineEditMesh->setText(""); + return; + } + + LineEditMesh->setText( aString ); + + if (myAction == MERGE_NODES) { + SMESH::SetPointRepresentation(true); + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(NodeSelection); } + else + if ( SVTK_ViewWindow* aViewWindow = SMESH::GetViewWindow( mySMESHGUI )) + aViewWindow->SetSelectionMode(CellSelection); // process groups - if ( myAction == MERGE_NODES && !myMesh->_is_nil() && myEntry != aCurrentEntry ) { - myGroups.clear(); - ListExclude->clear(); + myGroups.clear(); + if ( isMeshSelected ) + { SMESH::ListOfGroups_var aListOfGroups = myMesh->GetGroups(); GroupExclude->setEnabled( aListOfGroups->length() > 0 ); - for( int i = 0, n = aListOfGroups->length(); i < n; i++ ) { + for ( int i = 0, n = aListOfGroups->length(); i < n; i++ ) { SMESH::SMESH_GroupBase_var aGroup = aListOfGroups[i]; - if ( !aGroup->_is_nil() ) { // && aGroup->GetType() == SMESH::NODE + if ( !aGroup->_is_nil() ) { + if ( myAction == MERGE_ELEMENTS && aGroup->GetType() == SMESH::NODE ) + continue; QString aGroupName( aGroup->GetName() ); if ( !aGroupName.isEmpty() ) { - myGroups.append(SMESH::SMESH_GroupBase::_duplicate(aGroup)); + myGroups.append( aGroup ); QListWidgetItem* item = new QListWidgetItem( aGroupName ); item->setFlags( Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable ); item->setCheckState( Qt::Unchecked ); @@ -1228,9 +1259,9 @@ void SMESHGUI_MergeDlg::SelectionIntoArgument() else if (myEditCurrentArgument == (QWidget*)KeepList && KeepList) { - AddKeepNodesButton->setEnabled( false ); - RemoveKeepNodesButton->setEnabled( false ); - if ( isKeepNodesIDsSelection() ) + AddKeepButton->setEnabled( false ); + RemoveKeepButton->setEnabled( false ); + if ( isKeepIDsSelection() ) { if (!myMesh->_is_nil() && !myActor) myActor = SMESH::FindActorByObject(myMesh); @@ -1258,9 +1289,9 @@ void SMESHGUI_MergeDlg::SelectionIntoArgument() KeepList->blockSignals(true); foreach(anItem, listItemsToSel) anItem->setSelected(true); KeepList->blockSignals(blocked); - //onSelectKeepNode(); - AddKeepNodesButton->setEnabled( nbFound < aNbNodes ); - RemoveKeepNodesButton->setEnabled( nbFound > 0 ); + //onSelectKeep(); + AddKeepButton->setEnabled( nbFound < aNbNodes ); + RemoveKeepButton->setEnabled( nbFound > 0 ); } } } @@ -1272,10 +1303,10 @@ void SMESHGUI_MergeDlg::SelectionIntoArgument() SALOME_ListIteratorOfListIO anIt (aList); for ( ; anIt.More() && !hasNewSelected; anIt.Next()) if ( anIt.Value()->hasEntry() ) - hasNewSelected = isNewKeepNodesGroup( anIt.Value()->getEntry() ); + hasNewSelected = isNewKeepGroup( anIt.Value()->getEntry() ); - AddKeepNodesButton->setEnabled( hasNewSelected ); - //RemoveKeepNodesButton->setEnabled( KeepList->selectedItems().count() ); + AddKeepButton->setEnabled( hasNewSelected ); + //RemoveKeepButton->setEnabled( KeepList->selectedItems().count() ); } } } @@ -1292,7 +1323,7 @@ void SMESHGUI_MergeDlg::DeactivateActiveDialog() GroupCoincident->setEnabled(false); GroupEdit->setEnabled(false); GroupButtons->setEnabled(false); - if (myAction == MERGE_NODES) + //if (myAction == MERGE_NODES) { GroupExclude->setEnabled(false); GroupKeep->setEnabled(false); @@ -1318,7 +1349,7 @@ void SMESHGUI_MergeDlg::ActivateThisDialog() GroupCoincident->setEnabled(true); GroupEdit->setEnabled(true); GroupButtons->setEnabled(true); - if (myAction == MERGE_NODES) + //if (myAction == MERGE_NODES) { GroupExclude->setEnabled(false); GroupKeep->setEnabled(false); @@ -1390,16 +1421,7 @@ void SMESHGUI_MergeDlg::onTypeChanged (int id) SMESH::UpdateView(); - // Costruction of the logical filter - SMESH_TypeFilter* aMeshOrSubMeshFilter = new SMESH_TypeFilter (SMESH::MESHorSUBMESH); - SMESH_TypeFilter* aSmeshGroupFilter = new SMESH_TypeFilter (SMESH::GROUP); - - QList aListOfFilters; - if (aMeshOrSubMeshFilter) aListOfFilters.append(aMeshOrSubMeshFilter); - if (aSmeshGroupFilter) aListOfFilters.append(aSmeshGroupFilter); - - myMeshOrSubMeshOrGroupFilter = - new SMESH_LogicalFilter (aListOfFilters, SMESH_LogicalFilter::LO_OR, true); + myMeshOrSubMeshOrGroupFilter = new SMESH_TypeFilter (SMESH::IDSOURCE); if (myAction == MERGE_NODES) { SMESH::SetPointRepresentation(true); @@ -1426,23 +1448,23 @@ void SMESHGUI_MergeDlg::onTypeChanged (int id) } //======================================================================= -//function : isKeepNodesIDsSelection +//function : isKeepIDsSelection //purpose : Return true of Nodes to keep are selected by IDs //======================================================================= -bool SMESHGUI_MergeDlg::isKeepNodesIDsSelection() +bool SMESHGUI_MergeDlg::isKeepIDsSelection() { return KeepFromButGroup && KeepFromButGroup->checkedId() == 0; } //======================================================================= -//function : isNewKeepNodesGroup +//function : isNewKeepGroup //purpose : Return true if an object with given entry is NOT present in KeepList //======================================================================= -bool SMESHGUI_MergeDlg::isNewKeepNodesGroup( const char* entry ) +bool SMESHGUI_MergeDlg::isNewKeepGroup( const char* entry ) { - if ( !entry || isKeepNodesIDsSelection() ) + if ( !entry || isKeepIDsSelection() ) return false; for ( int i = 0; i < KeepList->count(); i++ ) @@ -1453,17 +1475,17 @@ bool SMESHGUI_MergeDlg::isNewKeepNodesGroup( const char* entry ) } //======================================================================= -//function : onAddKeepNode +//function : onAddKeep //purpose : SLOT called when [Add] of Nodes To Keep group is pressed //======================================================================= -void SMESHGUI_MergeDlg::onAddKeepNode() +void SMESHGUI_MergeDlg::onAddKeep() { if ( myIsBusy ) return; myIsBusy = true; - if ( isKeepNodesIDsSelection() ) + if ( isKeepIDsSelection() ) { //KeepList->clearSelection(); QString anIDs = ""; @@ -1494,9 +1516,9 @@ void SMESHGUI_MergeDlg::onAddKeepNode() KeepList->blockSignals(true); foreach(anItem, listItemsToSel) anItem->setSelected(true); KeepList->blockSignals(blocked); - //onSelectKeepNode(); + //onSelectKeep(); } - RemoveKeepNodesButton->setEnabled( aNbNodes > 0 ); + RemoveKeepButton->setEnabled( aNbNodes > 0 ); } else { @@ -1505,29 +1527,29 @@ void SMESHGUI_MergeDlg::onAddKeepNode() SALOME_ListIteratorOfListIO anIt (aList); for ( ; anIt.More(); anIt.Next()) { Handle(SALOME_InteractiveObject) anIO = anIt.Value(); - if ( isNewKeepNodesGroup( anIO->getEntry() )) + if ( isNewKeepGroup( anIO->getEntry() )) { QListWidgetItem* anItem = new QListWidgetItem( anIO->getName() ); anItem->setData( Qt::UserRole, QString( anIO->getEntry() )); KeepList->addItem(anItem); } } - //RemoveKeepNodesButton->setEnabled( KeepList->selectedItems().count() ); + //RemoveKeepButton->setEnabled( KeepList->selectedItems().count() ); } - AddKeepNodesButton->setEnabled( false ); + AddKeepButton->setEnabled( false ); myIsBusy = false; } //======================================================================= -//function : onRemoveKeepNode +//function : onRemoveKeep //purpose : SLOT called when [Remove] of Nodes To Keep group is pressed //======================================================================= -void SMESHGUI_MergeDlg::onRemoveKeepNode() +void SMESHGUI_MergeDlg::onRemoveKeep() { - // if ( isKeepNodesIDsSelection() ) + // if ( isKeepIDsSelection() ) // { // } // else @@ -1536,24 +1558,24 @@ void SMESHGUI_MergeDlg::onRemoveKeepNode() QListWidgetItem* item; foreach(item, selItems) delete item; } - if ( isKeepNodesIDsSelection() ) + if ( isKeepIDsSelection() ) { - AddKeepNodesButton->setEnabled( false ); + AddKeepButton->setEnabled( false ); } - RemoveKeepNodesButton->setEnabled( false ); + RemoveKeepButton->setEnabled( false ); } //======================================================================= -//function : onSelectKeepNode +//function : onSelectKeep //purpose : SLOT called when selection in KeepList changes //======================================================================= -void SMESHGUI_MergeDlg::onSelectKeepNode() +void SMESHGUI_MergeDlg::onSelectKeep() { if ( myIsBusy || !isEnabled() ) return; myIsBusy = true; - if ( isKeepNodesIDsSelection() ) + if ( isKeepIDsSelection() ) { if ( myActor ) { @@ -1567,25 +1589,25 @@ void SMESHGUI_MergeDlg::onSelectKeepNode() aList.Append(myActor->getIO()); mySelectionMgr->setSelectedObjects(aList,false); - AddKeepNodesButton->setEnabled( false ); - RemoveKeepNodesButton->setEnabled( aIndexes.Extent() > 0 ); + AddKeepButton->setEnabled( false ); + RemoveKeepButton->setEnabled( aIndexes.Extent() > 0 ); } } else { - RemoveKeepNodesButton->setEnabled( KeepList->selectedItems().count() ); + RemoveKeepButton->setEnabled( KeepList->selectedItems().count() ); } myIsBusy = false; } //======================================================================= -//function : onKeepNodeSourceChanged +//function : onKeepSourceChanged //purpose : SLOT called when type of source of Nodes To Keep change from // IDs to groups or vice versa //======================================================================= -void SMESHGUI_MergeDlg::onKeepNodeSourceChanged(int isGroup) +void SMESHGUI_MergeDlg::onKeepSourceChanged(int isGroup) { KeepList->clear(); - SelectKeepNodesButton->click(); + SelectKeepButton->click(); } diff --git a/src/SMESHGUI/SMESHGUI_MergeDlg.h b/src/SMESHGUI/SMESHGUI_MergeDlg.h index 6b087b631..f9af9af73 100644 --- a/src/SMESHGUI/SMESHGUI_MergeDlg.h +++ b/src/SMESHGUI/SMESHGUI_MergeDlg.h @@ -85,8 +85,8 @@ private: void enterEvent( QEvent* ); /* mouse enter the QWidget */ void keyPressEvent( QKeyEvent* ); void onEditGroup(); - bool isKeepNodesIDsSelection(); - bool isNewKeepNodesGroup( const char* entry ); + bool isKeepIDsSelection(); + bool isNewKeepGroup( const char* entry ); void FindGravityCenter( TColStd_MapOfInteger&, std::vector& , @@ -96,23 +96,29 @@ private: private: typedef QList GrpList; - SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */ - LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */ - SVTK_Selector* mySelector; + SMESHGUI* mySMESHGUI; /* Current SMESHGUI object */ + LightApp_SelectionMgr* mySelectionMgr; /* User shape selection */ + SVTK_Selector* mySelector; - QWidget* myEditCurrentArgument; + QWidget* myEditCurrentArgument; - SMESH::SMESH_Mesh_var myMesh; - SMESH::SMESH_IDSource_var mySubMeshOrGroup; - SMESH_Actor* myActor; - SUIT_SelectionFilter* myMeshOrSubMeshOrGroupFilter; - SUIT_SelectionFilter* mySubMeshOrGroupFilter; + SMESH::SMESH_Mesh_var myMesh; + SMESH::ListOfIDSources_var mySubMeshOrGroups; + GrpList myGroups; + QString myEntry; - SMESHGUI_IdPreview* myIdPreview; + SMESH_Actor* myActor; + SUIT_SelectionFilter* myMeshOrSubMeshOrGroupFilter; + SUIT_SelectionFilter* mySubMeshOrGroupFilter; + + SMESHGUI_IdPreview* myIdPreview; + QString myHelpFileName; + + int myAction; + bool myIsBusy; + int myTypeId; // manual(1) or automatic(0) + - int myAction; - bool myIsBusy; - int myTypeId; // manual(1) or automatic(0) // Widgets @@ -152,18 +158,13 @@ private: QGroupBox* GroupKeep; QButtonGroup* KeepFromButGroup; - QPushButton* SelectKeepNodesButton; - QPushButton* AddKeepNodesButton; - QPushButton* RemoveKeepNodesButton; + QPushButton* SelectKeepButton; + QPushButton* AddKeepButton; + QPushButton* RemoveKeepButton; QListWidget* KeepList; QGroupBox* TypeBox; QButtonGroup* GroupType; - - QString myHelpFileName; - - QString myEntry; - GrpList myGroups; protected slots: virtual void reject(); @@ -174,10 +175,10 @@ protected slots: void ClickOnHelp(); void updateControls(); void onDetect(); - void onAddKeepNode(); - void onRemoveKeepNode(); - void onSelectKeepNode(); - void onKeepNodeSourceChanged(int); + void onAddKeep(); + void onRemoveKeep(); + void onSelectKeep(); + void onKeepSourceChanged(int); void onAddGroup(); void onRemoveGroup(); void onSelectGroup(); diff --git a/src/SMESHGUI/SMESHGUI_Utils.cxx b/src/SMESHGUI/SMESHGUI_Utils.cxx index 5721e5301..11d10cb68 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.cxx +++ b/src/SMESHGUI/SMESHGUI_Utils.cxx @@ -242,13 +242,30 @@ namespace SMESH int aNbSel = selected.Extent(); if (aNbSel == 1) { Handle(SALOME_InteractiveObject) anIObject = selected.First(); - theName = QString( anIObject->getName() ).trimmed(); + theName = GetName( anIObject ); } else { theName = QObject::tr("SMESH_OBJECTS_SELECTED").arg(aNbSel); } return aNbSel; } + QString GetName( const Handle(SALOME_InteractiveObject)& theIO ) + { + QString name; + if ( !theIO.IsNull() ) + { + name = QString( theIO->getName() ).trimmed(); + + if ( name.isEmpty() && theIO->hasEntry() ) + { + _PTR(SObject) sObj = getStudy()->FindObjectID( theIO->getEntry() ); + if ( sObj ) + name = sObj->GetName().c_str(); + } + } + return name.trimmed(); + } + _PTR(SObject) GetMeshOrSubmesh (_PTR(SObject) theSObject) { GEOM::GEOM_Object_var aShape = SObjectToInterface(theSObject); diff --git a/src/SMESHGUI/SMESHGUI_Utils.h b/src/SMESHGUI/SMESHGUI_Utils.h index 41d2e674e..a403da868 100644 --- a/src/SMESHGUI/SMESHGUI_Utils.h +++ b/src/SMESHGUI/SMESHGUI_Utils.h @@ -167,6 +167,9 @@ SMESHGUI_EXPORT SMESHGUI_EXPORT int GetNameOfSelectedIObjects( LightApp_SelectionMgr*, QString& ); +SMESHGUI_EXPORT + QString GetName( const Handle(SALOME_InteractiveObject)& theIO ); + SMESHGUI_EXPORT _PTR(SObject) GetMeshOrSubmesh( _PTR(SObject) ); diff --git a/src/SMESHGUI/SMESH_msg_en.ts b/src/SMESHGUI/SMESH_msg_en.ts index c4ffdde6f..222fa1e06 100644 --- a/src/SMESHGUI/SMESH_msg_en.ts +++ b/src/SMESHGUI/SMESH_msg_en.ts @@ -2292,6 +2292,10 @@ Check algorithm documentation for supported geometry SMESH_NAME Name + + SMESH_NAMES + Names + SMESH_NODES Nodes @@ -5490,6 +5494,10 @@ Please select a group and try again KEEP_NODES Nodes to keep during the merge + + KEEP_ELEMENTS + Elements to keep during the merge + GROUP_SUBMESH Groups and sub-meshes diff --git a/src/SMESH_I/SMESH_MeshEditor_i.cxx b/src/SMESH_I/SMESH_MeshEditor_i.cxx index f1e40ec43..b03eca37d 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.cxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.cxx @@ -298,33 +298,35 @@ namespace MeshEditor_I { */ //================================================================================ - void idSourceToNodeSet(SMESH::SMESH_IDSource_ptr theObject, - const SMESHDS_Mesh* theMeshDS, - TIDSortedNodeSet& theNodeSet) + void idSourceToNodeSet(SMESH::SMESH_IDSource_ptr theObject, + const SMESHDS_Mesh* theMeshDS, + TIDSortedNodeSet& theNodeSet) { if ( CORBA::is_nil( theObject ) ) return; - SMESH::array_of_ElementType_var types = theObject->GetTypes(); - SMESH::long_array_var aElementsId = theObject->GetIDs(); - if ( types->length() == 1 && types[0] == SMESH::NODE) + if ( SMESH::DownCast( theObject )) { - for ( CORBA::ULong i = 0; i < aElementsId->length(); i++ ) - if ( const SMDS_MeshNode * n = theMeshDS->FindNode( aElementsId[i] )) - theNodeSet.insert( theNodeSet.end(), n); - } - else if ( SMESH::DownCast( theObject )) - { - SMDS_NodeIteratorPtr nIt = theMeshDS->nodesIterator(); - while ( nIt->more( )) + for ( SMDS_NodeIteratorPtr nIt = theMeshDS->nodesIterator(); nIt->more(); ) if ( const SMDS_MeshElement * elem = nIt->next() ) theNodeSet.insert( elem->begin_nodes(), elem->end_nodes()); } else { - for ( CORBA::ULong i = 0; i < aElementsId->length(); i++ ) - if ( const SMDS_MeshElement * elem = theMeshDS->FindElement( aElementsId[i] )) - theNodeSet.insert( elem->begin_nodes(), elem->end_nodes()); + SMESH::array_of_ElementType_var types = theObject->GetTypes(); + SMESH::long_array_var aElementsId = theObject->GetIDs(); + if ( types->length() == 1 && types[0] == SMESH::NODE) + { + for ( CORBA::ULong i = 0; i < aElementsId->length(); i++ ) + if ( const SMDS_MeshNode * n = theMeshDS->FindNode( aElementsId[i] )) + theNodeSet.insert( theNodeSet.end(), n); + } + else + { + for ( CORBA::ULong i = 0; i < aElementsId->length(); i++ ) + if ( const SMDS_MeshElement * elem = theMeshDS->FindElement( aElementsId[i] )) + theNodeSet.insert( elem->begin_nodes(), elem->end_nodes()); + } } } @@ -4199,13 +4201,13 @@ FindCoincidentNodesOnPart(SMESH::SMESH_IDSource_ptr theObject, //================================================================================ /*! - * \brief Finds nodes coincident with Tolerance within Object excluding nodes within + * \brief Finds nodes coincident with Tolerance within Objects excluding nodes within * ExceptSubMeshOrGroups */ //================================================================================ void SMESH_MeshEditor_i:: -FindCoincidentNodesOnPartBut(SMESH::SMESH_IDSource_ptr theObject, +FindCoincidentNodesOnPartBut(const SMESH::ListOfIDSources& theObjects, CORBA::Double theTolerance, SMESH::array_of_long_array_out theGroupsOfNodes, const SMESH::ListOfIDSources& theExceptSubMeshOrGroups, @@ -4216,9 +4218,11 @@ FindCoincidentNodesOnPartBut(SMESH::SMESH_IDSource_ptr theObject, initData(); TIDSortedNodeSet nodes; - prepareIdSource( theObject ); - idSourceToNodeSet( theObject, getMeshDS(), nodes ); - + for ( CORBA::ULong i = 0; i < theObjects.length(); ++i ) + { + prepareIdSource( theObjects[i] ); + idSourceToNodeSet( theObjects[i], getMeshDS(), nodes ); + } for ( CORBA::ULong i = 0; i < theExceptSubMeshOrGroups.length(); ++i ) { if ( SMDS_ElemIteratorPtr nodeIt = myMesh_i->GetElements( theExceptSubMeshOrGroups[i], @@ -4229,7 +4233,7 @@ FindCoincidentNodesOnPartBut(SMESH::SMESH_IDSource_ptr theObject, findCoincidentNodes( nodes, theTolerance, theGroupsOfNodes, theSeparateCornersAndMedium ); TPythonDump() << "coincident_nodes_on_part = " << this << ".FindCoincidentNodesOnPartBut( " - << theObject<<", " + << theObjects <<", " << theTolerance << ", " << theExceptSubMeshOrGroups << ", " << theSeparateCornersAndMedium << " )"; @@ -4302,30 +4306,47 @@ void SMESH_MeshEditor_i::MergeNodes (const SMESH::array_of_long_array& GroupsOfN //purpose : //======================================================================= -void SMESH_MeshEditor_i::FindEqualElements(SMESH::SMESH_IDSource_ptr theObject, - SMESH::array_of_long_array_out GroupsOfElementsID) +void SMESH_MeshEditor_i::FindEqualElements(const SMESH::ListOfIDSources& theObjects, + const SMESH::ListOfIDSources& theExceptObjects, + SMESH::array_of_long_array_out theGroupsOfElementsID) throw (SALOME::SALOME_Exception) { SMESH_TRY; initData(); - SMESH::SMESH_GroupBase_var group = SMESH::SMESH_GroupBase::_narrow(theObject); - if ( !( !group->_is_nil() && group->GetType() == SMESH::NODE )) + theGroupsOfElementsID = new SMESH::array_of_long_array; + + TIDSortedElemSet elems; + bool hasOkObject = false; + bool emptyIfIsMesh= ( theObjects.length() == 1 && theExceptObjects.length() == 0 ); + + for ( CORBA::ULong i = 0; i < theObjects.length(); ++i ) { - TIDSortedElemSet elems; - idSourceToSet( theObject, getMeshDS(), elems, SMDSAbs_All, /*emptyIfIsMesh=*/true); + SMESH::SMESH_GroupBase_var group = SMESH::SMESH_GroupBase::_narrow( theObjects[i] ); + if ( !( !group->_is_nil() && group->GetType() == SMESH::NODE )) + if ( idSourceToSet( theObjects[i], getMeshDS(), elems, SMDSAbs_All, emptyIfIsMesh )) + hasOkObject = true; + } + + if ( hasOkObject ) + { + for ( CORBA::ULong i = 0; i < theExceptObjects.length(); ++i ) + { + if ( SMDS_ElemIteratorPtr elemIt = myMesh_i->GetElements( theExceptObjects[i], SMESH::ALL )) + while ( elemIt->more() ) + elems.erase( elemIt->next() ); + } ::SMESH_MeshEditor::TListOfListOfElementsID aListOfListOfElementsID; getEditor().FindEqualElements( elems, aListOfListOfElementsID ); - GroupsOfElementsID = new SMESH::array_of_long_array; - GroupsOfElementsID->length( aListOfListOfElementsID.size() ); + theGroupsOfElementsID->length( aListOfListOfElementsID.size() ); ::SMESH_MeshEditor::TListOfListOfElementsID::iterator arraysIt = aListOfListOfElementsID.begin(); for (CORBA::Long j = 0; arraysIt != aListOfListOfElementsID.end(); ++arraysIt, ++j) { - SMESH::long_array& aGroup = (*GroupsOfElementsID)[ j ]; + SMESH::long_array& aGroup = (*theGroupsOfElementsID)[ j ]; list& listOfIDs = *arraysIt; aGroup.length( listOfIDs.size() ); list::iterator idIt = listOfIDs.begin(); @@ -4334,7 +4355,8 @@ void SMESH_MeshEditor_i::FindEqualElements(SMESH::SMESH_IDSource_ptr theObj } TPythonDump() << "equal_elements = " << this << ".FindEqualElements( " - < idsToKeep; + for ( CORBA::ULong i = 0; i < theElementsToKeep.length(); i++ ) + { + if ( CORBA::is_nil( theElementsToKeep[i] )) + continue; + SMESH::array_of_ElementType_var elemTypes = theElementsToKeep[i]->GetTypes(); + if ( elemTypes->length() == 1 && elemTypes[0] == SMESH::NODE ) + continue; + SMESH::long_array_var elementsId = theElementsToKeep[i]->GetIDs(); + for ( CORBA::ULong j = 0; j < elementsId->length(); ++j ) + idsToKeep.Add( elementsId[ j ]); + } + ::SMESH_MeshEditor::TListOfListOfElementsID aListOfListOfElementsID; - for ( CORBA::ULong i = 0; i < GroupsOfElementsID.length(); i++ ) { - const SMESH::long_array& anElemsIDGroup = GroupsOfElementsID[ i ]; + for ( CORBA::ULong i = 0; i < theGroupsOfElementsID.length(); i++ ) + { + const SMESH::long_array& anElemsIDGroup = theGroupsOfElementsID[ i ]; aListOfListOfElementsID.push_back( list< int >() ); list< int >& aListOfElemsID = aListOfListOfElementsID.back(); - for ( CORBA::ULong j = 0; j < anElemsIDGroup.length(); j++ ) { + for ( CORBA::ULong j = 0; j < anElemsIDGroup.length(); j++ ) + { CORBA::Long id = anElemsIDGroup[ j ]; - aListOfElemsID.push_back( id ); + if ( idsToKeep.Contains( id )) aListOfElemsID.push_front( id ); + else aListOfElemsID.push_back( id ); } if ( aListOfElemsID.size() < 2 ) aListOfListOfElementsID.pop_back(); @@ -4374,7 +4413,7 @@ void SMESH_MeshEditor_i::MergeElements(const SMESH::array_of_long_array& GroupsO declareMeshModified( /*isReComputeSafe=*/true ); - aTPythonDump << "] )"; + aTPythonDump << "], " << theElementsToKeep << " )"; SMESH_CATCH( SMESH::throwCorbaException ); } @@ -5809,10 +5848,21 @@ bool SMESH_MeshEditor_i::idSourceToSet(SMESH::SMESH_IDSource_ptr theIDSource, } if ( emptyIfIsMesh && SMESH::DownCast( theIDSource )) { - if ( error && getMeshDS()->GetMeshInfo().NbElements( theType ) == 0 ) + if ( error && theMeshDS->GetMeshInfo().NbElements( theType ) == 0 ) *error = IDSource_EMPTY; return true; } + if ( getMeshDS() == theMeshDS ) // check if theIDSource belongs to myMesh + { + SMESH::SMESH_Mesh_var mesh = theIDSource->GetMesh(); + SMESH_Mesh_i* mesh_i = SMESH::DownCast( mesh ); + if ( mesh_i && mesh_i != myMesh_i ) + { + if ( error ) + *error = IDSource_INVALID; + return false; + } + } prepareIdSource( theIDSource ); SMESH::long_array_var anIDs = theIDSource->GetIDs(); if ( anIDs->length() == 0 ) diff --git a/src/SMESH_I/SMESH_MeshEditor_i.hxx b/src/SMESH_I/SMESH_MeshEditor_i.hxx index 462d42db2..d8c46a64f 100644 --- a/src/SMESH_I/SMESH_MeshEditor_i.hxx +++ b/src/SMESH_I/SMESH_MeshEditor_i.hxx @@ -501,7 +501,7 @@ public: SMESH::array_of_long_array_out GroupsOfNodes, CORBA::Boolean SeparateCornersAndMedium) throw (SALOME::SALOME_Exception); - void FindCoincidentNodesOnPartBut(SMESH::SMESH_IDSource_ptr Object, + void FindCoincidentNodesOnPartBut(const SMESH::ListOfIDSources& Objects, CORBA::Double Tolerance, SMESH::array_of_long_array_out GroupsOfNodes, const SMESH::ListOfIDSources& ExceptSubMeshOrGroups, @@ -511,10 +511,12 @@ public: const SMESH::ListOfIDSources& NodesToKeep, CORBA::Boolean AvoidMakingHoles ) throw (SALOME::SALOME_Exception); - void FindEqualElements(SMESH::SMESH_IDSource_ptr Object, + void FindEqualElements(const SMESH::ListOfIDSources& Objects, + const SMESH::ListOfIDSources& ExceptSubMeshOrGroups, SMESH::array_of_long_array_out GroupsOfElementsID) throw (SALOME::SALOME_Exception); - void MergeElements(const SMESH::array_of_long_array& GroupsOfElementsID) + void MergeElements(const SMESH::array_of_long_array& GroupsOfElementsID, + const SMESH::ListOfIDSources& ElementsToKeep) throw (SALOME::SALOME_Exception); void MergeEqualElements() throw (SALOME::SALOME_Exception); diff --git a/src/SMESH_SWIG/smeshBuilder.py b/src/SMESH_SWIG/smeshBuilder.py index 026858782..20b7bc038 100755 --- a/src/SMESH_SWIG/smeshBuilder.py +++ b/src/SMESH_SWIG/smeshBuilder.py @@ -5680,6 +5680,8 @@ class Mesh(metaclass = MeshMeta): Example: :ref:`tui_extrusion_along_path` """ + if not IDsOfElements: + IDsOfElements = [ self.GetMesh() ] n,e,f = [],IDsOfElements,IDsOfElements gr,er = self.ExtrusionAlongPathObjects(n,e,f, PathMesh, PathShape, NodeStart, HasAngles, Angles, @@ -6239,7 +6241,7 @@ class Mesh(metaclass = MeshMeta): Parameters: Tolerance: the value of tolerance - SubMeshOrGroup: :class:`sub-mesh, group or filter ` or node IDs + SubMeshOrGroup: list of :class:`sub-meshes, groups or filters ` or of node IDs exceptNodes: list of either SubMeshes, Groups or node IDs to exclude from search SeparateCornerAndMediumNodes: if *True*, in quadratic mesh puts corner and medium nodes in separate groups thus preventing @@ -6250,11 +6252,16 @@ class Mesh(metaclass = MeshMeta): """ unRegister = genObjUnRegister() - if (isinstance( SubMeshOrGroup, Mesh )): - SubMeshOrGroup = SubMeshOrGroup.GetMesh() - if isinstance( SubMeshOrGroup, list ): - SubMeshOrGroup = self.GetIDSource( SubMeshOrGroup, SMESH.NODE ) - unRegister.set( SubMeshOrGroup ) + if not isinstance( SubMeshOrGroup, list ): + SubMeshOrGroup = [ SubMeshOrGroup ] + for i,obj in enumerate( SubMeshOrGroup ): + if isinstance( obj, Mesh ): + SubMeshOrGroup = [ obj.GetMesh() ] + break + if isinstance( obj, int ): + SubMeshOrGroup = self.GetIDSource( SubMeshOrGroup, SMESH.NODE ) + unRegister.set( SubMeshOrGroup ) + break if not isinstance( exceptNodes, list ): exceptNodes = [ exceptNodes ] @@ -6272,44 +6279,72 @@ class Mesh(metaclass = MeshMeta): Parameters: GroupsOfNodes: a list of groups of nodes IDs for merging. E.g. [[1,12,13],[25,4]] means that nodes 12, 13 and 4 will be removed and replaced - in all elements and groups by nodes 1 and 25 correspondingly + in all elements and mesh groups by nodes 1 and 25 correspondingly NodesToKeep: nodes to keep in the mesh: a list of groups, sub-meshes or node IDs. If *NodesToKeep* does not include a node to keep for some group to merge, then the first node in the group is kept. AvoidMakingHoles: prevent merging nodes which cause removal of elements becoming invalid """ - # NodesToKeep are converted to SMESH.SMESH_IDSource in meshEditor.MergeNodes() self.editor.MergeNodes( GroupsOfNodes, NodesToKeep, AvoidMakingHoles ) - def FindEqualElements (self, MeshOrSubMeshOrGroup=None): + def FindEqualElements (self, MeshOrSubMeshOrGroup=None, exceptElements=[]): """ Find the elements built on the same nodes. Parameters: - MeshOrSubMeshOrGroup: :class:`mesh, sub-mesh, group or filter ` + MeshOrSubMeshOrGroup: :class:`mesh, sub-meshes, groups or filters ` or element IDs to check for equal elements + exceptElements: list of either SubMeshes, Groups or elements IDs to exclude from search + Returns: the list of groups of equal elements IDs (e.g. [[1,12,13],[4,25]]) """ - if not MeshOrSubMeshOrGroup: - MeshOrSubMeshOrGroup=self.mesh + unRegister = genObjUnRegister() + if MeshOrSubMeshOrGroup is None: + MeshOrSubMeshOrGroup = [ self.mesh ] elif isinstance( MeshOrSubMeshOrGroup, Mesh ): - MeshOrSubMeshOrGroup = MeshOrSubMeshOrGroup.GetMesh() - return self.editor.FindEqualElements( MeshOrSubMeshOrGroup ) - - def MergeElements(self, GroupsOfElementsID): + MeshOrSubMeshOrGroup = [ MeshOrSubMeshOrGroup.GetMesh() ] + elif not isinstance( MeshOrSubMeshOrGroup, list ): + MeshOrSubMeshOrGroup = [ MeshOrSubMeshOrGroup ] + if isinstance( MeshOrSubMeshOrGroup[0], int ): + MeshOrSubMeshOrGroup = [ self.GetIDSource( MeshOrSubMeshOrGroup, SMESH.ALL )] + unRegister.set( MeshOrSubMeshOrGroup ) + for item in MeshOrSubMeshOrGroup: + if isinstance( item, Mesh ): + MeshOrSubMeshOrGroup = [ item.GetMesh() ] + + if not isinstance( exceptElements, list ): + exceptElements = [ exceptElements ] + if exceptElements and isinstance( exceptElements[0], int ): + exceptElements = [ self.GetIDSource( exceptElements, SMESH.ALL )] + unRegister.set( exceptElements ) + + return self.editor.FindEqualElements( MeshOrSubMeshOrGroup, exceptElements ) + + def MergeElements(self, GroupsOfElementsID, ElementsToKeep=[]): """ Merge elements in each given group. Parameters: GroupsOfElementsID: a list of groups (lists) of elements IDs for merging (e.g. [[1,12,13],[25,4]] means that elements 12, 13 and 4 will be removed and - replaced in all groups by elements 1 and 25) + replaced in all mesh groups by elements 1 and 25) + ElementsToKeep: elements to keep in the mesh: a list of groups, sub-meshes or node IDs. + If *ElementsToKeep* does not include an element to keep for some group to merge, + then the first element in the group is kept. """ - self.editor.MergeElements(GroupsOfElementsID) + unRegister = genObjUnRegister() + if ElementsToKeep: + if not isinstance( ElementsToKeep, list ): + ElementsToKeep = [ ElementsToKeep ] + if isinstance( ElementsToKeep[0], int ): + ElementsToKeep = [ self.GetIDSource( ElementsToKeep, SMESH.ALL )] + unRegister.set( ElementsToKeep ) + + self.editor.MergeElements( GroupsOfElementsID, ElementsToKeep ) def MergeEqualElements(self): """ -- 2.39.2