From 5d4a330116970d95afe8714d00e05b09cad43eaf Mon Sep 17 00:00:00 2001 From: Clarisse Genrault Date: Wed, 11 Sep 2019 16:04:39 +0200 Subject: [PATCH] Adding online help for chamfer --- src/FeaturesPlugin/doc/FeaturesPlugin.rst | 5 +- .../doc/TUI_chamferDistAngle.rst | 12 ++ .../doc/TUI_chamferDistances.rst | 12 ++ src/FeaturesPlugin/doc/chamferFeature.rst | 105 ++++++++++++++++++ src/FeaturesPlugin/doc/examples/chamfer1.py | 10 ++ src/FeaturesPlugin/doc/examples/chamfer2.py | 11 ++ .../doc/images/ChamferDistAngle.png | Bin 0 -> 11151 bytes .../doc/images/ChamferDistances.png | Bin 0 -> 11415 bytes src/FeaturesPlugin/doc/images/chamfer.png | Bin 0 -> 407 bytes .../doc/images/chamfer_dist_angle.png | Bin 0 -> 868 bytes .../doc/images/chamfer_distances.png | Bin 0 -> 846 bytes .../doc/images/chamfer_res_dist_angle.png | Bin 0 -> 4946 bytes .../doc/images/chamfer_res_distances.png | Bin 0 -> 4798 bytes 13 files changed, 153 insertions(+), 2 deletions(-) create mode 100644 src/FeaturesPlugin/doc/TUI_chamferDistAngle.rst create mode 100644 src/FeaturesPlugin/doc/TUI_chamferDistances.rst create mode 100644 src/FeaturesPlugin/doc/chamferFeature.rst create mode 100644 src/FeaturesPlugin/doc/examples/chamfer1.py create mode 100644 src/FeaturesPlugin/doc/examples/chamfer2.py create mode 100644 src/FeaturesPlugin/doc/images/ChamferDistAngle.png create mode 100644 src/FeaturesPlugin/doc/images/ChamferDistances.png create mode 100644 src/FeaturesPlugin/doc/images/chamfer.png create mode 100644 src/FeaturesPlugin/doc/images/chamfer_dist_angle.png create mode 100644 src/FeaturesPlugin/doc/images/chamfer_distances.png create mode 100644 src/FeaturesPlugin/doc/images/chamfer_res_dist_angle.png create mode 100644 src/FeaturesPlugin/doc/images/chamfer_res_distances.png diff --git a/src/FeaturesPlugin/doc/FeaturesPlugin.rst b/src/FeaturesPlugin/doc/FeaturesPlugin.rst index 4200c3f2a..f701574c7 100644 --- a/src/FeaturesPlugin/doc/FeaturesPlugin.rst +++ b/src/FeaturesPlugin/doc/FeaturesPlugin.rst @@ -11,11 +11,12 @@ Features plug-in provides a set of common topological operations. It implements :maxdepth: 1 angularCopyFeature.rst + chamferFeature.rst commonFeature.rst cutFeature.rst extrusionCutFeature.rst extrusionFeature.rst - extrusionFuseFeature. + extrusionFuseFeature.rst filletFeature.rst fuseFeature.rst fuseFeatureFaces.rst @@ -31,7 +32,7 @@ Features plug-in provides a set of common topological operations. It implements revolutionFeature.rst revolutionFuseFeature.rst rotationFeature.rst - smashFeature.rstrst + smashFeature.rst splitFeature.rst symmetryFeature.rst transformationFeature.rst diff --git a/src/FeaturesPlugin/doc/TUI_chamferDistAngle.rst b/src/FeaturesPlugin/doc/TUI_chamferDistAngle.rst new file mode 100644 index 000000000..db62e1d88 --- /dev/null +++ b/src/FeaturesPlugin/doc/TUI_chamferDistAngle.rst @@ -0,0 +1,12 @@ + + .. _tui_create_chamfer2: + +Create Chamfer by a distance and an angle +========================================= + +.. literalinclude:: examples/chamfer2.py + :linenos: + :language: python + +:download:`Download this script ` + diff --git a/src/FeaturesPlugin/doc/TUI_chamferDistances.rst b/src/FeaturesPlugin/doc/TUI_chamferDistances.rst new file mode 100644 index 000000000..b9786abe9 --- /dev/null +++ b/src/FeaturesPlugin/doc/TUI_chamferDistances.rst @@ -0,0 +1,12 @@ + + .. _tui_create_chamfer1: + +Create Chamfer by distances +=========================== + +.. literalinclude:: examples/chamfer1.py + :linenos: + :language: python + +:download:`Download this script ` + diff --git a/src/FeaturesPlugin/doc/chamferFeature.rst b/src/FeaturesPlugin/doc/chamferFeature.rst new file mode 100644 index 000000000..dae55dfb0 --- /dev/null +++ b/src/FeaturesPlugin/doc/chamferFeature.rst @@ -0,0 +1,105 @@ +.. |chamfer.icon| image:: images/chamfer.png + +.. _featureChamfer: + +Chamfer +====== + +**Chamfer** feature creates chamfers on the edges or on the faces of a shape. + +To create a Chamfer in the active part: + +#. select in the Main Menu *Feature - > Chamfer* item or +#. click |chamfer.icon| **Chamfer** button in the toolbar + +There are 2 types of chamfer: + + .. image:: images/chamfer_distances.png + :align: left + chamfer by two distances + + .. image:: images/chamfer_dist_angle.png + :align: left + chamfer by a distance and an angle + +Chamfer by two distances +------------------------ + +The property panel is shown below. + +.. image:: images/ChamferDistances.png + :align: center + +.. centered:: + Chamfer by two distances property panel + +Input fields: + +- **Faces or/and edges** panel contains chamfered faces and edges. All edges of a face are subject to chamfer operation. Faces and edges are selected in 3D OCC viewer; +- **D1** define the first chamfer distance; +- **D2** define the second chamfer distance; + +**TUI Command**: + +.. py:function:: model.addChamfer(Part_doc, [face,edge], perfomDistances, D1, D2) + + :param part: The current part object. + :param list: A list of faces and edges subject to fillet operation in format *model.selection(TYPE, shape)*. + :param boolean: A "True" flag to indicate that the type of chamfer is by two distances. + :param number: D1 value. + :param number: D2 value. + :return: Created object. + +Result +"""""" + +Result of **Chamfer by two distances** is shown below. + +.. image:: images/chamfer_res_distances.png + :align: center + +.. centered:: + Chamfer by two distances + +**See Also** a sample TUI Script of :ref:`tui_create_chamfer1` operation. + +Chamfer by a distance and an angle +---------------------------------- + +Alternatively, there is a possibility to create a chamfer with a distance and an angle. + +.. image:: images/ChamferDistAngle.png + :align: center + +.. centered:: + Chamfer by a distance and an angle + +Input fields: + +- **Faces or/and edges** panel contains filleted faces and edges. All edges of a face are subject to fillet operation. Faces and edges are selected in 3D OCC viewer; +- **D** defines the chamfer distance; +- **Angle** defines the chamfer angle. + +**TUI Command**: + +.. py:function:: model.addChamfer(Part_doc, [face,edge], perfomDistances, D, Angle) + + :param part: The current part object. + :param list: A list of faces and edges subject to fillet operation in format *model.selection(TYPE, shape)*. + :param boolean: A "False" flag to indicate that the type of chamfer is by a distance and an angle. + :param number: D value. + :param number: Angle value. + :return: Created object. + +Result +"""""" + +Result of **Chamfer by a distance and an angle** is shown below. + +.. image:: images/chamfer_res_dist_angle.png + :align: center + +.. centered:: + Chamfer by a distance and an angle + +**See Also** a sample TUI Script of :ref:`tui_create_chamfer2` operation. diff --git a/src/FeaturesPlugin/doc/examples/chamfer1.py b/src/FeaturesPlugin/doc/examples/chamfer1.py new file mode 100644 index 000000000..ed603f6c6 --- /dev/null +++ b/src/FeaturesPlugin/doc/examples/chamfer1.py @@ -0,0 +1,10 @@ +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Box_1 = model.addBox(Part_1_doc, 20, 20, 20) +Chamfer_1 = model.addChamfer(Part_1_doc, [model.selection("FACE", "Box_1_1/Top")], True, 2, 2) +model.do() +model.end() diff --git a/src/FeaturesPlugin/doc/examples/chamfer2.py b/src/FeaturesPlugin/doc/examples/chamfer2.py new file mode 100644 index 000000000..387b60cb0 --- /dev/null +++ b/src/FeaturesPlugin/doc/examples/chamfer2.py @@ -0,0 +1,11 @@ +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Box_1 = model.addBox(Part_1_doc, 20, 20, 20) +Chamfer_1_objects = [model.selection("EDGE", "[Box_1_1/Right][Box_1_1/Top]"), model.selection("EDGE", "[Box_1_1/Front][Box_1_1/Top]"), model.selection("EDGE", "[Box_1_1/Left][Box_1_1/Top]"), model.selection("EDGE", "[Box_1_1/Back][Box_1_1/Top]")] +Chamfer_1 = model.addChamfer(Part_1_doc, Chamfer_1_objects, False, 2, 25) +model.do() +model.end() diff --git a/src/FeaturesPlugin/doc/images/ChamferDistAngle.png b/src/FeaturesPlugin/doc/images/ChamferDistAngle.png new file mode 100644 index 0000000000000000000000000000000000000000..444034c3a45534cfd529de36b5008befd431cc66 GIT binary patch literal 11151 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 f`4`3D#Z#%_7*zZ>q{c;mXUZzctIAc&eER%vi literal 0 HcmV?d00001 diff --git a/src/FeaturesPlugin/doc/images/ChamferDistances.png b/src/FeaturesPlugin/doc/images/ChamferDistances.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd9f0652914c2bb9b759c3f7a9fe4e808ac3c30 GIT binary patch literal 11415 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 literal 0 HcmV?d00001 diff --git a/src/FeaturesPlugin/doc/images/chamfer.png b/src/FeaturesPlugin/doc/images/chamfer.png new file mode 100644 index 0000000000000000000000000000000000000000..3fcc3a479f0f3c3515a1c68616522959b7074c8a GIT binary patch literal 407 zcmeAS@N?(olHy`uVBq!ia0vp^f*{Pn1|+R>-G2cowj^(N7l!{JxM1({$v_d#0*}aI z1_r((Aj~*bn@<`j$X?><>&pI^lbgfXXv;3=FANNfDxNNmAr`0KUOw-|lqkabq1Z0> zCUeR!m4_l*H!i53eC3Q8_aq^ujLUWzmzC55yb5nWy1YfHV4<5`SL^$Lg8c5Ha35t| z>(kudkMHdEu1U>0S*r1j@qo&q#j9q>Zp)Qt;9%%)e~^Qs=M318SxfA#y6r_8%*X~%gNHSNW2iRuhhKQ6e%m*?7;-+N9S<3179Q2!(HAZx8*vD%nrvn+291F&Y((T6QxXTY79BmDfr&EAeKpn6s z+#tquXI@HXwh`z|58^!z+yveNAHoF?ku`04%M0LRR{`F%ufL@PU?tE590um-hQp~s zaf+sWkJ3&18@>9@>e3SpUCpd~J`K15Yz4*w7lAuEz_9~|5b3-hztn%x&s^}Vef0Fn zGW#s|`pT>4ih+>e0lvL|Z3k+BYrrjF8?a6bHGnPF#_GHk(FOS%dMCyw9UPpsxIA&% z{1L%?hQl=%RI0*f1{&M9zvJ(RmmvdmXwZOx6m8kwE63$di?PI%rOwMelseUA3vgA8 z8O}mb=ar(_n$W)j7zP+X9$*6|cNqXcM3|VKVcJ`?$C8mgVX3l4RoG{_m(V^}`pn3U zHKw~tP;5k)Eh1H>Ua?+aIj|4^Jjno-i{WspP~NJMzWl1|CHH^zhE;)IHPCKn*QTx39M{6(J$jl?iYC!wHP5Lo^}Gw_ z4K@ctmj78M$fyw`dtAJ7Dd}$6y%)(dvv*WkeFymZd*5HFz|XQ+EabWunKy4Jj7c$! z-KniTpD9I5w*ho0CAmL43N~AFobI6}lQu-r7Tc`=;D44$<1-{7A-+-2>bo5v6h#0c u01-F{DpEs-+a z+`8?1{PKG~zZX0_-!H7c%zy+YfveG87qFN>X54^rzzKW;N`Ne2G@cM8L4*bj15beh zAP{drqJZC(2YgRbR?KAvW`GyKM<5+I0|bGKv4*G#0Oo+>z%&-i0MpZRsOlR+p%cLL ze+6W_Ys@->^eCD<49bjDl-oknq<{h`s8HaI&?#dh5AMESD@(T?K<2jXl|oV>1SLX< zc?cU3(gj#i*ddXb8ie)vJKxR@zMEeyOU*5>u8HU8nv|M#Vq?GG@9hS#9jeVA{W&&- z&lk!$Sev)WxcKG6z3v5o%@sA-Yvl=Rd9^GmEDDMk0TbUQMIaFHWsMlB{C@AML&tic z+AEC43!}ZA|9l}TKucYNNr>18;c$p+?QNw);&Xp7bw}1fRBCgx6Tn_zEAR}c11TO9j-*k<~Qi|f)>`p#K(%n76mDNBG1;3Qy)0&W5h;OM#rQ3TOs za=D!Qr)kzG+lWONq-FV{T@bvl*S`X*DJ)9H3ua{K;7 z=tF@)AS{IZx~y#{G9z+;>p)XNqgYi{T0PAxB4!oC9>68Ty5?xB4LApM0#|?q;C#Zn zKvh*v*Eg9QHbsb4qzAX8n^?r1OB8eqqMX%&Nj9f9d<|A z62j*TNsU)hlU+a$k^3Kv9(fFS0dKOl;S$1bvzNInwjSJWRf^D!u}AlxtadJGfaM57 z`i3%VdiL(|hrK;(ok=PHK(E(hHf1bIDPx*!Ne9GRDL@L40;B*bfC_M`r6Jk5S+Rcj Y3o9_!nI2z2Z2$lO07*qoM6N<$f=1|MCIA2c literal 0 HcmV?d00001 diff --git a/src/FeaturesPlugin/doc/images/chamfer_res_dist_angle.png b/src/FeaturesPlugin/doc/images/chamfer_res_dist_angle.png new file mode 100644 index 0000000000000000000000000000000000000000..9d4d8f5e80773b4737471ae86ae76b8543dfd023 GIT binary patch literal 4946 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 l8n?H(&^@MFahK-dR<0IT|Ge8frv9+x?t(d7