From 9fead6b048ac4a14cfc90512ae766cb3a4f372eb Mon Sep 17 00:00:00 2001 From: gzy Date: Sun, 23 Sep 2018 10:43:26 +0300 Subject: [PATCH] symmetry and scale --- .../doc/TUI_scaleXYZFeature.rst | 11 ++ .../doc/TUI_scalefactorFeature.rst | 11 ++ .../doc/TUI_symmetryaxisFeature.rst | 11 ++ .../doc/TUI_symmetryplaneFeature.rst | 11 ++ .../doc/TUI_symmetrypointFeature.rst | 11 ++ src/FeaturesPlugin/doc/examples/scaleXYZ.py | 12 ++ .../doc/examples/scalefactor.py | 12 ++ .../doc/examples/symmetryaxis.py | 12 ++ .../doc/examples/symmetryplane.py | 12 ++ .../doc/examples/symmetrypoint.py | 12 ++ src/FeaturesPlugin/doc/images/Symmetry.png | Bin 6342 -> 429 bytes src/FeaturesPlugin/doc/images/scale.png | Bin 0 -> 583 bytes .../doc/images/scale_dimensions_32x32.png | Bin 0 -> 1278 bytes .../doc/images/scale_factor_32x32.png | Bin 0 -> 1296 bytes src/FeaturesPlugin/doc/images/symmetry.png | Bin 0 -> 429 bytes .../doc/images/symmetry_axis_32x32.png | Bin 0 -> 586 bytes .../doc/images/symmetry_plane_32x32.png | Bin 0 -> 727 bytes .../doc/images/symmetry_point_32x32.png | Bin 0 -> 434 bytes src/FeaturesPlugin/doc/symmetryFeature.rst | 120 +++++++++++++++++- .../doc/transformationFeature.rst | 81 +++++++++++- 20 files changed, 312 insertions(+), 4 deletions(-) create mode 100644 src/FeaturesPlugin/doc/TUI_scaleXYZFeature.rst create mode 100644 src/FeaturesPlugin/doc/TUI_scalefactorFeature.rst create mode 100644 src/FeaturesPlugin/doc/TUI_symmetryaxisFeature.rst create mode 100644 src/FeaturesPlugin/doc/TUI_symmetryplaneFeature.rst create mode 100644 src/FeaturesPlugin/doc/TUI_symmetrypointFeature.rst create mode 100644 src/FeaturesPlugin/doc/examples/scaleXYZ.py create mode 100644 src/FeaturesPlugin/doc/examples/scalefactor.py create mode 100644 src/FeaturesPlugin/doc/examples/symmetryaxis.py create mode 100644 src/FeaturesPlugin/doc/examples/symmetryplane.py create mode 100644 src/FeaturesPlugin/doc/examples/symmetrypoint.py create mode 100644 src/FeaturesPlugin/doc/images/scale.png create mode 100644 src/FeaturesPlugin/doc/images/scale_dimensions_32x32.png create mode 100644 src/FeaturesPlugin/doc/images/scale_factor_32x32.png create mode 100644 src/FeaturesPlugin/doc/images/symmetry.png create mode 100644 src/FeaturesPlugin/doc/images/symmetry_axis_32x32.png create mode 100644 src/FeaturesPlugin/doc/images/symmetry_plane_32x32.png create mode 100644 src/FeaturesPlugin/doc/images/symmetry_point_32x32.png diff --git a/src/FeaturesPlugin/doc/TUI_scaleXYZFeature.rst b/src/FeaturesPlugin/doc/TUI_scaleXYZFeature.rst new file mode 100644 index 000000000..9b9f360b7 --- /dev/null +++ b/src/FeaturesPlugin/doc/TUI_scaleXYZFeature.rst @@ -0,0 +1,11 @@ + + .. _tui_Scale_XYZ: + +Scale by different factors along axes +===================================== + +.. literalinclude:: examples/scaleXYZ.py + :linenos: + :language: python + +:download:`Download this script ` \ No newline at end of file diff --git a/src/FeaturesPlugin/doc/TUI_scalefactorFeature.rst b/src/FeaturesPlugin/doc/TUI_scalefactorFeature.rst new file mode 100644 index 000000000..af4e71d96 --- /dev/null +++ b/src/FeaturesPlugin/doc/TUI_scalefactorFeature.rst @@ -0,0 +1,11 @@ + + .. _tui_Scale_common_factor: + +Scale by one common factor +========================== + +.. literalinclude:: examples/scalefactor.py + :linenos: + :language: python + +:download:`Download this script ` \ No newline at end of file diff --git a/src/FeaturesPlugin/doc/TUI_symmetryaxisFeature.rst b/src/FeaturesPlugin/doc/TUI_symmetryaxisFeature.rst new file mode 100644 index 000000000..43096341b --- /dev/null +++ b/src/FeaturesPlugin/doc/TUI_symmetryaxisFeature.rst @@ -0,0 +1,11 @@ + + .. _tui_symmetry_axis: + +Symmetry through an Axis of symmetry +==================================== + +.. literalinclude:: examples/symmetryaxis.py + :linenos: + :language: python + +:download:`Download this script ` \ No newline at end of file diff --git a/src/FeaturesPlugin/doc/TUI_symmetryplaneFeature.rst b/src/FeaturesPlugin/doc/TUI_symmetryplaneFeature.rst new file mode 100644 index 000000000..cfafee3c2 --- /dev/null +++ b/src/FeaturesPlugin/doc/TUI_symmetryplaneFeature.rst @@ -0,0 +1,11 @@ + + .. _tui_symmetry_plane: + +Symmetry through a Plane of symmetry +==================================== + +.. literalinclude:: examples/symmetryplane.py + :linenos: + :language: python + +:download:`Download this script ` \ No newline at end of file diff --git a/src/FeaturesPlugin/doc/TUI_symmetrypointFeature.rst b/src/FeaturesPlugin/doc/TUI_symmetrypointFeature.rst new file mode 100644 index 000000000..9a121640a --- /dev/null +++ b/src/FeaturesPlugin/doc/TUI_symmetrypointFeature.rst @@ -0,0 +1,11 @@ + + .. _tui_symmetry_point: + +Symmetry through a Point of symmetry +==================================== + +.. literalinclude:: examples/symmetrypoint.py + :linenos: + :language: python + +:download:`Download this script ` \ No newline at end of file diff --git a/src/FeaturesPlugin/doc/examples/scaleXYZ.py b/src/FeaturesPlugin/doc/examples/scaleXYZ.py new file mode 100644 index 000000000..0a1a6fec7 --- /dev/null +++ b/src/FeaturesPlugin/doc/examples/scaleXYZ.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- + +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Sphere_1 = model.addSphere(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), 10) +Scale_1 = model.addScale(Part_1_doc, [model.selection("SOLID", "Sphere_1_1")] , model.selection("VERTEX", "PartSet/Origin"), 2 , 3, 4) +model.do() +model.end() diff --git a/src/FeaturesPlugin/doc/examples/scalefactor.py b/src/FeaturesPlugin/doc/examples/scalefactor.py new file mode 100644 index 000000000..9794ad4ce --- /dev/null +++ b/src/FeaturesPlugin/doc/examples/scalefactor.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- + +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Cylinder_1 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 5, 10) +Scale_1 = model.addScale(Part_1_doc, [model.selection("SOLID", "Cylinder_1_1")] , model.selection("VERTEX", "PartSet/Origin"), 2) +model.do() +model.end() diff --git a/src/FeaturesPlugin/doc/examples/symmetryaxis.py b/src/FeaturesPlugin/doc/examples/symmetryaxis.py new file mode 100644 index 000000000..3ceb146fe --- /dev/null +++ b/src/FeaturesPlugin/doc/examples/symmetryaxis.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- + +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Cylinder_1 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 5, 10) +Symmetry_1 = model.addSymmetry(Part_1_doc, [model.selection("SOLID", "Cylinder_1_1")], model.selection("EDGE", "Cylinder_1_1/Face_1"), False) +model.do() +model.end() diff --git a/src/FeaturesPlugin/doc/examples/symmetryplane.py b/src/FeaturesPlugin/doc/examples/symmetryplane.py new file mode 100644 index 000000000..549c89bfc --- /dev/null +++ b/src/FeaturesPlugin/doc/examples/symmetryplane.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- + +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Cylinder_1 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 5, 10) +Symmetry_1 = model.addSymmetry(Part_1_doc, [model.selection("SOLID", "Cylinder_1_1")], model.selection("FACE", "Cylinder_1_1/Face_2"), True) +model.do() +model.end() diff --git a/src/FeaturesPlugin/doc/examples/symmetrypoint.py b/src/FeaturesPlugin/doc/examples/symmetrypoint.py new file mode 100644 index 000000000..e71d7c68e --- /dev/null +++ b/src/FeaturesPlugin/doc/examples/symmetrypoint.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- + +from salome.shaper import model + +model.begin() +partSet = model.moduleDocument() +Part_1 = model.addPart(partSet) +Part_1_doc = Part_1.document() +Cylinder_1 = model.addCylinder(Part_1_doc, model.selection("VERTEX", "PartSet/Origin"), model.selection("EDGE", "PartSet/OZ"), 5, 10) +Symmetry_1 = model.addSymmetry(Part_1_doc, [model.selection("SOLID", "Cylinder_1_1")], model.selection("VERTEX", "PartSet/Origin"), True) +model.do() +model.end() diff --git a/src/FeaturesPlugin/doc/images/Symmetry.png b/src/FeaturesPlugin/doc/images/Symmetry.png index a369a0f8111716eeb1aea10b74e749961f05d091..fdc73b21c6ba777e2d34bf1ca02e7faa26641739 100644 GIT binary patch literal 429 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`EX7WqAsj$Z!;#Vf2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4k`yBP298+q#7n`U5;QrZj_SVMt8yu&)sy?k$RqIdnx^`;A&Xl5t zf6^k`%2Z!`=V)r^iw`gSeCF0Rg)Rf0mp{z4J{_$69n9joU3x=($%GeAw(nCu2H;v;RnV;-kb;tI{n)MYEpWM;$@#E1J z{uCF=@a5?1b`FDgJ0dSL1$;D%h?BVU?Z+FDxwB6#oh7Z`WGq%&93y`GZ*E%4jf!XW z0^!}$DqOXtlbq~TtyK?hTlmv#&y8zlyFzB1lMz-pn;w%WBB>Z>Cd%CNQeq$Dftmi7 U-Je~30SsCOPgg&ebxsLQ0Np~YJOBUy literal 6342 zcmeHMc{tQ>*GKuOBoQH+QMM$;7RfM@C0VATB%-pFHTy7_XtR$kyYc%)NkR;!$)K_u zODXGEY6fE+W(H$2X5MLe-sk;Y*YiBr`~LsVb$ze7&i%d5xzD-J=X|bn-{1HPHs(Tm z4(;LL;SsVpXL5;$hgXdI1nuJEj@%{P?BV|L23;~Y=BezHndb^SJ| zYO`o5wrA&l)oU?VD)yKrf_5fKct6RGg}s-UjE#M9gg16iJx-EuES)D-e*dlqxHDEf z-s|kXaFl@_+$I#gg{OS*Ybpx=qtB46=lQvhzV4&>2}duY+~!XO6L~Y^1TF*;m3O3; z^ua=RoRg&ToNwK6Ohouk6Y!iV&3I|IIPnbVRwA`p$@qh3i&lIa+JlIl9l+s&lq#z; zl$BP}+Z%S+@N9I7!=%1a!W!NomMr8^SpLGU9@S$x-YJ)muv8rn##XLHkj_E$z-wE> z-R%dCwTFwEJ|C~0#W#VD-33DVgO-E39lox89K^k@dZ66Si0F|lyL~H0ru&+w;X-4l zV3(F7zTYYj9RN#g5smK{MW=Kg427M^-QoGTfiUK9NH4Y7wU>Z*s%bYk5b_nF>tC^Q zR8~2LXIyCcb(QPuM5oYhrN3Y&lz9AY3CTX31x+5kIIWfFGa?l0mc)uV24A{Teh&c4 z2Wpt6ST*!;V^9Q`lm7@s9tE{*P09r8uSht{h^#vs(fAx8PR947EmzauS@BUjuWaa4 zARO`4j26slldeGZY@v*?a%Y)Q0)T8c-FR<0w_?Q;x@L3~3J4=#V+$=2NRv0e$`0Z5 zUNe?(NZi$fJEAP{1)0+Xfc=u!ICmfh~i5TE=` zAhc7)=`n@0G8Q3)de+Pk)&jb6!sSls(ey;~?_2NZ0!SXX3pMmOw;=ji=(zfwu`k(p zm-3fD`ZVWy^wxyAwDj^NS<=G7Le>d~OY_%ou9Jg1jj{KN@~t? zu>sM*_lH|%oIN=@=0j4dzGAEaV`T_=?I^14v7<7?vh`{Gj7tDB_{+n6owkIf09TsL)RpVafSSqOSj;_4e64T3D|Z7lDJ5%G7b4?cAyU=pidUsrsm`je&tn z^bv=&TUBen#|_{d45P9P~Sj(xY9p?oLDc*1YReY?PYV5)ndRMS7A4B$&X-rl~x6+Jn&mRTpt%FEG8>GIp)Rdg(L+{f)4gvLti z_umMPGeq&LSoUGV*U}Rj(L-0x>EVZI#e5~h1J5i~jvu#@Pm}-|2G3o%!S2e#PgL6WL|y# zl2OV;gG)5iJ)`@%b^bI#I(%ntwu*h_tIEpy#dNpm03 z?S80#RzN?{b5vP&yWVf&+NDdkV!74SC@(KSBPWQfEG5Wyg`H#?J4>VZ*U znsrL#wTx;mVwS~HMQDxI;o;c%j#P4gnwioT^$RI_;&Wu(Vn1CvAPVe) z4PAXgQo0^W-X;rS2W@zBX$$35c}3QOyDd_dLnunU?Nx!dgF6)hcIfZ1Wep7v6O>iM*_~wFt)nK!zNhjM z5DL8a&VYZi5S5q~#6x^t_T~poo%+QS9H<)UG7p+N(beYwxuihS zK%v$Yho8kbshi8Z3x+nnsa*+aVY#|kCmTql`GE7eDUIK8p6fU4P2^BMU#!6sS#m9SBi;05@+a)Yna()ze%4G?G;<;L9TCuucHe5) z@rbQ?7YbJ+esy8fKG`>a?;;ywT*pZFD>t!-nd~a%*NIO>pgIeRsLKt9hwOspY|!78tg%Dc6>e+^0 z6JCeM4C9Q7;)t7(>u9kWK86pJU0eOJe;`?4!S6 zsvJm1P~&D`XA%Nu2?&1+mL{`9#YIfB_MrcrVc!DpJ*p>tS@kc+;ghV4+T3#Gk;KK z1XP0Rbp7kZ`9}=+Q!Xgq#w)4gDsDU)Jw5xSFB=ar+;V}iv(aIy4(=Y8#F0ztK@~}; zjsuc4C!)bIQ#;qEE<6g$NWrV=ulM?&URgMh!c`X#;R5$d8+~9*yY0u4;!5jq@MrL ziA5a%$C^*B3@EwNES9>na?f6RvvF1kYtFp1Pp>1~9*6+Ph-@B=gVkK@ChkV|bR6Kg zI^HNbg#xlyzhIh|apl}?tnX<%AURp5C)%%&y&vj-7F-rje$YxUTsgI}@GCRBJA=Vw z)Z(w%1qn)QD1lF|jp`Ih?YaPdrY|fo1iudpF9XgGR7Sn};$^}m8U-oK0R z-w)jIS7-O6p-H&cO^C4>hwL{z>lZ>3Nk;3 zl9KDTHbSKP|NMr*E5vf6MiQ~`D?Nd3Zi)beo<)?;Rxb%U_@?>hLIq(hrp-l-7qLUWsfD3-VE6Zi50R zw|2B-$`Lzks~I;6zAZ<`lQYnLf!$K4Yjpz2-NO6)CJ5^hUiU#jKt#LaQw@&?FTvbrAAF6ZS73|)C%v$zKt$taafI~(qCz&fLPzz*E zt!}Df=DJ0=Kpc>S#>&}%rCg^p^Lhvsh0)bbe-w1xYR~ApIkmo*aD9{B%qz`olPkf1yseS^w@XQlFER=le&l0nN!R#FE;Fb;zP{H_KZQCM8P;ex zx|Qw=_9(b-*jJ+E*4_j6?B!cIwK{+eZ5>!m!t{hoVX<0ICE(d3xkO`hJ0k1-9ChxB zF*UdjD_~O=Jk^pF5 z>=@-Oxp(l~MKFc!=XJ+dyO>tZdmjKVeHKEEL(>cwlX&IKPHTA>1`ah3IN$adx1<^B z2L^n>qiG-PANGIucqFc$*gLF#VrM4xSS3Yr+@eMV* zub)x^7n@2C`v%nESCmS!5<>U)qOuc+j00K#+mvz2U3&HRS=YyT1p(^GuFTYa#E})c z1hjHjkCtSvv_}#CQMNBA-$gVo1KI?fv8meB;P${|gS?9KYKd(G5@N2hBB-COYW*}eYX;}tx>wAJ*) z8Rz_c^%anh8}00R+E{%Z<*F?yX>hOEKB3Wp8jO1e{z|qGh~TW#EH8UxMBeyTyIi(K zT;OM-0no6yA!@R3LvL^yT|RzsLZkep>vMe%bx8;P9za&_iL;?~OTPbD5mbJs96Y_| znz1Wh3hAaK0kK;%|D$+#pM{a}Yl{c1NuIV7RCl;x<|2eYLSdA}?P&M=h#t`(g>M-V z1RDtP0*zTd(M*=&Zx^O?3>q?EAK_iI*((V7o%tr`dSF9?^}Q8}fHmhDCfN>Sxl1QL zHHZ4D!Z-iADR{2Yjox2LN&R88bw{u@us<)a-r@4$*89$u|A;J3U@p%PHF(lji@REm zPxLR>_6vVJ$!)H<>aqZ%n19=8{jGE@fKUhPd?yR=T%8*o(pY@{hv7CZ&v?b z_)o3wKX+%K1O4{7uOjtNiHu%Qzwqw&iXz5fqv8Mk#;5m!cJCKX)s6ytdyRRB2uEm) zveNH8xWUD)ME{Z(@yyCIq^GYhVd-Tk@l2IMz6%N{8f$%2-UB>S=ZoMX@Rkku^78MY zMK8kal>@>Npix%POM=2Ls7{VgZ7kVv4JqU!Ci_BvxG1WH5)v3gOyS)0?}6oBmM{L<0O z%jlPI%L@&Y&Be}8Uemk-wO@o0ZdwL2WIm|ejhuiQ{rK^)_<%g@@-AnA<+`#@W& zeIKXzzw&lO{JEUG?aK|z+nX@-rM4pUF*sW?Nk-BGf^W}SR?T;+f9nGq-Kb$I@cs@$ zuD2q@4>D+;!r5M>G8T|{x}~4e*+4h-K%bn(zbhQc%Aso4jYNA%BbW6fmhKmKOfwZQ zf=LXiq*sSyxCEku^$8hWty#9#OIEFqd(EAVIhB3b&#S`UP?2;YgU(7P@VCd9{UPUQ zenShNYOUrtu@wF@SNkn{U_7nnzm83RyUF<_WVXW;c^vxuW+Vrsk=vMrdnZi(d+xJS zs5)tknBi6JwJ>C-t^ZE4we{=>5ZW8_ zmQc#7(%UBsaI4E~)AFLZCfZjt!N2d7VxINi`cy&c4VZtFEQf#$swJ3#JH5){OP@WP z$$AXPuijJ$pY7c2vo3DZCGHD4F~!+09C)c41#ZsSyc?9b4L!06sXu(m4ndIn+!Me< zl`ZFXsP5&%*7?mJWwuCZP(SH)<>RZ%y7rw?>HuKo;}!((~tO_FtsspGo-l)7p~Atk#i1qm=_7z*bRJLNe@Q z{yGJAJds9EJieR=uw0(F+y1!~jo`3Vs&F;6wc3(M1Vc<>c4kKWV7|n>h&NiXDgLt< z)XP6n>+%3KCy?@nl*0YxP&>~!>-YePXN2V?kj*mTqaom!z=CWuH%)bt)8(s@xqA#> zot9|uENC+|oh_RM5PH3`cG3Aw*unOvdwin=8!;5t`C>mm=e)YKDzMiFM1@|x)?fJ4 zVq%*dut#2e_j7!pi9L1N91=AB*->7g0b{Jy=aJ|{j2uZU2nlWqz0#FNw|6ro3l)3f zAdTS;qTvGgNb!w*B5cd0J@#aw#x3T6_#~ee3G#4U90Z6rxumiE055XARW9F-{b_mX z@dx& zGDl|D52%?3uTKZ)B(r=OS7Fj2S{adGwn|SDr~e%eqm46r0Mh8Vcy#we3AmOz#k!~Nboy}$@ zjZ4JE6Kl=ADzkz$RmGH9T*_N9J!LHSl+>DHek#8|d}gU6uCG!2=0-u(5o35I{S~~M zb8xbnenn*V(PYslmBxpC&|`ewCY#T$`!&(}FdF4J`nQJMXYBkVj1p}?;k&Hm-J@vM z0bs5u2xT%dXz+;yixdV7oSAJ+5-^JVU%>6W_abM=^LdS?q>!b3sW1DO5+=` F{{2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4Mw#W&X$|IdGw{%8OEYwN!=#!j3$v2)?XeGmOpHU_8r#m?EEv{Ev7 zg?4a$mcZh>SEl}7K5y5r`$18TFRj~dOG?g+h>W-~(U4nP+Zg1$)2p}t|0ed`_+!51 zr~Q)cmp?L1yDg-s_$ac%kk!Q%v}Q2LEn8-v8g=Px_D73)S{bZ){{#-gTj| zeHOEGWCOFC*Oy5jxqcr2fgk_tFFk&{`nsSIM_$9$l{059?BfGDtlm5R`_b+1?`;yi z)RV-(&CSg$uP+ahU^W*1oS$T3Y~b+e5I-AR+x!zV=1>2wX>9yiG>M0SL3mg1i!@Q= RG+?ANc)I$ztaD0e0sz4c`~Uy| literal 0 HcmV?d00001 diff --git a/src/FeaturesPlugin/doc/images/scale_dimensions_32x32.png b/src/FeaturesPlugin/doc/images/scale_dimensions_32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..b5204f9e886d3f73fbd14fcc134bdbe462d1174a GIT binary patch literal 1278 zcmVY>c(r5W~>H_zK$?^0je6 z0tpKdL5+z)(fECXVP0usVvKs@1;!h_KoWuI{3hrC0|uuM7eYV?u#OFs+LpnzY;AXF zPaiMZ;lOUJ`{21b=Y8Mjd4B)*Ie9;hVhmQX=5b$2H>(gS5>$bPa)RWg6gGuK6{;@< z5v3#wmX3fkb&-}9Gg~e-3Z5!ow|SMInv{|yBFqB{bJT1A=Ri)OwC|Nu_FZXdiQiQ~ z`PxSoh|+cei-z{QoKAdR9|f*_9CkZ4yB)jDhHlX@41*$Zsc4 z(0%z507_)FWw@ZvqP@Fs=+>GG#nX7fF@#nTr7OfN2>x~hsYuMcmjmol#xXP$FJa3YZ;7!DE) z2MGj2_`5o}*xk*>E8VEX7kxA|$BhQsb4 zZ;At(-HvY2iN)g#48$>R8YB|Q+x!(!)fX{bX7bn8(z3UkJAXfxwE_YQfjtVU0oc6R z;)_YWO7W0_xuVoOgt>rg#1cS4fnSt5YcT7u1ZUDaC{~h}e9neKf zJrA^J{Of@Iz|$)I%-OU%+Ed@EoWB#GqOAND9AJL+ytK#^b29L)z#qWsvBI+n*s`tb zTs=S__!s@r=&gYZet-H!sm{!Q3cQo0zeFG; z@aUv~hk%yK;05HrzUKs%3wS3Lo`LNa*fONOLEwVGtVxGwfZGLT3rxuzC|&{2WOMZl zJP+to;1~Fi^hwsM(tk9QYXZ#zFAH=D91|#z(fzVbn1B@m5dl-+-FpVkm_~ZGCeQ~Q oyw?JBU@5RM)2;&!-%A1i0x2!Er`kGsT>t<807*qoM6N<$fRlvNbRe`lC>TDEp-h0e5<2Fem1D4IyI#j+Fv z6e=ndEfO9yHHKBAL{JmU10*VjB_u>N1T-}06pZYPAX1hg|eV|g&116Cz&OMHj z);jsG;DoH4S*m;i*gHrw5G{~qS>)XBsOt*2But+1xgs9`Bq#MJBW)Ce2M#2BldX|hDYwWteodkh67+yCIkgnNMA5~#GztqEcQ5C z&|rXgo2_N7egVT3!hmmw+`nfBu!Mz&1dp&-TBbdNao!X7YHLE$X@I-;?}Y@fyK}c? zdea<;z~_1$kf+GAf>K&`IVAX{a<5L5KLT|=8;BKXs7f7r5~!)Jxk=fT@}R(~%C9Gm z0brQ)r%vGtW?%=92S9$lA;>C#g6$66Zg;@&W2a7V?Ro`()6_$@2I71UuvXyDN0FYo z7PwS-!^wut8v`of+=cUODg43vAo9M`;dt2T4X02DtP(ixACJ#^Z4hdl1Y#27y` zhe62$AJaEHY+(1neH{GdFor6Mepa=&a0zsBy(**u6^U6nV^n!v!6xvVA2y>j>W=M!>rB6%PS6@3qH6XBo7_*+%Rx!y4cjuh>S?d5T=1_}hU zGkDB}-qFh@rcan>2@hxX%v_0&v$6NkL5k0wL4+db9>*gWz5uvwtCJ%jC?_BVjOx5F(i0K?FK7gt5Sk7|mDP#@5uFjwI_zzO6D zeAy8gyx(wZ*JfZBa70n7AjXknMH2UPAF2P!d761i!59b=+_CB`7 zZH>paUExh&oOo|F;wQ~qf#_2IoG6dGZtTsfsq0Eke+twAiv<1(1lSpTJFrsVL`%$` zHDj8n0`vofDO^!_ z(JwYYVWq-T3d2?p zUk71ECym(^Ktah8*NBqf{Irtt#G+J&^73-M%)IR4k`yBP298+q#7n`U5;QrZj_SVMt8yu&)sy?k$RqIdnx^`;A&Xl5t zf6^k`%2Z!`=V)r^iw`gSeCF0Rg)Rf0mp{z4J{_$69n9joU3x=($%GeAw(nCu2H;v;RnV;-kb;tI{n)MYEpWM;$@#E1J z{uCF=@a5?1b`FDgJ0dSL1$;D%h?BVU?Z+FDxwB6#oh7Z`WGq%&93y`GZ*E%4jf!XW z0^!}$DqOXtlbq~TtyK?hTlmv#&y8zlyFzB1lMz-pn;w%WBB>Z>Cd%CNQeq$Dftmi7 U-Je~30SsCOPgg&ebxsLQ0Np~YJOBUy literal 0 HcmV?d00001 diff --git a/src/FeaturesPlugin/doc/images/symmetry_axis_32x32.png b/src/FeaturesPlugin/doc/images/symmetry_axis_32x32.png new file mode 100644 index 0000000000000000000000000000000000000000..3873378cfd45d391dfbafbf13340e11b39d41d8b GIT binary patch literal 586 zcmV-Q0=4~#P)Hap~B@En|y{0DYZ zD8&@Am@J_w6qU9$9C+CeS_p3iW@5Z}+{&F)$K<5V^n_uv}+39F3I%P#B0k(>T zIUwR>(viT<%ODw_uV_z@!V0hsycKW(p2QPLV8J)_X3%0M1`UMJGhhdpH!Uzs_|O_A z{1Z?HE=>yzeAR*^@R{~uEaT2c0hzIV=Kn8Tpe`T+&b@~#tSFQe=1gl?&}O+HRe<_h z-pjn(4RdV=GIeeVcb8IU%^%pgzr&NOxov@-uh2ixlHaiQYr7TTm(LILI6^_@edSHh zUD+xY767p@1Wj1T%*;Gm>|-lDKxW*+#~v~dI~fz*?@mTlE1mNZ>||=8I~S4i`RQ@F zyO5zEBQ>XS^ukKGiK(Eeu8V#)GFt!>jw7h*mZY){`)L2Tkeg0%*NgB3UrptR|7rwFJ0~5 zo*nzCL>517X!`&**@=nWZnNOAf%N2@ID4ng4FJ^}5a1>@<-xkaF*e8;lv zLf?hK7Cbhfy~yg7z)2ttB0MmxHyDI?%t^rqo2f%3se%7C}#ON_Wh8nqTi7}jik(#P#by56rdJh;-#Oz98k9SQMU(GS3=!0j;1e*qfS>mL2|zpC+6Ka+@y=UNRy9Bk;2psF87iCsZ;Q{Kz>O6^)ZNLA z$AbRw3Oq7*)I*!(uwDzCn9@3vun!z8);-{P)qzel$W_)FAk*^~+j}aph)f1mmAw7~sv1`@if0I4^9+Q*rYT57l4&|| c-qO Symmetry* item or +#. click **Symmetry** button in the toolbar + +.. image:: images/symmetry.png + :align: center + +.. centered:: + **Symmetry** button + +Symmetrical copy of an Object can be mirrored in three different ways: + + .. image:: images/symmetry_point_32x32.png + :align: left + through a Point of symmetry + + .. image:: images/symmetry_axis_32x32.png + :align: left + through an Axis of symmetry + + .. image:: images/symmetry_plane_32x32.png + :align: left + through a Plane of symmetry + +Symmetry through a Point of symmetry +------------------------------------ + +.. image:: images/symmetryPoint.png + :align: center + +.. centered:: + Symmetry through a Point of symmetry property panel + +Input fields: + +- **Main objects** panel contains shapes to be translated. Shapes are selected in 3D OCC viewer or object browser; +- **Point** defines point of symmetry selected in 3D OCC viewer or object browser; +- **Create a copy** checkbox turns on/off preservation of the initial object. + +**TUI Command**: *model.addSymmetry(Part_doc, [shape], point, copy)* + +**Arguments**: part + list of shapes in format *model.selection(TYPE, shape)* + point in format *model.selection(TYPE, shape)*+ boolean (Create a copy key). + +Result +"""""" + +Result of operation is mirrored initial shape with **Create a copy** = *True*. + +.. image:: images/symmetryPointres.png + :align: center + +.. centered:: + Symmetry through a Point of symmetry + +**See Also** a sample TUI Script of a :ref:`tui_symmetry_point` operation. + +Symmetry through an Axis of symmetry +------------------------------------ + +.. image:: images/symmetryAxis.png :align: center .. centered:: - Symmetry definition + Symmetry through an Axis of symmetry property panel + +Input fields: + +- **Main objects** panel contains shapes to be translated. Shapes are selected in 3D OCC viewer or object browser; +- **Axis** defines axis of symmetry selected in 3D OCC viewer or object browser; +- **Create a copy** checkbox turns on/off preservation of the initial object. + +**TUI Command**: *model.addSymmetry(Part_doc, [shape], axis, copy)* + +**Arguments**: part + list of shapes in format *model.selection(TYPE, shape)* + axis in format *model.selection(TYPE, shape)*+ boolean (Create a copy key). + +Result +"""""" + +Result of operation is mirrored initial shape with **Create a copy** = *False*. + +.. image:: images/symmetryAxisres.png + :align: center + +.. centered:: + Symmetry through an Axis of symmetry + +**See Also** a sample TUI Script of a :ref:`tui_symmetry_axis` operation. + +Symmetry through a Plane of symmetry +------------------------------------ + +.. image:: images/symmetryPlane.png + :align: center + +.. centered:: + Symmetry through a Plane of symmetry property panel + +Input fields: + +- **Main objects** panel contains shapes to be translated. Shapes are selected in 3D OCC viewer or object browser; +- **Plane** defines plane of symmetry selected in 3D OCC viewer or object browser; +- **Create a copy** checkbox turns on/off preservation of the initial object. + +**TUI Command**: *model.addSymmetry(Part_doc, [shape], plane, copy)* + +**Arguments**: part + list of shapes in format *model.selection(TYPE, shape)* + plane in format *model.selection(TYPE, shape)*+ boolean (Create a copy key). + +Result +"""""" + +Result of operation is mirrored initial shape with **Create a copy** = *False*. + +.. image:: images/symmetryPlaneres.png + :align: center + +.. centered:: + Symmetry through a Plane of symmetry + +**See Also** a sample TUI Script of a :ref:`tui_symmetry_plane` operation. \ No newline at end of file diff --git a/src/FeaturesPlugin/doc/transformationFeature.rst b/src/FeaturesPlugin/doc/transformationFeature.rst index 5e8f204d7..8ca725554 100644 --- a/src/FeaturesPlugin/doc/transformationFeature.rst +++ b/src/FeaturesPlugin/doc/transformationFeature.rst @@ -2,16 +2,93 @@ Scale ===== +The feature **Scale** makes a scaled shape basing on the initial shape. + +To create Scale in the active part: + +#. select in the Main Menu *Features - > Scale* item or +#. click **Scale** button in the toolbar + +.. image:: images/scale.png + :align: center + +.. centered:: + **Scale** button + +Two Scale algorithms are: + + .. image:: images/scale_factor_32x32.png + :align: left + by one common factor + + .. image:: images/scale_dimensions_32x32.png + :align: left + by different factors along axes + +Scale by one common factor +-------------------------- + +Scale by one common factor scales the entire object without modification the geometry of the shape: dimensions change evenly in all three orthogonal directions. .. image:: images/Scale1.png :align: center .. centered:: - Scale: define by a one common factor + Scale by one common factor property panel + +Input fields: + +- **Main objects** panel contains shapes to be scaled. Shapes are selected in 3D OCC viewer or object browser; +- **Center point** defines the point relatively to which the object is scaled. Point is selected in 3D OCC viewer or object browser; +- **Scale factor** defines the multiplier of axial dimensions. If Scale Factor is negative, the object is mirrored through the Central Point. + +**TUI Command**: *model.addScale(Part_doc, [shape], center, factor)* + +**Arguments**: part + list of shapes in format *model.selection(TYPE, shape)* + center point in format *model.selection(TYPE, shape)*+ real (scale factor value). + +Result +"""""" + +Result of operation is transformed initial shape. +.. image:: images/Scale_common_factor.png + :align: center + +.. centered:: + Scale by one common factor + +**See Also** a sample TUI Script of a :ref:`tui_Scale_common_factor` operation. + +Scale by different factors along axes +------------------------------------- + +Scale by different factors along axes is a general transformation, which can modify the geometry, for example, a sphere can be transformed into an ellipsoid. .. image:: images/Scale2.png :align: center .. centered:: - Scale: define by different factors + Scale: define by different factors property panel + +Input fields: + +- **Main objects** panel contains shapes to be scaled. Shapes are selected in 3D OCC viewer or object browser; +- **Center point** defines the point relatively to which the object is scaled. Point is selected in 3D OCC viewer or object browser; +- **Scale factor in X**, **Scale factor in Y**, **Scale factor in Z** define the the multipliers of axial dimensions. If Scale Factor is negative, the object is mirrored through the Central Point. + +**TUI Command**: *model.addScale(Part_doc, [shape], center, factors)* + +**Arguments**: part + list of shapes in format *model.selection(TYPE, shape)* + center point in format *model.selection(TYPE, shape)*+ 3 reals (scale factor values along X. Y, Z axes). + +Result +"""""" + +Result of operation is transformed initial shape. + +.. image:: images/Scale_common_factor.png + :align: center + +.. centered:: + Scale by different factors + +**See Also** a sample TUI Script of a :ref:`tui_Scale_XYZ` operation. \ No newline at end of file -- 2.39.2