From f7e21c718c11352795b09bb3de0f9739fc17e39e Mon Sep 17 00:00:00 2001 From: Artem Zhidkov Date: Thu, 23 Apr 2020 22:01:56 +0300 Subject: [PATCH] Issue #3222: 1d fillet * Documentation update. * Translations to French. --- .../FeaturesPlugin_Validators.cpp | 2 +- src/FeaturesPlugin/FeaturesPlugin_msg_en.ts | 116 +++++++++++++++++ src/FeaturesPlugin/FeaturesPlugin_msg_fr.ts | 119 ++++++++++++++++++ src/FeaturesPlugin/FeaturesPlugin_msg_ru.ts | 116 +++++++++++++++++ src/FeaturesPlugin/doc/FeaturesPlugin.rst | 1 + .../doc/TUI_fillet1DVertices.rst | 12 ++ src/FeaturesPlugin/doc/TUI_fillet1DWire.rst | 12 ++ .../doc/examples/fillet1d_vertices.py | 25 ++++ .../doc/examples/fillet1d_wire.py | 23 ++++ src/FeaturesPlugin/doc/fillet1dFeature.rst | 100 +++++++++++++++ .../doc/images/Fillet1DPanel_Vertices.png | Bin 0 -> 9437 bytes .../doc/images/Fillet1DPanel_Wire.png | Bin 0 -> 7806 bytes .../doc/images/Fillet1DResult_Vertices.png | Bin 0 -> 5512 bytes .../doc/images/Fillet1DResult_Wire.png | Bin 0 -> 5559 bytes src/FeaturesPlugin/doc/images/fillet1d.png | Bin 0 -> 462 bytes .../doc/images/fillet1d_points.png | Bin 0 -> 948 bytes .../doc/images/fillet1d_wire.png | Bin 0 -> 1142 bytes src/FeaturesPlugin/fillet1d_widget.xml | 2 +- 18 files changed, 526 insertions(+), 2 deletions(-) create mode 100644 src/FeaturesPlugin/doc/TUI_fillet1DVertices.rst create mode 100644 src/FeaturesPlugin/doc/TUI_fillet1DWire.rst create mode 100644 src/FeaturesPlugin/doc/examples/fillet1d_vertices.py create mode 100644 src/FeaturesPlugin/doc/examples/fillet1d_wire.py create mode 100644 src/FeaturesPlugin/doc/fillet1dFeature.rst create mode 100644 src/FeaturesPlugin/doc/images/Fillet1DPanel_Vertices.png create mode 100644 src/FeaturesPlugin/doc/images/Fillet1DPanel_Wire.png create mode 100644 src/FeaturesPlugin/doc/images/Fillet1DResult_Vertices.png create mode 100644 src/FeaturesPlugin/doc/images/Fillet1DResult_Wire.png create mode 100644 src/FeaturesPlugin/doc/images/fillet1d.png create mode 100644 src/FeaturesPlugin/doc/images/fillet1d_points.png create mode 100644 src/FeaturesPlugin/doc/images/fillet1d_wire.png diff --git a/src/FeaturesPlugin/FeaturesPlugin_Validators.cpp b/src/FeaturesPlugin/FeaturesPlugin_Validators.cpp index 538a5097f..f47f5ba79 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_Validators.cpp +++ b/src/FeaturesPlugin/FeaturesPlugin_Validators.cpp @@ -971,7 +971,7 @@ bool FeaturesPlugin_ValidatorFillet1DSelection::isValid(const AttributePtr& theA return false; } if (aVertex->shapeType() != GeomAPI_Shape::VERTEX) { - theError = "Selected shape it not a vertex"; + theError = "Selected shape is not a vertex"; return false; } diff --git a/src/FeaturesPlugin/FeaturesPlugin_msg_en.ts b/src/FeaturesPlugin/FeaturesPlugin_msg_en.ts index 0ff1004ee..c65a3e3ed 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_msg_en.ts +++ b/src/FeaturesPlugin/FeaturesPlugin_msg_en.ts @@ -3629,4 +3629,120 @@ Base shape is not selected. + + + + Fillet1D + + 1D-fillet + 1D-fillet + + + Perform fillet on vertices of a wire + Perform fillet on vertices of a wire + + + Wire has no vertices for fillet. + Wire has no vertices for fillet. + + + + Fillet1D:main_wires + + Wires + Wires + + + Select wires + Select wires + + + Attribute "%1" is not initialized. + Select wires. + + + Fillet each sharp corner of the wire + Fillet each sharp corner of the wire + + + + Fillet1D:main_vertices + + Vertices + Vertices + + + Select vertices + Select vertices + + + Attribute "%1" is not initialized. + Select vertices on wires. + + + Fillet the specified corners of the wire + Fillet the specified corners of the wire + + + + Fillet1D:main_vertices:FeaturesPlugin_ValidatorFillet1DSelection + + Selected vertex is not a wire corner + Selected vertex is not a wire corner + + + Selected shape is not a vertex + Selected shape is not a vertex + + + Selected vertex does not exist in the wire + Selected vertex does not exist in the wire + + + Vertex should be shared between 2 edges exactly + Vertex should be shared between 2 edges exactly + + + Error: Edges are not planar + Error: Edges are not planar + + + Error: Edges are tangent + Error: Edges are tangent + + + + Fillet1D:creation_method + + Wires + Wires + + + Vertices + Vertices + + + + Fillet1D:radius + + Radius + Radius + + + Fillet radius + Fillet radius + + + Attribute "%1" is not initialized. + Specify fillet radius. + + + + Fillet1D:radius:GeomValidators_Positive + + Value is too small. + Value is too small. + + + diff --git a/src/FeaturesPlugin/FeaturesPlugin_msg_fr.ts b/src/FeaturesPlugin/FeaturesPlugin_msg_fr.ts index 0dfcdfacf..6f821a2e2 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_msg_fr.ts +++ b/src/FeaturesPlugin/FeaturesPlugin_msg_fr.ts @@ -41,6 +41,10 @@ Fillet Congé + + 1D-fillet + 1D-congé + Fuse Fusionner @@ -964,6 +968,121 @@ + + + Fillet1D + + 1D-fillet + 1D-congé + + + Perform fillet on vertices of a wire + Effectuer un congé sur les sommets d'un contour + + + Wire has no vertices for fillet. + Le contour n'a pas de sommet pour le congé. + + + + Fillet1D:main_wires + + Wires + Contours + + + Select wires + Sélectionnez les contours + + + Attribute "%1" is not initialized. + Sélectionnez les contours. + + + Fillet each sharp corner of the wire + Raccordez chaque coin pointu du contour + + + + Fillet1D:main_vertices + + Vertices + Sommets + + + Select vertices + Sélectionnez les sommets + + + Attribute "%1" is not initialized. + Sélectionnez des sommets sur les contours. + + + Fillet the specified corners of the wire + Raccorder les coins spécifiés du contour + + + + Fillet1D:main_vertices:FeaturesPlugin_ValidatorFillet1DSelection + + Selected vertex is not a wire corner + Le sommet sélectionné n'est pas un coin de contour + + + Selected shape is not a vertex + La forme sélectionnée n'est pas un sommet + + + Selected vertex does not exist in the wire + Le sommet sélectionné n'existe pas dans le contour + + + Vertex should be shared between 2 edges exactly + Le sommet doit être partagé entre 2 bords exactement + + + Error: Edges are not planar + Erreur: les arêtes ne sont pas planes + + + Error: Edges are tangent + Erreur: les bords sont tangents + + + + Fillet1D:creation_method + + Wires + Contours + + + Vertices + Sommets + + + + Fillet1D:radius + + Radius + Rayon + + + Fillet radius + Rayon de congé + + + Attribute "%1" is not initialized. + Spécifiez le rayon du congé. + + + + Fillet1D:radius:GeomValidators_Positive + + Value is too small. + La valeur est trop petite. + + + Fuse diff --git a/src/FeaturesPlugin/FeaturesPlugin_msg_ru.ts b/src/FeaturesPlugin/FeaturesPlugin_msg_ru.ts index 4e52f4527..e27770699 100644 --- a/src/FeaturesPlugin/FeaturesPlugin_msg_ru.ts +++ b/src/FeaturesPlugin/FeaturesPlugin_msg_ru.ts @@ -177,4 +177,120 @@ Ошибка: не все выбранные объекты являются подэлементами твердых тел. + + + + Fillet1D + + 1D-fillet + 1D-сглаживание + + + Perform fillet on vertices of a wire + Выполнить сглаживание в узлах контура + + + Wire has no vertices for fillet. + Контур не имеет узлов, подходящих для сглаживания. + + + + Fillet1D:main_wires + + Wires + Контуры + + + Select wires + Выберите контуры + + + Attribute "%1" is not initialized. + Выберите контуры. + + + Fillet each sharp corner of the wire + Сгладить все острые углы контура + + + + Fillet1D:main_vertices + + Vertices + Узлы + + + Select vertices + Выберите узлы + + + Attribute "%1" is not initialized. + Выберите острые углы на контуре. + + + Fillet the specified corners of the wire + Сгладить выбранные узлы контура + + + + Fillet1D:main_vertices:FeaturesPlugin_ValidatorFillet1DSelection + + Selected vertex is not a wire corner + Выбранный узел не принадлежит контуру + + + Selected shape is not a vertex + Выбранный объект не является узлом + + + Selected vertex does not exist in the wire + Выбранный узел не принадлежит контуру + + + Vertex should be shared between 2 edges exactly + Узел должен примыкать ровно к двум рёбрам + + + Error: Edges are not planar + Ошибка: рёбра не лежат на одной плоскости + + + Error: Edges are tangent + Ошибка: рёбра касаются друг друга + + + + Fillet1D:creation_method + + Wires + Контуры + + + Vertices + Узлы + + + + Fillet1D:radius + + Radius + Радиус + + + Fillet radius + Радиус сглаживания + + + Attribute "%1" is not initialized. + Задайте радиус сглаживания. + + + + Fillet1D:radius:GeomValidators_Positive + + Value is too small. + Значение радиуса слишком мало. + + + diff --git a/src/FeaturesPlugin/doc/FeaturesPlugin.rst b/src/FeaturesPlugin/doc/FeaturesPlugin.rst index 91db9f48f..4cb87c3cb 100644 --- a/src/FeaturesPlugin/doc/FeaturesPlugin.rst +++ b/src/FeaturesPlugin/doc/FeaturesPlugin.rst @@ -19,6 +19,7 @@ Features plug-in provides a set of common topological operations. It implements extrusionCutFeature.rst extrusionFeature.rst extrusionFuseFeature.rst + fillet1dFeature.rst filletFeature.rst fuseFeature.rst fuseFeatureFaces.rst diff --git a/src/FeaturesPlugin/doc/TUI_fillet1DVertices.rst b/src/FeaturesPlugin/doc/TUI_fillet1DVertices.rst new file mode 100644 index 000000000..6a7f0372c --- /dev/null +++ b/src/FeaturesPlugin/doc/TUI_fillet1DVertices.rst @@ -0,0 +1,12 @@ + + .. _tui_create_fillet1d_vertices: + +Create 1D-fillet for special vertices on a wire +=============================================== + +.. literalinclude:: examples/fillet1d_vertices.py + :linenos: + :language: python + +:download:`Download this script ` + diff --git a/src/FeaturesPlugin/doc/TUI_fillet1DWire.rst b/src/FeaturesPlugin/doc/TUI_fillet1DWire.rst new file mode 100644 index 000000000..c22230616 --- /dev/null +++ b/src/FeaturesPlugin/doc/TUI_fillet1DWire.rst @@ -0,0 +1,12 @@ + + .. _tui_create_fillet1d_wire: + +Create 1D-fillet on a wire +========================== + +.. literalinclude:: examples/fillet1d_wire.py + :linenos: + :language: python + +:download:`Download this script ` + diff --git a/src/FeaturesPlugin/doc/examples/fillet1d_vertices.py b/src/FeaturesPlugin/doc/examples/fillet1d_vertices.py new file mode 100644 index 000000000..d2a0cbe5a --- /dev/null +++ b/src/FeaturesPlugin/doc/examples/fillet1d_vertices.py @@ -0,0 +1,25 @@ +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() + +### Create Part +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() + +### Create Box +Box_1 = model.addBox(Part_1_doc, 10, 10, 10) + +### Create Wire +Wire_1_objects = [model.selection("EDGE", "[Box_1_1/Left][Box_1_1/Bottom]"), + model.selection("EDGE", "[Box_1_1/Front][Box_1_1/Left]"), + model.selection("EDGE", "[Box_1_1/Front][Box_1_1/Top]"), + model.selection("EDGE", "[Box_1_1/Front][Box_1_1/Right]")] +Wire_1 = model.addWire(Part_1_doc, Wire_1_objects, False) + +### Create Fillet1D +Fillet1D_1_objects = [model.selection("VERTEX", "[Wire_1_1/Edge_2]e[Wire_1_1/Edge_3]e"), + model.selection("VERTEX", "[Wire_1_1/Edge_3]e[Wire_1_1/Edge_4]e")] +Fillet1D_1 = model.addFillet(Part_1_doc, Fillet1D_1_objects, 3) + +model.end() diff --git a/src/FeaturesPlugin/doc/examples/fillet1d_wire.py b/src/FeaturesPlugin/doc/examples/fillet1d_wire.py new file mode 100644 index 000000000..36ccfc975 --- /dev/null +++ b/src/FeaturesPlugin/doc/examples/fillet1d_wire.py @@ -0,0 +1,23 @@ +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() + +### Create Part +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() + +### Create Box +Box_1 = model.addBox(Part_1_doc, 10, 10, 10) + +### Create Wire +Wire_1_objects = [model.selection("EDGE", "[Box_1_1/Left][Box_1_1/Bottom]"), + model.selection("EDGE", "[Box_1_1/Front][Box_1_1/Left]"), + model.selection("EDGE", "[Box_1_1/Front][Box_1_1/Top]"), + model.selection("EDGE", "[Box_1_1/Front][Box_1_1/Right]")] +Wire_1 = model.addWire(Part_1_doc, Wire_1_objects, False) + +### Create Fillet1D +Fillet1D_1 = model.addFillet(Part_1_doc, [model.selection("WIRE", "Wire_1_1")], 3) + +model.end() diff --git a/src/FeaturesPlugin/doc/fillet1dFeature.rst b/src/FeaturesPlugin/doc/fillet1dFeature.rst new file mode 100644 index 000000000..e3a30a404 --- /dev/null +++ b/src/FeaturesPlugin/doc/fillet1dFeature.rst @@ -0,0 +1,100 @@ +.. |fillet1d.icon| image:: images/fillet1d.png + +.. _featureFillet1D: + +1D-fillet +========= + +**1D-fillet** feature creates fillets on the vertices of a wire. +The fillet may be performed on sharp corners of a wire, which are shared exactly between 2 edges, and which are placed ona single plane. + +To create a 1D-fillet in the active part: + +#. select in the Main Menu *Feature - > 1D-fillet* item or +#. click |fillet1d.icon| **1D-fillet** button in the toolbar + +There are 2 types of fillet: + + .. image:: images/fillet1d_wire.png + :align: left + fillet all sharp corners on a wire + + .. image:: images/fillet1d_points.png + :align: left + fillet only the specified corners + +Fillet a wire +------------- + +The property panel for this mode is shown below. + +.. image:: images/Fillet1DPanel_Wire.png + :align: center + +.. centered:: + Property panel of an operation to fillet all sharp corners on a wire + +Input fields: + +- **Wires** panel contains the list of wires for the operation. The fillet will be performed to the applicable corners. If the wire has no such corner, the error message will be shown; +- **Radius** defines the fillet radius. + +**TUI Command**: + +.. py:function:: model.addFillet(Part_doc, [wires], radius) + + :param part: The current part object. + :param list: A list of wires subject to fillet operation in format *model.selection(TYPE, shape)*. + :param number: Radius value. + :return: Created object. + +Result +"""""" + +Result of **Fillet a wire** is shown below. In this case all vertices were sharp, thus, filleted. + +.. image:: images/Fillet1DResult_Wire.png + :align: center + +.. centered:: + Result of filleting a wire + +**See Also** a sample TUI Script of :ref:`tui_create_fillet1d_wire` operation. + +Fillet the specified vertices on a wire +--------------------------------------- + +Alternatively, there is a possibility to create a fillet on a special sharp corners of a wire. + +.. image:: images/Fillet1DPanel_Vertices.png + :align: center + +.. centered:: + Property panel to fillet the specified vertices of a wire + +Input fields: + +- **Vertices** panel contains list of vertices on a wires applicable for fillet operation; +- **Radius** defines the fillet radius. + +**TUI Command**: + +.. py:function:: model.addFillet(Part_doc, [vertices], radius) + + :param part: The current part object. + :param list: A list of vertices subject to fillet operation in format *model.selection(TYPE, shape)*. + :param number: Radius value. + :return: Created object. + +Result +"""""" + +Result of **Fillet by vertices** is shown below. The only 2 corners of the wire become smooth. + +.. image:: images/Fillet1DResult_Vertices.png + :align: center + +.. centered:: + Result of filleting the specified vertices of a wire + +**See Also** a sample TUI Script of :ref:`tui_create_fillet1d_vertices` operation. diff --git a/src/FeaturesPlugin/doc/images/Fillet1DPanel_Vertices.png b/src/FeaturesPlugin/doc/images/Fillet1DPanel_Vertices.png new file mode 100644 index 0000000000000000000000000000000000000000..883c5e03a68081e644c167143167a5a1e0591ad5 GIT binary patch literal 9437 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 BShN5D literal 0 HcmV?d00001 diff --git a/src/FeaturesPlugin/doc/images/Fillet1DPanel_Wire.png b/src/FeaturesPlugin/doc/images/Fillet1DPanel_Wire.png new file mode 100644 index 0000000000000000000000000000000000000000..668627e0a7cd04f33915f8a3ce8de431844ded0a GIT binary patch literal 7806 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 MdZ%=Yezzw64OV literal 0 HcmV?d00001 diff --git a/src/FeaturesPlugin/doc/images/fillet1d.png b/src/FeaturesPlugin/doc/images/fillet1d.png new file mode 100644 index 0000000000000000000000000000000000000000..a94aba335ca23bdebe65712f59c0ef89439c42ba GIT binary patch literal 462 zcmV;<0WtoGP)4}NOEf5< z4K0pA%>^#4%`GiCH@3JGL2Zp85{6ns4uz#=iGHss$te7B)4|>6#c|@UMt5vWl4__l zr4=uqo!&D*S+-b7Rb~;Eyz1-^5(aQowSoYG5hwxZIg|KEpo9@-fZF`w`r~WEDWYU8 zTXG+t-ds78t~)3R5%xd|rTWu>Ub6ul0TT!{gnX+lzPE;F5g13n81QZ#8LUipo5Q)8$N?EJ&Np#Txd z0XS_ZI22$^I|pDaGaS%rjobk$%5XqAldb~~pza{R7dI+!KM;^IzW@LL07*qoM6N<$ Ef@40k^8f$< literal 0 HcmV?d00001 diff --git a/src/FeaturesPlugin/doc/images/fillet1d_points.png b/src/FeaturesPlugin/doc/images/fillet1d_points.png new file mode 100644 index 0000000000000000000000000000000000000000..c0f751a926ba1290f377df8d2a52f879d7732daf GIT binary patch literal 948 zcmV;l155mgP)vrsE+)>*+{`BcB$1hjO zj+ap1@l`9x72w0XrAgb&efeZ;Y|al);44UvU!D}4{lGJKy!plR*1?<8Q+{~@pTH98 zW65n8t^wN*X43pL{SRSv0BsW%C(Gscg}N`k{^;cHeGeVhs^)%|Dk8pw+3<#D^%#iU z_LCQWAL0svHNQ14>g)Xq=eio3f*KgSGi~+EJjyTTrY{3;yV}N};sDk5n|$#sIDLL{ zjf(ni8pTj!S$X0d6S8-G84#6$at%Z*+nEioc?}GJX%ZGL_|27%V?9x0tcSpwoGn_@ zW54}bt}#C_k0%B*D8GB6j-IH5I4rkfIpqyYTQuJNX~hhr{}`T9_{+0kYv37QvH<`i za@xJ1=r@h=?z)N@n2FdUzysG>)f>w`{(l?rOv8qbIXg2x z+*?ky1$PunZRqSesH!PfXaQu($K5^`;etcxZ072vd#mhy$FU_6q53&<4`^JC1W*;d zE|~t>h&^&QmCE|aS;YVa8&f_?s?_Y5d87imRLii84 WO*J6cJr5cH0000${H?<~OLrb=~r!ufx zlxhUrfLjy|$<(nXoKat|d4BCWgs?lAhKmBoEh}>b&vku)q9)EYfv_VP0A)5X%kNKh z+*ikysLgS%+nS+O4Rm~SDj5Ka*}#tBJDq>q_0j>CE5<4}4W*tQYHvK7Omou!g0m{; z-rZMxH*YZDN~L>68UmNC5pDBOdsBC^%}q;iwg|cix)|tESM+$#nyRXd|Gn`vfZi7c z5Of)_xk{F*w%K!F#;~S`jP;Vh0M940+wcsqetIe29$8ly_7oN`n7^~HH?r;OmGSh6 z;3=yZpF*%rff4na`~s0fKq%Id8V;L+w~1lN434|3B0f;xfqp_raVG?z2weo(1%#&n zLZNvwrlpC*o1OyWq_A?8X@E(HU<0TpfTOpqw!6+q#8@y1uo%W{arqGZ$ZYRLNx&w! zN(8+vb|(pXL~uO3ED+Nm`nj19&R3KE9VaRUA&?_+SjEc*0C3&ua>Uz~6<~isamCq; z45Is@KXt{uB{|K^$m^>u62tfd&^G*Yhv$a|5XDyIEe}+R;u8=hs0OPoc=&2d%ji-A zc*+BfC<4*7f(wIfO^<00?s9HWs}<~vgd78&iogN4uQqe3ntOemb_G8Pef@~ycL1N?kzQ* zWSY6`WTQg4;%eA{O`5@u^t@v4%Dj!8W4)I~%mO^R z+WXmv-H{(%i{kvX*5;`j^^9HM_W4q*M#^@9y}+6|YK9SxMhxTNjUSH9dmRg7-y+J= z^0jvz@8{(+Vz+_t>`;5t@mT?)$}KB%1huqn0aGqueBe$6z>$An?O!5 zIa7?0pXYyd`D473NQ(C&+b}M`I1yHX8xpRa`=0vdd!wbKE_2lqi3plet zwgPVgdNe4aRODnFQ2b1l(_$V z?DMDKtX|5-|IwE@1utILS9J(_ub_tneOS;>3(h_AU;yXSzt^gJT(1IPZvX%Q07*qo IM6N<$g4dK1y8r+H literal 0 HcmV?d00001 diff --git a/src/FeaturesPlugin/fillet1d_widget.xml b/src/FeaturesPlugin/fillet1d_widget.xml index d96706396..e7f3cafa1 100644 --- a/src/FeaturesPlugin/fillet1d_widget.xml +++ b/src/FeaturesPlugin/fillet1d_widget.xml @@ -32,7 +32,7 @@ -- 2.39.2