From 652c0500fcf2ded3b9c2713c3e7f8a57b21dd23c Mon Sep 17 00:00:00 2001 From: abd Date: Wed, 7 Feb 2007 11:23:40 +0000 Subject: [PATCH] Merging with WPdev --- Makefile.in | 1 + configure.in.base | 4 +- doc/salome/gui/GEOM/add_point_on_edge.htm | 332 +- doc/salome/gui/GEOM/arc.htm | 280 +- doc/salome/gui/GEOM/archimede.htm | 280 +- .../gui/GEOM/basic_geometrical_objects.htm | 1322 +-- doc/salome/gui/GEOM/basic_operations.htm | 496 +- doc/salome/gui/GEOM/blocks_operations.htm | 576 +- doc/salome/gui/GEOM/boolean_operations.htm | 706 +- doc/salome/gui/GEOM/box.htm | 356 +- doc/salome/gui/GEOM/building_by_blocks.htm | 710 +- doc/salome/gui/GEOM/chamfer.htm | 394 +- .../gui/GEOM/changing_display_parameters.htm | 366 +- doc/salome/gui/GEOM/check_free_boundaries.htm | 300 +- doc/salome/gui/GEOM/check_free_faces.htm | 300 +- doc/salome/gui/GEOM/circle.htm | 312 +- doc/salome/gui/GEOM/close_contour.htm | 306 +- doc/salome/gui/GEOM/color.htm | 222 +- doc/salome/gui/GEOM/common.htm | 294 +- doc/salome/gui/GEOM/complex_objects.htm | 978 +- doc/salome/gui/GEOM/compound.htm | 276 +- doc/salome/gui/GEOM/cone.htm | 332 +- doc/salome/gui/GEOM/cshdat_robohelp.htm | 516 +- doc/salome/gui/GEOM/cshdat_webhelp.htm | 502 +- doc/salome/gui/GEOM/curve.htm | 336 +- doc/salome/gui/GEOM/cut.htm | 288 +- doc/salome/gui/GEOM/cylinder.htm | 336 +- doc/salome/gui/GEOM/default.css | 202 +- doc/salome/gui/GEOM/default_ns.css | 236 +- doc/salome/gui/GEOM/edge.htm | 270 +- doc/salome/gui/GEOM/ehelp.xml | 18 +- doc/salome/gui/GEOM/ehlpdhtm.js | 8476 ++++++++--------- doc/salome/gui/GEOM/ellipse.htm | 306 +- doc/salome/gui/GEOM/explode.htm | 370 +- doc/salome/gui/GEOM/explode_on_blocks.htm | 336 +- doc/salome/gui/GEOM/extrusion.htm | 336 +- doc/salome/gui/GEOM/face.htm | 310 +- .../gui/GEOM/files/introduction_to_geom.htm | 286 +- .../salome2_sp3_booleangui_functions.htm | 318 +- .../salome2_sp3_geomtoolsgui_functions.htm | 292 +- .../salome2_sp3_measuregui_functions.htm | 966 +- doc/salome/gui/GEOM/fillet.htm | 364 +- doc/salome/gui/GEOM/filling.htm | 290 +- doc/salome/gui/GEOM/fuse.htm | 304 +- doc/salome/gui/GEOM/geom.log | 1178 +-- doc/salome/gui/GEOM/geometrical_objects.htm | 1140 +-- doc/salome/gui/GEOM/geometry.htm | 288 +- .../gui/GEOM/geompy_doc/namespacegeompy.html | 907 +- doc/salome/gui/GEOM/glue_faces.htm | 330 +- doc/salome/gui/GEOM/groups.htm | 654 +- doc/salome/gui/GEOM/index.htm | 360 +- doc/salome/gui/GEOM/index_csh.htm | 210 +- doc/salome/gui/GEOM/index_rhc.htm | 210 +- doc/salome/gui/GEOM/isos.htm | 226 +- doc/salome/gui/GEOM/line.htm | 318 +- .../gui/GEOM/local_coordinate_system.htm | 366 +- doc/salome/gui/GEOM/measurement_tools.htm | 904 +- doc/salome/gui/GEOM/mirror_image.htm | 392 +- doc/salome/gui/GEOM/modify_the_location.htm | 438 +- doc/salome/gui/GEOM/multi_rotation.htm | 380 +- doc/salome/gui/GEOM/multi_transformation.htm | 366 +- doc/salome/gui/GEOM/multi_translation.htm | 394 +- doc/salome/gui/GEOM/newentity_blocks.htm | 680 +- doc/salome/gui/GEOM/occ_viewer.htm | 464 +- doc/salome/gui/GEOM/offset_surface.htm | 302 +- doc/salome/gui/GEOM/partition.htm | 360 +- doc/salome/gui/GEOM/pics/image95.gif | Bin 2643 -> 2711 bytes doc/salome/gui/GEOM/pics/partition1.png | Bin 19008 -> 16738 bytes doc/salome/gui/GEOM/pics/partition2.png | Bin 15665 -> 15170 bytes doc/salome/gui/GEOM/pics/transformation4.png | Bin 14979 -> 17189 bytes doc/salome/gui/GEOM/pipe_creation.htm | 290 +- doc/salome/gui/GEOM/plane.htm | 412 +- doc/salome/gui/GEOM/point.htm | 402 +- doc/salome/gui/GEOM/primitives.htm | 758 +- doc/salome/gui/GEOM/propagate.htm | 308 +- doc/salome/gui/GEOM/repairing_operations.htm | 2116 ++-- doc/salome/gui/GEOM/revolution.htm | 284 +- doc/salome/gui/GEOM/rotation.htm | 350 +- doc/salome/gui/GEOM/scale_transform.htm | 304 +- doc/salome/gui/GEOM/section.htm | 312 +- doc/salome/gui/GEOM/sewing.htm | 300 +- doc/salome/gui/GEOM/shape_processing.htm | 776 +- doc/salome/gui/GEOM/shell.htm | 274 +- doc/salome/gui/GEOM/sketcher.htm | 442 +- doc/salome/gui/GEOM/sketcher_tui.htm | 364 +- doc/salome/gui/GEOM/solid.htm | 276 +- doc/salome/gui/GEOM/sphere.htm | 332 +- doc/salome/gui/GEOM/suppress_faces.htm | 286 +- doc/salome/gui/GEOM/suppress_holes.htm | 308 +- .../gui/GEOM/suppress_internal_wires.htm | 320 +- .../gui/GEOM/transformation_operations.htm | 2153 +++-- doc/salome/gui/GEOM/translation.htm | 384 +- doc/salome/gui/GEOM/transparency.htm | 252 +- doc/salome/gui/GEOM/turus.htm | 302 +- doc/salome/gui/GEOM/vector.htm | 314 +- .../gui/GEOM/viewing_geometrical_objects.htm | 310 +- doc/salome/gui/GEOM/webhelp.jar | Bin 134517 -> 134515 bytes doc/salome/gui/GEOM/whcsh_home.htm | 1200 +-- doc/salome/gui/GEOM/whcshdata.htm | 174 +- doc/salome/gui/GEOM/whd_dpns.htm | 84 +- doc/salome/gui/GEOM/whd_nvp10.htm | 30 +- doc/salome/gui/GEOM/whd_nvp20.htm | 668 +- doc/salome/gui/GEOM/whd_tabs.htm | 1064 +-- doc/salome/gui/GEOM/whd_topic.xml | 170 +- doc/salome/gui/GEOM/whdata/whftdata.js | 48 +- doc/salome/gui/GEOM/whdata/whftdata0.htm | 204 +- doc/salome/gui/GEOM/whdata/whfts.htm | 36 +- doc/salome/gui/GEOM/whdata/whfts.js | 80 +- doc/salome/gui/GEOM/whdata/whfwdata.js | 72 +- doc/salome/gui/GEOM/whdata/whfwdata0.htm | 2734 +++--- doc/salome/gui/GEOM/whdata/whgdata.js | 50 +- doc/salome/gui/GEOM/whdata/whgdata0.htm | 66 +- doc/salome/gui/GEOM/whdata/whglo.htm | 30 +- doc/salome/gui/GEOM/whdata/whglo.js | 68 +- doc/salome/gui/GEOM/whdata/whidata.js | 176 +- doc/salome/gui/GEOM/whdata/whidx.htm | 28 +- doc/salome/gui/GEOM/whdata/whidx.js | 68 +- doc/salome/gui/GEOM/whdata/whtdata.js | 126 +- doc/salome/gui/GEOM/whdata/whtdata0.htm | 230 +- doc/salome/gui/GEOM/whdata/whtoc.htm | 30 +- doc/salome/gui/GEOM/whdata/whtoc.js | 60 +- doc/salome/gui/GEOM/whfbody.htm | 74 +- doc/salome/gui/GEOM/whfdhtml.htm | 60 +- doc/salome/gui/GEOM/whfform.htm | 272 +- doc/salome/gui/GEOM/whfhost.js | 1888 ++-- doc/salome/gui/GEOM/whform.js | 430 +- doc/salome/gui/GEOM/whframes.js | 156 +- doc/salome/gui/GEOM/whgbody.htm | 70 +- doc/salome/gui/GEOM/whgdata/whlstf0.htm | 92 +- doc/salome/gui/GEOM/whgdata/whlstf1.htm | 86 +- doc/salome/gui/GEOM/whgdata/whlstf10.htm | 86 +- doc/salome/gui/GEOM/whgdata/whlstf11.htm | 86 +- doc/salome/gui/GEOM/whgdata/whlstf12.htm | 94 +- doc/salome/gui/GEOM/whgdata/whlstf13.htm | 92 +- doc/salome/gui/GEOM/whgdata/whlstf2.htm | 86 +- doc/salome/gui/GEOM/whgdata/whlstf3.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstf4.htm | 86 +- doc/salome/gui/GEOM/whgdata/whlstf5.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstf6.htm | 98 +- doc/salome/gui/GEOM/whgdata/whlstf7.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstf8.htm | 86 +- doc/salome/gui/GEOM/whgdata/whlstf9.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl0.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl1.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl10.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl11.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl12.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl13.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl14.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl15.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl16.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl17.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl18.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl19.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl2.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl20.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl21.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl22.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl23.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl24.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl25.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl26.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl3.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl4.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl5.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl6.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl7.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl8.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstfl9.htm | 90 +- doc/salome/gui/GEOM/whgdata/whlstg0.htm | 150 +- doc/salome/gui/GEOM/whgdata/whlsti0.htm | 78 +- doc/salome/gui/GEOM/whgdata/whlstt0.htm | 102 +- doc/salome/gui/GEOM/whgdata/whlstt1.htm | 116 +- doc/salome/gui/GEOM/whgdata/whlstt10.htm | 136 +- doc/salome/gui/GEOM/whgdata/whlstt11.htm | 146 +- doc/salome/gui/GEOM/whgdata/whlstt12.htm | 132 +- doc/salome/gui/GEOM/whgdata/whlstt13.htm | 146 +- doc/salome/gui/GEOM/whgdata/whlstt14.htm | 126 +- doc/salome/gui/GEOM/whgdata/whlstt15.htm | 138 +- doc/salome/gui/GEOM/whgdata/whlstt16.htm | 134 +- doc/salome/gui/GEOM/whgdata/whlstt2.htm | 130 +- doc/salome/gui/GEOM/whgdata/whlstt3.htm | 150 +- doc/salome/gui/GEOM/whgdata/whlstt4.htm | 140 +- doc/salome/gui/GEOM/whgdata/whlstt5.htm | 138 +- doc/salome/gui/GEOM/whgdata/whlstt6.htm | 144 +- doc/salome/gui/GEOM/whgdata/whlstt7.htm | 128 +- doc/salome/gui/GEOM/whgdata/whlstt8.htm | 126 +- doc/salome/gui/GEOM/whgdata/whlstt9.htm | 130 +- doc/salome/gui/GEOM/whgdata/whnvf30.htm | 26 +- doc/salome/gui/GEOM/whgdata/whnvf31.htm | 30 +- doc/salome/gui/GEOM/whgdata/whnvf32.htm | 30 +- doc/salome/gui/GEOM/whgdata/whnvf33.htm | 30 +- doc/salome/gui/GEOM/whgdata/whnvl31.htm | 86 +- doc/salome/gui/GEOM/whgdata/whnvl32.htm | 144 +- doc/salome/gui/GEOM/whgdata/whnvl33.htm | 144 +- doc/salome/gui/GEOM/whgdata/whnvp30.htm | 30 +- doc/salome/gui/GEOM/whgdata/whnvp31.htm | 30 +- doc/salome/gui/GEOM/whgdata/whnvp32.htm | 30 +- doc/salome/gui/GEOM/whgdata/whnvp33.htm | 30 +- doc/salome/gui/GEOM/whgdata/whnvt30.htm | 94 +- doc/salome/gui/GEOM/whgdata/whnvt31.htm | 90 +- doc/salome/gui/GEOM/whgdata/whnvt32.htm | 90 +- doc/salome/gui/GEOM/whgdata/whnvt33.htm | 90 +- doc/salome/gui/GEOM/whgdef.htm | 196 +- doc/salome/gui/GEOM/whgdhtml.htm | 300 +- doc/salome/gui/GEOM/whghost.js | 494 +- doc/salome/gui/GEOM/whhost.js | 2608 ++--- doc/salome/gui/GEOM/whibody.htm | 568 +- doc/salome/gui/GEOM/whidhtml.htm | 60 +- doc/salome/gui/GEOM/whiform.htm | 182 +- doc/salome/gui/GEOM/whihost.js | 848 +- doc/salome/gui/GEOM/whlang.js | 904 +- doc/salome/gui/GEOM/whmozemu.js | 132 +- doc/salome/gui/GEOM/whmsg.js | 136 +- doc/salome/gui/GEOM/whnjs.htm | 50 +- doc/salome/gui/GEOM/whphost.js | 1162 +-- doc/salome/gui/GEOM/whproj.htm | 46 +- doc/salome/gui/GEOM/whproj.js | 168 +- doc/salome/gui/GEOM/whproj.xml | 6 +- doc/salome/gui/GEOM/whproxy.js | 148 +- doc/salome/gui/GEOM/whres.xml | 512 +- doc/salome/gui/GEOM/whskin_blank.htm | 20 +- doc/salome/gui/GEOM/whskin_homepage.htm | 360 +- doc/salome/gui/GEOM/whskin_info.htm | 40 +- doc/salome/gui/GEOM/whskin_pickup.htm | 458 +- doc/salome/gui/GEOM/whskin_tw.htm | 124 +- doc/salome/gui/GEOM/whstart.js | 864 +- doc/salome/gui/GEOM/whstub.js | 316 +- doc/salome/gui/GEOM/whtdhtml.htm | 98 +- doc/salome/gui/GEOM/whthost.js | 3006 +++--- doc/salome/gui/GEOM/whtopic.js | 1450 +-- doc/salome/gui/GEOM/whutils.js | 1052 +- doc/salome/gui/GEOM/whver.js | 204 +- doc/salome/gui/GEOM/whxdata/whftdata0.xml | 176 +- doc/salome/gui/GEOM/whxdata/whfts.xml | 14 +- doc/salome/gui/GEOM/whxdata/whfwdata0.xml | 2706 +++--- doc/salome/gui/GEOM/whxdata/whgdata0.xml | 44 +- doc/salome/gui/GEOM/whxdata/whglo.xml | 8 +- doc/salome/gui/GEOM/whxdata/whidx.xml | 8 +- doc/salome/gui/GEOM/whxdata/whtdata0.xml | 242 +- doc/salome/gui/GEOM/whxdata/whtoc.xml | 8 +- doc/salome/gui/GEOM/wire.htm | 278 +- doc/salome/gui/GEOM/wireframe_and_shading.htm | 300 +- doc/salome/gui/GEOM/working_plane.htm | 280 +- doc/salome/gui/GEOM/working_with_groups.htm | 538 +- 245 files changed, 44052 insertions(+), 43251 deletions(-) diff --git a/Makefile.in b/Makefile.in index 532915591..03e147ef6 100644 --- a/Makefile.in +++ b/Makefile.in @@ -126,6 +126,7 @@ prism.png \ prism2.png \ revol.png \ rotate.png \ +rotatepnt.png \ scale.png \ section.png \ select1.png \ diff --git a/configure.in.base b/configure.in.base index b24a929ce..de09314db 100644 --- a/configure.in.base +++ b/configure.in.base @@ -23,8 +23,8 @@ AC_CANONICAL_HOST PACKAGE=salome AC_SUBST(PACKAGE) -VERSION=3.2.2 -XVERSION=0x030202 +VERSION=3.2.4 +XVERSION=0x030204 AC_SUBST(VERSION) AC_SUBST(XVERSION) diff --git a/doc/salome/gui/GEOM/add_point_on_edge.htm b/doc/salome/gui/GEOM/add_point_on_edge.htm index 454e1b3d1..6d969d30a 100755 --- a/doc/salome/gui/GEOM/add_point_on_edge.htm +++ b/doc/salome/gui/GEOM/add_point_on_edge.htm @@ -1,166 +1,166 @@ - - - - - -Add Point on Edge - - - - - - - - - - - - - -

Add Point on Edge

- -

To Add Point on Edge in the Main Menu select - Repair - > Add Point on Edge.

- -

 

- -

This operation splits an edge in two in accordance - with the specified mode (by length or by parameter) and a value specifying - the position of the point on edge (for example val =0.5; mode = Length). - This operation is available in OCC Viewer - only.

- -

 

- -

The Result will - be a GEOM_Object.

- -

 

- -

TUI Command : - geompy.DivideEdge(Shape, EdgeID, - Value, IsByParameter), where Shape is a shape which contains an - edge to be divided, EdgeID is the ID of the edge to be divided, if it - = -1, then Shape is an edge, Value is a paramter on the edge or a length. - IsByParameter if it is True then Value is the edge parameter in the range - [0:1] otherwise it is a length of the edge in the range [0:1]

- -

 

- -

Arguments: - Name + 1 Edge + 1 value setting the position of the point according to - one of the selected modes

- -

 

- -

- -

 

- -

Example:

- -

 

- -

     

- -

 

- -

Our - TUI Scripts provide you with useful - examples of the use of Repairing - Operations.

- -

 

- - - - + + + + + +Add Point on Edge + + + + + + + + + + + + + +

Add Point on Edge

+ +

To Add Point on Edge in the Main Menu select + Repair - > Add Point on Edge.

+ +

 

+ +

This operation splits an edge in two in accordance + with the specified mode (by length or by parameter) and a value specifying + the position of the point on edge (for example val =0.5; mode = Length). + This operation is available in OCC Viewer + only.

+ +

 

+ +

The Result will + be a GEOM_Object.

+ +

 

+ +

TUI Command : + geompy.DivideEdge(Shape, EdgeID, + Value, IsByParameter), where Shape is a shape which contains an + edge to be divided, EdgeID is the ID of the edge to be divided, if it + = -1, then Shape is an edge, Value is a paramter on the edge or a length. + IsByParameter if it is True then Value is the edge parameter in the range + [0:1] otherwise it is a length of the edge in the range [0:1]

+ +

 

+ +

Arguments: + Name + 1 Edge + 1 value setting the position of the point according to + one of the selected modes

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

     

+ +

 

+ +

Our + TUI Scripts provide you with useful + examples of the use of Repairing + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/arc.htm b/doc/salome/gui/GEOM/arc.htm index ab5373695..3b8691125 100755 --- a/doc/salome/gui/GEOM/arc.htm +++ b/doc/salome/gui/GEOM/arc.htm @@ -1,140 +1,140 @@ - - - - - -Arc - - - - - - - - - - - - -

Arc

- -

To create an Arc in the Main - Menu select New Entity - > - Basic - > Arc

- -

 

- -

You - can define an Arc by - three - Points that lie on it, where - Point1 is the starting point, Point2 is a middle point of the - arc and Point3 is the ending point of the arc.

- -

The - Result of the operation will be a - GEOM_Object (edge).

- -

 

- -

TUI Command: - geompy.MakeArc(Point1, Point2, Point3)

- -

Arguments: - Name + 3 vertices.

- -

 

- -

- -

 

- -

Example:

- -

 

- -

- -

 

- -

Our TUI Scripts provide you with useful examples - of creation of Basic Geometric - Objects.

- -

 

- - - - + + + + + +Arc + + + + + + + + + + + + +

Arc

+ +

To create an Arc in the Main + Menu select New Entity - > + Basic - > Arc

+ +

 

+ +

You + can define an Arc by + three + Points that lie on it, where + Point1 is the starting point, Point2 is a middle point of the + arc and Point3 is the ending point of the arc.

+ +

The + Result of the operation will be a + GEOM_Object (edge).

+ +

 

+ +

TUI Command: + geompy.MakeArc(Point1, Point2, Point3)

+ +

Arguments: + Name + 3 vertices.

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of creation of Basic Geometric + Objects.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/archimede.htm b/doc/salome/gui/GEOM/archimede.htm index ac3616f4d..238672ecb 100755 --- a/doc/salome/gui/GEOM/archimede.htm +++ b/doc/salome/gui/GEOM/archimede.htm @@ -1,140 +1,140 @@ - - - - - -Archimede - - - - - - - - - - - - -

Archimede

- -

To produce - an Archimede operation in the - Main Menu select Operations - > Archimede

- -

 

- -

This - operation creates a plane corresponding to the modeled water-line of the - object plunged into the water (in Z direction).

- -

 

- -

The - Result will be any GEOM_Object.

- -

TUI Command: - geompy.Archimede(Shape,Weight,WaterDensity,MeshingDeflection), - where Shape is a shape to put into the water, Weight is a weight of the - shape, WaterDensity  is - density of water, MeshingDeflection is a deflection of the mesh, using - to compute the section.

- -

Arguments: - Name + 1 shape  + - 3 values (Weight, Water Density & Meshing Deflection).

- -

 

- -

- -

 

- -

Example:

- -

 

- -

   

- -

 

- -

Our TUI Scripts provide you with useful examples - of the use of Basic Operations. -

- -

 

- - - - + + + + + +Archimede + + + + + + + + + + + + +

Archimede

+ +

To produce + an Archimede operation in the + Main Menu select Operations - > Archimede

+ +

 

+ +

This + operation creates a plane corresponding to the modeled water-line of the + object plunged into the water (in Z direction).

+ +

 

+ +

The + Result will be any GEOM_Object.

+ +

TUI Command: + geompy.Archimede(Shape,Weight,WaterDensity,MeshingDeflection), + where Shape is a shape to put into the water, Weight is a weight of the + shape, WaterDensity  is + density of water, MeshingDeflection is a deflection of the mesh, using + to compute the section.

+ +

Arguments: + Name + 1 shape  + + 3 values (Weight, Water Density & Meshing Deflection).

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

   

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of the use of Basic Operations. +

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/basic_geometrical_objects.htm b/doc/salome/gui/GEOM/basic_geometrical_objects.htm index b25b5cb41..3b5e35b60 100755 --- a/doc/salome/gui/GEOM/basic_geometrical_objects.htm +++ b/doc/salome/gui/GEOM/basic_geometrical_objects.htm @@ -1,661 +1,661 @@ - - - - - -Basic Geometrical Objects - - - - - - - - - - - - -

Basic Geometrical Objects

- -

Creation of a Point

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p0 = geompy.MakeVertex(0., - 0., 0.)

- -

p100 = geompy.MakeVertexWithRef(p0, - 100., 100., 100.)

- -

px = geompy.MakeVertex(100., - 0., 0.)

- -

py = geompy.MakeVertex(0., - 100., 0.)

- -

pz = geompy.MakeVertex(0., - 0., 100.)

- -

 

- -

# create a curve and a vertex on it

- -

Arc = geompy.MakeArc(py, - pz, px)

- -

p_on_arc = geompy.MakeVertexOnCurve(Arc, - 0.25)

- -

 

- -

# add objects in the study

- -

id_p0       = - geompy.addToStudy(p0,   "Vertex - 0")

- -

id_p100     = - geompy.addToStudy(p100, "Vertex 100")

- -

id_px       = - geompy.addToStudy(px,   "Vertex - X")

- -

id_py       = - geompy.addToStudy(py,   "Vertex - Y")

- -

id_pz       = - geompy.addToStudy(pz,   "Vertex - Z")

- -

id_Arc      = - geompy.addToStudy(Arc,  "Arc")

- -

id_p_on_arc = geompy.addToStudy(p_on_arc, - "Vertex on Arc")

- -

 

- -

# display vertices

- -

gg.createAndDisplayGO(id_p0)

- -

gg.createAndDisplayGO(id_p100)

- -

gg.createAndDisplayGO(id_Arc)

- -

gg.createAndDisplayGO(id_p_on_arc) -

- -

 

- -

Creation of a Line

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p0 = geompy.MakeVertex(0., - 0., 0.)

- -

p100 = geompy.MakeVertexWithRef(p0, - 100., 100., 100.)

- -

px = geompy.MakeVertex(100., - 0.  , 0. -  )

- -

py = geompy.MakeVertex(0. -  , 100., - 0.  )

- -

pz = geompy.MakeVertex(0. -  , 0.  , - 100.)

- -

 

- -

# create a vector from two points

- -

vxy  = - geompy.MakeVector(px, py)

- -

 

- -

# create a line from a point and a vector

- -

line1 = geompy.MakeLine(pz, - vxy)

- -

 

- -

#create a line from two points

- -

line2 = geompy.MakeLineTwoPnt(p0, - p100)

- -

 

- -

# add objects in the study

- -

id_vxy      = - geompy.addToStudy(vxy,  "Vector")

- -

id_line1    = - geompy.addToStudy(line1,"Line1")

- -

id_line2    = - geompy.addToStudy(line2,"Line2")

- -

 

- -

# display lines

- -

gg.createAndDisplayGO(id_vxy)

- -

gg.createAndDisplayGO(id_line1)

- -

gg.createAndDisplayGO(id_line2) -

- -

 

- -

Creation of  a - Circle

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p0 = geompy.MakeVertex(0., - 0., 0.)

- -

px = geompy.MakeVertex(100., - 0.  , 0. -  )

- -

py = geompy.MakeVertex(0. -  , 100., - 0.  )

- -

pz = geompy.MakeVertex(0. -  , 0.  , - 100.)

- -

 

- -

# create a vector on two points

- -

vxy  = - geompy.MakeVector(px, py)

- -

 

- -

# create a circle from a point, a vector and a radius

- -

circle1 = geompy.MakeCircle(pz, - vxy, 30)

- -

 

- -

#create a circle from three points

- -

circle2 = geompy.MakeCircleThreePnt(p0, - px, py)

- -

 

- -

# add objects in the study

- -

id_vxy      = - geompy.addToStudy(vxy,    "Vector")

- -

id_circle1  = - geompy.addToStudy(circle1,"Circle1")

- -

id_circle2  = - geompy.addToStudy(circle2,"Circle2")

- -

 

- -

# display circles

- -

gg.createAndDisplayGO(id_vxy)

- -

gg.createAndDisplayGO(id_circle1)

- -

gg.createAndDisplayGO(id_circle2) -

- -

 

- -

Creation of an Ellipse

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p0 = geompy.MakeVertex(0., - 0., 0.)

- -

p50 = geompy.MakeVertex(50., - 50., 50.)

- -

 

- -

# create a vector from two points

- -

vector  = - geompy.MakeVector(p0, p50)

- -

 

- -

# create an ellipse from a point, a vector and radiuses

- -

ellipse = geompy.MakeEllipse(p50, - vector, 50, 25)

- -

 

- -

# add objects in the study

- -

id_vector  = - geompy.addToStudy(vector, "Vector")

- -

id_ellipse = geompy.addToStudy(ellipse,"Ellipse")

- -

 

- -

# display the ellipse and its normal vector

- -

gg.createAndDisplayGO(id_vector)

- -

gg.createAndDisplayGO(id_ellipse) -

- -

 

- -

Creation of a Curve

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p0 = geompy.MakeVertex(0. -  , 0.  , - 0.  )

- -

p1 = geompy.MakeVertex(50. - , 100., 200.)

- -

p2 = geompy.MakeVertex(150., -  50., 100.)

- -

p3 = geompy.MakeVertex(100., - 150., 170.)

- -

p4 = geompy.MakeVertex(200., - 200., 150.)

- -

 

- -

# create a polyline from a list of points

- -

polyline = geompy.MakePolyline([p0, - p1, p2, p3, p4])

- -

 

- -

# create a bezier curve from a list of points

- -

bezier = geompy.MakeBezier([p0, - p1, p2, p3, p4])

- -

 

- -

#create a b-spline curve from a list of points

- -

interpol = geompy.MakeInterpol([p0, - p1, p2, p3, p4])

- -

 

- -

# add objects in the study

- -

id_p0       = - geompy.addToStudy(p0,       "Point1")

- -

id_p1       = - geompy.addToStudy(p1,       "Point2")

- -

id_p2       = - geompy.addToStudy(p2,       "Point3")

- -

id_p3       = - geompy.addToStudy(p3,       "Point4")

- -

id_p4       = - geompy.addToStudy(p4,       "Point5")

- -

id_polyline = geompy.addToStudy(polyline, - "Polyline")

- -

id_bezier   = - geompy.addToStudy(bezier,   "Bezier")

- -

id_interpol = geompy.addToStudy(interpol, - "Interpol")

- -

 

- -

# display the points and the curves

- -

gg.createAndDisplayGO(id_p0)

- -

gg.createAndDisplayGO(id_p1)

- -

gg.createAndDisplayGO(id_p2)

- -

gg.createAndDisplayGO(id_p3)

- -

gg.createAndDisplayGO(id_p4)

- -

gg.createAndDisplayGO(id_polyline)

- -

gg.createAndDisplayGO(id_bezier)

- -

gg.createAndDisplayGO(id_interpol) -

- -

 

- -

Creation of a Vector

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p1 = geompy.MakeVertex(10., - 50., 20.)

- -

p2 = geompy.MakeVertex(70., - 70., 70.)

- -

 

- -

# create a vector from two points

- -

vector1 = geompy.MakeVector(p1, - p2)

- -

 

- -

# create a vector from the given components

- -

vector2 = geompy.MakeVectorDXDYDZ(30, - 30, 100)

- -

 

- -

# add objects in the study

- -

id_p1      = - geompy.addToStudy(p1,     "Point1")

- -

id_p2      = - geompy.addToStudy(p2,     "Point2")

- -

id_vector1 = geompy.addToStudy(vector1,"Vector1")

- -

id_vector2 = geompy.addToStudy(vector2,"Vector2")

- -

 

- -

# display the points and the vectors

- -

gg.createAndDisplayGO(id_p1)

- -

gg.createAndDisplayGO(id_p2)

- -

gg.createAndDisplayGO(id_vector1)

- -

gg.createAndDisplayGO(id_vector2) -

- -

 

- -

Creation of a Plane

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p1 = geompy.MakeVertex( -  0.,   0., - 100.)

- -

p2 = geompy.MakeVertex(100., -   0., -   0.)

- -

p3 = geompy.MakeVertex(200., - 200., 200.)

- -

p4 = geompy.MakeVertex(100., - 100.,   0.)

- -

p5 = geompy.MakeVertex(0. -  , 100., -   0.)

- -

 

- -

# create a vector from the given components

- -

vector = geompy.MakeVectorDXDYDZ(100., - 100., 100.)

- -

 

- -

# create a vector from two points

- -

vector_arc = geompy.MakeVector(p2, - p5)

- -

 

- -

# create an arc from three points

- -

arc = geompy.MakeArc(p2, - p4, p5)

- -

 

- -

# create a wire

- -

wire = geompy.MakeWire([vector_arc, - arc])

- -

 

- -

# create a face

- -

isPlanarWanted = 1

- -

face = geompy.MakeFace(wire, - isPlanarWanted)

- -

trimsize = 1000.

- -

 

- -

# create a plane from a point, a vector and a trimsize

- -

plane1 = geompy.MakePlane(p1, - vector, trimsize)

- -

 

- -

# create a plane from three points and a trimsize

- -

plane2 = geompy.MakePlaneThreePnt(p1, - p2, p3, trimsize)

- -

 

- -

# create a plane from the given face

- -

plane3 = geompy.MakePlaneFace(face, - trimsize)

- -

 

- -

# add objects in the study

- -

id_face   = - geompy.addToStudy(face,  "Face")

- -

id_plane1 = geompy.addToStudy(plane1,"Plane1")

- -

id_plane2 = geompy.addToStudy(plane2,"Plane2")

- -

id_plane3 = geompy.addToStudy(plane3,"Plane3")

- -

 

- -

# display the points and the vectors

- -

gg.createAndDisplayGO(id_face)

- -

gg.createAndDisplayGO(id_plane1)

- -

gg.createAndDisplayGO(id_plane2)

- -

gg.createAndDisplayGO(id_plane3)

- -

gg.setDisplayMode(id_plane1,1)

- -

gg.setTransparency(id_plane1,0.5)

- -

gg.setDisplayMode(id_plane2,1)

- -

gg.setTransparency(id_plane2,0.5)

- -

gg.setDisplayMode(id_plane3,1)

- -

gg.setTransparency(id_plane3,0.5) -

- - - - + + + + + +Basic Geometrical Objects + + + + + + + + + + + + +

Basic Geometrical Objects

+ +

Creation of a Point

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p0 = geompy.MakeVertex(0., + 0., 0.)

+ +

p100 = geompy.MakeVertexWithRef(p0, + 100., 100., 100.)

+ +

px = geompy.MakeVertex(100., + 0., 0.)

+ +

py = geompy.MakeVertex(0., + 100., 0.)

+ +

pz = geompy.MakeVertex(0., + 0., 100.)

+ +

 

+ +

# create a curve and a vertex on it

+ +

Arc = geompy.MakeArc(py, + pz, px)

+ +

p_on_arc = geompy.MakeVertexOnCurve(Arc, + 0.25)

+ +

 

+ +

# add objects in the study

+ +

id_p0       = + geompy.addToStudy(p0,   "Vertex + 0")

+ +

id_p100     = + geompy.addToStudy(p100, "Vertex 100")

+ +

id_px       = + geompy.addToStudy(px,   "Vertex + X")

+ +

id_py       = + geompy.addToStudy(py,   "Vertex + Y")

+ +

id_pz       = + geompy.addToStudy(pz,   "Vertex + Z")

+ +

id_Arc      = + geompy.addToStudy(Arc,  "Arc")

+ +

id_p_on_arc = geompy.addToStudy(p_on_arc, + "Vertex on Arc")

+ +

 

+ +

# display vertices

+ +

gg.createAndDisplayGO(id_p0)

+ +

gg.createAndDisplayGO(id_p100)

+ +

gg.createAndDisplayGO(id_Arc)

+ +

gg.createAndDisplayGO(id_p_on_arc) +

+ +

 

+ +

Creation of a Line

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p0 = geompy.MakeVertex(0., + 0., 0.)

+ +

p100 = geompy.MakeVertexWithRef(p0, + 100., 100., 100.)

+ +

px = geompy.MakeVertex(100., + 0.  , 0. +  )

+ +

py = geompy.MakeVertex(0. +  , 100., + 0.  )

+ +

pz = geompy.MakeVertex(0. +  , 0.  , + 100.)

+ +

 

+ +

# create a vector from two points

+ +

vxy  = + geompy.MakeVector(px, py)

+ +

 

+ +

# create a line from a point and a vector

+ +

line1 = geompy.MakeLine(pz, + vxy)

+ +

 

+ +

#create a line from two points

+ +

line2 = geompy.MakeLineTwoPnt(p0, + p100)

+ +

 

+ +

# add objects in the study

+ +

id_vxy      = + geompy.addToStudy(vxy,  "Vector")

+ +

id_line1    = + geompy.addToStudy(line1,"Line1")

+ +

id_line2    = + geompy.addToStudy(line2,"Line2")

+ +

 

+ +

# display lines

+ +

gg.createAndDisplayGO(id_vxy)

+ +

gg.createAndDisplayGO(id_line1)

+ +

gg.createAndDisplayGO(id_line2) +

+ +

 

+ +

Creation of  a + Circle

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p0 = geompy.MakeVertex(0., + 0., 0.)

+ +

px = geompy.MakeVertex(100., + 0.  , 0. +  )

+ +

py = geompy.MakeVertex(0. +  , 100., + 0.  )

+ +

pz = geompy.MakeVertex(0. +  , 0.  , + 100.)

+ +

 

+ +

# create a vector on two points

+ +

vxy  = + geompy.MakeVector(px, py)

+ +

 

+ +

# create a circle from a point, a vector and a radius

+ +

circle1 = geompy.MakeCircle(pz, + vxy, 30)

+ +

 

+ +

#create a circle from three points

+ +

circle2 = geompy.MakeCircleThreePnt(p0, + px, py)

+ +

 

+ +

# add objects in the study

+ +

id_vxy      = + geompy.addToStudy(vxy,    "Vector")

+ +

id_circle1  = + geompy.addToStudy(circle1,"Circle1")

+ +

id_circle2  = + geompy.addToStudy(circle2,"Circle2")

+ +

 

+ +

# display circles

+ +

gg.createAndDisplayGO(id_vxy)

+ +

gg.createAndDisplayGO(id_circle1)

+ +

gg.createAndDisplayGO(id_circle2) +

+ +

 

+ +

Creation of an Ellipse

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p0 = geompy.MakeVertex(0., + 0., 0.)

+ +

p50 = geompy.MakeVertex(50., + 50., 50.)

+ +

 

+ +

# create a vector from two points

+ +

vector  = + geompy.MakeVector(p0, p50)

+ +

 

+ +

# create an ellipse from a point, a vector and radiuses

+ +

ellipse = geompy.MakeEllipse(p50, + vector, 50, 25)

+ +

 

+ +

# add objects in the study

+ +

id_vector  = + geompy.addToStudy(vector, "Vector")

+ +

id_ellipse = geompy.addToStudy(ellipse,"Ellipse")

+ +

 

+ +

# display the ellipse and its normal vector

+ +

gg.createAndDisplayGO(id_vector)

+ +

gg.createAndDisplayGO(id_ellipse) +

+ +

 

+ +

Creation of a Curve

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p0 = geompy.MakeVertex(0. +  , 0.  , + 0.  )

+ +

p1 = geompy.MakeVertex(50. + , 100., 200.)

+ +

p2 = geompy.MakeVertex(150., +  50., 100.)

+ +

p3 = geompy.MakeVertex(100., + 150., 170.)

+ +

p4 = geompy.MakeVertex(200., + 200., 150.)

+ +

 

+ +

# create a polyline from a list of points

+ +

polyline = geompy.MakePolyline([p0, + p1, p2, p3, p4])

+ +

 

+ +

# create a bezier curve from a list of points

+ +

bezier = geompy.MakeBezier([p0, + p1, p2, p3, p4])

+ +

 

+ +

#create a b-spline curve from a list of points

+ +

interpol = geompy.MakeInterpol([p0, + p1, p2, p3, p4])

+ +

 

+ +

# add objects in the study

+ +

id_p0       = + geompy.addToStudy(p0,       "Point1")

+ +

id_p1       = + geompy.addToStudy(p1,       "Point2")

+ +

id_p2       = + geompy.addToStudy(p2,       "Point3")

+ +

id_p3       = + geompy.addToStudy(p3,       "Point4")

+ +

id_p4       = + geompy.addToStudy(p4,       "Point5")

+ +

id_polyline = geompy.addToStudy(polyline, + "Polyline")

+ +

id_bezier   = + geompy.addToStudy(bezier,   "Bezier")

+ +

id_interpol = geompy.addToStudy(interpol, + "Interpol")

+ +

 

+ +

# display the points and the curves

+ +

gg.createAndDisplayGO(id_p0)

+ +

gg.createAndDisplayGO(id_p1)

+ +

gg.createAndDisplayGO(id_p2)

+ +

gg.createAndDisplayGO(id_p3)

+ +

gg.createAndDisplayGO(id_p4)

+ +

gg.createAndDisplayGO(id_polyline)

+ +

gg.createAndDisplayGO(id_bezier)

+ +

gg.createAndDisplayGO(id_interpol) +

+ +

 

+ +

Creation of a Vector

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p1 = geompy.MakeVertex(10., + 50., 20.)

+ +

p2 = geompy.MakeVertex(70., + 70., 70.)

+ +

 

+ +

# create a vector from two points

+ +

vector1 = geompy.MakeVector(p1, + p2)

+ +

 

+ +

# create a vector from the given components

+ +

vector2 = geompy.MakeVectorDXDYDZ(30, + 30, 100)

+ +

 

+ +

# add objects in the study

+ +

id_p1      = + geompy.addToStudy(p1,     "Point1")

+ +

id_p2      = + geompy.addToStudy(p2,     "Point2")

+ +

id_vector1 = geompy.addToStudy(vector1,"Vector1")

+ +

id_vector2 = geompy.addToStudy(vector2,"Vector2")

+ +

 

+ +

# display the points and the vectors

+ +

gg.createAndDisplayGO(id_p1)

+ +

gg.createAndDisplayGO(id_p2)

+ +

gg.createAndDisplayGO(id_vector1)

+ +

gg.createAndDisplayGO(id_vector2) +

+ +

 

+ +

Creation of a Plane

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p1 = geompy.MakeVertex( +  0.,   0., + 100.)

+ +

p2 = geompy.MakeVertex(100., +   0., +   0.)

+ +

p3 = geompy.MakeVertex(200., + 200., 200.)

+ +

p4 = geompy.MakeVertex(100., + 100.,   0.)

+ +

p5 = geompy.MakeVertex(0. +  , 100., +   0.)

+ +

 

+ +

# create a vector from the given components

+ +

vector = geompy.MakeVectorDXDYDZ(100., + 100., 100.)

+ +

 

+ +

# create a vector from two points

+ +

vector_arc = geompy.MakeVector(p2, + p5)

+ +

 

+ +

# create an arc from three points

+ +

arc = geompy.MakeArc(p2, + p4, p5)

+ +

 

+ +

# create a wire

+ +

wire = geompy.MakeWire([vector_arc, + arc])

+ +

 

+ +

# create a face

+ +

isPlanarWanted = 1

+ +

face = geompy.MakeFace(wire, + isPlanarWanted)

+ +

trimsize = 1000.

+ +

 

+ +

# create a plane from a point, a vector and a trimsize

+ +

plane1 = geompy.MakePlane(p1, + vector, trimsize)

+ +

 

+ +

# create a plane from three points and a trimsize

+ +

plane2 = geompy.MakePlaneThreePnt(p1, + p2, p3, trimsize)

+ +

 

+ +

# create a plane from the given face

+ +

plane3 = geompy.MakePlaneFace(face, + trimsize)

+ +

 

+ +

# add objects in the study

+ +

id_face   = + geompy.addToStudy(face,  "Face")

+ +

id_plane1 = geompy.addToStudy(plane1,"Plane1")

+ +

id_plane2 = geompy.addToStudy(plane2,"Plane2")

+ +

id_plane3 = geompy.addToStudy(plane3,"Plane3")

+ +

 

+ +

# display the points and the vectors

+ +

gg.createAndDisplayGO(id_face)

+ +

gg.createAndDisplayGO(id_plane1)

+ +

gg.createAndDisplayGO(id_plane2)

+ +

gg.createAndDisplayGO(id_plane3)

+ +

gg.setDisplayMode(id_plane1,1)

+ +

gg.setTransparency(id_plane1,0.5)

+ +

gg.setDisplayMode(id_plane2,1)

+ +

gg.setTransparency(id_plane2,0.5)

+ +

gg.setDisplayMode(id_plane3,1)

+ +

gg.setTransparency(id_plane3,0.5) +

+ + + + diff --git a/doc/salome/gui/GEOM/basic_operations.htm b/doc/salome/gui/GEOM/basic_operations.htm index ba7a0c611..49bd3918d 100755 --- a/doc/salome/gui/GEOM/basic_operations.htm +++ b/doc/salome/gui/GEOM/basic_operations.htm @@ -1,248 +1,248 @@ - - - - - -Basic Operations - - - - - - - - - - - - -

Basic Operations

- -

Partition

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create a vertex and a vector

- -

p0   = - geompy.MakeVertex(  0., -   0., -   0.)

- -

p200 = geompy.MakeVertex(200., - 200., 200.)

- -

pz   = - geompy.MakeVertex(  0., -   0., - 100.)

- -

 

- -

# create a vector

- -

vxyz = geompy.MakeVectorDXDYDZ(100., - 100., 100.)

- -

 

- -

# create a box from two points

- -

box = geompy.MakeBoxTwoPnt(p0, - p200)

- -

 

- -

# create a plane

- -

trimsize  = - 500.

- -

plane = geompy.MakePlane(pz, - vxyz, trimsize)

- -

 

- -

# create partition objects

- -

partition1 = geompy.MakePartition([box], - [plane])

- -

partition2 = geompy.Partition([box], - [plane])

- -

partition3 = geompy.MakeHalfPartition(box, - plane)

- -

 

- -

# add objects in the study

- -

id_box = geompy.addToStudy(box,"Box")

- -

id_plane = geompy.addToStudy(plane,"Plane")

- -

id_partition1 = geompy.addToStudy(partition1,"MakePartition")

- -

id_partition2 = geompy.addToStudy(partition2,"Partition")

- -

id_partition3 = geompy.addToStudy(partition3,"MakeHalfPartition")

- -

 

- -

# display the partition objects and the plane

- -

gg.createAndDisplayGO(id_box)

- -

gg.setDisplayMode(id_box,1)

- -

gg.createAndDisplayGO(id_plane)

- -

gg.setDisplayMode(id_plane,1)

- -

gg.createAndDisplayGO(id_partition1)

- -

gg.createAndDisplayGO(id_partition2)

- -

gg.createAndDisplayGO(id_partition3) -

- -

Archimede

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create a vertex and a vector

- -

p0   = - geompy.MakeVertex(  0., -   0., -   0.)

- -

p200 = geompy.MakeVertex(200., - 200., 200.)

- -

 

- -

# create a box from two points

- -

box = geompy.MakeBoxTwoPnt(p0, - p200)

- -

 

- -

# perform an Archimede operation on the selected shape with selected - parameters

- -

weight  = - 1000000.

- -

waterdensity = 1.

- -

meshingdeflection - = 0.01

- -

archimede  = - geompy.Archimede(box, weight, waterdensity, meshingdeflection)

- -

 

- -

# add objects in the study

- -

id_box = geompy.addToStudy(box,"Box")

- -

id_archimede = geompy.addToStudy(archimede,"Archimede")

- -

 

- -

# display the box and the result of Archimede operation

- -

gg.createAndDisplayGO(id_box)

- -

gg.setDisplayMode(id_box,1)

- -

gg.createAndDisplayGO(id_archimede)

- -

gg.setDisplayMode(id_archimede,1) -

- -

 

- - - - + + + + + +Basic Operations + + + + + + + + + + + + +

Basic Operations

+ +

Partition

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create a vertex and a vector

+ +

p0   = + geompy.MakeVertex(  0., +   0., +   0.)

+ +

p200 = geompy.MakeVertex(200., + 200., 200.)

+ +

pz   = + geompy.MakeVertex(  0., +   0., + 100.)

+ +

 

+ +

# create a vector

+ +

vxyz = geompy.MakeVectorDXDYDZ(100., + 100., 100.)

+ +

 

+ +

# create a box from two points

+ +

box = geompy.MakeBoxTwoPnt(p0, + p200)

+ +

 

+ +

# create a plane

+ +

trimsize  = + 500.

+ +

plane = geompy.MakePlane(pz, + vxyz, trimsize)

+ +

 

+ +

# create partition objects

+ +

partition1 = geompy.MakePartition([box], + [plane])

+ +

partition2 = geompy.Partition([box], + [plane])

+ +

partition3 = geompy.MakeHalfPartition(box, + plane)

+ +

 

+ +

# add objects in the study

+ +

id_box = geompy.addToStudy(box,"Box")

+ +

id_plane = geompy.addToStudy(plane,"Plane")

+ +

id_partition1 = geompy.addToStudy(partition1,"MakePartition")

+ +

id_partition2 = geompy.addToStudy(partition2,"Partition")

+ +

id_partition3 = geompy.addToStudy(partition3,"MakeHalfPartition")

+ +

 

+ +

# display the partition objects and the plane

+ +

gg.createAndDisplayGO(id_box)

+ +

gg.setDisplayMode(id_box,1)

+ +

gg.createAndDisplayGO(id_plane)

+ +

gg.setDisplayMode(id_plane,1)

+ +

gg.createAndDisplayGO(id_partition1)

+ +

gg.createAndDisplayGO(id_partition2)

+ +

gg.createAndDisplayGO(id_partition3) +

+ +

Archimede

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create a vertex and a vector

+ +

p0   = + geompy.MakeVertex(  0., +   0., +   0.)

+ +

p200 = geompy.MakeVertex(200., + 200., 200.)

+ +

 

+ +

# create a box from two points

+ +

box = geompy.MakeBoxTwoPnt(p0, + p200)

+ +

 

+ +

# perform an Archimede operation on the selected shape with selected + parameters

+ +

weight  = + 1000000.

+ +

waterdensity = 1.

+ +

meshingdeflection + = 0.01

+ +

archimede  = + geompy.Archimede(box, weight, waterdensity, meshingdeflection)

+ +

 

+ +

# add objects in the study

+ +

id_box = geompy.addToStudy(box,"Box")

+ +

id_archimede = geompy.addToStudy(archimede,"Archimede")

+ +

 

+ +

# display the box and the result of Archimede operation

+ +

gg.createAndDisplayGO(id_box)

+ +

gg.setDisplayMode(id_box,1)

+ +

gg.createAndDisplayGO(id_archimede)

+ +

gg.setDisplayMode(id_archimede,1) +

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/blocks_operations.htm b/doc/salome/gui/GEOM/blocks_operations.htm index 7498a7ae4..f3068888d 100755 --- a/doc/salome/gui/GEOM/blocks_operations.htm +++ b/doc/salome/gui/GEOM/blocks_operations.htm @@ -1,288 +1,288 @@ - - - - - -Blocks Operations - - - - - - - - - - - - -

Blocks Operations

- -

Multi Transformation

- -

import - geompy

- -

import salome

- -

 

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p_25_25_50 = geompy.MakeVertex(25., - 25., 50.)

- -

p_50_25_25 = geompy.MakeVertex(50., - 25., 25.)

- -

p_25_50_25 = geompy.MakeVertex(25., - 50., 25.)

- -

 

- -

box = geompy.MakeBoxDXDYDZ(50, - 50, 50)

- -

 

- -

top_face = geompy.GetFaceNearPoint(box, - p_25_25_50)

- -

yz_face = geompy.GetFaceNearPoint(box, - p_50_25_25)

- -

xz_face = geompy.GetFaceNearPoint(box, - p_25_50_25)

- -

 

- -

top_face_ind = geompy.GetSubShapeID(box, - top_face)

- -

yz_face_ind = geompy.GetSubShapeID(box, - yz_face)

- -

xz_face_ind = geompy.GetSubShapeID(box, - xz_face)

- -

 

- -

# Multi-transformate - block and glue the result

- -

box_tr1 = geompy.MakeMultiTransformation1D(box, - yz_face_ind, top_face_ind, 3)

- -

box_tr2 = geompy.MakeMultiTransformation2D(box, - xz_face_ind, yz_face_ind, 3, top_face_ind, 0, 2)

- -

 

- -

# add objects in the - study

- -

id_box = geompy.addToStudy(box, - "Box")

- -

id_box_tr1 = geompy.addToStudy(box_tr1, - "Multi-transformed Block 1D")

- -

id_box_tr2 = geompy.addToStudy(box_tr2, - "Multi-transformed Block 2D")

- -

 

- -

# display the results

- -

gg.createAndDisplayGO(id_box)

- -

gg.setDisplayMode(id_box,1)

- -

gg.createAndDisplayGO(id_box_tr1)

- -

gg.createAndDisplayGO(id_box_tr2) -

- -

 

- -

Explode on Blocks

- -

import geompy

- -

import salome

- -

 

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create a box and a - sphere

- -

box = geompy.MakeBoxDXDYDZ(200, - 200, 200)

- -

sphere = geompy.MakeSphereR(100)

- -

 

- -

# make a compound

- -

compound = geompy.MakeCompound([box, - sphere])

- -

 

- -

# get all the blocks - of the given compound, by criteria: min_nb_faces <= nb. of faces <= - max_nb_faces

- -

min_nb_faces = 6

- -

max_nb_faces = 6

- -

make_block_explode - = geompy.MakeBlockExplode(compound, min_nb_faces, max_nb_faces)

- -

 

- -

# add objects in the - study

- -

id_compound = geompy.addToStudy(compound, - "Compound")

- -

id_make_block_explode - = geompy.addToStudyInFather(compound, make_block_explode[0], "MakeBlockExplode")

- -

 

- -

# display the results

- -

gg.createAndDisplayGO(id_compound)

- -

gg.createAndDisplayGO(id_make_block_explode)

- -

gg.setDisplayMode(id_make_block_explode,1) -

- -

 

- -

Propagate

- -

import geompy

- -

import salome

- -

 

- -

# create a box

- -

box = geompy.MakeBoxDXDYDZ(200, - 200, 200)

- -

 

- -

# build all possible - propagation groups

- -

listChains = geompy.Propagate(check_box)

- -

 

- -

# add objects in the - study

- -

geompy.addToStudy(check_box, - "Box")

- -

ii = 1

- -

for chain in listChains:

- -

    geompy.addToStudyInFather(check_box, - chain, "propagation chain " + `ii`)

- -

    ii - = ii + 1

- -

    pass

- -

 

- -

salome.sg.updateObjBrowser(1) -

- - - - + + + + + +Blocks Operations + + + + + + + + + + + + +

Blocks Operations

+ +

Multi Transformation

+ +

import + geompy

+ +

import salome

+ +

 

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p_25_25_50 = geompy.MakeVertex(25., + 25., 50.)

+ +

p_50_25_25 = geompy.MakeVertex(50., + 25., 25.)

+ +

p_25_50_25 = geompy.MakeVertex(25., + 50., 25.)

+ +

 

+ +

box = geompy.MakeBoxDXDYDZ(50, + 50, 50)

+ +

 

+ +

top_face = geompy.GetFaceNearPoint(box, + p_25_25_50)

+ +

yz_face = geompy.GetFaceNearPoint(box, + p_50_25_25)

+ +

xz_face = geompy.GetFaceNearPoint(box, + p_25_50_25)

+ +

 

+ +

top_face_ind = geompy.GetSubShapeID(box, + top_face)

+ +

yz_face_ind = geompy.GetSubShapeID(box, + yz_face)

+ +

xz_face_ind = geompy.GetSubShapeID(box, + xz_face)

+ +

 

+ +

# Multi-transformate + block and glue the result

+ +

box_tr1 = geompy.MakeMultiTransformation1D(box, + yz_face_ind, top_face_ind, 3)

+ +

box_tr2 = geompy.MakeMultiTransformation2D(box, + xz_face_ind, yz_face_ind, 3, top_face_ind, 0, 2)

+ +

 

+ +

# add objects in the + study

+ +

id_box = geompy.addToStudy(box, + "Box")

+ +

id_box_tr1 = geompy.addToStudy(box_tr1, + "Multi-transformed Block 1D")

+ +

id_box_tr2 = geompy.addToStudy(box_tr2, + "Multi-transformed Block 2D")

+ +

 

+ +

# display the results

+ +

gg.createAndDisplayGO(id_box)

+ +

gg.setDisplayMode(id_box,1)

+ +

gg.createAndDisplayGO(id_box_tr1)

+ +

gg.createAndDisplayGO(id_box_tr2) +

+ +

 

+ +

Explode on Blocks

+ +

import geompy

+ +

import salome

+ +

 

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create a box and a + sphere

+ +

box = geompy.MakeBoxDXDYDZ(200, + 200, 200)

+ +

sphere = geompy.MakeSphereR(100)

+ +

 

+ +

# make a compound

+ +

compound = geompy.MakeCompound([box, + sphere])

+ +

 

+ +

# get all the blocks + of the given compound, by criteria: min_nb_faces <= nb. of faces <= + max_nb_faces

+ +

min_nb_faces = 6

+ +

max_nb_faces = 6

+ +

make_block_explode + = geompy.MakeBlockExplode(compound, min_nb_faces, max_nb_faces)

+ +

 

+ +

# add objects in the + study

+ +

id_compound = geompy.addToStudy(compound, + "Compound")

+ +

id_make_block_explode + = geompy.addToStudyInFather(compound, make_block_explode[0], "MakeBlockExplode")

+ +

 

+ +

# display the results

+ +

gg.createAndDisplayGO(id_compound)

+ +

gg.createAndDisplayGO(id_make_block_explode)

+ +

gg.setDisplayMode(id_make_block_explode,1) +

+ +

 

+ +

Propagate

+ +

import geompy

+ +

import salome

+ +

 

+ +

# create a box

+ +

box = geompy.MakeBoxDXDYDZ(200, + 200, 200)

+ +

 

+ +

# build all possible + propagation groups

+ +

listChains = geompy.Propagate(check_box)

+ +

 

+ +

# add objects in the + study

+ +

geompy.addToStudy(check_box, + "Box")

+ +

ii = 1

+ +

for chain in listChains:

+ +

    geompy.addToStudyInFather(check_box, + chain, "propagation chain " + `ii`)

+ +

    ii + = ii + 1

+ +

    pass

+ +

 

+ +

salome.sg.updateObjBrowser(1) +

+ + + + diff --git a/doc/salome/gui/GEOM/boolean_operations.htm b/doc/salome/gui/GEOM/boolean_operations.htm index bb2aaee73..b0410a81e 100755 --- a/doc/salome/gui/GEOM/boolean_operations.htm +++ b/doc/salome/gui/GEOM/boolean_operations.htm @@ -1,353 +1,353 @@ - - - - - -Boolean Operations - - - - - - - - - - - - -

Boolean Operations

- -

Fuse

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create a vertex and a vector

- -

p1 = geompy.MakeVertex(25, - 55, 0)

- -

p2 = geompy.MakeVertex( - 0,  0, 0)

- -

v = geompy.MakeVector(p1, - p2)

- -

 

- -

# create a cylinder

- -

height = 35

- -

radius1 = 20

- -

cylinder = geompy.MakeCylinder(p1, - v, radius1, height)

- -

 

- -

# create a sphere

- -

sphere = geompy.MakeSphereR(40)

- -

 

- -

# fuse

- -

fuse = geompy.MakeFuse(cylinder, - sphere)

- -

 

- -

# add objects in the study

- -

id_cylinder = geompy.addToStudy(cylinder, - "Cylinder")

- -

id_sphere = geompy.addToStudy(sphere, - "Sphere")

- -

id_fuse = geompy.addToStudy(fuse, - "Fuse")

- -

 

- -

# display results

- -

gg.createAndDisplayGO(id_cylinder)

- -

gg.setDisplayMode(id_cylinder,1)

- -

gg.createAndDisplayGO(id_sphere)

- -

gg.setDisplayMode(id_sphere,1)

- -

gg.createAndDisplayGO(id_fuse)

- -

gg.setDisplayMode(id_fuse,1) -

- -

 

- -

Common

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create a vertex and a vector

- -

p1 = geompy.MakeVertex(25, - 55, 0)

- -

p2 = geompy.MakeVertex( - 0,  0, 0)

- -

v = geompy.MakeVector(p1, - p2)

- -

 

- -

# create a cylinder

- -

height = 35

- -

radius1 = 20

- -

cylinder = geompy.MakeCylinder(p1, - v, radius1, height)

- -

 

- -

# create a sphere

- -

sphere = geompy.MakeSphereR(40)

- -

 

- -

# make common

- -

common = geompy.MakeCommon(cylinder, - sphere)

- -

 

- -

# add objects in the study

- -

id_common = geompy.addToStudy(common, - "Common")

- -

 

- -

# display the results

- -

gg.createAndDisplayGO(id_common)

- -

gg.setDisplayMode(id_common,1) -

- -

 

- -

Cut

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create a vertex and a vector

- -

p1 = geompy.MakeVertex(25, - 55, 0)

- -

p2 = geompy.MakeVertex( - 0,  0, 0)

- -

v = geompy.MakeVector(p1, - p2)

- -

 

- -

# create a cylinder

- -

height = 35

- -

radius1 = 20

- -

cylinder = geompy.MakeCylinder(p1, - v, radius1, height)

- -

 

- -

# create a sphere

- -

sphere = geompy.MakeSphereR(40)

- -

 

- -

#cut

- -

cut = geompy.MakeCut(cylinder, - sphere)

- -

 

- -

# add objects in the study

- -

id_cut = geompy.addToStudy(cut, - "Cut")

- -

 

- -

# display the results

- -

gg.createAndDisplayGO(id_cut)

- -

gg.setDisplayMode(id_cut,1) -

- -

 

- -

Section

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create a vertex and a vector

- -

p1 = geompy.MakeVertex(25, - 55, 0)

- -

p2 = geompy.MakeVertex( - 0,  0, 0)

- -

v = geompy.MakeVector(p1, - p2)

- -

 

- -

# create a cylinder

- -

height = 35

- -

radius1 = 20

- -

cylinder = geompy.MakeCylinder(p1, - v, radius1, height)

- -

 

- -

# create a sphere

- -

sphere = geompy.MakeSphereR(40)

- -

 

- -

# make a section

- -

section = geompy.MakeSection(cylinder, - sphere)

- -

 

- -

# add objects in the study

- -

id_section = geompy.addToStudy(section, - "Section")

- -

 

- -

# display the results

- -

gg.createAndDisplayGO(id_section)

- -

gg.setDisplayMode(id_section,1) -

- -

 

- - - - + + + + + +Boolean Operations + + + + + + + + + + + + +

Boolean Operations

+ +

Fuse

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create a vertex and a vector

+ +

p1 = geompy.MakeVertex(25, + 55, 0)

+ +

p2 = geompy.MakeVertex( + 0,  0, 0)

+ +

v = geompy.MakeVector(p1, + p2)

+ +

 

+ +

# create a cylinder

+ +

height = 35

+ +

radius1 = 20

+ +

cylinder = geompy.MakeCylinder(p1, + v, radius1, height)

+ +

 

+ +

# create a sphere

+ +

sphere = geompy.MakeSphereR(40)

+ +

 

+ +

# fuse

+ +

fuse = geompy.MakeFuse(cylinder, + sphere)

+ +

 

+ +

# add objects in the study

+ +

id_cylinder = geompy.addToStudy(cylinder, + "Cylinder")

+ +

id_sphere = geompy.addToStudy(sphere, + "Sphere")

+ +

id_fuse = geompy.addToStudy(fuse, + "Fuse")

+ +

 

+ +

# display results

+ +

gg.createAndDisplayGO(id_cylinder)

+ +

gg.setDisplayMode(id_cylinder,1)

+ +

gg.createAndDisplayGO(id_sphere)

+ +

gg.setDisplayMode(id_sphere,1)

+ +

gg.createAndDisplayGO(id_fuse)

+ +

gg.setDisplayMode(id_fuse,1) +

+ +

 

+ +

Common

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create a vertex and a vector

+ +

p1 = geompy.MakeVertex(25, + 55, 0)

+ +

p2 = geompy.MakeVertex( + 0,  0, 0)

+ +

v = geompy.MakeVector(p1, + p2)

+ +

 

+ +

# create a cylinder

+ +

height = 35

+ +

radius1 = 20

+ +

cylinder = geompy.MakeCylinder(p1, + v, radius1, height)

+ +

 

+ +

# create a sphere

+ +

sphere = geompy.MakeSphereR(40)

+ +

 

+ +

# make common

+ +

common = geompy.MakeCommon(cylinder, + sphere)

+ +

 

+ +

# add objects in the study

+ +

id_common = geompy.addToStudy(common, + "Common")

+ +

 

+ +

# display the results

+ +

gg.createAndDisplayGO(id_common)

+ +

gg.setDisplayMode(id_common,1) +

+ +

 

+ +

Cut

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create a vertex and a vector

+ +

p1 = geompy.MakeVertex(25, + 55, 0)

+ +

p2 = geompy.MakeVertex( + 0,  0, 0)

+ +

v = geompy.MakeVector(p1, + p2)

+ +

 

+ +

# create a cylinder

+ +

height = 35

+ +

radius1 = 20

+ +

cylinder = geompy.MakeCylinder(p1, + v, radius1, height)

+ +

 

+ +

# create a sphere

+ +

sphere = geompy.MakeSphereR(40)

+ +

 

+ +

#cut

+ +

cut = geompy.MakeCut(cylinder, + sphere)

+ +

 

+ +

# add objects in the study

+ +

id_cut = geompy.addToStudy(cut, + "Cut")

+ +

 

+ +

# display the results

+ +

gg.createAndDisplayGO(id_cut)

+ +

gg.setDisplayMode(id_cut,1) +

+ +

 

+ +

Section

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create a vertex and a vector

+ +

p1 = geompy.MakeVertex(25, + 55, 0)

+ +

p2 = geompy.MakeVertex( + 0,  0, 0)

+ +

v = geompy.MakeVector(p1, + p2)

+ +

 

+ +

# create a cylinder

+ +

height = 35

+ +

radius1 = 20

+ +

cylinder = geompy.MakeCylinder(p1, + v, radius1, height)

+ +

 

+ +

# create a sphere

+ +

sphere = geompy.MakeSphereR(40)

+ +

 

+ +

# make a section

+ +

section = geompy.MakeSection(cylinder, + sphere)

+ +

 

+ +

# add objects in the study

+ +

id_section = geompy.addToStudy(section, + "Section")

+ +

 

+ +

# display the results

+ +

gg.createAndDisplayGO(id_section)

+ +

gg.setDisplayMode(id_section,1) +

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/box.htm b/doc/salome/gui/GEOM/box.htm index 6f7b5ca7e..491c86028 100755 --- a/doc/salome/gui/GEOM/box.htm +++ b/doc/salome/gui/GEOM/box.htm @@ -1,178 +1,178 @@ - - - - - -Box - - - - - - - - - - - - -

Box

- -

To create a Box - in the Main Menu select New Entity - > Primitives - > Box

- -

 

- -

There are 2 algorithms for creation of a Box. -

- -

The - Result of each operation will be a - GEOM_Object (SOLID).

- -

 

- -

Firstly, you can define a Box - by two specified Vertices (its - opposite corners). The edges of the box will be parallel to the coordinate - axes.

- -

TUI Command - : geompy.MakeBoxTwoPnt(Point1, - Point2)

- -

Arguments: Name - + 2 vertices (opposite corners of the box).

- -

 

- -

- -

 

- -

Secondly, - you can define a Box by specified dimensions along the coordinate - axes and with edges, parallel to them.  The - center of the box will be at point (DX/2, DY/2, DZ/2).

- -

TUI Command - : geompy.MakeBoxDXDYDZ(DX, - DY, DZ)

- -

Arguments: Name - + 3 values (dimensions at origin).

- -

- -

 

- -

NB! There is - a third way to create a Box, which is currently accessible only via TUI commands.

- -

You - can define a Box by the coordinates - of two Vertices (in this way - you don't need to create them in advance).

- -

TUI Command: - geompy.MakeBox(x1,y1,z1,x2,y2,z2) -

- -Arguments: Name - + X, Y and Z coordinates of both points. - -

 

- -

Example:

- -

- -

 

- -

Our TUI Scripts - provide you with useful examples of creation of Primitives. -

- -

 

- - - - + + + + + +Box + + + + + + + + + + + + +

Box

+ +

To create a Box + in the Main Menu select New Entity - > Primitives - > Box

+ +

 

+ +

There are 2 algorithms for creation of a Box. +

+ +

The + Result of each operation will be a + GEOM_Object (SOLID).

+ +

 

+ +

Firstly, you can define a Box + by two specified Vertices (its + opposite corners). The edges of the box will be parallel to the coordinate + axes.

+ +

TUI Command + : geompy.MakeBoxTwoPnt(Point1, + Point2)

+ +

Arguments: Name + + 2 vertices (opposite corners of the box).

+ +

 

+ +

+ +

 

+ +

Secondly, + you can define a Box by specified dimensions along the coordinate + axes and with edges, parallel to them.  The + center of the box will be at point (DX/2, DY/2, DZ/2).

+ +

TUI Command + : geompy.MakeBoxDXDYDZ(DX, + DY, DZ)

+ +

Arguments: Name + + 3 values (dimensions at origin).

+ +

+ +

 

+ +

NB! There is + a third way to create a Box, which is currently accessible only via TUI commands.

+ +

You + can define a Box by the coordinates + of two Vertices (in this way + you don't need to create them in advance).

+ +

TUI Command: + geompy.MakeBox(x1,y1,z1,x2,y2,z2) +

+ +Arguments: Name + + X, Y and Z coordinates of both points. + +

 

+ +

Example:

+ +

+ +

 

+ +

Our TUI Scripts + provide you with useful examples of creation of Primitives. +

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/building_by_blocks.htm b/doc/salome/gui/GEOM/building_by_blocks.htm index e2cb299ad..7a80374ee 100755 --- a/doc/salome/gui/GEOM/building_by_blocks.htm +++ b/doc/salome/gui/GEOM/building_by_blocks.htm @@ -1,355 +1,355 @@ - - - - - -Building by Blocks - - - - - - - - - - - - -

Building by Blocks

- -

Quadrangle Face

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p1 = geompy.MakeVertex( -  0.,   0., -   0.)

- -

p2 = geompy.MakeVertex(150., -  30.,   0.)

- -

p3 = geompy.MakeVertex( -  0., 120., -  50.)

- -

p4 = geompy.MakeVertex( -  0.,  40., -  70.)

- -

 

- -

# create edges

- -

edge1 = geompy.MakeEdge(p1, - p2)

- -

edge2 = geompy.MakeEdge(p2, - p3)

- -

edge3 = geompy.MakeEdge(p3, - p4)

- -

edge4 = geompy.MakeEdge(p4, - p1)

- -

 

- -

# create a quadrangle face from four edges

- -

qface1 = geompy.MakeQuad(edge1, - edge2, edge3, edge4)

- -

 

- -

# create a quadrangle face from two edges

- -

qface2 = geompy.MakeQuad2Edges(edge1, - edge3)

- -

 

- -

# create a quadrangle from four points in its corners

- -

qface3 = geompy.MakeQuad4Vertices(p1, - p2, p3, p4)

- -

 

- -

# add objects in the study

- -

id_p1 = geompy.addToStudy(p1,"Point1")

- -

id_p2 = geompy.addToStudy(p2,"Point2")

- -

id_p3 = geompy.addToStudy(p3,"Point3")

- -

id_p4 = geompy.addToStudy(p4,"Point4")

- -

id_edge1 = geompy.addToStudy(edge1,"Edge1")

- -

id_edge2 = geompy.addToStudy(edge2,"Edge2")

- -

id_edge3 = geompy.addToStudy(edge3,"Edge3")

- -

id_edge4 = geompy.addToStudy(edge4,"Edge4")

- -

id_qface1 = geompy.addToStudy(qface1,"Qface1")

- -

id_qface2 = geompy.addToStudy(qface2,"Qface2")

- -

id_qface3 = geompy.addToStudy(qface3,"Qface3")

- -

 

- -

# display the vertices, the edges and the quadrangle faces

- -

gg.createAndDisplayGO(id_p1)

- -

gg.createAndDisplayGO(id_p2)

- -

gg.createAndDisplayGO(id_p3)

- -

gg.createAndDisplayGO(id_p4)

- -

gg.createAndDisplayGO(id_edge1)

- -

gg.createAndDisplayGO(id_edge2)

- -

gg.createAndDisplayGO(id_edge3)

- -

gg.createAndDisplayGO(id_edge4)

- -

gg.createAndDisplayGO(id_qface1)

- -

gg.setDisplayMode(id_qface1,1)

- -

gg.createAndDisplayGO(id_qface2)

- -

gg.setDisplayMode(id_qface2,1)

- -

gg.createAndDisplayGO(id_qface3)

- -

gg.setDisplayMode(id_qface3,1) -

- -

Hexagonal Solid

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p0  = - geompy.MakeVertex(  0., -   0., -   0.)

- -

p1  = - geompy.MakeVertex(  0., -   0., -  40.)

- -

p2  = - geompy.MakeVertex( 70., -15.,   0.)

- -

p3  = - geompy.MakeVertex( 70., -15.,  70.)

- -

 

- -

p4  = - geompy.MakeVertex(  0., -  70.,   0.)

- -

p5  = - geompy.MakeVertex(  0., -  70.,  40.)

- -

p6  = - geompy.MakeVertex( 70.,  70., -   0.)

- -

p7  = - geompy.MakeVertex( 70.,  70., -  70.)

- -

 

- -

p8  = - geompy.MakeVertex(  0., - -50.,   0.)

- -

p9  = - geompy.MakeVertex(  0., - -50.,  40.)

- -

p10 = geompy.MakeVertex( - 70., -35.,   0.)

- -

p11 = geompy.MakeVertex( - 70., -35.,  70.)

- -

 

- -

# create faces

- -

qface1 = geompy.MakeQuad4Vertices(p0, - p1, p2, p3)

- -

qface2 = geompy.MakeQuad4Vertices(p4, - p5, p6, p7)

- -

qface3 = geompy.MakeQuad4Vertices(p0, - p1, p4, p5)

- -

qface4 = geompy.MakeQuad4Vertices(p2, - p3, p6, p7)

- -

qface5 = geompy.MakeQuad4Vertices(p0, - p2, p4, p6)

- -

qface6 = geompy.MakeQuad4Vertices(p1, - p3, p5, p7)

- -

 

- -

qface7 = geompy.MakeQuad4Vertices(p8, - p9, p10, p11)

- -

 

- -

# create a hexahedral - solid between two given faces

- -

solid1 = geompy.MakeHexa2Faces(qface1, - qface7)

- -

 

- -

# create a hexahedral - solid, bounded by six given faces

- -

solid2 = geompy.MakeHexa(qface1, - qface2, qface3, qface4, qface5, qface6)

- -

 

- -

# add objects in the - study

- -

geompy.addToStudy(qface1,"qface1")

- -

geompy.addToStudy(qface2,"qface2")

- -

geompy.addToStudy(qface3,"qface3")

- -

geompy.addToStudy(qface4,"qface4")

- -

geompy.addToStudy(qface5,"qface5")

- -

geompy.addToStudy(qface6,"qface6")

- -

geompy.addToStudy(qface7,"qface7")

- -

 

- -

id_solid1 = geompy.addToStudy(solid1,"Solid1")

- -

id_solid2 = geompy.addToStudy(solid2,"Solid2")

- -

 

- -

# display solids

- -

gg.createAndDisplayGO(id_solid1)

- -

gg.setDisplayMode(id_solid1, - 1)

- -

gg.createAndDisplayGO(id_solid2)

- -

gg.setDisplayMode(id_solid2, - 1)

- - - - + + + + + +Building by Blocks + + + + + + + + + + + + +

Building by Blocks

+ +

Quadrangle Face

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p1 = geompy.MakeVertex( +  0.,   0., +   0.)

+ +

p2 = geompy.MakeVertex(150., +  30.,   0.)

+ +

p3 = geompy.MakeVertex( +  0., 120., +  50.)

+ +

p4 = geompy.MakeVertex( +  0.,  40., +  70.)

+ +

 

+ +

# create edges

+ +

edge1 = geompy.MakeEdge(p1, + p2)

+ +

edge2 = geompy.MakeEdge(p2, + p3)

+ +

edge3 = geompy.MakeEdge(p3, + p4)

+ +

edge4 = geompy.MakeEdge(p4, + p1)

+ +

 

+ +

# create a quadrangle face from four edges

+ +

qface1 = geompy.MakeQuad(edge1, + edge2, edge3, edge4)

+ +

 

+ +

# create a quadrangle face from two edges

+ +

qface2 = geompy.MakeQuad2Edges(edge1, + edge3)

+ +

 

+ +

# create a quadrangle from four points in its corners

+ +

qface3 = geompy.MakeQuad4Vertices(p1, + p2, p3, p4)

+ +

 

+ +

# add objects in the study

+ +

id_p1 = geompy.addToStudy(p1,"Point1")

+ +

id_p2 = geompy.addToStudy(p2,"Point2")

+ +

id_p3 = geompy.addToStudy(p3,"Point3")

+ +

id_p4 = geompy.addToStudy(p4,"Point4")

+ +

id_edge1 = geompy.addToStudy(edge1,"Edge1")

+ +

id_edge2 = geompy.addToStudy(edge2,"Edge2")

+ +

id_edge3 = geompy.addToStudy(edge3,"Edge3")

+ +

id_edge4 = geompy.addToStudy(edge4,"Edge4")

+ +

id_qface1 = geompy.addToStudy(qface1,"Qface1")

+ +

id_qface2 = geompy.addToStudy(qface2,"Qface2")

+ +

id_qface3 = geompy.addToStudy(qface3,"Qface3")

+ +

 

+ +

# display the vertices, the edges and the quadrangle faces

+ +

gg.createAndDisplayGO(id_p1)

+ +

gg.createAndDisplayGO(id_p2)

+ +

gg.createAndDisplayGO(id_p3)

+ +

gg.createAndDisplayGO(id_p4)

+ +

gg.createAndDisplayGO(id_edge1)

+ +

gg.createAndDisplayGO(id_edge2)

+ +

gg.createAndDisplayGO(id_edge3)

+ +

gg.createAndDisplayGO(id_edge4)

+ +

gg.createAndDisplayGO(id_qface1)

+ +

gg.setDisplayMode(id_qface1,1)

+ +

gg.createAndDisplayGO(id_qface2)

+ +

gg.setDisplayMode(id_qface2,1)

+ +

gg.createAndDisplayGO(id_qface3)

+ +

gg.setDisplayMode(id_qface3,1) +

+ +

Hexagonal Solid

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p0  = + geompy.MakeVertex(  0., +   0., +   0.)

+ +

p1  = + geompy.MakeVertex(  0., +   0., +  40.)

+ +

p2  = + geompy.MakeVertex( 70., -15.,   0.)

+ +

p3  = + geompy.MakeVertex( 70., -15.,  70.)

+ +

 

+ +

p4  = + geompy.MakeVertex(  0., +  70.,   0.)

+ +

p5  = + geompy.MakeVertex(  0., +  70.,  40.)

+ +

p6  = + geompy.MakeVertex( 70.,  70., +   0.)

+ +

p7  = + geompy.MakeVertex( 70.,  70., +  70.)

+ +

 

+ +

p8  = + geompy.MakeVertex(  0., + -50.,   0.)

+ +

p9  = + geompy.MakeVertex(  0., + -50.,  40.)

+ +

p10 = geompy.MakeVertex( + 70., -35.,   0.)

+ +

p11 = geompy.MakeVertex( + 70., -35.,  70.)

+ +

 

+ +

# create faces

+ +

qface1 = geompy.MakeQuad4Vertices(p0, + p1, p2, p3)

+ +

qface2 = geompy.MakeQuad4Vertices(p4, + p5, p6, p7)

+ +

qface3 = geompy.MakeQuad4Vertices(p0, + p1, p4, p5)

+ +

qface4 = geompy.MakeQuad4Vertices(p2, + p3, p6, p7)

+ +

qface5 = geompy.MakeQuad4Vertices(p0, + p2, p4, p6)

+ +

qface6 = geompy.MakeQuad4Vertices(p1, + p3, p5, p7)

+ +

 

+ +

qface7 = geompy.MakeQuad4Vertices(p8, + p9, p10, p11)

+ +

 

+ +

# create a hexahedral + solid between two given faces

+ +

solid1 = geompy.MakeHexa2Faces(qface1, + qface7)

+ +

 

+ +

# create a hexahedral + solid, bounded by six given faces

+ +

solid2 = geompy.MakeHexa(qface1, + qface2, qface3, qface4, qface5, qface6)

+ +

 

+ +

# add objects in the + study

+ +

geompy.addToStudy(qface1,"qface1")

+ +

geompy.addToStudy(qface2,"qface2")

+ +

geompy.addToStudy(qface3,"qface3")

+ +

geompy.addToStudy(qface4,"qface4")

+ +

geompy.addToStudy(qface5,"qface5")

+ +

geompy.addToStudy(qface6,"qface6")

+ +

geompy.addToStudy(qface7,"qface7")

+ +

 

+ +

id_solid1 = geompy.addToStudy(solid1,"Solid1")

+ +

id_solid2 = geompy.addToStudy(solid2,"Solid2")

+ +

 

+ +

# display solids

+ +

gg.createAndDisplayGO(id_solid1)

+ +

gg.setDisplayMode(id_solid1, + 1)

+ +

gg.createAndDisplayGO(id_solid2)

+ +

gg.setDisplayMode(id_solid2, + 1)

+ + + + diff --git a/doc/salome/gui/GEOM/chamfer.htm b/doc/salome/gui/GEOM/chamfer.htm index 573ad682f..34174349c 100755 --- a/doc/salome/gui/GEOM/chamfer.htm +++ b/doc/salome/gui/GEOM/chamfer.htm @@ -1,197 +1,197 @@ - - - - - -Chamfer - - - - - - - - - - - - - -

Chamfer

- -

To produce - a Chamfer in the Main Menu select - Operations - > Transformation - > - Chamfer

- -

 

- -

This operation allows you to make chamfer - of the edges of a Shape.

- -

The Result will - be a GEOM_Object.

- -

 

- -

To create - chamfer on all edges of the given shape, you need to define the Main Object to create a chamfer on and - the Dimension (radius) of the - chamfer.  

- -

TUI Command: - geompy.MakeChamferAll(Shape, D) -

- -

Arguments: Name - + 1 SHAPE + 1 value (Chamfer dimension).

- -

 

- -

 

- -

 

- -

To create chamfer on the specified edges of - the given shape,  you - need to define the Main Object - to create a fillet on, select the two faces to which belongs the necessary common edge in the viewer and define - the Dimension of the Chamfer.

- -

TUI Command: - geompy.MakeChamferEdge(Shape, D1, - D2, Face1, Face2), where Shape is a shape to create a chamfer on, - D1 is a chamfer size along Face1, D2 is a chamfer size along Face2, Face1 - and Face2 are indices of faces in Shape.

- -

 

- -

 

- -

 

- -

To create chamfer on the specified faces of - the given shape,  you - need to define the Main Object - to create a fillet on, select the necessary faces the OCC Viewer and define - the Dimension of the Chamfer.

- -

TUI Command: - geompy.MakeChamferFaces(Shape, D1, - D2, ListOfFaceID), where Shape is a shape to create chamfer on, - D1 is a chamfer size along a face from  ListOfFaceID, -  D2 is a - chamfer size along two faces connected to the edge to which the chamfer - is applied, ListOfFaceID is a list of indices of faces in Shape.

- -

 

- -

 

- -

 

- -

  Our TUI Scripts - provide you with useful examples of the use of Transformation - Operations.

- -

 

- -

 

- -

 

- -

 

- -

 

- - - - + + + + + +Chamfer + + + + + + + + + + + + + +

Chamfer

+ +

To produce + a Chamfer in the Main Menu select + Operations - > Transformation - > + Chamfer

+ +

 

+ +

This operation allows you to make chamfer + of the edges of a Shape.

+ +

The Result will + be a GEOM_Object.

+ +

 

+ +

To create + chamfer on all edges of the given shape, you need to define the Main Object to create a chamfer on and + the Dimension (radius) of the + chamfer.  

+ +

TUI Command: + geompy.MakeChamferAll(Shape, D) +

+ +

Arguments: Name + + 1 SHAPE + 1 value (Chamfer dimension).

+ +

 

+ +

 

+ +

 

+ +

To create chamfer on the specified edges of + the given shape,  you + need to define the Main Object + to create a fillet on, select the two faces to which belongs the necessary common edge in the viewer and define + the Dimension of the Chamfer.

+ +

TUI Command: + geompy.MakeChamferEdge(Shape, D1, + D2, Face1, Face2), where Shape is a shape to create a chamfer on, + D1 is a chamfer size along Face1, D2 is a chamfer size along Face2, Face1 + and Face2 are indices of faces in Shape.

+ +

 

+ +

 

+ +

 

+ +

To create chamfer on the specified faces of + the given shape,  you + need to define the Main Object + to create a fillet on, select the necessary faces the OCC Viewer and define + the Dimension of the Chamfer.

+ +

TUI Command: + geompy.MakeChamferFaces(Shape, D1, + D2, ListOfFaceID), where Shape is a shape to create chamfer on, + D1 is a chamfer size along a face from  ListOfFaceID, +  D2 is a + chamfer size along two faces connected to the edge to which the chamfer + is applied, ListOfFaceID is a list of indices of faces in Shape.

+ +

 

+ +

 

+ +

 

+ +

  Our TUI Scripts + provide you with useful examples of the use of Transformation + Operations.

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/changing_display_parameters.htm b/doc/salome/gui/GEOM/changing_display_parameters.htm index 7106304d4..604eea0ab 100755 --- a/doc/salome/gui/GEOM/changing_display_parameters.htm +++ b/doc/salome/gui/GEOM/changing_display_parameters.htm @@ -1,183 +1,183 @@ - - - - - -Changing Display Parameters - - - - - - - - - - - - -

Viewing Geometrical Objects

- -

Changing Display Mode

- -

import - salome

- -

import geompy

- -

box = geompy.MakeBox(0,0,0, - 50,50,50)

- -

 

- -

sphere = geompy.MakeSphere(50,50,50, - 30)

- -

fuse = geompy.MakeBoolean(box,sphere,3)

- -

fuse_id = geompy.addToStudy(fuse,"Fuse")

- -

 

- -

gg = salome.ImportComponentGUI("GEOM")

- -

gg.createAndDisplayGO(fuse_id)

- -

gg.setDisplayMode(fuse_id,1) -

- -

 

- -

Changing Color

- -

import salome

- -

import geompy

- -

box = geompy.MakeBox(0,0,0, - 50,50,50)

- -

 

- -

sphere = geompy.MakeSphere(50,50,50, - 30)

- -

fuse = geompy.MakeBoolean(box,sphere,3)

- -

fuse_id = geompy.addToStudy(fuse,"Fuse")

- -

 

- -

gg = salome.ImportComponentGUI("GEOM")

- -

gg.createAndDisplayGO(fuse_id)

- -

gg.setDisplayMode(fuse_id,1)

- -

gg.setColor(fuse_id,218,165,31) -

- -

 

- -

 

- -

Changing Transparency

- -

import salome

- -

import geompy

- -

 

- -

box = geompy.MakeBox(0,0,0, - 50,50,50)

- -

sphere = geompy.MakeSphere(50,50,50, - 30)

- -

 

- -

fuse = geompy.MakeBoolean(box,sphere,3)

- -

fuse_id = geompy.addToStudy(fuse,"Fuse")

- -

 

- -

gg = salome.ImportComponentGUI("GEOM")

- -

gg.createAndDisplayGO(fuse_id)

- -

gg.setDisplayMode(fuse_id,1)

- -

gg.setColor(fuse_id,218,165,31)

- -

gg.setTransparency(fuse_id,0.5) -

- - - - + + + + + +Changing Display Parameters + + + + + + + + + + + + +

Viewing Geometrical Objects

+ +

Changing Display Mode

+ +

import + salome

+ +

import geompy

+ +

box = geompy.MakeBox(0,0,0, + 50,50,50)

+ +

 

+ +

sphere = geompy.MakeSphere(50,50,50, + 30)

+ +

fuse = geompy.MakeBoolean(box,sphere,3)

+ +

fuse_id = geompy.addToStudy(fuse,"Fuse")

+ +

 

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

gg.createAndDisplayGO(fuse_id)

+ +

gg.setDisplayMode(fuse_id,1) +

+ +

 

+ +

Changing Color

+ +

import salome

+ +

import geompy

+ +

box = geompy.MakeBox(0,0,0, + 50,50,50)

+ +

 

+ +

sphere = geompy.MakeSphere(50,50,50, + 30)

+ +

fuse = geompy.MakeBoolean(box,sphere,3)

+ +

fuse_id = geompy.addToStudy(fuse,"Fuse")

+ +

 

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

gg.createAndDisplayGO(fuse_id)

+ +

gg.setDisplayMode(fuse_id,1)

+ +

gg.setColor(fuse_id,218,165,31) +

+ +

 

+ +

 

+ +

Changing Transparency

+ +

import salome

+ +

import geompy

+ +

 

+ +

box = geompy.MakeBox(0,0,0, + 50,50,50)

+ +

sphere = geompy.MakeSphere(50,50,50, + 30)

+ +

 

+ +

fuse = geompy.MakeBoolean(box,sphere,3)

+ +

fuse_id = geompy.addToStudy(fuse,"Fuse")

+ +

 

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

gg.createAndDisplayGO(fuse_id)

+ +

gg.setDisplayMode(fuse_id,1)

+ +

gg.setColor(fuse_id,218,165,31)

+ +

gg.setTransparency(fuse_id,0.5) +

+ + + + diff --git a/doc/salome/gui/GEOM/check_free_boundaries.htm b/doc/salome/gui/GEOM/check_free_boundaries.htm index dae8b55ef..b6e127486 100755 --- a/doc/salome/gui/GEOM/check_free_boundaries.htm +++ b/doc/salome/gui/GEOM/check_free_boundaries.htm @@ -1,150 +1,150 @@ - - - - - -Check Free Boundaries - - - - - - - - - - - - - -

Check Free Boundaries

- -

To Check Free Boundaries in the Main Menu - select Repair - > Check Free Boundaries.

- -

 

- -

This operation detects wires and edges that - correspond to the shape's boundary, and highlights it

- -

 

- -

The - Result will be a GEOM_Object.

- -

 

- -

TUI Command : (NoError, ClosedWires, OpenWires) = geompy.GetFreeBoundary(Shape), - where Shape is a shape to be checked, NoError is false if an error occurred - while checking free boundaries, ClosedWires is a list of closed free boundary - wires, OpenWires is a list of open free boundary wires.

- -

 

- -

- -

 

- -

Example:

- -

 

- -

  

- -

 

- -

Our - TUI Scripts provide you with useful - examples of the use of Repairing - Operations.

- -

 

- - - - + + + + + +Check Free Boundaries + + + + + + + + + + + + + +

Check Free Boundaries

+ +

To Check Free Boundaries in the Main Menu + select Repair - > Check Free Boundaries.

+ +

 

+ +

This operation detects wires and edges that + correspond to the shape's boundary, and highlights it

+ +

 

+ +

The + Result will be a GEOM_Object.

+ +

 

+ +

TUI Command : (NoError, ClosedWires, OpenWires) = geompy.GetFreeBoundary(Shape), + where Shape is a shape to be checked, NoError is false if an error occurred + while checking free boundaries, ClosedWires is a list of closed free boundary + wires, OpenWires is a list of open free boundary wires.

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

  

+ +

 

+ +

Our + TUI Scripts provide you with useful + examples of the use of Repairing + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/check_free_faces.htm b/doc/salome/gui/GEOM/check_free_faces.htm index a7d3bccb4..b704b6b75 100755 --- a/doc/salome/gui/GEOM/check_free_faces.htm +++ b/doc/salome/gui/GEOM/check_free_faces.htm @@ -1,150 +1,150 @@ - - - - - -Check Free Faces - - - - - - - - - - - - - -

Check Free Faces

- -

To Check Free Faces in the Main Menu select - Repair - > Check Free Faces.

- -

This operation retrieves all free faces from - a given shape. A free face is a face not shared between two shells of - the shape.

- -

 

- -

The - Result will be a GEOM_Object - (a list of IDs of all free faces, containing in the shape).

- -

TUI Command : - GetFreeFacesIDs(Shape), where Shape is a shape to be checked.

- -

 

- -

- -

 

- -

Examples:

- -

 

- -

 

- -

 

- -

Our - TUI Scripts provide you with useful - examples of the use of Repairing - Operations.

- -

 

- - - - + + + + + +Check Free Faces + + + + + + + + + + + + + +

Check Free Faces

+ +

To Check Free Faces in the Main Menu select + Repair - > Check Free Faces.

+ +

This operation retrieves all free faces from + a given shape. A free face is a face not shared between two shells of + the shape.

+ +

 

+ +

The + Result will be a GEOM_Object + (a list of IDs of all free faces, containing in the shape).

+ +

TUI Command : + GetFreeFacesIDs(Shape), where Shape is a shape to be checked.

+ +

 

+ +

+ +

 

+ +

Examples:

+ +

 

+ +

 

+ +

 

+ +

Our + TUI Scripts provide you with useful + examples of the use of Repairing + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/circle.htm b/doc/salome/gui/GEOM/circle.htm index 41bc118a8..96568f5e0 100755 --- a/doc/salome/gui/GEOM/circle.htm +++ b/doc/salome/gui/GEOM/circle.htm @@ -1,156 +1,156 @@ - - - - - -Circle - - - - - - - - - - - - -

Circle

- -

To create a Circle - in the Main Menu select New Entity - > Basic - > Circle

- -

 

- -

There - are 2 algorithms to create a Circle in - the 3D space.

- -

The - Result of each operation will be a - GEOM_Object (edge).

- -

 

- -

Firstly, - you can define a Circle by a Center Point, a - Vector giving the circle’s - normal and a Radius.

- -

TUI Command: - geompy.MakeCircle(Point, Vector, Radius)

- -

Arguments: - Name + 1 vertex (for the center) - + 1 edge (for the direction) + Radius.

- -

 

- -

- -

 

- -

Secondly, - you can define a Circle by three - Points that lie on it.

- -

TUI - Command:  geompy.MakeCircleThreePnt(Point1, - Point2, Point3)

- -

Arguments: - Name + 3 points which will form - the circle.

- -

 

- -

- -

 

- -

- -

 

- -

Our TUI Scripts provide you with useful examples - of creation of Basic - Geometric Objects.

- -

 

- - - - + + + + + +Circle + + + + + + + + + + + + +

Circle

+ +

To create a Circle + in the Main Menu select New Entity - > Basic - > Circle

+ +

 

+ +

There + are 2 algorithms to create a Circle in + the 3D space.

+ +

The + Result of each operation will be a + GEOM_Object (edge).

+ +

 

+ +

Firstly, + you can define a Circle by a Center Point, a + Vector giving the circle’s + normal and a Radius.

+ +

TUI Command: + geompy.MakeCircle(Point, Vector, Radius)

+ +

Arguments: + Name + 1 vertex (for the center) + + 1 edge (for the direction) + Radius.

+ +

 

+ +

+ +

 

+ +

Secondly, + you can define a Circle by three + Points that lie on it.

+ +

TUI + Command:  geompy.MakeCircleThreePnt(Point1, + Point2, Point3)

+ +

Arguments: + Name + 3 points which will form + the circle.

+ +

 

+ +

+ +

 

+ +

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of creation of Basic + Geometric Objects.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/close_contour.htm b/doc/salome/gui/GEOM/close_contour.htm index f79f52efe..e8accf8a6 100755 --- a/doc/salome/gui/GEOM/close_contour.htm +++ b/doc/salome/gui/GEOM/close_contour.htm @@ -1,153 +1,153 @@ - - - - - -Close Contour - - - - - - - - - - - - -

Close Contour

- -

To produce - a Close Contour operation in the - Main Menu select Repair - > Close - Contour.

- -

 

- -

This operation closes an open contour and modifies - the underlying face (if needed) in accordance with user specified mode:

- - - -

This operation is available in OCC - Viewer only.

- -

 

- -

The Result will - be a GEOM_Object.

- -

 

- -

TUI Command: - geompy.CloseContour(Shape, Wires, - IsCommonVertex), where Shape is a shape to be processed, Wires - is a list of edges or wires ID’s which has to be closed within the shape - (if the list contains only one element = -1, the shape itself is considered - as a wire),  IsCommonVertex - if this parameter is True a closure has to be done by creation of a common - vertex, otherwise an edge is added between the end vertices.

- -

 

- -

Arguments: Name + 1 shape + contour (Wire, - or a set of Edges) + mode of closure (by vertex or by edge)

- -

 

- -

- -

 

- -

Our - TUI Scripts provide you with useful - examples of the use of Repairing - Operations.

- -

 

- - - - + + + + + +Close Contour + + + + + + + + + + + + +

Close Contour

+ +

To produce + a Close Contour operation in the + Main Menu select Repair - > Close + Contour.

+ +

 

+ +

This operation closes an open contour and modifies + the underlying face (if needed) in accordance with user specified mode:

+ + + +

This operation is available in OCC + Viewer only.

+ +

 

+ +

The Result will + be a GEOM_Object.

+ +

 

+ +

TUI Command: + geompy.CloseContour(Shape, Wires, + IsCommonVertex), where Shape is a shape to be processed, Wires + is a list of edges or wires ID’s which has to be closed within the shape + (if the list contains only one element = -1, the shape itself is considered + as a wire),  IsCommonVertex + if this parameter is True a closure has to be done by creation of a common + vertex, otherwise an edge is added between the end vertices.

+ +

 

+ +

Arguments: Name + 1 shape + contour (Wire, + or a set of Edges) + mode of closure (by vertex or by edge)

+ +

 

+ +

+ +

 

+ +

Our + TUI Scripts provide you with useful + examples of the use of Repairing + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/color.htm b/doc/salome/gui/GEOM/color.htm index 9fb11eff0..9732c7c03 100755 --- a/doc/salome/gui/GEOM/color.htm +++ b/doc/salome/gui/GEOM/color.htm @@ -1,111 +1,111 @@ - - - - - -Color - - - - - - - - - - - - -

Color

- -

You can change the filling color of your object in the standard Select Color menu accessible by right-clicking - on an object and selecting Color - in the pop-up menu box.

- -

 

- -

TUI - Command: gg.setColor(ID, Short, Short, Short)

- -

 

- -

- -

 

- -

Our TUI Scripts provide you with useful examples - of Changing Display - Parameters.

- -

 

- - - - + + + + + +Color + + + + + + + + + + + + +

Color

+ +

You can change the filling color of your object in the standard Select Color menu accessible by right-clicking + on an object and selecting Color + in the pop-up menu box.

+ +

 

+ +

TUI + Command: gg.setColor(ID, Short, Short, Short)

+ +

 

+ +

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of Changing Display + Parameters.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/common.htm b/doc/salome/gui/GEOM/common.htm index 2cbd320c6..25b4226c7 100755 --- a/doc/salome/gui/GEOM/common.htm +++ b/doc/salome/gui/GEOM/common.htm @@ -1,147 +1,147 @@ - - - - - -Common - - - - - - - - - - - - - -

Common

- -

To produce - a Common operation in the Main - Menu select Operations - > Boolean - - > Common

- -

 

- -

This - operation cuts the common part of two shapes and transforms - it into an independent geometrical object.

- -

 

- -

The - Result will be a GEOM_Object - (COMPOUND).

- -

TUI Command: -  geompy.MakeCommon(s1, - s2)

- -

Arguments: - Name + 2 shapes.

- -

 

- -

- -

 

- -

Example:

- -

 

- -

 

- -

Our TUI Scripts provide you with useful examples - of the use of Boolean Operations. -

- -

 

- - - - + + + + + +Common + + + + + + + + + + + + + +

Common

+ +

To produce + a Common operation in the Main + Menu select Operations - > Boolean + - > Common

+ +

 

+ +

This + operation cuts the common part of two shapes and transforms + it into an independent geometrical object.

+ +

 

+ +

The + Result will be a GEOM_Object + (COMPOUND).

+ +

TUI Command: +  geompy.MakeCommon(s1, + s2)

+ +

Arguments: + Name + 2 shapes.

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of the use of Boolean Operations. +

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/complex_objects.htm b/doc/salome/gui/GEOM/complex_objects.htm index 1486576b6..72c395e02 100755 --- a/doc/salome/gui/GEOM/complex_objects.htm +++ b/doc/salome/gui/GEOM/complex_objects.htm @@ -1,489 +1,489 @@ - - - - - -Complex Objects - - - - - - - - - - - - -

Complex Objects

- -

Creation of a Prism

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create a vertex and a vector

- -

p1 = geompy.MakeVertex( -   0., -   0., -   0.)

- -

p2 = geompy.MakeVertex( - 100.,   0., -   0.)

- -

p3 = geompy.MakeVertex( - 100., 100.,   0.)

- -

p4 = geompy.MakeVertex( -   0., - 100.,   0.)

- -

p5 = geompy.MakeVertex( -   0., -   0., -  60.)

- -

p6 = geompy.MakeVertex(-100., -   0., -   0.)

- -

p7 = geompy.MakeVertex(-100.,-100., -   0.)

- -

p8 = geompy.MakeVertex( -   0.,-100., -   0.)

- -

 

- -

# create a vector from the given components

- -

vector = geompy.MakeVectorDXDYDZ(50., - 50., 50.)

- -

 

- -

#create vectors from two points

- -

vector1_arc1 = geompy.MakeVector(p1, - p2)

- -

vector2_arc1 = geompy.MakeVector(p1, - p4)

- -

vector1_arc2 = geompy.MakeVector(p1, - p6)

- -

vector2_arc2 = geompy.MakeVector(p1, - p8)

- -

 

- -

# create arcs from three points

- -

arc1 = geompy.MakeArc(p2, - p3, p4)

- -

arc2 = geompy.MakeArc(p6, - p7, p8)

- -

 

- -

# create wires

- -

wire1 = geompy.MakeWire([vector1_arc1, - arc1, vector2_arc1])

- -

wire2 = geompy.MakeWire([vector1_arc2, - arc2, vector2_arc2])

- -

 

- -

# create faces

- -

isPlanarWanted = 1

- -

face1 = geompy.MakeFace(wire1, - isPlanarWanted)

- -

face2 = geompy.MakeFace(wire2, - isPlanarWanted)

- -

 

- -

# create prisms

- -

prism1 = geompy.MakePrism(face2, - p1, p5)

- -

prism2 = geompy.MakePrismVecH(face1, - vector, 50)

- -

 

- -

# add objects in the study

- -

id_face1   = - geompy.addToStudy(face1,"Face1")

- -

id_face2   = - geompy.addToStudy(face2,"Face2")

- -

id_prism1 = geompy.addToStudy(prism1,"Prism1")

- -

id_prism2 = geompy.addToStudy(prism2,"Prism2")

- -

 

- -

# display cylinders

- -

gg.createAndDisplayGO(id_face1)

- -

gg.setDisplayMode(id_face1,1)

- -

gg.createAndDisplayGO(id_face2)

- -

gg.setDisplayMode(id_face2,1)

- -

gg.createAndDisplayGO(id_prism1)

- -

gg.setDisplayMode(id_prism1,1)

- -

gg.createAndDisplayGO(id_prism2)

- -

gg.setDisplayMode(id_prism2,1) -

- -

Creation of a Revolution

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create a vertex and a vector

- -

p1 = geompy.MakeVertex( -  10.,  10., -  10.)

- -

p2 = geompy.MakeVertex( -  15.,  15., -  50.)

- -

p3 = geompy.MakeVertex( -  40.,  40., -   0.)

- -

 

- -

#create vectors from two points

- -

vector1 = geompy.MakeVector(p1, - p2)

- -

vector2 = geompy.MakeVector(p1, - p3)

- -

 

- -

# create a vector from the given components

- -

vector3 = geompy.MakeVectorDXDYDZ(-20., - -20., 100.)

- -

 

- -

# create a wire

- -

wire = geompy.MakeWire([vector1, - vector2])

- -

 

- -

# create a revolution

- -

revolution = geompy.MakeRevolution(wire, - vector3, 2.3)

- -

 

- -

# add objects in the study

- -

id_vector3    = - geompy.addToStudy(vector3,"Axis")

- -

id_wire       = - geompy.addToStudy(wire,"Wire")

- -

id_revolution = geompy.addToStudy(revolution,"Revolution")

- -

 

- -

# display the vector, the wire and the revolution

- -

gg.createAndDisplayGO(id_vector3)

- -

gg.createAndDisplayGO(id_wire)

- -

gg.createAndDisplayGO(id_revolution)

- -

gg.setDisplayMode(id_revolution,1) -

- -

Creation of a Filling

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

mindeg = 2

- -

maxdeg = 5

- -

tol3d   = - 0.0001

- -

tol2d   = - 0.0001

- -

nbiter = 5

- -

 

- -

# create a vertex and a vector

- -

p1 = geompy.MakeVertex( -  -30.,  -30., -  50.)

- -

p2 = geompy.MakeVertex( -  -60.,  -60., -  30.)

- -

p3 = geompy.MakeVertex( -  -30.,  -30., -  10.)

- -

 

- -

# create an arc from three points

- -

arc = geompy.MakeArc(p1, - p2, p3)

- -

ShapeListCompound - = []

- -

i = 0

- -

while i <= 3 :

- -

    S - = geompy.MakeTranslation(arc, i * 50., 0., 0.)

- -

    ShapeListCompound.append(S)

- -

    i - = i + 1

- -

compound = geompy.MakeCompound(ShapeListCompound)

- -

 

- -

# create a filling

- -

filling = geompy.MakeFilling(compound, - mindeg, maxdeg, tol3d, tol2d, nbiter)

- -

 

- -

# add objects in the study

- -

id_compound = geompy.addToStudy(compound,"Compound")

- -

id_filling = geompy.addToStudy(filling,"Filling")

- -

 

- -

# display the compound and the filling

- -

gg.createAndDisplayGO(id_compound)

- -

gg.createAndDisplayGO(id_filling)

- -

gg.setDisplayMode(id_filling,1) -

- -

 

- -

Creation of a Pipe

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p0   = - geompy.MakeVertex(0.  , - 0.  , 0. -  )

- -

px   = - geompy.MakeVertex(100., 0.  , - 0.  )

- -

py   = - geompy.MakeVertex(0.  , - 100., 0.  )

- -

pz   = - geompy.MakeVertex(0.  , - 0.  , 100.)

- -

pxyz = geompy.MakeVertex(100., - 100., 100.)

- -

 

- -

# create a vector from two points

- -

vxy = geompy.MakeVector(px, - py)

- -

 

- -

# create an arc from three points

- -

arc = geompy.MakeArc(py, - pz, px)

- -

 

- -

# create a wire

- -

wire = geompy.MakeWire([vxy, - arc])

- -

 

- -

# create an edge

- -

edge = geompy.MakeEdge(p0, - pxyz)

- -

 

- -

# create a pipe

- -

pipe = geompy.MakePipe(wire, - edge)

- -

 

- -

# add objects in the study

- -

id_wire = geompy.addToStudy(wire,"Wire")

- -

id_edge = geompy.addToStudy(edge,"Edge")

- -

id_pipe = geompy.addToStudy(pipe,"Pipe")

- -

 

- -

# display the wire, the edge (path) and the pipe

- -

gg.createAndDisplayGO(id_wire)

- -

gg.createAndDisplayGO(id_edge)

- -

gg.createAndDisplayGO(id_pipe)

- -

gg.setDisplayMode(id_pipe,1) -

- - - - + + + + + +Complex Objects + + + + + + + + + + + + +

Complex Objects

+ +

Creation of a Prism

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create a vertex and a vector

+ +

p1 = geompy.MakeVertex( +   0., +   0., +   0.)

+ +

p2 = geompy.MakeVertex( + 100.,   0., +   0.)

+ +

p3 = geompy.MakeVertex( + 100., 100.,   0.)

+ +

p4 = geompy.MakeVertex( +   0., + 100.,   0.)

+ +

p5 = geompy.MakeVertex( +   0., +   0., +  60.)

+ +

p6 = geompy.MakeVertex(-100., +   0., +   0.)

+ +

p7 = geompy.MakeVertex(-100.,-100., +   0.)

+ +

p8 = geompy.MakeVertex( +   0.,-100., +   0.)

+ +

 

+ +

# create a vector from the given components

+ +

vector = geompy.MakeVectorDXDYDZ(50., + 50., 50.)

+ +

 

+ +

#create vectors from two points

+ +

vector1_arc1 = geompy.MakeVector(p1, + p2)

+ +

vector2_arc1 = geompy.MakeVector(p1, + p4)

+ +

vector1_arc2 = geompy.MakeVector(p1, + p6)

+ +

vector2_arc2 = geompy.MakeVector(p1, + p8)

+ +

 

+ +

# create arcs from three points

+ +

arc1 = geompy.MakeArc(p2, + p3, p4)

+ +

arc2 = geompy.MakeArc(p6, + p7, p8)

+ +

 

+ +

# create wires

+ +

wire1 = geompy.MakeWire([vector1_arc1, + arc1, vector2_arc1])

+ +

wire2 = geompy.MakeWire([vector1_arc2, + arc2, vector2_arc2])

+ +

 

+ +

# create faces

+ +

isPlanarWanted = 1

+ +

face1 = geompy.MakeFace(wire1, + isPlanarWanted)

+ +

face2 = geompy.MakeFace(wire2, + isPlanarWanted)

+ +

 

+ +

# create prisms

+ +

prism1 = geompy.MakePrism(face2, + p1, p5)

+ +

prism2 = geompy.MakePrismVecH(face1, + vector, 50)

+ +

 

+ +

# add objects in the study

+ +

id_face1   = + geompy.addToStudy(face1,"Face1")

+ +

id_face2   = + geompy.addToStudy(face2,"Face2")

+ +

id_prism1 = geompy.addToStudy(prism1,"Prism1")

+ +

id_prism2 = geompy.addToStudy(prism2,"Prism2")

+ +

 

+ +

# display cylinders

+ +

gg.createAndDisplayGO(id_face1)

+ +

gg.setDisplayMode(id_face1,1)

+ +

gg.createAndDisplayGO(id_face2)

+ +

gg.setDisplayMode(id_face2,1)

+ +

gg.createAndDisplayGO(id_prism1)

+ +

gg.setDisplayMode(id_prism1,1)

+ +

gg.createAndDisplayGO(id_prism2)

+ +

gg.setDisplayMode(id_prism2,1) +

+ +

Creation of a Revolution

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create a vertex and a vector

+ +

p1 = geompy.MakeVertex( +  10.,  10., +  10.)

+ +

p2 = geompy.MakeVertex( +  15.,  15., +  50.)

+ +

p3 = geompy.MakeVertex( +  40.,  40., +   0.)

+ +

 

+ +

#create vectors from two points

+ +

vector1 = geompy.MakeVector(p1, + p2)

+ +

vector2 = geompy.MakeVector(p1, + p3)

+ +

 

+ +

# create a vector from the given components

+ +

vector3 = geompy.MakeVectorDXDYDZ(-20., + -20., 100.)

+ +

 

+ +

# create a wire

+ +

wire = geompy.MakeWire([vector1, + vector2])

+ +

 

+ +

# create a revolution

+ +

revolution = geompy.MakeRevolution(wire, + vector3, 2.3)

+ +

 

+ +

# add objects in the study

+ +

id_vector3    = + geompy.addToStudy(vector3,"Axis")

+ +

id_wire       = + geompy.addToStudy(wire,"Wire")

+ +

id_revolution = geompy.addToStudy(revolution,"Revolution")

+ +

 

+ +

# display the vector, the wire and the revolution

+ +

gg.createAndDisplayGO(id_vector3)

+ +

gg.createAndDisplayGO(id_wire)

+ +

gg.createAndDisplayGO(id_revolution)

+ +

gg.setDisplayMode(id_revolution,1) +

+ +

Creation of a Filling

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

mindeg = 2

+ +

maxdeg = 5

+ +

tol3d   = + 0.0001

+ +

tol2d   = + 0.0001

+ +

nbiter = 5

+ +

 

+ +

# create a vertex and a vector

+ +

p1 = geompy.MakeVertex( +  -30.,  -30., +  50.)

+ +

p2 = geompy.MakeVertex( +  -60.,  -60., +  30.)

+ +

p3 = geompy.MakeVertex( +  -30.,  -30., +  10.)

+ +

 

+ +

# create an arc from three points

+ +

arc = geompy.MakeArc(p1, + p2, p3)

+ +

ShapeListCompound + = []

+ +

i = 0

+ +

while i <= 3 :

+ +

    S + = geompy.MakeTranslation(arc, i * 50., 0., 0.)

+ +

    ShapeListCompound.append(S)

+ +

    i + = i + 1

+ +

compound = geompy.MakeCompound(ShapeListCompound)

+ +

 

+ +

# create a filling

+ +

filling = geompy.MakeFilling(compound, + mindeg, maxdeg, tol3d, tol2d, nbiter)

+ +

 

+ +

# add objects in the study

+ +

id_compound = geompy.addToStudy(compound,"Compound")

+ +

id_filling = geompy.addToStudy(filling,"Filling")

+ +

 

+ +

# display the compound and the filling

+ +

gg.createAndDisplayGO(id_compound)

+ +

gg.createAndDisplayGO(id_filling)

+ +

gg.setDisplayMode(id_filling,1) +

+ +

 

+ +

Creation of a Pipe

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p0   = + geompy.MakeVertex(0.  , + 0.  , 0. +  )

+ +

px   = + geompy.MakeVertex(100., 0.  , + 0.  )

+ +

py   = + geompy.MakeVertex(0.  , + 100., 0.  )

+ +

pz   = + geompy.MakeVertex(0.  , + 0.  , 100.)

+ +

pxyz = geompy.MakeVertex(100., + 100., 100.)

+ +

 

+ +

# create a vector from two points

+ +

vxy = geompy.MakeVector(px, + py)

+ +

 

+ +

# create an arc from three points

+ +

arc = geompy.MakeArc(py, + pz, px)

+ +

 

+ +

# create a wire

+ +

wire = geompy.MakeWire([vxy, + arc])

+ +

 

+ +

# create an edge

+ +

edge = geompy.MakeEdge(p0, + pxyz)

+ +

 

+ +

# create a pipe

+ +

pipe = geompy.MakePipe(wire, + edge)

+ +

 

+ +

# add objects in the study

+ +

id_wire = geompy.addToStudy(wire,"Wire")

+ +

id_edge = geompy.addToStudy(edge,"Edge")

+ +

id_pipe = geompy.addToStudy(pipe,"Pipe")

+ +

 

+ +

# display the wire, the edge (path) and the pipe

+ +

gg.createAndDisplayGO(id_wire)

+ +

gg.createAndDisplayGO(id_edge)

+ +

gg.createAndDisplayGO(id_pipe)

+ +

gg.setDisplayMode(id_pipe,1) +

+ + + + diff --git a/doc/salome/gui/GEOM/compound.htm b/doc/salome/gui/GEOM/compound.htm index 245fc80ac..11465b4c7 100755 --- a/doc/salome/gui/GEOM/compound.htm +++ b/doc/salome/gui/GEOM/compound.htm @@ -1,138 +1,138 @@ - - - - - -Compound - - - - - - - - - - - - -

Compound

- -

To create - a Compound in the Main Menu select - New Entity - > Build - > Compound.

- -

 

- -

You can create a compound from a list of shells. -

- -

The - Result will be a GEOM_Object - (COMPOUND).

- -

 

- -

TUI Command: - geompy.MakeCompound(ListOfShape)

- -

Arguments: - Name + List of shapes.

- -

 

- -

- -

 

- -

Example:

- -

 

- -

- -

 

- -

Our TUI Scripts provide you with useful examples - of creation of Advanced Geometric - Objects.

- -

 

- -

 

- -

 

- -

 

- - - - + + + + + +Compound + + + + + + + + + + + + +

Compound

+ +

To create + a Compound in the Main Menu select + New Entity - > Build - > Compound.

+ +

 

+ +

You can create a compound from a list of shells. +

+ +

The + Result will be a GEOM_Object + (COMPOUND).

+ +

 

+ +

TUI Command: + geompy.MakeCompound(ListOfShape)

+ +

Arguments: + Name + List of shapes.

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of creation of Advanced Geometric + Objects.

+ +

 

+ +

 

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/cone.htm b/doc/salome/gui/GEOM/cone.htm index 7c41e1a56..8e0fec793 100755 --- a/doc/salome/gui/GEOM/cone.htm +++ b/doc/salome/gui/GEOM/cone.htm @@ -1,166 +1,166 @@ - - - - - -Cone - - - - - - - - - - - - -

 Cone

- -

To create a Cone - in the Main Menu select New Entity - > Primitives - > Cone

- -

 

- -

There are two algorithms for creation of a Cone. -

- -

The - Result of each operation will be a - GEOM_Object (SOLID).

- -

 

- -

Firstly, you can define a Cone - by the Base Point (the central - point of the cone base), the Axis, - the Height and the first and the - second Radiuses.

- -

TUI Command: geompy.MakeCone(Point, - Axis, Radius1, Radius2)

- -

Arguments: - Name + 1 vertex - + 1 vector (for direction) + 3 values (Radius of the base part, radius - of the upper part, height).

- -

 

- -

- -

 

- -

Secondly, you can define a Cone - with the center at the origin of coordinates by its Height - and Radiuses. The Axis - of the Cone will be collinear - to the OZ axis of the coordinate system.

- -

TUI Command: geompy.MakeConeR1R2H(Radius1, - Radius2, Height)

- -

Arguments: Name - + 3 values (Radius of the base part, radius of the upper part, height).

- -

- -

 

- -

Note: If both radiuses are non-zero, - the Cone will be truncated. If - the radiuses are equal, a Cylinder - will be created instead.

- -

 

- -

Example:

- -

 

- -

- -

 

- -

Our TUI Scripts provide you with useful examples - of creation of Primitives.

- -

 

- - - - + + + + + +Cone + + + + + + + + + + + + +

 Cone

+ +

To create a Cone + in the Main Menu select New Entity - > Primitives - > Cone

+ +

 

+ +

There are two algorithms for creation of a Cone. +

+ +

The + Result of each operation will be a + GEOM_Object (SOLID).

+ +

 

+ +

Firstly, you can define a Cone + by the Base Point (the central + point of the cone base), the Axis, + the Height and the first and the + second Radiuses.

+ +

TUI Command: geompy.MakeCone(Point, + Axis, Radius1, Radius2)

+ +

Arguments: + Name + 1 vertex + + 1 vector (for direction) + 3 values (Radius of the base part, radius + of the upper part, height).

+ +

 

+ +

+ +

 

+ +

Secondly, you can define a Cone + with the center at the origin of coordinates by its Height + and Radiuses. The Axis + of the Cone will be collinear + to the OZ axis of the coordinate system.

+ +

TUI Command: geompy.MakeConeR1R2H(Radius1, + Radius2, Height)

+ +

Arguments: Name + + 3 values (Radius of the base part, radius of the upper part, height).

+ +

+ +

 

+ +

Note: If both radiuses are non-zero, + the Cone will be truncated. If + the radiuses are equal, a Cylinder + will be created instead.

+ +

 

+ +

Example:

+ +

 

+ +

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of creation of Primitives.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/cshdat_robohelp.htm b/doc/salome/gui/GEOM/cshdat_robohelp.htm index 5a510432b..6ac8b7890 100755 --- a/doc/salome/gui/GEOM/cshdat_robohelp.htm +++ b/doc/salome/gui/GEOM/cshdat_robohelp.htm @@ -1,258 +1,258 @@ - - -Geometry Module Reference Manual - - - - - - - - - - - - - - - - - + + +Geometry Module Reference Manual + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/cshdat_webhelp.htm b/doc/salome/gui/GEOM/cshdat_webhelp.htm index 00606ec88..6b2c6fc86 100755 --- a/doc/salome/gui/GEOM/cshdat_webhelp.htm +++ b/doc/salome/gui/GEOM/cshdat_webhelp.htm @@ -1,251 +1,251 @@ - - -Geometry Module Reference Manual - - - - - - - - - - - - - - - - - + + +Geometry Module Reference Manual + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/curve.htm b/doc/salome/gui/GEOM/curve.htm index b14b7199c..2f3b21c6d 100755 --- a/doc/salome/gui/GEOM/curve.htm +++ b/doc/salome/gui/GEOM/curve.htm @@ -1,168 +1,168 @@ - - - - - -Curve - - - - - - - - - - - - -

 Curve

- -

To create a Curve in the Main Menu select New - Entity - > Basic - > Curve

- -

 

- -

There are three algorithms to create - a Curve in the 3D space. Each time you define it by - a list of Points through which the curve passes. The three Curve Construction menu choices correspond to three possible types - of curves: Polyline, Besier or B-spline (Interpolated).

- -

The Result of - each operation will be a GEOM_Object (edge).

- -

 

- -

TUI Commands: -

- - - -

ListOfShape is a list of points through which - the curve passes.

- -

Arguments: - Name + at least 2 points which will serve as nodes on the curve.

- -

 

- -

- -

 

- -

Examples:

- -

 

- -

Polyline -                                                                      Bezier -                                                                        B-Spline

- -

          

- -

 

- -

Our TUI Scripts provide you with useful examples - of creation of Basic - Geometric Objects.

- -

 

- -

 

- - - - + + + + + +Curve + + + + + + + + + + + + +

 Curve

+ +

To create a Curve in the Main Menu select New + Entity - > Basic - > Curve

+ +

 

+ +

There are three algorithms to create + a Curve in the 3D space. Each time you define it by + a list of Points through which the curve passes. The three Curve Construction menu choices correspond to three possible types + of curves: Polyline, Besier or B-spline (Interpolated).

+ +

The Result of + each operation will be a GEOM_Object (edge).

+ +

 

+ +

TUI Commands: +

+ + + +

ListOfShape is a list of points through which + the curve passes.

+ +

Arguments: + Name + at least 2 points which will serve as nodes on the curve.

+ +

 

+ +

+ +

 

+ +

Examples:

+ +

 

+ +

Polyline +                                                                      Bezier +                                                                        B-Spline

+ +

          

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of creation of Basic + Geometric Objects.

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/cut.htm b/doc/salome/gui/GEOM/cut.htm index f279d0fb1..ea377fa9f 100755 --- a/doc/salome/gui/GEOM/cut.htm +++ b/doc/salome/gui/GEOM/cut.htm @@ -1,144 +1,144 @@ - - - - - -Cut - - - - - - - - - - - - - -

Cut

- -

To produce - a Cut operation in the Main Menu - select Operations - > Boolean - > - Cut

- -

 

- -

This operation cuts a shape with another - one.

- -

The - Result will be a  GEOM_Object - (COMPOUND).

- -

Arguments: - Name + 2 shapes.

- -

 

- -

Dialog Box:

- -

 

- -

- -

 

- -

Example:

- -

 

- -

 

- -

Our TUI Scripts provide you with useful examples - of the use of Boolean Operations. -

- -

 

- - - - + + + + + +Cut + + + + + + + + + + + + + +

Cut

+ +

To produce + a Cut operation in the Main Menu + select Operations - > Boolean - > + Cut

+ +

 

+ +

This operation cuts a shape with another + one.

+ +

The + Result will be a  GEOM_Object + (COMPOUND).

+ +

Arguments: + Name + 2 shapes.

+ +

 

+ +

Dialog Box:

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of the use of Boolean Operations. +

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/cylinder.htm b/doc/salome/gui/GEOM/cylinder.htm index b8749b801..d2b7695f4 100755 --- a/doc/salome/gui/GEOM/cylinder.htm +++ b/doc/salome/gui/GEOM/cylinder.htm @@ -1,168 +1,168 @@ - - - - - -Cylinder - - - - - - - - - - - - - -

Cylinder

- -

To create a Cylinder - in the Main Menu select New Entity - > Primitives - > Cylinder

- -

 

- -

There are 2 algorithms for creation of a Cylinder. -

- -

The - Result of each operation will be a - GEOM_Object (SOLID).

- -

 

- -

Firstly, you can define a Cylinder - by the Base Point (the central - point of the cylinder base), the Vector - (the axis of the cylinder), and its dimensions: the Radius and the Height.

- -

TUI Command: geompy.MakeCylinder(Point, - Axis, Radius, Height),

- -

Arguments: -  Name - + 1 vertex + 1 vector + 2 values (Dimensions: radius and height).

- -

- -

 

- -

Secondly, you can define a - Cylinder by the given radius - and the height at  the - origin of coordinate system. The axis of the cylinder will be collinear - to the OZ axis of the coordinate system.

- -

TUI Command: geompy.MakeCylinderRH(Radius, - Height)

- -

Arguments: Name + 2 values - (Dimensions at origin: radius and height).

- -

 

- -

- -

  

- -

Example:

- -

 

- -

- -

 

- -

Our TUI Scripts provide you with useful examples - of creation of Primitives.

- -

 

- - - - + + + + + +Cylinder + + + + + + + + + + + + + +

Cylinder

+ +

To create a Cylinder + in the Main Menu select New Entity - > Primitives - > Cylinder

+ +

 

+ +

There are 2 algorithms for creation of a Cylinder. +

+ +

The + Result of each operation will be a + GEOM_Object (SOLID).

+ +

 

+ +

Firstly, you can define a Cylinder + by the Base Point (the central + point of the cylinder base), the Vector + (the axis of the cylinder), and its dimensions: the Radius and the Height.

+ +

TUI Command: geompy.MakeCylinder(Point, + Axis, Radius, Height),

+ +

Arguments: +  Name + + 1 vertex + 1 vector + 2 values (Dimensions: radius and height).

+ +

+ +

 

+ +

Secondly, you can define a + Cylinder by the given radius + and the height at  the + origin of coordinate system. The axis of the cylinder will be collinear + to the OZ axis of the coordinate system.

+ +

TUI Command: geompy.MakeCylinderRH(Radius, + Height)

+ +

Arguments: Name + 2 values + (Dimensions at origin: radius and height).

+ +

 

+ +

+ +

  

+ +

Example:

+ +

 

+ +

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of creation of Primitives.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/default.css b/doc/salome/gui/GEOM/default.css index de2e5d955..1f8d6d772 100755 --- a/doc/salome/gui/GEOM/default.css +++ b/doc/salome/gui/GEOM/default.css @@ -1,101 +1,101 @@ -BODY { - background-color:#ffffff; - font-family:"Times New Roman" , serif; } -H1 { - font-weight:bold; - font-size:24.0pt; } -LI.kadov-H1 { - font-weight:bold; - font-size:24.0pt; } -H2 { - font-weight:bold; - font-size:18.0pt; } -LI.kadov-H2 { - font-weight:bold; - font-size:18.0pt; } -H3 { - font-weight:bold; - font-size:14.0pt; } -LI.kadov-H3 { - font-weight:bold; - font-size:14.0pt; } -H4 { - font-weight:bold; - font-size:12.0pt; } -LI.kadov-H4 { - font-weight:bold; - font-size:12.0pt; } -H5 { - font-weight:bold; - font-size:10.0pt; } -LI.kadov-H5 { - font-weight:bold; - font-size:10.0pt; } -H6 { - font-weight:bold; - font-size:8.0pt; } -LI.kadov-H6 { - font-weight:bold; - font-size:8.0pt; } -P { - font-size:12.0pt; - margin-top:0pt; - margin-bottom:0pt; } -LI.kadov-P { - font-size:12.0pt; } -A.expandspot { - color:#008000; - cursor:hand; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -SPAN.expandtext { - font-style:italic; - font-weight:normal; - color:#ff0000; } -A.dropspot { - cursor:hand; - color:#008000; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -A.glossterm { - color:#800000; - cursor:hand; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -SPAN.glosstext { - font-style:italic; - font-weight:normal; - color:#0000ff; } -OL { - margin-top:0px; - margin-bottom:0px; } -UL { - margin-top:0px; - margin-bottom:0px; } -A:active { } -A:hover { - x-text-underline:Off; - text-decoration:none; } -A:link { - x-text-underline:Off; - text-decoration:none; } -A:visited { - x-text-underline:Off; - text-decoration:none; } -P.TODO { - font-weight:normal; - font-style:italic; - font-family:"Arial Black" , sans-serif; } -LI.kadov-P-CTODO { - font-weight:normal; - font-style:italic; - font-family:"Arial Black" , sans-serif; } +BODY { + background-color:#ffffff; + font-family:"Times New Roman" , serif; } +H1 { + font-weight:bold; + font-size:24.0pt; } +LI.kadov-H1 { + font-weight:bold; + font-size:24.0pt; } +H2 { + font-weight:bold; + font-size:18.0pt; } +LI.kadov-H2 { + font-weight:bold; + font-size:18.0pt; } +H3 { + font-weight:bold; + font-size:14.0pt; } +LI.kadov-H3 { + font-weight:bold; + font-size:14.0pt; } +H4 { + font-weight:bold; + font-size:12.0pt; } +LI.kadov-H4 { + font-weight:bold; + font-size:12.0pt; } +H5 { + font-weight:bold; + font-size:10.0pt; } +LI.kadov-H5 { + font-weight:bold; + font-size:10.0pt; } +H6 { + font-weight:bold; + font-size:8.0pt; } +LI.kadov-H6 { + font-weight:bold; + font-size:8.0pt; } +P { + font-size:12.0pt; + margin-top:0pt; + margin-bottom:0pt; } +LI.kadov-P { + font-size:12.0pt; } +A.expandspot { + color:#008000; + cursor:hand; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +SPAN.expandtext { + font-style:italic; + font-weight:normal; + color:#ff0000; } +A.dropspot { + cursor:hand; + color:#008000; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +A.glossterm { + color:#800000; + cursor:hand; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +SPAN.glosstext { + font-style:italic; + font-weight:normal; + color:#0000ff; } +OL { + margin-top:0px; + margin-bottom:0px; } +UL { + margin-top:0px; + margin-bottom:0px; } +A:active { } +A:hover { + x-text-underline:Off; + text-decoration:none; } +A:link { + x-text-underline:Off; + text-decoration:none; } +A:visited { + x-text-underline:Off; + text-decoration:none; } +P.TODO { + font-weight:normal; + font-style:italic; + font-family:"Arial Black" , sans-serif; } +LI.kadov-P-CTODO { + font-weight:normal; + font-style:italic; + font-family:"Arial Black" , sans-serif; } diff --git a/doc/salome/gui/GEOM/default_ns.css b/doc/salome/gui/GEOM/default_ns.css index 3eeb3c496..46e8b0018 100755 --- a/doc/salome/gui/GEOM/default_ns.css +++ b/doc/salome/gui/GEOM/default_ns.css @@ -1,118 +1,118 @@ -BODY { - background-color:#ffffff; - font-family:"Times New Roman" , serif; } -H1 { - font-weight:bold; - font-size:24.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H1 { - font-weight:bold; - font-size:24.0pt; } -H2 { - font-weight:bold; - font-size:18.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H2 { - font-weight:bold; - font-size:18.0pt; } -H3 { - font-weight:bold; - font-size:14.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H3 { - font-weight:bold; - font-size:14.0pt; } -H4 { - font-weight:bold; - font-size:12.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H4 { - font-weight:bold; - font-size:12.0pt; } -H5 { - font-weight:bold; - font-size:10.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H5 { - font-weight:bold; - font-size:10.0pt; } -H6 { - font-weight:bold; - font-size:8.0pt; - font-family:"Times New Roman" , serif; } -LI.kadov-H6 { - font-weight:bold; - font-size:8.0pt; } -P { - font-size:12.0pt; - margin-top:1pt; - margin-bottom:1pt; - font-family:"Times New Roman" , serif; } -LI.kadov-P { - font-size:12.0pt; } -A.expandspot { - color:#008000; - cursor:hand; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -SPAN.expandtext { - font-style:italic; - font-weight:normal; - color:#ff0000; } -A.dropspot { - cursor:hand; - color:#008000; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -A.glossterm { - color:#800000; - cursor:hand; - font-style:italic; - x-text-underline:off; - x-text-overline:off; - x-text-line-through:off; - text-decoration:none none none; } -SPAN.glosstext { - font-style:italic; - font-weight:normal; - color:#0000ff; } -OL { - margin-top:0px; - margin-bottom:0px; - font-family:"Times New Roman" , serif; } -UL { - margin-top:0px; - margin-bottom:0px; - font-family:"Times New Roman" , serif; } -A:active { } -A:hover { - x-text-underline:Off; - text-decoration:none; } -A:link { - x-text-underline:Off; - text-decoration:none; } -A:visited { - x-text-underline:Off; - text-decoration:none; } -P.TODO { - font-weight:normal; - font-style:italic; - font-family:"Arial Black" , sans-serif; } -LI.kadov-P-CTODO { - font-weight:normal; - font-style:italic; - font-family:"Arial Black" , sans-serif; } -ol ol { - margin-top:1px; } -ol ul { - margin-top:1px; } -ul ul { - margin-top:1px; } -ul ol { - margin-top:1px; } +BODY { + background-color:#ffffff; + font-family:"Times New Roman" , serif; } +H1 { + font-weight:bold; + font-size:24.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H1 { + font-weight:bold; + font-size:24.0pt; } +H2 { + font-weight:bold; + font-size:18.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H2 { + font-weight:bold; + font-size:18.0pt; } +H3 { + font-weight:bold; + font-size:14.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H3 { + font-weight:bold; + font-size:14.0pt; } +H4 { + font-weight:bold; + font-size:12.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H4 { + font-weight:bold; + font-size:12.0pt; } +H5 { + font-weight:bold; + font-size:10.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H5 { + font-weight:bold; + font-size:10.0pt; } +H6 { + font-weight:bold; + font-size:8.0pt; + font-family:"Times New Roman" , serif; } +LI.kadov-H6 { + font-weight:bold; + font-size:8.0pt; } +P { + font-size:12.0pt; + margin-top:1pt; + margin-bottom:1pt; + font-family:"Times New Roman" , serif; } +LI.kadov-P { + font-size:12.0pt; } +A.expandspot { + color:#008000; + cursor:hand; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +SPAN.expandtext { + font-style:italic; + font-weight:normal; + color:#ff0000; } +A.dropspot { + cursor:hand; + color:#008000; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +A.glossterm { + color:#800000; + cursor:hand; + font-style:italic; + x-text-underline:off; + x-text-overline:off; + x-text-line-through:off; + text-decoration:none none none; } +SPAN.glosstext { + font-style:italic; + font-weight:normal; + color:#0000ff; } +OL { + margin-top:0px; + margin-bottom:0px; + font-family:"Times New Roman" , serif; } +UL { + margin-top:0px; + margin-bottom:0px; + font-family:"Times New Roman" , serif; } +A:active { } +A:hover { + x-text-underline:Off; + text-decoration:none; } +A:link { + x-text-underline:Off; + text-decoration:none; } +A:visited { + x-text-underline:Off; + text-decoration:none; } +P.TODO { + font-weight:normal; + font-style:italic; + font-family:"Arial Black" , sans-serif; } +LI.kadov-P-CTODO { + font-weight:normal; + font-style:italic; + font-family:"Arial Black" , sans-serif; } +ol ol { + margin-top:1px; } +ol ul { + margin-top:1px; } +ul ul { + margin-top:1px; } +ul ol { + margin-top:1px; } diff --git a/doc/salome/gui/GEOM/edge.htm b/doc/salome/gui/GEOM/edge.htm index be2c13039..75696858f 100755 --- a/doc/salome/gui/GEOM/edge.htm +++ b/doc/salome/gui/GEOM/edge.htm @@ -1,135 +1,135 @@ - - - - - -Edge - - - - - - - - - - - - -

Edge

- -

To - create an Edge in the Main - Menu select New Entity - > - Build - > Edge

- -

 

- -

You can create an Edge - from two points (Point1 and Point2), being the first and the last - vertices of the edge.

- -

The - Result  will - be a GEOM_Object (EDGE).

- -

TUI Command: - geompy.MakeEdge(Vertex1, Vertex2), - where Vertex1 and Vertex2 are correspondingly the first and the last vertex - of the edge.

- -

Arguments: - Name + 2 vertices.

- -

 

- -

- -

 

- -

Example:

- -

 

- -

- -

 

- -

Our TUI Scripts provide you with useful examples - of creation of Advanced Geometric - Objects.

- -

 

- - - - + + + + + +Edge + + + + + + + + + + + + +

Edge

+ +

To + create an Edge in the Main + Menu select New Entity - > + Build - > Edge

+ +

 

+ +

You can create an Edge + from two points (Point1 and Point2), being the first and the last + vertices of the edge.

+ +

The + Result  will + be a GEOM_Object (EDGE).

+ +

TUI Command: + geompy.MakeEdge(Vertex1, Vertex2), + where Vertex1 and Vertex2 are correspondingly the first and the last vertex + of the edge.

+ +

Arguments: + Name + 2 vertices.

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of creation of Advanced Geometric + Objects.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/ehelp.xml b/doc/salome/gui/GEOM/ehelp.xml index 190aa2369..5fbcc543d 100755 --- a/doc/salome/gui/GEOM/ehelp.xml +++ b/doc/salome/gui/GEOM/ehelp.xml @@ -1,10 +1,10 @@ - - - - - - - - WebSearch - + + + + + + + + WebSearch + \ No newline at end of file diff --git a/doc/salome/gui/GEOM/ehlpdhtm.js b/doc/salome/gui/GEOM/ehlpdhtm.js index 6cfd2e463..7bcb24993 100755 --- a/doc/salome/gui/GEOM/ehlpdhtm.js +++ b/doc/salome/gui/GEOM/ehlpdhtm.js @@ -1,4239 +1,4239 @@ -// eHelp® Corporation Dynamic HTML JavaScript -// Copyright© 1998-2003 eHelp® Corporation.All rights reserved. -// Version=4.82 - -// Warning:Do not modify this file.It is generated by RoboHELP® and changes will be overwritten. - -//// Segment Begin -- (JavaScript 1.0) - -/// Section Begin - General and relative topics(JavaScript 1.0) - -//{{HH_SYMBOL_SECTION -var HH_ChmFilename = ""; -var HH_WindowName = ""; -var HH_GlossaryFont = ""; -var HH_Glossary = ""; -var HH_Avenue = ""; -var HH_ActiveX = false; -//}}HH_SYMBOL_SECTION - -//Begin to support previous generic parameters -//Get the information about the browser. -var gstrBsAgent = navigator.userAgent.toLowerCase(); -var gnBsVer = parseInt(navigator.appVersion); - -var gbBsOpera = (gstrBsAgent.indexOf('opera') != -1); -var gbBsKonqueror = (gstrBsAgent.indexOf('konqueror') != -1); -var gbBsSafari = (gstrBsAgent.indexOf('safari') != -1); -var gbBsIE = (gstrBsAgent.indexOf('msie') != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari; -var gbBsNS = (gstrBsAgent.indexOf('mozilla') != -1) && ((gstrBsAgent.indexOf('spoofer') == -1) && (gstrBsAgent.indexOf('compatible') == -1)) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari; - -var gbBsMac = (gstrBsAgent.indexOf('mac') != -1); -var gbBsWindows = ((gstrBsAgent.indexOf('win') != -1) || (gstrBsAgent.indexOf('16bit') != -1)); -var gbBsSunOS = (gstrBsAgent.indexOf("sunos") != -1); - -var gbBsIE3Before = ((gbBsIE) && (gnBsVer <= 2)); -var gbBsNS3Before = ((gbBsNS) && (gnBsVer <= 3)); - -var gbBsNS2 = ((gbBsNS) && (gnBsVer <= 2)); -var gbBsNS3 = ((gbBsNS) && (gnBsVer == 3)); -var gbBsIE300301 = ((gbBsIE) && (gnBsVer == 2) && ((gstrBsAgent.indexOf("3.00") != -1)||(gstrBsAgent.indexOf("3.0a") != -1)||(gstrBsAgent.indexOf("3.0b")!=-1)||(gstrBsAgent.indexOf("3.01")!=-1))); -var gbBsIE302 = ((gbBsIE) && (gnBsVer == 2) && (gstrBsAgent.indexOf("3.02") != -1)); - -var gbBsNS4 = ((gbBsNS) && (gnBsVer >= 4)); -var gbBsNS6 = ((gbBsNS) && (gnBsVer >= 5)); -var gbBsNS7 = false; - -var gbBsIE4 = ((gbBsIE) && (gnBsVer >= 4)); -var gbBsIE5 = false; -var gbBsIE55 = false; - -var gbBsOpera6 = false; -var gbBsOpera7 = false; - -var gbBsKonqueror3 = false; - - - -gbBsIE = (navigator.appName.indexOf("Microsoft") != -1) && !gbBsOpera && !gbBsKonqueror && !gbBsSafari;; -if (gbBsIE) -{ - if (parseInt(navigator.appVersion) >= 4) { - gbBsIE4 = true; - if (gbBsIE4) { - var nPos = gstrBsAgent.indexOf("msie"); - var strIEversion = gstrBsAgent.substring(nPos + 5); - var nVersion = parseFloat(strIEversion); - if (nVersion >= 5) - gbBsIE5 = true; - if (nVersion >= 5.5) - gbBsIE55 = true; - } - } -} -if (gbBsNS6) -{ - var nPos=gstrBsAgent.indexOf("gecko"); - if(nPos!=-1) - { - var nPos2=gstrBsAgent.indexOf("/", nPos); - if(nPos2!=-1) - { - var nVersion=parseFloat(gstrBsAgent.substring(nPos2+1)); - if (nVersion>=20020823) - gbBsNS7=true; - } - } -} -if (gbBsOpera) -{ - var nPos = gstrBsAgent.indexOf("opera"); - if(nPos!=-1) - { - var nVersion = parseFloat(gstrBsAgent.substring(nPos+6)); - if (nVersion >= 6) - { - gbBsOpera6=true; - if (nVersion >=7) - gbBsOpera7=true; - } - } -} -if (gbBsKonqueror) -{ - var nPos = gstrBsAgent.indexOf("konqueror"); - if(nPos!=-1) - { - var nVersion = parseFloat(gstrBsAgent.substring(nPos+10)); - if (nVersion >= 3) - { - gbBsKonqueror3=true; - } - } -} - -function insertAdjacentHTML(obj, where, htmlStr) -{ - if (gbBsIE || gbBsOpera7) - { - obj.insertAdjacentHTML(where, htmlStr); - } - else if (gbBsNS6 || gbBsSafari) - { - var r = obj.ownerDocument.createRange(); - r.setStartBefore(obj); - var parsedHTML = r.createContextualFragment(htmlStr); - - switch (where){ - case 'beforeBegin': - obj.parentNode.insertBefore(parsedHTML,obj); - break; - case 'afterBegin': - obj.insertBefore(parsedHTML,obj.firstChild); - break; - case 'beforeEnd': - obj.appendChild(parsedHTML); - break; - case 'afterEnd': - if (obj.nextSibling){ - obj.parentNode.insertBefore(parsedHTML,obj.nextSibling); - } else { - obj.parentNode.appendChild(parsedHTML); - } - break; - } - } -} - -// Utilities functions. -function BsscHasExtJs() -{ - if( gbBsIE3Before || gbBsNS3Before) - return false; - return true; -} - -// Register event handler -var gBsOnLoads = new Array(); // An array holds all the onload event handler. -var gBsOnClicks = new Array(); // An array holds all the onClick event handler. -var gBsOnUnLoads = new Array(); // An array holds all the OnUnLoad event handler. -var gBsOnMouseOvers = new Array(); // An array holds all the OnMouseOver event handler. -var gBsOnMouseOuts = new Array(); // An array holds all the OnMouseOut event handler. - -var gbOrignalOnMouseDown = null; - -function BsscRegisterOnLoad(funcHandler) -{ - var nLength = gBsOnLoads.length; - gBsOnLoads[nLength] = funcHandler; -} - -function BsscRegisterOnClick(funcHandler) -{ - var nLength = gBsOnClicks.length; - gBsOnClicks[nLength] = funcHandler; -} - -function BsscRegisterOnUnLoad(funcHandler) -{ - var nLength = gBsOnUnLoads.length; - gBsOnUnLoads[nLength] = funcHandler; -} - -function BsscRegisterOnMouseOver(funcHandler) -{ - var nLength = gBsOnMouseOvers.length; - gBsOnMouseOvers[nLength] = funcHandler; -} - -function BsscRegisterOnMouseOut(funcHandler) -{ - var nLength = gBsOnMouseOuts.length; - gBsOnMouseOuts[nLength] = funcHandler; -} - -function BsGeneralOnLoad() -{ - if (!gbBsIE4 && !gbBsNS4) - return; - - // Make everything visible in navigator - if (gbBsNS4 && !gbBsNS6) { - // Make some special effects items visible - for (var iLayer = 0; iLayer < document.layers.length; iLayer++) { - document.layers[iLayer].visibility = "show"; - document.layers[iLayer].left = 0; - } - } -} - -// If resize the netscape browser, need to reload it. -function BsReDo() -{ - if (innerWidth != origWidth || innerHeight != origHeight) - location.reload(); -} -// End of the local functions. - -// The following functions are used by the html files. -function BSSCOnLoad() -{ - if( !BsscHasExtJs() ) - return; - for (var nElement = gBsOnLoads.length - 1; nElement >= 0; nElement--) - gBsOnLoads[nElement](); -} - -function BSSCOnClick() -{ - if (!BsscHasExtJs()) return; - - for (var nElement = gBsOnClicks.length - 1; nElement >= 0; nElement--) - gBsOnClicks[nElement](); -} - -function BSSCOnUnload() -{ - if (!BsscHasExtJs()) return; - for (var nElement = gBsOnUnLoads.length - 1; nElement >= 0; nElement--) - gBsOnUnLoads[nElement](); -} - -function BSSCOnMouseOver() -{ - if (!BsscHasExtJs()) return; - for (var nElement = gBsOnMouseOvers.length - 1; nElement >= 0; nElement--) - gBsOnMouseOvers[nElement](); -} - -function BSSCOnMouseOut() -{ - if (!BsscHasExtJs()) return; - for (var nElement = gBsOnMouseOuts.length - 1; nElement >= 0; nElement--) - { - gBsOnMouseOuts[nElement](); - } -} -// End of invocation of the event handle functions. - -// Add the GereralOnLoad to the onload array. -if (typeof(BsscRegisterOnLoad) != "undefined") -{ - BsscRegisterOnLoad(BsGeneralOnLoad); -} -if (gbBsNS4&&!gbBsNS6) { - origWidth = innerWidth; - origHeight = innerHeight; - onresize = BsReDo; -} -//End to support previous generic parameters - -//Begin to support previous HHActiveX invoking -function BsHHActivateComponents() -{ - if( HH_ActiveX && (HH_ChmFilename != "") && ((self == top) || (self == top.frames[0]))) - { - var objBody = getElementsByTag(document,"BODY")[0]; - if( typeof(objBody) == "object" ) - { - insertAdjacentHTML(objBody, "beforeEnd", ''); - if (HHComponentActivator.object) - HHComponentActivator.Activate(HH_ChmFilename, HH_WindowName, HH_GlossaryFont, HH_Glossary, HH_Avenue); - } - } -} - -function BsHHActivXOnLoad() -{ - if( gbBsIE4 ) - BsHHActivateComponents(); -} - -if( typeof(BsscRegisterOnLoad) != "undefined" ) -{ - BsscRegisterOnLoad(BsHHActivXOnLoad); -} -//End to support previous HHActiveX invoking - -//Begin to support previous relative topics -//If webHelp needs Related Topics DHTMLcode, it's supposed to add it here -var gbPopupMenuTimeoutExpired = false; -var gbInPopupMenu = false; -var gbPopupMenuTopicList = null; -var gOlddocumentClick = null; - -////////////////////////////////////////////////////////////////////////////////////////// -// -// Popup Menu code -// -////////////////////////////////////////////////////////////////////////////////////////// - -var g_bIsPopupMenuInit = false; -function _WritePopupMenuLayer() -{ - if (!g_bIsPopupMenuInit) - { - if (gbBsNS4&&!gbBsNS6) { -//Do not try to write ininle styles for NS! NS can not handle it and will not stop downloading the html page... - document.write("
"); - } else{ - document.write(""); - if (!(gbBsNS4&&!gbBsNS6)) { - document.write(""); - } - } - g_bIsPopupMenuInit = true; - } -} - -//Seek for the bsscright frame -function _SeekFrameByName( cRoot, strName ) -{ - if( cRoot == null ) return null; - if( cRoot.frames == null ) return null; - if( cRoot.frames[strName] != null ) return cRoot.frames[strName]; - for (var i=0; i'; - } else { - strMenu += '' + gbPopupMenuTopicList[fn_arguments[i]].strTitle + ''; - } - strMenu += ''; - - if (isNaN(fn_arguments[i]) || (gbPopupMenuTopicList == null)) { - i += 2; - } else { - i += 1; - } - } - strMenu += ""; - - if (gbBsMac) { - // totally hack. because ie5 in mac need something. is one of them. mac is mad. - strMenu +="
"; - } - - var layerPopup = null; - var stylePopup = null; - var nEventX = 0; - var nEventY = 0; - var nWindowWidth = 0; - if (gbBsIE4 || gbBsOpera7) { - - layerPopup = getElement("PopupMenu"); - layerPopup.innerHTML = strMenu; - stylePopup = layerPopup.style; - - _BSPSGetClientSize(); - - // Get the position of the item causing the event (relative to its parent) - nEventX = window.event.clientX; - nEventY = window.event.clientY; - - if (nEventY + layerPopup.scrollHeight + 10 < gBsClientHeight) { - nEventY += document.body.scrollTop + 10; - } else { - nEventY = (document.body.scrollTop + gBsClientHeight) - layerPopup.scrollHeight - 20; - } - stylePopup.top = nEventY; - - var nPopupWidth = layerPopup.scrollWidth; - if (gbBsMac) { - nPopupWidth = 80; // we have no idea how to get the dynamic width of the popup. - } - if (nEventX + nPopupWidth + 20 > gBsClientWidth) { - if (gBsClientWidth - nPopupWidth < 5) { - stylePopup.left = 5; - } else { - stylePopup.left = gBsClientWidth - nPopupWidth - 5; - } - } else { - stylePopup.left = nEventX + document.body.scrollLeft + 20; - } - - stylePopup.visibility = "visible"; - if (!gOlddocumentClick && document.onclick) - gOlddocumentClick = document.onclick; - document.onclick = PopupMenu_HandleClick; - - } else if (gbBsNS6 || gbBsKonqueror3||gbBsSafari) { - layerPopup = getElement("PopupMenu"); - layerPopup.style.visibility = "hidden"; - - if (gbBsNS6) - { - var e = fn_arguments[0]; - nEventX = e.pageX; - nEventY = e.pageY; - } - else - { - nEventX = window.event.clientX; - nEventY = window.event.clientY; - } - _BSPSGetClientSize(); - layerPopup.innerHTML = strMenu; - - if (nEventY + layerPopup.offsetHeight + 20 < window.pageYOffset + gBsClientHeight) { - nEventY += 20; - } else { - nEventY = gBsClientHeight + window.pageYOffset - layerPopup.offsetHeight - 20; - } - - if (nEventX + layerPopup.offsetWidth + 20 > gBsClientWidth + window.pageXOffset) { - if (gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth < 20) { - nEventX = 5; - } else { - nEventX = gBsClientWidth + window.pageXOffset - layerPopup.offsetWidth - 20; - } - } else { - nEventX += 20; - } - layerPopup.style.top = nEventY; - layerPopup.style.left = nEventX; - // set again to avoid the stupid frash in netscape 6. - layerPopup.innerHTML = strMenu; - layerPopup.style.visibility = "visible"; - //window.captureEvents(Event.MOUSEDOWN); - if (!gOlddocumentClick && document.onclick) - gOlddocumentClick = document.onclick; - window.onclick = PopupMenu_HandleClick; - } - else if (gbBsNS4) { - layerPopup = document.layers.PopupMenu; - layerPopup.visibility = "hide"; - stylePopup = layerPopup.document; - stylePopup.write(strMenu); - stylePopup.close(); - var e = fn_arguments[0]; - nEventX = e.pageX; - nEventY = e.pageY; - _BSPSGetClientSize(); - if (nEventY + layerPopup.clip.height + 20 < window.pageYOffset + gBsClientHeight) { - nEventY += 20; - } else { - nEventY = gBsClientHeight + window.pageYOffset- layerPopup.clip.height - 20; - } - layerPopup.top = nEventY; - - if (nEventX + layerPopup.clip.width + 20 > gBsClientWidth + window.pageXOffset) { - if (gBsClientWidth + window.pageXOffset - layerPopup.clip.width < 20) { - nEventX = 5; - } else { - nEventX = gBsClientWidth + window.pageXOffset - layerPopup.clip.width - 20; - } - } else { - nEventX += 20; - } - - layerPopup.left = nEventX; - - layerPopup.visibility = "show"; - - window.captureEvents(Event.MOUSEDOWN); - if (!gOlddocumentClick && document.onmousedown) - gOlddocumentClick = document.onmousedown; - window.onmousedown = PopupMenu_HandleClick; - } - - window.gbInPopupMenu = true; - window.gbPopupMenuTimeoutExpired = false; - setTimeout("PopupMenu_Timeout();", 100); - return false; -} - -function PopupMenu_Timeout() -{ - window.gbPopupMenuTimeoutExpired = true; -} - -function PopupMenu_Over(e) -{ - if (gbBsIE4||gbBsOpera7) - e.srcElement.className = "PopupOver"; - else if (gbBsNS6) - e.target.parentNode.className = "PopupOver"; - return; -} - -function PopupMenu_Out(e) -{ - if (gbBsIE4||gbBsOpera7) - e.srcElement.className = "PopupNotOver"; - else if (gbBsNS6) - e.target.parentNode.className = "PopupNotOver"; - return; -} - -function PopupMenu_HandleClick(e) -{ - if (window.gbPopupMenuTimeoutExpired) { - window.gbInPopupMenu = false; - if (gbBsNS4 && !gbBsNS6) { - window.releaseEvents(Event.MOUSEDOWN); - } - - var layerPopup = null; - if (gbBsNS4&&!gbBsNS6) { - layerPopup = document.layers.PopupMenu; - layerPopup.visibility = "hide"; - } else { - layerPopup = getElement("PopupMenu"); - layerPopup.style.visibility = "hidden"; - } - - if (gOlddocumentClick) - { - if (gbBsNS4 && !gbBsNS6) - document.onmousedown = gOlddocumentClick; - else - document.onclick = gOlddocumentClick; - } - } - return; -} - -function BSSCPopup_ClickMac() -{ - if ((!DHTMLPopupSupport()) && (gbBsIE4 || gbBsOpera7)) - { - var bClickOnAnchor = false; - var el; - if ((window.event != null) && - (window.event.srcElement != null)) - { - el = window.event.srcElement; - while (el != null) - { - if ((el.tagName == "A") || (el.tagName == "AREA")) { - bClickOnAnchor = true; - break; - } - if (el.tagName == "BODY") { - break; - } - el = getParentNode(el); - } - } - if (BSSCPopup_IsPopup()) - { - if (!bClickOnAnchor) { - parent.window.gPopupWindow = null; - self.close(); - } - } - else - { - bClosePopupWindow = true; - if ((bClickOnAnchor) && - (el.href) && - ((el.href.indexOf("javascript:BSSCPopup") != -1) || (el.href.indexOf("javascript:null") != -1) || (el.href.indexOf("javascript:void(0)") != -1))) - { - bClosePopupWindow = false; - } - if (bClosePopupWindow) - { - if (window.gPopupWindow != null && !window.gPopupWindow.closed ) - { - window.gPopupWindow.close(); - } - } - } - } -} - -function BsPopupOnClick() -{ - if (!gbBsIE4 && !gbBsOpera7) - return; - - BSSCPopup_ClickMac(); -} - -function _BSSCOnError(message) -{ - if(-1 != message.indexOf("denied") - || -1 != message.indexOf("Object required")) - return true; -} - -//End to support previous relative topics - -/// Section End - General and relative topics (JavaScript 1.0) - -/// Section Begin - Popup (JavaScript 1.0) -//Begin to support previous popup functions - -//variables used to isolate the browser type -var gBsStyVisShow = null; -var gBsStyVisHide = null; -var gBsClientWidth = 640; -var gBsClientHeight = 480; - -// here is the varible for judge popup windows size. these parameter is for IE5.0, it may need adjust for others. -var gBRateH_W = 0.618; // 1.618 Golden cut. -var gBMaxXOfParent = 0.8; -var gBMaxYOfParent = 0.8; -var gBscrollHeight = 16; -var gBscrollWidth = 16; -var gBpermitXDelta = 3; -var gBpermitYDelta = 3; - - -var arrayPopupURL = new Array(); -var arrayAbsPopupURL = new Array(); - -var arrayDirty = new Array(); - -function setAbsPopupURL(nIndex, strURL) -{ - arrayAbsPopupURL[nIndex] = strURL; -} - -function getAbsPopupURL(nIndex) -{ - if (nIndex == -1 || arrayAbsPopupURL.length <= nIndex) return null; - else - return arrayAbsPopupURL[nIndex]; -} - -function getPopupURL(nIndex) -{ - if (nIndex == -1 || arrayPopupURL.length <= nIndex) return null; - else - return arrayPopupURL[nIndex]; -} - -function getPopupID(nIndex) -{ - return gstrPopupID + nIndex; -} - -function getPopupShadowID(nIndex) -{ - return gstrPopupShadowID + nIndex; -} - -function getPopupTopicID(nIndex) -{ - return gstrPopupTopicID + nIndex; -} - -function getPopupIFrameID(nIndex) -{ - return gstrPopupIFrameID + nIndex; -} - -function getPopupIFrameName(nIndex) -{ - return gstrPopupIFrameName + nIndex; -} - - -function getPopupTopicStyle(nIndex) -{ - return getElement(getPopupTopicID(nIndex)).style; -} - -function getPopupShadowStyle(nIndex) -{ - return getElement(getPopupShadowID(nIndex)).style; -} - -function getPopupIFrame(nIndex) -{ - if (gbBsNS6) - return eval("window.frames['" + getPopupIFrameName(nIndex) + "']"); - else - return eval("document.frames['" + getPopupIFrameName(nIndex) + "']"); -} - -function getPopupDivStyle(nIndex) -{ - return getElement(getPopupID(nIndex)).style; -} - -function getPopupIFrameStyle(nIndex) -{ - return getElement(getPopupIFrameID(nIndex)).style; -} - - -function findDiv(strURL) -{ - for (var i = 0; i < arrayPopupURL.length; i ++ ) { - if (arrayPopupURL[i] == strURL) { - return i; - } - } - return -1; -} - -var gnToken = -1; -function takeToken() -{ - gnToken ++; - if (gnToken > 10000) gnToken = 0; - return gnToken; -} - -function IsValidToken(nToken) -{ - return (gnToken == nToken); -} - -function addDiv(strURL) -{ - for (var i = 0; i < arrayPopupURL.length; i ++) { - if (arrayPopupURL[i] == null) { - arrayPopupURL[i] = strURL; - return i; - } - } - arrayPopupURL[i] = strURL; - arrayDirty[i] = true; - return i; -} - -function setDirty() -{ - for (var i = 0; i < arrayPopupURL.length; i ++ ) - arrayDirty[i] = true; -} - -function IsDirty(nIndex) -{ - if (nIndex == -1) - return true; - else - if (arrayDirty.length > nIndex) - return arrayDirty[nIndex]; - else - return true; -} - -function hideAll() -{ - for (var i = 0; i < arrayPopupURL.length; i ++ ) - { - getPopupDivStyle(i).visibility = gBsStyVisHide; - getPopupIFrameStyle(i).visibility = gBsStyVisHide; - } -} - -function getCurrentPopupIFrame() -{ - for (var i = 0; i < arrayPopupURL.length; i ++) - if (getPopupDivStyle(i).visibility == gBsStyVisShow) - return getPopupIFrame(i); - return null; -} - -function setClear(nIndex) -{ - if (nIndex != -1) - arrayDirty[nIndex] = false; -} - -function _BSSCCreatePopupDiv(strURL) -{ - var nIndex = findDiv(strURL); - if (nIndex == -1 ) { - nIndex = addDiv(strURL); - BsPopup_CreateDiv(nIndex); - } - else { - if (IsDirty(nIndex)) { - if("object" == typeof(getPopupIFrame(nIndex).document)) - getPopupIFrame(nIndex).document.location.href = strURL; - } - } - return nIndex; -} - -//Here is the browser type -function _BSPSGetBrowserInfo() -{ - if (gbBsNS4&&!gbBsNS6) - { - gBsStyVisShow = "show"; - gBsStyVisHide = "hide"; - } - else - { - gBsStyVisShow = "visible"; - gBsStyVisHide = "hidden"; - } -} - -_BSPSGetBrowserInfo(); - -//Get client size info -function _BSPSGetClientSize() -{ - if (gbBsNS4||gbBsKonqueror3||gbBsSafari) - { - gBsClientWidth = innerWidth; - gBsClientHeight = innerHeight; - } - else if (gbBsIE4 || gbBsOpera7) - { - gBsClientWidth = document.body.clientWidth; - gBsClientHeight = document.body.clientHeight; - } -} - -var gstrPopupID = 'BSSCPopup'; -var gstrPopupShadowID = 'BSSCPopupShadow'; -var gstrPopupTopicID = 'BSSCPopupTopic'; -var gstrPopupIFrameID = 'BSSCPopupIFrame'; -var gstrPopupIFrameName = 'BSSCPopupIFrameName'; - -var gstrPopupSecondWindowName = 'BSSCPopup'; - -var gPopupWindow = null; -var gnPopupClickX = 0; -var gnPopupClickY = 0; - -var gnPopupScreenClickX = 0; -var gnPopupScreenClickY = 0; - -var gbPopupTimeoutExpired = false; - -function DHTMLPopupSupport() -{ - if (((gbBsIE4) && (!gbBsMac))||gbBsOpera7|| gbBsNS7) { - return true; - } - return false; -} - -function BSSCPopup_IsPopup() -{ - if (DHTMLPopupSupport() && (this.name.indexOf(gstrPopupIFrameName) != -1)) { - return true; - } else if ((gbBsNS4 || gbBsIE4 || gbBsOpera7) && (this.name.indexOf(gstrPopupID) != -1)) { - return true; - } else { - return false; - } -} - -// If there is a hyperlink in a popup window, display the hyperlink in -// the original window. (bsscright) -if (BSSCPopup_IsPopup() && !gbBsIE4 && !gbBsOpera7) { - document.write(""); -} - -// Local functions. -function BsPopup_CreateDiv(nIndex) -{ - if(!DHTMLPopupSupport()) - return; - // DO NOT SET Width and height for the div, otherwize it will make IE4 popup do not work when view the topic alone. - var strPopupDiv = ""; - - var objBody = getElementsByTag(document, "BODY")[0]; - if( typeof(objBody) != "object" ) - return; - - insertAdjacentHTML(objBody, "beforeEnd", strPopupDiv); -} - -function handleLoadNS() -{ - if (this.id) - { - var nIndex = parseInt(this.id.substring(gstrPopupIFrameID.length)); - BSSCPopup_PostWork(nIndex); - } -} - -function BSSCPopup_PostWork(nIndex) -{ - getPopupDivStyle(nIndex).visibility = gBsStyVisShow; - getPopupIFrameStyle(nIndex).visibility =gBsStyVisShow; - - setClear(nIndex); - window.gbPopupTimeoutExpired = true; - - BSSCPopup_ChangeTargettoParent(getPopupIFrame(nIndex).document); - if (gbBsNS6) - getPopupIFrame(nIndex).document.body.addEventListener("click",BSSCPopupClicked,false); - else - getPopupIFrame(nIndex).document.body.onclick = BSSCPopupClicked; - - if (!gbOrignalOnMouseDown && document.onmousedown) - gbOrignalOnMouseDown = document.onmousedown; - - if (gbBsNS6) - document.addEventListener("mousedown", BSSCPopupParentClicked,false); - else - document.onmousedown = BSSCPopupParentClicked; -} - -function BSSCPopup_Timeout(nIndex, nToken) -{ - if (!IsValidToken(nToken)) return; - - if (gbBsNS6||((getPopupIFrame(nIndex).document.readyState == "complete") && - (getPopupIFrame(nIndex).document.body != null))) { - BSSCPopup_PostWork(nIndex); - } else { - setTimeout("BSSCPopup_Timeout(" + nIndex + "," + nToken + ")", 100); - } -} - -// VH 08/10/00 -// do not change target to parent if the href is using javascript -function BSSCPopup_ChangeTargettoParent(tagsObject) -{ - var collA = getElementsByTag(tagsObject, "A"); - BSSCPopup_ChangeTargettoParent2(collA); - - var collIMG = getElementsByTag(tagsObject,"IMG"); - BSSCPopup_ChangeTargettoParent2(collIMG); -} - -function BSSCPopup_ChangeTargettoParent2(colls) -{ - if (colls != null) { - for (var j = 0; j < colls.length; j ++ ) - { - var strtemp = colls[j].href; - if (strtemp) - { - strtemp = strtemp.toLowerCase(); - if (strtemp.indexOf("javascript:") == -1) - if (colls[j].target == "") - colls[j].target = "_parent"; - } - } - } -} - -function BSPSPopupTopicWinHelp(strURL) -{ - _BSSCPopup(strURL); - return; -} - -function _BSSCPopup(strURL, width, height) -{ - var cuswidth = 0; - var cusheight = 0; - if ("undefined" != typeof(width) && "undefined" != typeof(height)) { - cuswidth = width; - cusheight= height; - } - - if (DHTMLPopupSupport()) { - var nToken = takeToken(); // take token first. - var nIndex = _BSSCCreatePopupDiv(strURL); - window.gbPopupTimeoutExpired = false; - var ntWidth = gBsClientWidth; - var ntHeight = gBsClientHeight; - _BSPSGetClientSize(); - if (ntWidth != gBsClientWidth || ntHeight != gBsClientHeight) { - setDirty(); - } - - if (IsDirty(nIndex)) { - if (gbBsMac) { - setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight +")", 400); - } else { - setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 100); - } - } - else { - MoveDivAndShow(nIndex ,nToken, cuswidth, cusheight); - } - } else { - _BSSCPopup2(strURL, cuswidth, cusheight); - } - return; -} - -if (gbBsIE55) -{ - var ehlpdhtm_fOldBefureUnload = window.onbeforeunload; - var gnBsUnload=0; - window.onbeforeunload = window_BUnload; -} - -function window_BUnload() -{ - gnBsUnload++; - if (gnBsUnload>1) - return; - for (var i = 0; i < arrayPopupURL.length; i ++) - removeThis(document.all(getPopupID(i))); - arrayPopupURL.length = 0; - if (ehlpdhtm_fOldBefureUnload) - ehlpdhtm_fOldBefureUnload(); -} - -function _BSSCPopup2(strURL, width, height) -{ - if (gbBsOpera6&&gbBsMac) - { - var wmTemp = window.open(document.location.href, gstrPopupSecondWindowName); - wmTemp.close(); - setTimeout("_BSSCPopup3(\""+strURL+"\","+width+","+height+");",100); - } - else - _BSSCPopup3(strURL, width, height); -} - -function _BSSCPopup3(strURL, width, height) -{ - if (window.name == gstrPopupSecondWindowName) { - window.location = strURL; - } else { - if (!gbBsMac || !gbBsNS4) { - BSSCHidePopupWindow(); - } - var nX = 0; - var nY = 0; - var nHeight = 300; - var nWidth = 400; - if (width > 0 && height > 0) { - nHeight = height; - nWidth = width; - } - _BSPSGetClientSize(); - - nX = window.gnPopupScreenClickX; - nY = window.gnPopupScreenClickY; - - if (nY + nHeight + 40 > screen.availHeight) { - nY = screen.availHeight - nHeight - 40; - } - if (nX + nWidth + 40 > screen.availWidth) { - nX = screen.availWidth - nWidth - 40; - } - - // Launch a separate window - var strParam="titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes"; - if (gbBsNS) { - if (gbBsNS6) { - strParam += ",Height=" + nHeight + ",Width=" + nWidth; - strParam += ",screenX=" + nX + ",screenY=" + nY; - strParam += ",dependent=yes"; - } - else { - strParam += ",OuterHeight=" + nHeight + ",OuterWidth=" + nWidth; - strParam += ",screenX=" + nX + ",screenY=" + nY; - strParam += ",dependent=yes"; - } - } - else { - strParam += ",height=" + nHeight + ",width=" + nWidth; - strParam += ",left=" + nX + ",top=" + nY; - } - if (gbBsSafari) - { - if (window.gPopupWindow) - window.gPopupWindow.close(); - window.gPopupWindow = window.open(strURL, "", strParam); - window.gPopupWindow.name = gstrPopupSecondWindowName; - window.gPopupWindow.moveTo(nX, nY); - widnow.gPopupWindow.document.location.reload(); - } - else - { - var wmTemp=null; - if (gbBsKonqueror3) - { - if (window.gPopupWindow) - window.gPopupWindow.close(); - } - if (gbBsOpera&&gbBsMac) - { - wmTemp= window.open(document.location.href, "Temp", strParam); - } - window.gPopupWindow = window.open(strURL, gstrPopupSecondWindowName, strParam); - if (!gbBsIE) - window.gPopupWindow.focus(); - - if (wmTemp) - wmTemp.close(); - } - - if (gbBsNS4) - setEventHandle(); - else if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) - setTimeout("setPopupFocus();", 100); - } - return; -} - -function setEventHandle() -{ - window.gPopupWindow.captureEvents(Event.CLICK | Event.BLUR); - window.gPopupWindow.onclick = NonIEPopup_HandleClick; - window.gPopupWindow.onblur = NonIEPopup_HandleBlur; -} - -function setPopupFocus() -{ - window.gPopupWindow.focus(); -} - -function NonIEPopup_HandleBlur(e) -{ - window.gPopupWindow.focus(); -} - -function NonIEPopup_HandleClick(e) -{ - // Because navigator will give the event to the handler before the hyperlink, let's - // first route the event to see if we are clicking on a Popup menu in a popup. - document.routeEvent(e); - - // If a popup menu is active then don't do anything with the click - if (window.gPopupWindow.gbInPopupMenu) { - window.gPopupWindow.captureEvents(Event.CLICK); - window.gPopupWindow.onclick = NonIEPopup_HandleClick; - return false; - } - - // Close the popup window - if(e.target.href) - { - if(e.target.href.indexOf("javascript:")==-1) - { - if (e.target.target=="") - window.location.href = e.target.href; - else - window.open(e.target.href, e.target.target); - this.close(); - } - } - else - this.close(); - return false; -} - -function BSSCPopup_AfterLoad(nIndex, nToken, cuswidth, cusheight) -{ - if (!window.getPopupIFrame(nIndex).document) { - _BSSCPopup2(getPopupURL(nIndex), cuswidth, cusheight); - return; - } - - if (!IsValidToken(nToken)) return; - - if (gbBsNS6) - { - setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. - BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight); - return; - } - - if ((window.getPopupIFrame(nIndex).document.readyState == "complete") && - (window.getPopupIFrame(nIndex).document.body != null)) { - if (window.getPopupIFrame(nIndex).document.location.href.indexOf("about:blank") != -1) { // add this check. IE will use about:blank" as the default vaule for Iframe. - window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); - setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); - } - else - { - setAbsPopupURL(nIndex, window.getPopupIFrame(nIndex).document.location.href); // change URL to abs url. - BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight); - } - } else { - setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); - } -} - -function BSSCPopup_ResizeAfterLoad(nIndex, nToken, cuswidth, cusheight) -{ - if (window.gbPopupTimeoutExpired) return; - - if (!IsValidToken(nToken)) return; - - getPopupDivStyle(nIndex).visibility = gBsStyVisHide; - getPopupIFrameStyle(nIndex).visibility = gBsStyVisHide; - - // Determine the width and height for the window - _BSPSGetClientSize(); - - var size = new BSSCSize(0, 0); - - if (cuswidth <= 0 || cusheight <= 0) - BSSCGetContentSize(window.getPopupIFrame(nIndex), size); - else { - size.x = cuswidth; - size.y = cusheight; - } - - // Determine the width and height for the window - var nWidth = size.x; - var nHeight = size.y; - - // for small popup size, we should allow any size. - // The popup size should be ok if bigger than 0 - if (nWidth < 0 || nHeight < 0) return; // there must be something terribly wrong. - - getPopupDivStyle(nIndex).width = nWidth; - getPopupDivStyle(nIndex).height = nHeight; - - getPopupShadowStyle(nIndex).width = nWidth; - getPopupShadowStyle(nIndex).height = nHeight; - getPopupTopicStyle(nIndex).width = nWidth; - getPopupTopicStyle(nIndex).height = nHeight; - if (gbBsIE55) - { - getPopupShadowStyle(nIndex).width = nWidth + 2; - getPopupShadowStyle(nIndex).height = nHeight + 2; - getPopupTopicStyle(nIndex).width = nWidth + 2; - getPopupTopicStyle(nIndex).height = nHeight + 2; - } - - getPopupIFrameStyle(nIndex).width = nWidth; - getPopupIFrameStyle(nIndex).height = nHeight; - if (gbBsIE55 || gbBsNS6) - { - getPopupIFrameStyle(nIndex).top = 0; - getPopupIFrameStyle(nIndex).left = 0; - } - - var strURL = getPopupURL(nIndex); - if (strURL.indexOf("#") != -1&&gbBsNS6) - getPopupIFrame(nIndex).location.reload(); - else if (strURL.indexOf("#") != -1||gbBsNS6) - getPopupIFrame(nIndex).location.href = strURL; // reload again, this will fix the bookmark misunderstand in IE5. - - MoveDivAndShow(nIndex, nToken, cuswidth, cusheight); -} - -function getScrollLeft() -{ - if (document.body.scrollLeft) - return document.body.scrollLeft; - else if (window.pageXOffset) - return window.pageXOffset; - else - return 0; -} - -function getScrollTop() -{ - if (document.body.scrollTop) - return document.body.scrollTop; - else if (window.pageYOffset) - return window.pageYOffset; - else - return 0; -} - - -function MoveDivAndShow(nIndex, nToken, cuswidth, cusheight) -{ - if (window.getPopupIFrame(nIndex).document.location.href != getAbsPopupURL(nIndex)) { // if redirect, reload again. - window.getPopupIFrame(nIndex).document.location = getPopupURL(nIndex); - setTimeout("BSSCPopup_AfterLoad(" + nIndex + "," + nToken + "," + cuswidth + "," + cusheight + ")", 200); - return; - } - - // Determine the position of the window - var nClickX = window.gnPopupClickX; - var nClickY = window.gnPopupClickY; - var nTop = 0; - var nLeft = 0; - - var nWidth = parseInt(getPopupDivStyle(nIndex).width); - var nHeight = parseInt(getPopupDivStyle(nIndex).height); - - if (nClickY + nHeight + 20 < gBsClientHeight + getScrollTop()) { - nTop = nClickY + 10; - } else { - nTop = (getScrollTop() + gBsClientHeight) - nHeight - 20; - } - if (nClickX + nWidth < gBsClientWidth + getScrollLeft()) { - nLeft = nClickX; - } else { - nLeft = (getScrollLeft() + gBsClientWidth) - nWidth - 8; - } - - if (nTop < getScrollTop()) nTop = getScrollTop() + 1; - if (nLeft< getScrollLeft()) nLeft = getScrollLeft() + 1; - - getPopupDivStyle(nIndex).left = nLeft; - getPopupDivStyle(nIndex).top = nTop; - - // Set the location of the background blocks - getPopupShadowStyle(nIndex).left = 6; - getPopupShadowStyle(nIndex).top = 6; - if (gbBsIE55) - { - getPopupShadowStyle(nIndex).left = 4; - getPopupShadowStyle(nIndex).top = 4; - } - - if (gbBsMac&&gbBsIE4) { - // Total hack on the iMac to get the IFrame to position properly - getPopupIFrameStyle(nIndex).pixelLeft = 100; - getPopupIFrameStyle(nIndex).pixelLeft = 0; - // Explicitly call BSSCOnLoad because the Mac doesn't seem to do it - getPopupIFrame(nIndex).window.BSSCOnLoad(); - } - - if (gbBsNS6&&IsDirty(nIndex)) - getElement(getPopupIFrameID(nIndex)).addEventListener("load", handleLoadNS, false); - else - BSSCPopup_Timeout(nIndex , nToken ); - return; -} - -function BSSCSize(x, y) -{ - this.x = x; - this.y = y; -} - -function BSSCGetContentSize(thisWindow, size) -{ - if (!gbBsIE4 && !gbBsOpera7 && !gbBsNS4) - return; - - if ((gbBsMac&&gbBsIE4)||gbBsNS4||gbBsOpera7) { - size.x = 320; - size.y = 180; - return; - } - - // Resize the width until it is wide enough to handle the content - // The trick is to start wide and determine when the scrollHeight changes - // because then we know a scrollbar is necessary. We can then go back - // to the next widest size (for no scrollbar) - - var ClientRate = gBsClientHeight / gBsClientWidth; - - - var GoldenSize = new BSSCSize(0,0); - GoldenSize.x = gBsClientWidth * gBMaxXOfParent; - GoldenSize.y = gBsClientHeight *gBMaxYOfParent ; - - if (ClientRate > gBRateH_W) { - GoldenSize.y = GoldenSize.x * gBRateH_W; - } - else { - GoldenSize.x = GoldenSize.y / gBRateH_W; - } - - // Try to using parent specified max x. - var x = 0; - var maxgoldx = GoldenSize.x; - var maxx = gBsClientWidth * gBMaxXOfParent; - - // This double resize causes the document to re-render (and we need it to) - if (!gbBsIE5) - thisWindow.moveTo(10000,10000); // this is used to fix the flash on IE4. - - thisWindow.resizeTo(1, 1); - thisWindow.resizeTo(1, 1); - thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight); - thisWindow.resizeTo(maxgoldx, thisWindow.document.body.scrollHeight + gBscrollHeight); - - var miny = thisWindow.document.body.scrollHeight + gBscrollHeight; - - if (miny > GoldenSize.y) // the popup does not fix in the parent wanted golden area. so try to expand itself as large as it can - { - thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight); - thisWindow.resizeTo(maxx , thisWindow.document.body.scrollHeight + gBscrollHeight); - - miny = thisWindow.document.body.scrollHeight + gBscrollHeight; - maxy = gBsClientHeight * gBMaxYOfParent; - - if (miny > maxy) { // the popup must have a scroll, OK let it be. - miny = maxy; - size.x = maxx; - size.y = maxy; - thisWindow.document.body.scroll = 'yes'; // At this time we do want to show scroll any more. so it will looks better a little. - } - else { // popup still can fit in the parent area by someway. now we choose the same h/w rate as parent. - size.y = miny; - - // downsize from maxx , now I try to using binary divide. - x = maxx; - deltax = -maxx/2; - //j = 0; - while (true) { - x = x + deltax; - thisWindow.resizeTo(x, miny); - thisWindow.resizeTo(x, miny); - diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * ClientRate; - if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter - deltax = Math.abs(deltax) /2; - else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter - deltax = -Math.abs(deltax) /2; - else - // the y is close enough to wanted. - break; - if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. - break; - } - size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth; - size.y = thisWindow.document.body.scrollHeight;// + gBscrollHeight; - thisWindow.document.body.scroll = 'no'; - } - } - else { - if (thisWindow.document.body.scrollWidth > maxgoldx) { - size.x = maxx; - size.y = miny; - thisWindow.document.body.scroll = 'yes'; - } - else { - // downsize from maxgoldx , now I try to using binary divide. - x = maxgoldx; - deltax = -maxgoldx/2; - while (true) { - x = x + deltax; - thisWindow.resizeTo(x, miny); - thisWindow.resizeTo(x, miny); - diffy = thisWindow.document.body.scrollHeight + gBscrollHeight - x * gBRateH_W; - if (diffy > gBpermitYDelta ) // it is higher than wanted, so x need to be wide a little bitter - deltax = Math.abs(deltax) /2; - else if (diffy < -gBpermitYDelta) // it is shorter than wanted, so x need to be narrow a little bitter - deltax = -Math.abs(deltax) /2; - else - // the y is close enough to wanted. - break; - if (Math.abs(deltax) < gBpermitXDelta) // the next change is too slight and it can be ignore. - break; - } - size.x = thisWindow.document.body.scrollWidth; //+ gBscrollWidth; - size.y = thisWindow.document.body.scrollHeight ; - thisWindow.document.body.scroll = 'no'; // At this time we do not want to show scroll any more. so it will looks better a little. - thisWindow.resizeTo(size.x, size.y); - if (thisWindow.document.body.scrollWidth > size.x) - { - size.x = thisWindow.document.body.scrollWidth; - } - if (thisWindow.document.body.scrollHeight > size.y) - { - size.y = thisWindow.document.body.scrollHeight; - } - } - } - thisWindow.resizeTo(size.x, size.y); - thisWindow.resizeTo(size.x, size.y); - return; -} - -function BSSCPopupParentClicked() -{ - if (!window.gbPopupTimeoutExpired) { - return false; - } - - document.onmousedown = gbOrignalOnMouseDown; - - // Simply hide the popup - hideAll(); - - window.gbPopupTimeoutExpired = false; - - return true; -} - -function isInsideHyperLink(obj) -{ - if (obj&&obj!=getParentNode(obj)) - { - if (obj.tagName=="A"||obj.tagName=="IMG") - return true; - else - return isInsideHyperLink(getParentNode(obj)); - } - else - return false; -} - -function BSSCPopupClicked(e) -{ - if (!window.gbPopupTimeoutExpired) { - return false; - } - - var popupIFrame = getCurrentPopupIFrame(); - if (popupIFrame == null) { - return true; - } - - if (gbBsIE4 && (!((popupIFrame.window.event != null) && - (popupIFrame.window.event.srcElement != null) && - isInsideHyperLink(popupIFrame.window.event.srcElement)))) { - document.onmousedown = gbOrignalOnMouseDown; - - // Simply hide the popup - hideAll(); - window.gbPopupTimeoutExpired = false; - return true; - } - else if (gbBsNS6 && (!((e != null) && - (e.target!= null) && isInsideHyperLink(e.target)))) - { - document.addEventListener("mousedown", gbOrignalOnMouseDown,false); - // Simply hide the popup - hideAll(); - window.gbPopupTimeoutExpired = false; - return true; - } -} - -//trace the mouse over's position for hotspot -function BSPSPopupOnMouseOver(event) -{ - if (gbBsIE4 || gbBsOpera7||gbBsKonqueror3) { - window.gnPopupClickX = event.clientX + getScrollLeft(); - window.gnPopupClickY = event.clientY + getScrollTop(); - window.gnPopupScreenClickX = event.screenX; - window.gnPopupScreenClickY = event.screenY; - } else if (gbBsSafari) { - window.gnPopupClickX = event.clientX + getScrollLeft(); - window.gnPopupClickY = event.clientY + getScrollTop(); - window.gnPopupScreenClickX = event.screenX + window.screenX; - window.gnPopupScreenClickY = event.screenY + window.screenY; - } else if (gbBsNS4) { - window.gnPopupClickX = event.pageX - window.pageXOffset; - window.gnPopupClickY = event.pageY - window.pageYOffset; - window.gnPopupScreenClickX = event.screenX - window.pageXOffset; - window.gnPopupScreenClickY = event.screenY - window.pageYOffset; - } -} - -function BSSCHidePopupWindow() -{ - if (window.gPopupWindow != null) { - if (gbBsNS4) { - if ((typeof window.gPopupWindow != "undefined") && (!window.gPopupWindow.closed)) { - window.gPopupWindow.close(); - window.gPopupWindow = null; - } - } - } - return; -} - -// Add the PopupOnClick to the onclick array. -if (typeof(BsscRegisterOnClick) != "undefined") -{ - BsscRegisterOnClick(BsPopupOnClick); -} -//End to support previous popup functions - -/// Section End - Popup (JavaScript 1.0) - -/// Section Begin - Embedded Stub (JavaScript 1.0) - -function BSSCCreatePopupDiv() -{ - return; -} - -function WritePopupMenuLayer() -{ - if (BsscHasExtJs()) {_WritePopupMenuLayer();} -} - -function BSSCPopup(strURL, width, height) -{ - var re = new RegExp("'", 'g'); - strURL = strURL.replace(re, "%27"); - - if (BsscHasExtJs()) { - _BSSCPopup(strURL, width, height); - }else{ - //Create a temporary window first to ensure the real popup comes up on top - var wndTemp = null; - if (!gbBsNS3) { - wndTemp = window.open("", "temp", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=3,width=4"); - } - // Create the real popup window - var wndPopup = window.open(strURL, "BSSCPopup", "titlebar=no,toolbar=no,status=no,location=no,menubar=no,resizable=yes,scrollbars=yes,height=300,width=400"); - // Close the temporary - if (!gbBsNS3) { - wndTemp.close(); - } else { - wndPopup.focus(); - } - } -} - -var gbWndTemp = null, gbWndPopupLinks = null; -var gbstrParaTotal = ""; - -function PopupMenu_Invoke() -{ - if (typeof(wfRelatedTopic) == 'function' && typeof(IsFlashSupported) == 'function') - { - if (Number(gsSkinVersion) > 2 && IsFlashSupported()) - { - return wfRelatedTopic(PopupMenu_Invoke.arguments); - } - } - if (BsscHasExtJs()) { - return _PopupMenu_Invoke(PopupMenu_Invoke.arguments); - } - if (gbBsNS3Before || gbBsIE3Before ) { - var argLen = PopupMenu_Invoke.arguments.length; - if (argLen < 5) { - window.document.location.href = PopupMenu_Invoke.arguments[3]; - return false; - } - gbWndTemp = null; - gbWndPopupLinks = null; - gbstrParaTotal = ""; - for (var i = 0; i < (argLen - 2) / 2; i++) { - var strParaLine = ""; - if (gbBsNS2){ - strParaLine += "" - strParaLine += PopupMenu_Invoke.arguments[2 * i + 2]; - strParaLine += ""; - } else { - strParaLine += ""); - if (gbBsNS2) { - gbWndPopupLinks.document.write(""); - } else { - //YJ: IE301,302 and NS3.x works fine - gbWndPopupLinks.document.write("<"); - gbWndPopupLinks.document.write("script>"); - gbWndPopupLinks.document.write("function gotoUrl(aUrl) {opener.window.location=aUrl; close();}"); - gbWndPopupLinks.document.write("<"); - gbWndPopupLinks.document.write("/script>"); - } - gbWndPopupLinks.document.write(""); - gbWndPopupLinks.document.write(gbstrParaTotal); - gbWndPopupLinks.document.write(""); - gbWndPopupLinks.document.close(); - - // Close the temporary - if (!gbBsNS3 && gbWndTemp != null) { - gbWndTemp.close(); - }else { - gbWndPopupLinks.focus(); - } - - return true; - } - return false; -} - -/// Section End - Embedded Stub (JavaScript 1.0) - -//// Segment End -- (JavaScript 1.0) - -//// Segment Begin -- (JavaScript 1.2) -/// Section Begin - kadov DHTM (JavaScript 1.2) - -//Begin to support extended and dropdown text effects. -function kadovIsParagraph(el) -{ - return( el.tagName == "P" || el.tagName.indexOf("H") == 0 ) ? true : false; -} - -function kadovInitEachChild(el) -{ - for(var i=0; i "") ) - child.style.setAttribute( "x-on-pageload", "" ); - } - - var href = child.getAttribute("href") - if( href != null && href > "" && href.indexOf( "BSSCPopup" ) >= 0 ) - kadovFilePopupInit(child.id); // Init for Popup - else if( child.className == "dropspot" || child.className == "expandspot" || - child.className == "glossterm" ) - kadovTextPopupInit(child.id);// Init for Expanding/Glossary or DropDown text - else if( child.className == "trigger") - kadovInitTrigger(child.id);// Init for Trigger - else - { - kadovInitEffects(child.id);// Init for DHTML effects - CEngine.SetOneTargetInitialState( child.id ); - } - } - - if( (child.tagName == "IMG") && (child.getAttribute("dynsrc") > "") ) - child.start = "mouseover";// to start a AVI file. fileopen doesn't work - - kadovInitEachChild(child); - } -} - -function kadovRetrieveTextInner(el) -{ - var x = ""; - if( (!el) || (el.tagName == "!") || (el.tagName == "SCRIPT" )) - return x; - - if( kadovIsParagraph(el) ) - { - var strNewID = " "; - if( el.id != "" ) - strNewID += "id=" + el.id + "_NewSpan "; - x = "" + el.innerHTML + ""; - } - else - { - for(var i=0; i 0 ) - if( (nTagClose - nTagOpen) != nDistance ) - return strRawHTML; - - var strCleanOnce = strRawHTML.substring(0, nTagOpen) + strRawHTML.substr(nTagClose + strTagClose.length) ; - return kadovRetrieveCleanHTML( strCleanOnce, strTagOpen, strTagClose ); -} - -function kadovAdjustObjectTag(strRawHTML, nStartPos) -{// adjust object tag for related topics HTML control, because innerHTML misses out the item settings - - //Is there any DTC? - var strDTCTagOpen = ''; - var nDTCTagOpen = strRawHTML.indexOf( strDTCTagOpen, nStartPos ); - if( nDTCTagOpen < 0 ) - return strRawHTML; - var nDTCTagClose = strRawHTML.indexOf( strDTCTagClose, nDTCTagOpen ); - if( nDTCTagClose < nDTCTagOpen) - return strRawHTML; // no Design Time Controls; - - //Is the DTC HTML Help Control? - var strRTObjTagOpen = 'classid=clsid:ADB880A6-D8FF-11CF-9377-00AA003B7A11'; - var strRTObjTagClose = ''; - var nRTObjTagOpen = strRawHTML.indexOf( strRTObjTagOpen, nDTCTagOpen ); - if( nRTObjTagOpen < nDTCTagOpen ) - return strRawHTML; - var nRTObjTagClose = strRawHTML.indexOf( strRTObjTagClose, nRTObjTagOpen ); - if( nRTObjTagClose < nRTObjTagOpen ) - return strRawHTML; // is not a HTML help control - - // Is it a related Topics html help control? - var strRTObjLabel = ''; - } - - // to insert the reconstructed item params into runtime object tag - var strAdjustedHTML = strRawHTML.substring(0,nRTObjTagClose) + strRunTimeItemParam + strRawHTML.substring(nRTObjTagClose, strRawHTML.length); - return kadovAdjustObjectTag(strAdjustedHTML, nDTCTagClose + strDTCTagClose.length); -} - -function kadovTextPopupOnLoad( el ) -{ - if( typeof(el) == "string" ) - el = getElement(el); - - var src = el.getAttribute( "x-use-popup" ); - var bNeedMove=true; - if(!src&&el.id) - { - for (var i=0;i"); - strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, ""); - - //work around the bug in HH.exe that highlight the phrases when use Search tab - //this approach is just removing the tag inserted by Microsoft in the runtime - strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, "", 52); - - var strStyle = " style='display:none; position:relative;"; - var newDiv = "
" + strCleanHTML + "
"; - - removeThis(srcDiv); // empty the original DIV tag - var elParentPra = kadovFindParentParagraph(el); - if( elParentPra ) - insertAdjacentHTML(elParentPra, "afterEnd", newDiv ); - } - else if( type == "expanding" ) - { - var inner = kadovRetrieveTextInner(srcDiv); - if( inner == "" ) - inner = srcDiv.innerHTML; - var strAdjust = kadovAdjustObjectTag(inner,0); - var strCleanHTML = kadovRetrieveCleanHTML(strAdjust, ""); - strCleanHTML = kadovRetrieveCleanHTML(strCleanHTML, ""); - var strClassName = (el.className == "glossterm") ? "glosstext" : "expandtext"; - var newSpan = ""; - removeThis(srcDiv); // empty the original DIV tag - insertAdjacentHTML(el, "afterEnd", newSpan ); - } - } - } - else - { - srcDiv.style.display = "none"; - } - return 0; -} - -function getElementsByTag(obj,sTagName) -{ - if(obj.getElementsByTagName) - return obj.getElementsByTagName(sTagName); - else if(obj.all) - return obj.all.tags(sTagName); - return null; -} - -function getElement(sID) -{ - if(document.getElementById) - return document.getElementById(sID); - else if(document.all) - return document.all(sID); - return null; -} - -function getParentNode(obj) -{ - if(obj.parentNode) - return obj.parentNode; - else if(obj.parentElement) - return obj.parentElement; - return null; -} - -function getChildNodes(obj) -{ - if(obj.childNodes) - { - var children = new Array(); - for (var i = 0; i < obj.childNodes.length; i++) - { - if (obj.childNodes[i].nodeType == 1) - children[children.length] = obj.childNodes[i]; - } - return children; - } - else if(obj.children) - return obj.children; - return null; -} - -function removeThis(obj) -{ - if(obj.parentNode) - obj.parentNode.removeChild(obj); - else - obj.outerHTML=""; -} - -function kadovTextPopup( el ) -{ - if (!gbBsIE4 && !gbBsOpera7 && !gbBsSafari && !gbBsNS6 && !gbBsKonqueror3 ) - return; - - var bNeedMove=true; - - if (window.event) - window.event.cancelBubble = true; - - if( typeof(el) == "string" ) - el = getElement(el); - - if (!el||el==window) - return; - - var src = el.getAttribute( "x-use-popup" ); - if(!src&&el.id) - { - for (var i=0;i= 0 && nNext < values.length ) - { - functions[nIdx] = values.substr( nStart, nNext-nStart+1); - nStart = nNext + 1; - nIdx++; - nNext = values.indexOf( "\)", nStart); - } - - for( var i=0; i= 0 ) - { - nPageClick = arrForClickCount[j].indexOf("="); - if( nPageClick > 0 ) - { - nClickTimes = arrForClickCount[j].substring( nPageClick + 1, arrForClickCount[j].length) * 1; - break; - } - } - } - var args = srcargs; - if( j < arrForClickCount.length ) - {// to strip out the "clicks=99" from the arguments string - args = ""; - for( var k = 0; k < arrForClickCount.length; k ++ ) - { - if( k != j ) - { - args += arrForClickCount[k]; - if( k < arrForClickCount.length - 1 ) - args += ","; - } - } - } - bsscFXInit( null, id, translatedProp, fnname, args, nClickTimes ); - } -} - -function kadovTranslateProp( prop ) -{ - switch( prop ) - { - case "x-on-hover" : return "bsschover"; - case "x-on-pageclick" : return "bsscpageclick"; - case "x-on-pageload" : return "bsscpageload"; - case "x-on-trigger-1" : return "bssctrigger1"; - case "x-on-trigger-2" : return "bssctrigger2"; - } - return null; -} -//End to convert iWrite format to RoboEditor Format for DHTML effects - -//Begin the definition of one entry to DHTML effects -function bsscFXInit( trigger_ID, target_ID, event_type, - action_type, action_setting, event_addional ) -{ - if( (!gbBsWindows && !gbBsSunOS && !(gbBsMac&&gbBsIE5)) || typeof(target_ID) != "string" )//MUST have a target_ID - return; // we don't support Navigator yet - - if( typeof(event_type) == "string" ) - event_type = event_type.toLowerCase(); - if( typeof(action_type) == "string" ) - action_type = action_type.toLowerCase(); - if( typeof(action_setting) == "string" ) - action_setting = action_setting.toLowerCase(); - - // to get the target element then add it to the target list - var eleTarget = CCSSP.GetObject( target_ID ); - if( (eleTarget != null) && (event_type != null) && (action_type != null) ) - { - CEngine.AddOneTarget( target_ID, eleTarget ); - CEngine.BuildTargetObject(target_ID, event_type, action_type, action_setting, event_addional); - } - - // to validate the trigger_ID parameter - if( typeof(trigger_ID) == "string" && trigger_ID != "" ) - CEngine.BuildTriggerObject( trigger_ID, target_ID ); -} -//End the definition of one entry to DHTML effects - -/// Section End - kadov DHTM (JavaScript 1.2) - -/// Section Begin - CCSSP DHTM (JavaScript 1.2) - -//Begin JavaScript libary for cross-platform positioning object. -function CCSSP(){} // constructor of CCSSP class - -CCSSP.GetObject = function( obj ) -{//convert object name string or reference into a valid object reference - if( typeof(obj) == "object" ) - return obj; - else if( typeof(obj) == "string" && obj != "") - { - if( gbBsNS4 ) - return eval("document." + obj); - else - return eval("document.all(\"" + obj + "\")"); - } - else - return null; -} - -CCSSP.MoveObjectTo = function(obj, x, y) -{//positioning an object at a specific pixel coordinate - if( gbBsNS4 ) - obj.moveTo(x,y); - else - { - obj.style.pixelLeft = x; - obj.style.pixelTop = y; - } -} - -CCSSP.MoveObjectBy = function(obj, dx, dy) -{//moveing a object by x and/or y pixel - if( gbBsNS4 ) - obj.moveBy(dx,dy); - else - { - obj.style.pixelLeft += dx; - obj.style.pixelTop += dy; - } -} - -CCSSP.SetObjectBGColor = function(obj, color) -{//set the background color of an object - if( gbBsNS4 ) - obj.bgColor = color; - else - obj.style.backgroundColor = color; -} - -CCSSP.ShowObject = function(obj, bShow) -{// set the object to be visible or invisible - if( gbBsNS4 ) - obj.visibility = (bShow == true) ? 'show' : 'hide'; - else - obj.style.visibility = (bShow == true) ? 'visible' : 'hidden';// when hidden, it still occupy some space. -} - -CCSSP.GetObjectLeft = function(obj) -{// retrieve the x coordinate of a posionable object - if( gbBsNS4 ) - return obj.left; - else - return obj.style.pixelLeft; -} - -CCSSP.GetObjectTop = function(obj) -{// retrieve the y coordinate of a posionable object - if( gbBsNS4 ) - return obj.top; - else - return obj.style.pixelTop; -} - -CCSSP.GetObjectContainLeft = function(obj) -{// retrieve the x coordinate of a posionable object relative to it's parent element - if( gbBsNS4 ) - return obj.pageX; - else - { - if( obj == document.body ) - return obj.clientLeft; - else - return obj.offsetLeft; - } -} - -CCSSP.GetObjectWindowLeft = function(obj) -{// retrieve the x coordinate of a posionable object relative to browser window - if( gbBsNS4 ) - return obj.pageX; - else - { - var nOffsetWindowLeft = 0; - for(var element = obj; element; element = element.offsetParent) - nOffsetWindowLeft += CCSSP.GetObjectContainLeft(element); - return nOffsetWindowLeft; - } -} - -CCSSP.GetObjectContainTop = function(obj) -{// retrieve the y coordinate of a posionable object relative to it's parent element - if( gbBsNS4 ) - return obj.pageY; - else - { - if( obj == document.body ) - return obj.clientTop; - else - return obj.offsetTop; - } -} - -CCSSP.GetObjectWindowTop = function(obj) -{// retrieve the y coordinate of a posionable object relative to browser window - if( gbBsNS4 ) - return obj.pageY; - else - { - var nOffsetWindowTop = 0; - for(var element = obj; element; element = element.offsetParent) - nOffsetWindowTop += CCSSP.GetObjectContainTop(element); - return nOffsetWindowTop; - } -} - -CCSSP.GetObjectHeight = function(obj) -{// retrieve the height of a posionable object - if( gbBsNS4 ) - return obj.clip.height; - else - return obj.offsetHeight; -} - -CCSSP.GetObjectWidth = function(obj) -{// retrieve the width of a posionable object - if( gbBsNS4 ) - return obj.clip.width; - else - return obj.offsetWidth; -} - -CCSSP.RegisterEventHandler = function( srcObj, rawEventName, funcHandler ) -{ // to add the "funcHandler" as the "rawEventName" 's handler to the "srcObj" object,the original event handler will be combined - if (gbBsNS4 && !gbBsNS6) - return ; - - var oldHandler = ""; - - if (gbBsMac &&gbBsIE4&&!gbBsIE5) - { - if (typeof(srcObj[rawEventName.toLowerCase()])=="unknown") - { //search for - - - - - - - - - - -

Ellipse

- -

To create an Ellipse in the Main - Menu select New Entity - > - Basic - > Ellipse

- -

 

- -

You - can define an Ellipse by its - Center Point, a Vector giving its normal, and its Major & - Minor Radiuses.

- -

The - Result of the operation will be a - GEOM_Object (edge).

- -

 

- -

TUI Command: geompy.MakeEllipse(Point, Vector, RadiusMajor, - RadiusMinor),

- -

Arguments: - Name + 1 vertex (for the center) + 1 edge (for the direction) + 1 X Radius - + 1 Y Radius.

- -

 

- -

- -

 

- -

Example:

- -

 

- -

- -

 

- -
- -

 

- - - - + + + + + +Ellipse + + + + + + + + + + + + + +

Ellipse

+ +

To create an Ellipse in the Main + Menu select New Entity - > + Basic - > Ellipse

+ +

 

+ +

You + can define an Ellipse by its + Center Point, a Vector giving its normal, and its Major & + Minor Radiuses.

+ +

The + Result of the operation will be a + GEOM_Object (edge).

+ +

 

+ +

TUI Command: geompy.MakeEllipse(Point, Vector, RadiusMajor, + RadiusMinor),

+ +

Arguments: + Name + 1 vertex (for the center) + 1 edge (for the direction) + 1 X Radius + + 1 Y Radius.

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

+ +

 

+ +

Our TUI Scripts + provide you with useful examples of creation of Basic + Geometric Objects.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/explode.htm b/doc/salome/gui/GEOM/explode.htm index bbde464f4..7e21453c5 100755 --- a/doc/salome/gui/GEOM/explode.htm +++ b/doc/salome/gui/GEOM/explode.htm @@ -1,185 +1,185 @@ - - - - - -Explode - - - - - - - - - - - - - -

 Explode

- -

To Explode - an object into subshapes, in the main menu select New - Entity > Explode.

- -

 

- -

To create a list of  subshapes - (vertices, edges, wires etc.) of the given shape using the Explode - operation, you need to define the Main - Object, which will be exploded and - the Type of Subshapes you wish to obtain from it.

- -

The - Result of the operation will be a List - of GEOM_Objects (edges, faces, solids or compsolids).

- -

 

- -

Using - TUI Commands you can perform this operation - in a variety of ways:

- -
    - -
  • geompy.SubShapeAll(Shape, - Type) explodes a Shape on subshapes of a given Type and returns - a List of sub-shapes.

  • - -
  • geompy.SubShapeAllIDs(Shape, - Type)  explodes - a Shape on subshapes of a given Type and returns a List of IDs of sub-shapes. -

  • - -
  • geompy.SubShapeAllSorted(Shape, - Type)  explodes - a shape on subshapes of a given type and sorts - them by coordinates of their gravity centers, returning      a - list of sub-shapes.

  • - -
  • geompy.SubShapeAllSortedIDs(Shape, - Type)  explodes - a shape on subshapes of a given type and - sorts them by coordinates of their gravity centers,  returning - a List of IDs of sub-shapes.

  • - -
  • geompy.SubShape(Shape, Type, ListOfInd) -  allows - to obtain a compound of sub-shapes of  the - Shape,  selected - by they indices in a list of all sub-shapes of the given Type. Each index - is in the range [1, Nb_Sub-Shapes_Of_Given_Type].

  • - -
  • geompy.SubShapeSorted(Shape, - Type, ListOfInd) allows to obtain a compound of sub-shapes of the Shape, - selected by they indices in sorted list of all sub-shapes of the given - Type. Each index is in the range [1, Nb_Sub-Shapes_Of_Given_Type]

  • -
- -

 

- -

Arguments: - 1 SHAPE + 1 type of SubShape.

- -

 

- -

 

- -

- -

 

- -

 

- - - - + + + + + +Explode + + + + + + + + + + + + + +

 Explode

+ +

To Explode + an object into subshapes, in the main menu select New + Entity > Explode.

+ +

 

+ +

To create a list of  subshapes + (vertices, edges, wires etc.) of the given shape using the Explode + operation, you need to define the Main + Object, which will be exploded and + the Type of Subshapes you wish to obtain from it.

+ +

The + Result of the operation will be a List + of GEOM_Objects (edges, faces, solids or compsolids).

+ +

 

+ +

Using + TUI Commands you can perform this operation + in a variety of ways:

+ +
    + +
  • geompy.SubShapeAll(Shape, + Type) explodes a Shape on subshapes of a given Type and returns + a List of sub-shapes.

  • + +
  • geompy.SubShapeAllIDs(Shape, + Type)  explodes + a Shape on subshapes of a given Type and returns a List of IDs of sub-shapes. +

  • + +
  • geompy.SubShapeAllSorted(Shape, + Type)  explodes + a shape on subshapes of a given type and sorts + them by coordinates of their gravity centers, returning      a + list of sub-shapes.

  • + +
  • geompy.SubShapeAllSortedIDs(Shape, + Type)  explodes + a shape on subshapes of a given type and + sorts them by coordinates of their gravity centers,  returning + a List of IDs of sub-shapes.

  • + +
  • geompy.SubShape(Shape, Type, ListOfInd) +  allows + to obtain a compound of sub-shapes of  the + Shape,  selected + by they indices in a list of all sub-shapes of the given Type. Each index + is in the range [1, Nb_Sub-Shapes_Of_Given_Type].

  • + +
  • geompy.SubShapeSorted(Shape, + Type, ListOfInd) allows to obtain a compound of sub-shapes of the Shape, + selected by they indices in sorted list of all sub-shapes of the given + Type. Each index is in the range [1, Nb_Sub-Shapes_Of_Given_Type]

  • +
+ +

 

+ +

Arguments: + 1 SHAPE + 1 type of SubShape.

+ +

 

+ +

 

+ +

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/explode_on_blocks.htm b/doc/salome/gui/GEOM/explode_on_blocks.htm index 64c847a2c..e30f3e802 100755 --- a/doc/salome/gui/GEOM/explode_on_blocks.htm +++ b/doc/salome/gui/GEOM/explode_on_blocks.htm @@ -1,168 +1,168 @@ - - - - - -Explode on Blocks - - - - - - - - - - - - - -

Explode on Blocks

- -

To produce - an Explode on Blocks operation - in the Main Menu select Operations - - > Blocks - > Explode on Blocks.

- -

 

- -

This operation - returns blocks of the given compound. The user may define the type of - blocks to be extracted by setting the minimum and maximum number of faces - in the target block. By checking the corresponding box the user may also - interactively choose the blocks from a compound .

- -

 

- -

The - Result will be a GEOM_Object.

- -

 

- -

TUI Command: - geompy.MakeBlockExplode(Compound, - MinNbFaces, MaxNbFaces), where Compound is a compound to be exploded - into the blocks, MinNbFaces, MaxNbFaces are correspondingly the minimal - and  the - maximal number of faces of the resulting blocks.

- -

Arguments: 1 compound + 2 integers (min. and max. number - of faces in the block to be extracted).

- -

 

- -

 

- -

- -

 

- -

Example:

- -

 

- -

- -

 

- -

 

- -

   Our TUI - Scripts provide you with useful examples - of the use of Blocks - Operations.

- -

 

- - - - + + + + + +Explode on Blocks + + + + + + + + + + + + + +

Explode on Blocks

+ +

To produce + an Explode on Blocks operation + in the Main Menu select Operations - + > Blocks - > Explode on Blocks.

+ +

 

+ +

This operation + returns blocks of the given compound. The user may define the type of + blocks to be extracted by setting the minimum and maximum number of faces + in the target block. By checking the corresponding box the user may also + interactively choose the blocks from a compound .

+ +

 

+ +

The + Result will be a GEOM_Object.

+ +

 

+ +

TUI Command: + geompy.MakeBlockExplode(Compound, + MinNbFaces, MaxNbFaces), where Compound is a compound to be exploded + into the blocks, MinNbFaces, MaxNbFaces are correspondingly the minimal + and  the + maximal number of faces of the resulting blocks.

+ +

Arguments: 1 compound + 2 integers (min. and max. number + of faces in the block to be extracted).

+ +

 

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

+ +

 

+ +

 

+ +

   Our TUI + Scripts provide you with useful examples + of the use of Blocks + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/extrusion.htm b/doc/salome/gui/GEOM/extrusion.htm index 89faaaa71..70a8fbca2 100755 --- a/doc/salome/gui/GEOM/extrusion.htm +++ b/doc/salome/gui/GEOM/extrusion.htm @@ -1,168 +1,168 @@ - - - - - -Extrusion - - - - - - - - - - - - -

 Extrusion

- -

To generate an Extrusion on an object in the Main Menu select New - Entity - > Generation  - - > Extrusion

- -

 

- -

There are 2 algorithms for creation of an - Extrusion (Prism).

- -

Firstly, you can define the Base - Shape (a basis of the extrusion), - the Vector (a direction - of the extrusion) and the Height - of extrusion.  

- -

The - Result of the operation will be a - GEOM_Object (edge, face, solid or compsolid).

- -

TUI - Command : geompy.MakePrismVecH(Base, - Vector, Height)

- -

Arguments: - Name + 1 shape (vertex, edge, wire, face or shell) serving as base object - + 1 vector (for direction of the extrusion) + 1 value (dimension).

- -

 

- -

- -

 

- -

Secondly, - you can define the Extrusion by - the Base Shape and the Start and End Point - of the Vector  (in - this way you don't need to create it in advance).

- -

TUI - Command: geompy.MakePrism(Base, - Point1, Point2)

- -

Arguments: - Name + 1 shape (vertex, edge, wire, face or shell) serving as base object - + 2 vertices.

- -

 

- -

- -

 

- -

Examples:

- -

 

- -

Base Shape                                                          Prisms

- -

 

- -

 

- -

Our TUI Scripts - provide you with useful examples of creation of Complex - Geometric Objects.

- -

 

- - - - + + + + + +Extrusion + + + + + + + + + + + + +

 Extrusion

+ +

To generate an Extrusion on an object in the Main Menu select New + Entity - > Generation  - + > Extrusion

+ +

 

+ +

There are 2 algorithms for creation of an + Extrusion (Prism).

+ +

Firstly, you can define the Base + Shape (a basis of the extrusion), + the Vector (a direction + of the extrusion) and the Height + of extrusion.  

+ +

The + Result of the operation will be a + GEOM_Object (edge, face, solid or compsolid).

+ +

TUI + Command : geompy.MakePrismVecH(Base, + Vector, Height)

+ +

Arguments: + Name + 1 shape (vertex, edge, wire, face or shell) serving as base object + + 1 vector (for direction of the extrusion) + 1 value (dimension).

+ +

 

+ +

+ +

 

+ +

Secondly, + you can define the Extrusion by + the Base Shape and the Start and End Point + of the Vector  (in + this way you don't need to create it in advance).

+ +

TUI + Command: geompy.MakePrism(Base, + Point1, Point2)

+ +

Arguments: + Name + 1 shape (vertex, edge, wire, face or shell) serving as base object + + 2 vertices.

+ +

 

+ +

+ +

 

+ +

Examples:

+ +

 

+ +

Base Shape                                                          Prisms

+ +

 

+ +

 

+ +

Our TUI Scripts + provide you with useful examples of creation of Complex + Geometric Objects.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/face.htm b/doc/salome/gui/GEOM/face.htm index 86c6b79da..a0fdccf80 100755 --- a/doc/salome/gui/GEOM/face.htm +++ b/doc/salome/gui/GEOM/face.htm @@ -1,155 +1,155 @@ - - - - - -Face - - - - - - - - - - - - -

 Face

- -

To create - a Face in the Main Menu select - New Entity - > Build - > Face

- -

 

- -

To - create a Face - you need to select a wire, whose elements will be connected so that the - surface of the resulting object was minimal. Check Try - to create a planar face to create - a planar face or nothing if it is impossible.

- -

The - Result will be a GEOM_Object - (FACE).

- -

 

- -

TUI Command: - geompy.MakeFace(Wire, isPlanarWanted)

- -

Arguments: - Name + 1 wire.

- -

 

- -

- -

 

- -

There are some advanced possibilities accessible - only via TUI commands.

- -

 

- -

geompy.MakeFaceWires(Wires, - isPlanarWanted) - Creates a face on the given wires set. The argument - is not a single wire, but a list of wires.

- -

geompy.MakeFaces(Wires, - isPlanarWanted) is a shortcut to MakeFaceWires(). -

- -

 

- -

 

- -

Example:

- -

 

- -

- -

 

- -

Our TUI Scripts provide you with useful examples - of creation of Advanced Geometric - Objects.

- -

 

- - - - + + + + + +Face + + + + + + + + + + + + +

 Face

+ +

To create + a Face in the Main Menu select + New Entity - > Build - > Face

+ +

 

+ +

To + create a Face + you need to select a wire, whose elements will be connected so that the + surface of the resulting object was minimal. Check Try + to create a planar face to create + a planar face or nothing if it is impossible.

+ +

The + Result will be a GEOM_Object + (FACE).

+ +

 

+ +

TUI Command: + geompy.MakeFace(Wire, isPlanarWanted)

+ +

Arguments: + Name + 1 wire.

+ +

 

+ +

+ +

 

+ +

There are some advanced possibilities accessible + only via TUI commands.

+ +

 

+ +

geompy.MakeFaceWires(Wires, + isPlanarWanted) - Creates a face on the given wires set. The argument + is not a single wire, but a list of wires.

+ +

geompy.MakeFaces(Wires, + isPlanarWanted) is a shortcut to MakeFaceWires(). +

+ +

 

+ +

 

+ +

Example:

+ +

 

+ +

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of creation of Advanced Geometric + Objects.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/files/introduction_to_geom.htm b/doc/salome/gui/GEOM/files/introduction_to_geom.htm index c1689fa49..d39bc391f 100755 --- a/doc/salome/gui/GEOM/files/introduction_to_geom.htm +++ b/doc/salome/gui/GEOM/files/introduction_to_geom.htm @@ -1,143 +1,143 @@ - - - - - -Introduction to GEOM - - - - - - - - - - - - -

Introduction to Geometry

- -

Geometry module - of SALOME is destined for:

- -

 

- -
    - -
  • Import and export of geometrical models in IGES, - BREP and STEP formats.

  • - -
  • Construction and optimization of geometrical models - using a wide range of  CAD - functions:

  • -
- -

 

- - --- - - - -
-
    - -
  • Creation of basic geometrical objects

  • - -
  • Construction of primitives

  • - -
  • Building shapes

  • - -
  • Generation of complex shapes

  • - -
  • Working with groups

  • - -
  • Geometrical repairing of objects

  • - -
  • Geometrical boolean operations

  • - -
  • Geometrical transformations

  • - -
  • Building by blocks

  • -
-

 

-

- -

 

- - - - + + + + + +Introduction to GEOM + + + + + + + + + + + + +

Introduction to Geometry

+ +

Geometry module + of SALOME is destined for:

+ +

 

+ +
    + +
  • Import and export of geometrical models in IGES, + BREP and STEP formats.

  • + +
  • Construction and optimization of geometrical models + using a wide range of  CAD + functions:

  • +
+ +

 

+ + +++ + + + +
+
    + +
  • Creation of basic geometrical objects

  • + +
  • Construction of primitives

  • + +
  • Building shapes

  • + +
  • Generation of complex shapes

  • + +
  • Working with groups

  • + +
  • Geometrical repairing of objects

  • + +
  • Geometrical boolean operations

  • + +
  • Geometrical transformations

  • + +
  • Building by blocks

  • +
+

 

+

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions.htm b/doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions.htm index b740fc8af..ff110b02c 100755 --- a/doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions.htm +++ b/doc/salome/gui/GEOM/files/salome2_sp3_booleangui_functions.htm @@ -1,159 +1,159 @@ - - - - - -Using Boolean Operations - - - - - - - - - - - - - -

Using Boolean Operations

- -

 

- -

You can use the following - boolean operations for construction of more complex geometrical objects - (2D & 3D elements) :

- -

 

- - - - - -

 

- -

There is a general TUI command covering - all these operations, which can be used alongside with separate commands - for each operation.

- -

geompy.MakeBoolean(Shape1, - Shape2, Operation), where Shape1 is the first argument and Shape2 - is the second argument of Boolean operation, Operation is a type of the - Boolean operation (1 – Common, 2 – Cut, 3 – Fuse, 4 – Section).

- -

 

- -

Our TUI - Scripts provide you with useful examples of the use of Boolean - Operations.

- -

 

- - - - + + + + + +Using Boolean Operations + + + + + + + + + + + + + +

Using Boolean Operations

+ +

 

+ +

You can use the following + boolean operations for construction of more complex geometrical objects + (2D & 3D elements) :

+ +

 

+ + + + + +

 

+ +

There is a general TUI command covering + all these operations, which can be used alongside with separate commands + for each operation.

+ +

geompy.MakeBoolean(Shape1, + Shape2, Operation), where Shape1 is the first argument and Shape2 + is the second argument of Boolean operation, Operation is a type of the + Boolean operation (1 – Common, 2 – Cut, 3 – Fuse, 4 – Section).

+ +

 

+ +

Our TUI + Scripts provide you with useful examples of the use of Boolean + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_geomtoolsgui_functions.htm b/doc/salome/gui/GEOM/files/salome2_sp3_geomtoolsgui_functions.htm index d9af06c80..de5df125d 100755 --- a/doc/salome/gui/GEOM/files/salome2_sp3_geomtoolsgui_functions.htm +++ b/doc/salome/gui/GEOM/files/salome2_sp3_geomtoolsgui_functions.htm @@ -1,146 +1,146 @@ - - - - - -Importing and exporting geometrical objects - - - - - - - - - - - - -

Importing/exporting geometrical objects

- -

In Geometry module you - can import and export geometrical objects from/into BREP, IGES, STEP files. The mechanisms of import and export - are implemented via plug-ins, which gives you the opportunity to expand - the range of available formats by adding more plug-ins (for example, CATIA - 5).  

- -  - -

To import geometrical objects from a BREP, IGES, STEP file:

- -

 

- -

From the File - menu choose Import. In - the opening dialog box Import - select the required format of the file for importation and search for - a *.brep, *.iges or *.step  file. -

- -

 

- -

- -

 

- -

Select the required file and click Open. Your file will be imported in - the module and its contents (geometrical object) will be displayed in - the Object Browser.

- -

 

- -

 

- -

To export geometrical objects into a BREP, IGES, STEP file:

- -

 

- -

Select the object you wish to export, then - from the File menu choose Export. In the opening dialog box Export define the required format, - the name and the location of the file for exportation. -

- -

 

- -

- -

 

- -

Click Save - to confirm your exportation.  

- - - - + + + + + +Importing and exporting geometrical objects + + + + + + + + + + + + +

Importing/exporting geometrical objects

+ +

In Geometry module you + can import and export geometrical objects from/into BREP, IGES, STEP files. The mechanisms of import and export + are implemented via plug-ins, which gives you the opportunity to expand + the range of available formats by adding more plug-ins (for example, CATIA + 5).  

+ +  + +

To import geometrical objects from a BREP, IGES, STEP file:

+ +

 

+ +

From the File + menu choose Import. In + the opening dialog box Import + select the required format of the file for importation and search for + a *.brep, *.iges or *.step  file. +

+ +

 

+ +

+ +

 

+ +

Select the required file and click Open. Your file will be imported in + the module and its contents (geometrical object) will be displayed in + the Object Browser.

+ +

 

+ +

 

+ +

To export geometrical objects into a BREP, IGES, STEP file:

+ +

 

+ +

Select the object you wish to export, then + from the File menu choose Export. In the opening dialog box Export define the required format, + the name and the location of the file for exportation. +

+ +

 

+ +

+ +

 

+ +

Click Save + to confirm your exportation.  

+ + + + diff --git a/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions.htm b/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions.htm index 1479bff46..acb24e686 100755 --- a/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions.htm +++ b/doc/salome/gui/GEOM/files/salome2_sp3_measuregui_functions.htm @@ -1,483 +1,483 @@ - - - - - -Using Measurement Tools - - - - - - - - - - - - - -

Using measurement tools

- -

Measurement tools in GEOM are necessary for getting different - data concerning created or imported geometrical objects. They are:

- -

 

- - - -

 

- -

Our TUI Scripts - show how to use Measurement Tools - with  TUI - commands.

- -

 

- -

To use measurement tools:

- -

 

- -

In the main menu select Measures - submenu.

- -

 

- -

 

- -

  Point coordinates

- -

 

- -

Returns the - coordinates of a point.

- -

 

- -

Result: Point - coordinates (X, Y, Z) in 3D space in the form of Python Tuple.

- -

TUI command: - geompy.PointCoordinates(Point), - where Point is a point whose coordinates are inquired.

- -

 

- -

- -

 

- -

 

- -

Basic properties -

- -

 

- -

Returns the properties (Length, Surface & - Volume) for the selected geometrical object.

- -

 

- -

Result: Display - Length, Surface & Volume in the form of Python Tuple.

- -

TUI command: - geompy.BasicProperties(Shape), - where Shape is a shape whose properties are inquired.

- -

 

- -

- -

 

- -

 

- -

- Center of mass

- -

 

- -

Calculates and returns the coordinates of the - gravity center for the selected geometrical object.

- -

 

- -

Result: GEOM_Object - (vertex).

- -

TUI Command: - geompy.MakeCDG(Shape), where - Shape is the shape for which a center of gravity is computed.

- -

 

- -

- -

 

- -

 

- -

Inertia -

- -

 

- -

Returns the axis of inertia for the selected - geometrical object.

- -

 

- -

Result: Displays - the matrix and moments of inertia in the form of Python Tuple (I11, I12, - I13,

- -

 I21, - I22, I23,

- -

 I31, - I32, I33,

- -

 Ix, - Iy, Iz).

- -

 

- -

TUI command: - geompy.Inertia(Shape), where - Shape is a shape for which a matrix of inertia and moment of inertia are - returned.

- -

 

- -

- -

 

- -

 

- -

Bounding - box

- -

 

- -

Returns the dimensions of the bounding box - for the selected geometrical object.

- -

 

- -

Result: Displays - the dimensions of the bounding box of a geometrical object in the form - of Python Tuple (Xmin, Xmax, Ymin, Ymax, Zmin, Zmax).

- -

TUI command: geompy.BoundingBox(Shape), where Shape is a shape for which a bounding - box is computed.

- -

 

- -

- -

 

- -

 

- -

Min. distance

- -

 

- -

Returns the minimum distance between two geometrical - objects.

- -

 

- -

TUI command: geompy.MinDistance(Shape1, - Shape2), where Shape1 and Shape2 - are shapes between which the minimal distance computed.

- -

 

- -

- -

 

- -

 

- -

- Tolerance

- -

 

- -

Returns the maximum and the minimum tolerance - for the selected geometrical object.

- -

 

- -

Result: Displays - the tolerance values (FaceMinTol, FaceMaxTol, EgdeMinTol, EgdeMaxTol, - VertexMinTol, VertexMaxTol).

- -

TUI command: geompy.Tolerance(Shape), where Shape is a shape for which minimal - and maximal tolerances are returned.

- -

 

- -

- -

 

- -

 

- -

WhatIs -

- -

 

- -

Displays types and quantities of all elements - composing the selected geometrical object.

- -

 

- -

TUI command: - geompy.WhatIs(Shape), where Shape - is a shape from which a description is returned.

- -

 

- -

- -

 

- -

 

- -

Check -

- -

 

- -

Checks the topology of the selected geometrical - object and returns True if it is valid. Check - also geometry checkbox allows to test the geometry as well.

- -

 

- -

Result: Boolean.

- -

TUI Command: - geompy.(theShape, theIsCheckGeom - = 0), where is shape which is checked for validity.

- -

 

- -

- -

 

- -

 

- -

Check compound - of blocks

- -

 

- -

Checks whether a shape is a compound of glued - blocks. To be considered as a compound of blocks, the given shape must - satisfy the following conditions:

- -
    - -
  •  Each - element of the compound should be a Block (6 faces and 12 edges);

  • - -
  •  A - connection between two Blocks should be an entire quadrangle face or an - entire edge;

  • - -
  •  The - compound should be connected;

  • - -
  •  Two - quadrangle faces should be glued.

  • -
- -

 

- -

Informs of the following possible errors:

- -
    - -
  • not a block,

  • - -
  • not glued,

  • - -
  • not connected,

  • - -
  • extra - or degenerated edge.

  • -
- -

 

- -

Result: Boolean; - highlight in the viewer.

- -

TUI Command: - geompy.CheckCompoundOfBlocks(Compound). - Checks if the shape is - a valid compound of blocks. If it is true, then the validity flag is returned, - and encountered errors are printed in the python console.

- -

 

- -

- -

 

- - - - + + + + + +Using Measurement Tools + + + + + + + + + + + + + +

Using measurement tools

+ +

Measurement tools in GEOM are necessary for getting different + data concerning created or imported geometrical objects. They are:

+ +

 

+ + + +

 

+ +

Our TUI Scripts + show how to use Measurement Tools + with  TUI + commands.

+ +

 

+ +

To use measurement tools:

+ +

 

+ +

In the main menu select Measures + submenu.

+ +

 

+ +

 

+ +

  Point coordinates

+ +

 

+ +

Returns the + coordinates of a point.

+ +

 

+ +

Result: Point + coordinates (X, Y, Z) in 3D space in the form of Python Tuple.

+ +

TUI command: + geompy.PointCoordinates(Point), + where Point is a point whose coordinates are inquired.

+ +

 

+ +

+ +

 

+ +

 

+ +

Basic properties +

+ +

 

+ +

Returns the properties (Length, Surface & + Volume) for the selected geometrical object.

+ +

 

+ +

Result: Display + Length, Surface & Volume in the form of Python Tuple.

+ +

TUI command: + geompy.BasicProperties(Shape), + where Shape is a shape whose properties are inquired.

+ +

 

+ +

+ +

 

+ +

 

+ +

+ Center of mass

+ +

 

+ +

Calculates and returns the coordinates of the + gravity center for the selected geometrical object.

+ +

 

+ +

Result: GEOM_Object + (vertex).

+ +

TUI Command: + geompy.MakeCDG(Shape), where + Shape is the shape for which a center of gravity is computed.

+ +

 

+ +

+ +

 

+ +

 

+ +

Inertia +

+ +

 

+ +

Returns the axis of inertia for the selected + geometrical object.

+ +

 

+ +

Result: Displays + the matrix and moments of inertia in the form of Python Tuple (I11, I12, + I13,

+ +

 I21, + I22, I23,

+ +

 I31, + I32, I33,

+ +

 Ix, + Iy, Iz).

+ +

 

+ +

TUI command: + geompy.Inertia(Shape), where + Shape is a shape for which a matrix of inertia and moment of inertia are + returned.

+ +

 

+ +

+ +

 

+ +

 

+ +

Bounding + box

+ +

 

+ +

Returns the dimensions of the bounding box + for the selected geometrical object.

+ +

 

+ +

Result: Displays + the dimensions of the bounding box of a geometrical object in the form + of Python Tuple (Xmin, Xmax, Ymin, Ymax, Zmin, Zmax).

+ +

TUI command: geompy.BoundingBox(Shape), where Shape is a shape for which a bounding + box is computed.

+ +

 

+ +

+ +

 

+ +

 

+ +

Min. distance

+ +

 

+ +

Returns the minimum distance between two geometrical + objects.

+ +

 

+ +

TUI command: geompy.MinDistance(Shape1, + Shape2), where Shape1 and Shape2 + are shapes between which the minimal distance computed.

+ +

 

+ +

+ +

 

+ +

 

+ +

+ Tolerance

+ +

 

+ +

Returns the maximum and the minimum tolerance + for the selected geometrical object.

+ +

 

+ +

Result: Displays + the tolerance values (FaceMinTol, FaceMaxTol, EgdeMinTol, EgdeMaxTol, + VertexMinTol, VertexMaxTol).

+ +

TUI command: geompy.Tolerance(Shape), where Shape is a shape for which minimal + and maximal tolerances are returned.

+ +

 

+ +

+ +

 

+ +

 

+ +

WhatIs +

+ +

 

+ +

Displays types and quantities of all elements + composing the selected geometrical object.

+ +

 

+ +

TUI command: + geompy.WhatIs(Shape), where Shape + is a shape from which a description is returned.

+ +

 

+ +

+ +

 

+ +

 

+ +

Check +

+ +

 

+ +

Checks the topology of the selected geometrical + object and returns True if it is valid. Check + also geometry checkbox allows to test the geometry as well.

+ +

 

+ +

Result: Boolean.

+ +

TUI Command: + geompy.(theShape, theIsCheckGeom + = 0), where is shape which is checked for validity.

+ +

 

+ +

+ +

 

+ +

 

+ +

Check compound + of blocks

+ +

 

+ +

Checks whether a shape is a compound of glued + blocks. To be considered as a compound of blocks, the given shape must + satisfy the following conditions:

+ +
    + +
  •  Each + element of the compound should be a Block (6 faces and 12 edges);

  • + +
  •  A + connection between two Blocks should be an entire quadrangle face or an + entire edge;

  • + +
  •  The + compound should be connected;

  • + +
  •  Two + quadrangle faces should be glued.

  • +
+ +

 

+ +

Informs of the following possible errors:

+ +
    + +
  • not a block,

  • + +
  • not glued,

  • + +
  • not connected,

  • + +
  • extra + or degenerated edge.

  • +
+ +

 

+ +

Result: Boolean; + highlight in the viewer.

+ +

TUI Command: + geompy.CheckCompoundOfBlocks(Compound). + Checks if the shape is + a valid compound of blocks. If it is true, then the validity flag is returned, + and encountered errors are printed in the python console.

+ +

 

+ +

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/fillet.htm b/doc/salome/gui/GEOM/fillet.htm index 611536ba5..83ab6e5d6 100755 --- a/doc/salome/gui/GEOM/fillet.htm +++ b/doc/salome/gui/GEOM/fillet.htm @@ -1,182 +1,182 @@ - - - - - -Fillet - - - - - - - - - - - - - -

Fillet

- -

To produce - a Fillet in the Main Menu select - Operations - > Transformation - > - Fillet  

- -

 

- -

This operation creates - fillets on the edges of a shape.

- -

The - Result will be a GEOM_Object.

- -

 

- -

To create fillets on all edges of the given - shape, you need to define the Main Object - to create a fillet on and the Radius - of the Fillet.  

- -

TUI Command: - geompy.MakeFilletAll(Shape, R)

- -

Arguments: Name + 1 shape + 1 value - (fillet radius).

- -

 

- -

- -

 

- -

To create fillets on the specified edges or - faces of the given shape,  you - need to define the Main Object - to create a fillet on, select the necessary edges or faces in the OCC - Viewer and define the  Radius - of the Fillet.

- -

TUI - Command: geompy.MakeFillet(Shape, R, ShapeType, ListShapes) -

- -

Arguments: Name + 1 shape + 1 Selection - of edges (or faces) + 1 value (Fillet radius).

- -

 

- -

 

- -

 

- -

Example:

- -

 

- -

Fillet on all                                           Fillet - on an edge                             Fillet - on a Face

- -

 

- -

    

- -

  

- -

Our TUI Scripts - provide you with useful examples of the use of Transformation - Operations.

- -

 

- - - - + + + + + +Fillet + + + + + + + + + + + + + +

Fillet

+ +

To produce + a Fillet in the Main Menu select + Operations - > Transformation - > + Fillet  

+ +

 

+ +

This operation creates + fillets on the edges of a shape.

+ +

The + Result will be a GEOM_Object.

+ +

 

+ +

To create fillets on all edges of the given + shape, you need to define the Main Object + to create a fillet on and the Radius + of the Fillet.  

+ +

TUI Command: + geompy.MakeFilletAll(Shape, R)

+ +

Arguments: Name + 1 shape + 1 value + (fillet radius).

+ +

 

+ +

+ +

 

+ +

To create fillets on the specified edges or + faces of the given shape,  you + need to define the Main Object + to create a fillet on, select the necessary edges or faces in the OCC + Viewer and define the  Radius + of the Fillet.

+ +

TUI + Command: geompy.MakeFillet(Shape, R, ShapeType, ListShapes) +

+ +

Arguments: Name + 1 shape + 1 Selection + of edges (or faces) + 1 value (Fillet radius).

+ +

 

+ +

 

+ +

 

+ +

Example:

+ +

 

+ +

Fillet on all                                           Fillet + on an edge                             Fillet + on a Face

+ +

 

+ +

    

+ +

  

+ +

Our TUI Scripts + provide you with useful examples of the use of Transformation + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/filling.htm b/doc/salome/gui/GEOM/filling.htm index 1d5c5e01a..0eff73469 100755 --- a/doc/salome/gui/GEOM/filling.htm +++ b/doc/salome/gui/GEOM/filling.htm @@ -1,145 +1,145 @@ - - - - - -Filling - - - - - - - - - - - - -

 Filling - Surface with Edges

- -

To generate - a Filling in the Main - Menu select New Entity - > - Generation  - - > Filling

- -

 

- -

To create a curving face using several edges - you need to define the Edges Compound, -  Minimum - and Maximum Degree, Tolerance - for 2D and for 3D -  and - the Number of Iterations.

- -

The - Result of the operation will be a - GEOM_Object (face).

- -

 

- -

TUI Command: - geompy.MakeFilling(Shape, MinDegree, - MaxDegree, Tol2D, Tol3D, NbIter),

- -

Arguments: - Name + 1 List of edges + 5 Parameters (Min. degree, Max. degree, Number - of iterations, 2D tolerance, 3D tolerance).

- -

 

- -

- -

 

- -

 

- -

Example:

- -

 

- -

 

- -

 

- -

Our TUI Scripts provide you with useful examples - of creation of Complex Geometric - Objects.

- -

 

- - - - + + + + + +Filling + + + + + + + + + + + + +

 Filling + Surface with Edges

+ +

To generate + a Filling in the Main + Menu select New Entity - > + Generation  - + > Filling

+ +

 

+ +

To create a curving face using several edges + you need to define the Edges Compound, +  Minimum + and Maximum Degree, Tolerance + for 2D and for 3D +  and + the Number of Iterations.

+ +

The + Result of the operation will be a + GEOM_Object (face).

+ +

 

+ +

TUI Command: + geompy.MakeFilling(Shape, MinDegree, + MaxDegree, Tol2D, Tol3D, NbIter),

+ +

Arguments: + Name + 1 List of edges + 5 Parameters (Min. degree, Max. degree, Number + of iterations, 2D tolerance, 3D tolerance).

+ +

 

+ +

+ +

 

+ +

 

+ +

Example:

+ +

 

+ +

 

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of creation of Complex Geometric + Objects.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/fuse.htm b/doc/salome/gui/GEOM/fuse.htm index d8eb90cdb..f5895cac7 100755 --- a/doc/salome/gui/GEOM/fuse.htm +++ b/doc/salome/gui/GEOM/fuse.htm @@ -1,152 +1,152 @@ - - - - - -Fuse - - - - - - - - - - - - - -

Fuse

- -

To produce - a Fuse operation in the Main Menu - select Operations - > Boolean - > - Fuse

- -

 

- -

This operation creates a shape from two - shapes.

- -

 

- -

The Result - will be a GEOM_Object (COMPOUND).

- -

Arguments: - Name + 2 shapes.

- -

TUI - Command:  geompy.MakeFuse(s1, - s2)

- -

 

- -

 

- -

- -

 

- -

Example:

- -

 

- -

 

- -

 

- -

Our TUI Scripts - provide you with useful examples of the use of Boolean - Operations.

- -

 

- - - - + + + + + +Fuse + + + + + + + + + + + + + +

Fuse

+ +

To produce + a Fuse operation in the Main Menu + select Operations - > Boolean - > + Fuse

+ +

 

+ +

This operation creates a shape from two + shapes.

+ +

 

+ +

The Result + will be a GEOM_Object (COMPOUND).

+ +

Arguments: + Name + 2 shapes.

+ +

TUI + Command:  geompy.MakeFuse(s1, + s2)

+ +

 

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

 

+ +

 

+ +

Our TUI Scripts + provide you with useful examples of the use of Boolean + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/geom.log b/doc/salome/gui/GEOM/geom.log index 9e1f06a3e..d47ee1faa 100755 --- a/doc/salome/gui/GEOM/geom.log +++ b/doc/salome/gui/GEOM/geom.log @@ -1,589 +1,589 @@ -|SourceProjectName:GEOM.hpr -|DestinationProjectName:index.htm -whhost.js -whmsg.js -whmozemu.js -whproxy.js -whstub.js -whutils.js -whver.js -whform.js -whphost.js -whstart.js -whtopic.js -whframes.js -whlang.js -whskin_info.htm -whskin_blank.htm -whskin_pickup.htm -whskin_homepage.htm -whskin_tw.htm -whnjs.htm -whthost.js -whtdhtml.htm -whihost.js -whibody.htm -whiform.htm -whfhost.js -whfbody.htm -whfform.htm -whghost.js -whgbody.htm -whgdhtml.htm -whgdef.htm -whproj.js -whproj.xml -whproj.htm -whxdata\whtoc.xml -whxdata\whidx.xml -whxdata\whfts.xml -whxdata\whglo.xml -whdata\whtoc.js -whdata\whtoc.htm -whdata\whtdata.js -whdata\whidx.js -whdata\whidx.htm -whdata\whidata.js -whdata\whfts.js -whdata\whfts.htm -whdata\whglo.js -whdata\whglo.htm -whdata\whgdata.js -whdata\whftdata.js -whdata\whfwdata.js -whres.xml -webhelp.jar -webhelp.cab -whgdata\whnvp30.htm -whgdata\whnvp31.htm -whgdata\whnvp32.htm -whgdata\whnvp33.htm -whgdata\whnvt30.htm -whgdata\whnvt31.htm -whgdata\whnvt32.htm -whgdata\whnvt33.htm -whgdata\whnvf30.htm -whgdata\whnvf31.htm -whgdata\whnvf32.htm -whgdata\whnvf33.htm -whgdata\whnvl31.htm -whgdata\whnvl32.htm -whgdata\whnvl33.htm -whgdata\whexpbar.gif -cshdat_webhelp.htm -whcsh_home.htm -whcshdata.htm -cshdat_robohelp.htm -whd_topic.xml -whd_nvp10.htm -whd_nvp20.htm -whd_tabs.htm -whd_dpns.htm -whd_tab0.gif -whd_tab1.gif -whd_tab2.gif -whd_tab3.gif -whd_tab4.gif -whd_tab5.gif -whd_tab6.gif -whd_tab7.gif -whd_tab8.gif -whd_toc1.gif -whd_toc2.gif -whd_toc3.gif -whd_toc4.gif -whd_show0.gif -whd_show1.gif -whd_show2.gif -whd_hide0.gif -whd_hide1.gif -whd_hide2.gif -whd_sync0.gif -whd_sync1.gif -whd_sync2.gif -whd_prev0.gif -whd_prev1.gif -whd_prev2.gif -whd_next0.gif -whd_next1.gif -whd_next2.gif -whd_wbsh0.gif -whd_wbsh1.gif -whd_wbsh2.gif -whidhtml.htm -whfdhtml.htm -index_hha.hhk -index.hhc -index.hhk -add_point_on_edge.htm -arc.htm -archimede.htm -basic_geometrical_objects.htm -basic_operations.htm -blocks_operations.htm -boolean_operations.htm -box.htm -building_by_blocks.htm -chamfer.htm -change_orientation.htm -changing_display_parameters.htm -check_free_boundaries.htm -check_free_faces.htm -circle.htm -close_contour.htm -color.htm -common.htm -complex_objects.htm -compound.htm -cone.htm -curve.htm -cut.htm -cylinder.htm -edge.htm -ellipse.htm -explode.htm -explode_on_blocks.htm -extrusion.htm -face.htm -files\introduction_to_geom.htm -files\salome2_sp3_booleangui_functions.htm -files\salome2_sp3_geomtoolsgui_functions.htm -files\salome2_sp3_measuregui_functions.htm -fillet.htm -filling.htm -fuse.htm -geometrical_objects.htm -geometry.htm -glue_faces.htm -groups.htm -isos.htm -line.htm -local_coordinate_system.htm -measurement_tools.htm -mirror_image.htm -modify_the_location.htm -multi_rotation.htm -multi_transformation.htm -multi_translation.htm -newentity_blocks.htm -occ_viewer.htm -offset_surface.htm -partition.htm -pipe_creation.htm -plane.htm -point.htm -primitives.htm -propagate.htm -repairing_operations.htm -revolution.htm -rotation.htm -scale_transform.htm -section.htm -sewing.htm -shape_processing.htm -shell.htm -sketcher.htm -sketcher_tui.htm -solid.htm -sphere.htm -suppress_faces.htm -suppress_holes.htm -suppress_internal_wires.htm -transformation_operations.htm -translation.htm -transparency.htm -turus.htm -vector.htm -viewing_geometrical_objects.htm -wire.htm -wireframe_and_shading.htm -working_plane.htm -working_with_groups.htm -ehelp.xml -index.glo -default.css -pics\image86.gif -pics\image103.gif -pics\image97.gif -pics\chamfer_all.png -pics\edgesn.png -pics\boxes.png -pics\mtrans1.png -pics\transformation3.png -pics\mtransf2.png -image15.jpg -image204.jpg -image56.gif -files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image73.gif -files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image4.gif -salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image17.gif -pics\clipping.png -pics\image98.gif -pics\archimedesn1.png -pics\neo-basicprop.png -pics\mtrans2.png -pics\transformation4.png -pics\mtransf3.png -pics\plane1.png -image16.jpg -image57.gif -image35.gif -files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image74.gif -salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image18.gif -pics\image105.gif -pics\image99.gif -pics\image88.gif -pics\image77.gif -pics\suppress_faces1.png -pics\mirror_axissn1.png -pics\archimedesn2.png -pics\revolutionsn.png -pics\ellipsesn.png -pics\transformation10.png -pics\transformation5.png -pics\mtransf4.png -pics\plane2.png -image206.jpg -files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image75.gif -files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image30.gif -salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image19.gif -image26.gif -image1.jpg -pics\image106.gif -pics\image89.gif -pics\suppress_faces2.png -pics\multi_translation1dsn.png -pics\mirror_axissn2.png -pics\multi_transformationsn2d.png -pics\archimedesn3.png -pics\wiresn.png -pics\transformation11.png -pics\transformation6.png -pics\block1.png -pics\pipe.png -pics\torus1.png -pics\plane3.png -image59.gif -image37.gif -files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image87.gif -files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image76.gif -files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image31.gif -image38.gif -pics\multi_transformationsn1d.png -pics\fillingsn.png -pics\spheres.png -pics\polyline.png -pics\neo-obj1.png -pics\repair1.png -pics\transformation7.png -pics\block2.png -pics\torus2.png -image27.gif -image180.jpg -image49.gif -image109.jpg -files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image131.gif -files\salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image119.gif -files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image88.gif -files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image77.gif -files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image32.gif -image28.gif -selectcolor.png -pics\glue_faces1.png -pics\supp_int_wires1.png -pics\fusesn1.png -pics\transparencysn.png -pics\arcsn.png -pics\points.png -pics\neo-obj2.png -pics\neo-localcs1.png -pics\measures10.png -pics\repair2.png -pics\transformation8.png -pics\block3.png -image181.jpg -files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image132.gif -files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image89.gif -files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image78.gif -image3.jpg -files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image33.gif -image18.gif -image1.gif -pics\geomimport.png -pics\neo-isos.png -pics\glue_faces2.png -pics\supp_int_wires2.png -pics\sectionsn.png -pics\fusesn2.png -pics\toruses.png -pics\circles.png -pics\neo-materials.png -pics\neo-obj3.png -pics\neo-localcs2.png -pics\measures1.png -pics\repair3.png -pics\transformation9.png -pics\bool1.png -pics\partition1.png -pics\block4.png -pics\sphere1.png -image193.jpg -image29.gif -image160.jpg -files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image133.gif -files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image34.gif -pics\changeorientation.png -pics\pipesn.png -pics\pipe_wire_edgesn.png -image2.gif -pics\chamfer_faces.png -pics\fillet_prism.png -pics\rotationsn1.png -pics\disp_mode1sn.png -pics\cones.png -pics\planes1.png -pics\lines.png -pics\neo-obj4.png -pics\neo-localcs3.png -pics\repair4.png -pics\bool2.png -pics\partition2.png -pics\block5.png -pics\sphere2.png -pics\point1.png -pics\rotationsn2.png -pics\disp_mode2sn.png -pics\neo-detect2.png -pics\neo-section.png -pics\neo-obj5.png -pics\measures3.png -pics\repair5.png -pics\bool3.png -pics\chamfer1.png -pics\filling.png -pics\revolution.png -pics\arc.png -pics\ellipse.png -pics\circle1.png -image3.gif -files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image56.gif -pics\extrusion1.png -image4.gif -pics\isos_u12_v12sn.png -pics\free_boudaries1.png -pics\multi_rotation1d1.png -pics\multi_translation2dsn.png -pics\offsetsn.png -pics\compoundsn.png -pics\prisms_basessn.png -pics\cylinders.png -pics\vectors.png -pics\neo-obj6.png -pics\measures4.png -pics\repair6.png -pics\chamfer2.png -pics\cone1.png -pics\circle2.png -pics\point3.png -image185.jpg -files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image57.gif -pics\extrusion2.png -image5.gif -pics\free_boudaries2.png -pics\multi_rotation2d1.png -pics\multi_rotation1d2.png -pics\mirror_pointsn1.png -pics\new-tolerance.png -pics\neo-obj7.png -pics\neo-point2.png -pics\measures5.png -pics\repair7.png -pics\chamfer3.png -pics\cone2.png -files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image58.gif -files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image27.gif -pics\image91.gif -pics\chamfer_edge.png -pics\fillet_edge.png -pics\multi_rotation2d2.png -pics\scale_transformsn1.png -pics\mirror_pointsn2.png -pics\cutsn.png -pics\shellsn.png -pics\filling_compoundsn.png -pics\prismssn.png -pics\neo-mrot1.png -pics\repair8.png -pics\cylinder1.png -pics\vector1.png -image61.gif -image154.jpg -image110.jpg -files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image59.gif -image40.gif -pics\scale_transformsn2.png -pics\translationsn1.png -pics\facesn1.png -pics\neo-mrot2.png -pics\repair9.png -pics\cylinder2.png -pics\vector2.png -image51.gif -files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image128.gif -files\salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image121.gif -files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image90.gif -files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image29.gif -i_blue.jpg -image30.gif -pics\free_faces1.png -pics\fillet_all.png -pics\translationsn2.png -pics\partitionsn1.png -pics\colorsn.png -pics\facesn2.png -pics\interpol.png -pics\measures8.png -pics\fillet1.png -pics\archimede.png -pics\workplane4.png -image52.gif -image167.jpg -image156.jpg -image41.gif -image145.jpg -image112.jpg -files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image129.gif -files\salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image122.gif -files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image100.gif -files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image99.gif -salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image13.gif -pics\image100.gif -pics\geomcreategroup.png -pics\commonsn.png -pics\free_faces2.png -pics\mirror_planesn1.png -pics\block_explodesn.png -pics\partitionsn2.png -pics\solidsn.png -pics\facesn3.png -pics\distance.png -pics\neo-scetcher1.png -pics\neo-transparency.png -pics\measures9.png -pics\fillet2.png -pics\workplane5.png -image53.gif -image168.jpg -image42.gif -image113.jpg -files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image101.gif -files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image1.gif -salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image14.gif -image43.gif -pics\image95.gif -pics\mirror_planesn2.png -pics\neo-scetcher2.png -pics\transformation1.png -pics\fillet3.png -pics\box1.png -pics\workplane6.png -pics\curve.png -pics\line.png -image10.gif -image32.gif -files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image102.gif -files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image71.gif -files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image2.gif -salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image15.gif -image33.gif -pics\image102.gif -pics\image96.gif -pics\geomexport.png -pics\multi_translation_initialsn.png -pics\plane_on_face.png -pics\bezier.png -pics\repair10.png -pics\transformation2.png -pics\mtransf1.png -pics\editgroup.png -pics\box2.png -image44.gif -files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image103.gif -files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image72.gif -files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image3.gif -salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image16.gif -ehlpdhtm.js -index.ppf -default_ns.css -whxdata\whtdata0.xml -whxdata\whftdata0.xml -whxdata\whfwdata0.xml -whxdata\whgdata0.xml -whdata\whtdata0.htm -whdata\whftdata0.htm -whdata\whfwdata0.htm -whdata\whgdata0.htm -whgdata\whlstt0.htm -whgdata\whlstt1.htm -whgdata\whlstt2.htm -whgdata\whlstt3.htm -whgdata\whlstt4.htm -whgdata\whlstt5.htm -whgdata\whlstt6.htm -whgdata\whlstt7.htm -whgdata\whlstt8.htm -whgdata\whlstt9.htm -whgdata\whlstt10.htm -whgdata\whlstt11.htm -whgdata\whlstt12.htm -whgdata\whlstt13.htm -whgdata\whlstt14.htm -whgdata\whlstt15.htm -whgdata\whlstt16.htm -whgdata\whlsti0.htm -whgdata\whlstfl0.htm -whgdata\whlstfl1.htm -whgdata\whlstfl2.htm -whgdata\whlstfl3.htm -whgdata\whlstfl4.htm -whgdata\whlstfl5.htm -whgdata\whlstfl6.htm -whgdata\whlstfl7.htm -whgdata\whlstfl8.htm -whgdata\whlstfl9.htm -whgdata\whlstfl10.htm -whgdata\whlstfl11.htm -whgdata\whlstfl12.htm -whgdata\whlstfl13.htm -whgdata\whlstfl14.htm -whgdata\whlstfl15.htm -whgdata\whlstfl16.htm -whgdata\whlstfl17.htm -whgdata\whlstfl18.htm -whgdata\whlstfl19.htm -whgdata\whlstfl20.htm -whgdata\whlstfl21.htm -whgdata\whlstfl22.htm -whgdata\whlstfl23.htm -whgdata\whlstfl24.htm -whgdata\whlstfl25.htm -whgdata\whlstfl26.htm -whgdata\whlstf0.htm -whgdata\whlstf1.htm -whgdata\whlstf2.htm -whgdata\whlstf3.htm -whgdata\whlstf4.htm -whgdata\whlstf5.htm -whgdata\whlstf6.htm -whgdata\whlstf7.htm -whgdata\whlstf8.htm -whgdata\whlstf9.htm -whgdata\whlstf10.htm -whgdata\whlstf11.htm -whgdata\whlstf12.htm -whgdata\whlstf13.htm -whgdata\whlstf14.htm -whgdata\whlstg0.htm -index.htm -index_csh.htm -index_rhc.htm +|SourceProjectName:GEOM.hpr +|DestinationProjectName:index.htm +whhost.js +whmsg.js +whmozemu.js +whproxy.js +whstub.js +whutils.js +whver.js +whform.js +whphost.js +whstart.js +whtopic.js +whframes.js +whlang.js +whskin_info.htm +whskin_blank.htm +whskin_pickup.htm +whskin_homepage.htm +whskin_tw.htm +whnjs.htm +whthost.js +whtdhtml.htm +whihost.js +whibody.htm +whiform.htm +whfhost.js +whfbody.htm +whfform.htm +whghost.js +whgbody.htm +whgdhtml.htm +whgdef.htm +whproj.js +whproj.xml +whproj.htm +whxdata\whtoc.xml +whxdata\whidx.xml +whxdata\whfts.xml +whxdata\whglo.xml +whdata\whtoc.js +whdata\whtoc.htm +whdata\whtdata.js +whdata\whidx.js +whdata\whidx.htm +whdata\whidata.js +whdata\whfts.js +whdata\whfts.htm +whdata\whglo.js +whdata\whglo.htm +whdata\whgdata.js +whdata\whftdata.js +whdata\whfwdata.js +whres.xml +webhelp.jar +webhelp.cab +whgdata\whnvp30.htm +whgdata\whnvp31.htm +whgdata\whnvp32.htm +whgdata\whnvp33.htm +whgdata\whnvt30.htm +whgdata\whnvt31.htm +whgdata\whnvt32.htm +whgdata\whnvt33.htm +whgdata\whnvf30.htm +whgdata\whnvf31.htm +whgdata\whnvf32.htm +whgdata\whnvf33.htm +whgdata\whnvl31.htm +whgdata\whnvl32.htm +whgdata\whnvl33.htm +whgdata\whexpbar.gif +cshdat_webhelp.htm +whcsh_home.htm +whcshdata.htm +cshdat_robohelp.htm +whd_topic.xml +whd_nvp10.htm +whd_nvp20.htm +whd_tabs.htm +whd_dpns.htm +whd_tab0.gif +whd_tab1.gif +whd_tab2.gif +whd_tab3.gif +whd_tab4.gif +whd_tab5.gif +whd_tab6.gif +whd_tab7.gif +whd_tab8.gif +whd_toc1.gif +whd_toc2.gif +whd_toc3.gif +whd_toc4.gif +whd_show0.gif +whd_show1.gif +whd_show2.gif +whd_hide0.gif +whd_hide1.gif +whd_hide2.gif +whd_sync0.gif +whd_sync1.gif +whd_sync2.gif +whd_prev0.gif +whd_prev1.gif +whd_prev2.gif +whd_next0.gif +whd_next1.gif +whd_next2.gif +whd_wbsh0.gif +whd_wbsh1.gif +whd_wbsh2.gif +whidhtml.htm +whfdhtml.htm +index_hha.hhk +index.hhc +index.hhk +add_point_on_edge.htm +arc.htm +archimede.htm +basic_geometrical_objects.htm +basic_operations.htm +blocks_operations.htm +boolean_operations.htm +box.htm +building_by_blocks.htm +chamfer.htm +change_orientation.htm +changing_display_parameters.htm +check_free_boundaries.htm +check_free_faces.htm +circle.htm +close_contour.htm +color.htm +common.htm +complex_objects.htm +compound.htm +cone.htm +curve.htm +cut.htm +cylinder.htm +edge.htm +ellipse.htm +explode.htm +explode_on_blocks.htm +extrusion.htm +face.htm +files\introduction_to_geom.htm +files\salome2_sp3_booleangui_functions.htm +files\salome2_sp3_geomtoolsgui_functions.htm +files\salome2_sp3_measuregui_functions.htm +fillet.htm +filling.htm +fuse.htm +geometrical_objects.htm +geometry.htm +glue_faces.htm +groups.htm +isos.htm +line.htm +local_coordinate_system.htm +measurement_tools.htm +mirror_image.htm +modify_the_location.htm +multi_rotation.htm +multi_transformation.htm +multi_translation.htm +newentity_blocks.htm +occ_viewer.htm +offset_surface.htm +partition.htm +pipe_creation.htm +plane.htm +point.htm +primitives.htm +propagate.htm +repairing_operations.htm +revolution.htm +rotation.htm +scale_transform.htm +section.htm +sewing.htm +shape_processing.htm +shell.htm +sketcher.htm +sketcher_tui.htm +solid.htm +sphere.htm +suppress_faces.htm +suppress_holes.htm +suppress_internal_wires.htm +transformation_operations.htm +translation.htm +transparency.htm +turus.htm +vector.htm +viewing_geometrical_objects.htm +wire.htm +wireframe_and_shading.htm +working_plane.htm +working_with_groups.htm +ehelp.xml +index.glo +default.css +pics\image86.gif +pics\image103.gif +pics\image97.gif +pics\chamfer_all.png +pics\edgesn.png +pics\boxes.png +pics\mtrans1.png +pics\transformation3.png +pics\mtransf2.png +image15.jpg +image204.jpg +image56.gif +files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image73.gif +files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image4.gif +salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image17.gif +pics\clipping.png +pics\image98.gif +pics\archimedesn1.png +pics\neo-basicprop.png +pics\mtrans2.png +pics\transformation4.png +pics\mtransf3.png +pics\plane1.png +image16.jpg +image57.gif +image35.gif +files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image74.gif +salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image18.gif +pics\image105.gif +pics\image99.gif +pics\image88.gif +pics\image77.gif +pics\suppress_faces1.png +pics\mirror_axissn1.png +pics\archimedesn2.png +pics\revolutionsn.png +pics\ellipsesn.png +pics\transformation10.png +pics\transformation5.png +pics\mtransf4.png +pics\plane2.png +image206.jpg +files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image75.gif +files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image30.gif +salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image19.gif +image26.gif +image1.jpg +pics\image106.gif +pics\image89.gif +pics\suppress_faces2.png +pics\multi_translation1dsn.png +pics\mirror_axissn2.png +pics\multi_transformationsn2d.png +pics\archimedesn3.png +pics\wiresn.png +pics\transformation11.png +pics\transformation6.png +pics\block1.png +pics\pipe.png +pics\torus1.png +pics\plane3.png +image59.gif +image37.gif +files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image87.gif +files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image76.gif +files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image31.gif +image38.gif +pics\multi_transformationsn1d.png +pics\fillingsn.png +pics\spheres.png +pics\polyline.png +pics\neo-obj1.png +pics\repair1.png +pics\transformation7.png +pics\block2.png +pics\torus2.png +image27.gif +image180.jpg +image49.gif +image109.jpg +files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image131.gif +files\salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image119.gif +files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image88.gif +files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image77.gif +files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image32.gif +image28.gif +selectcolor.png +pics\glue_faces1.png +pics\supp_int_wires1.png +pics\fusesn1.png +pics\transparencysn.png +pics\arcsn.png +pics\points.png +pics\neo-obj2.png +pics\neo-localcs1.png +pics\measures10.png +pics\repair2.png +pics\transformation8.png +pics\block3.png +image181.jpg +files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image132.gif +files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image89.gif +files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image78.gif +image3.jpg +files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image33.gif +image18.gif +image1.gif +pics\geomimport.png +pics\neo-isos.png +pics\glue_faces2.png +pics\supp_int_wires2.png +pics\sectionsn.png +pics\fusesn2.png +pics\toruses.png +pics\circles.png +pics\neo-materials.png +pics\neo-obj3.png +pics\neo-localcs2.png +pics\measures1.png +pics\repair3.png +pics\transformation9.png +pics\bool1.png +pics\partition1.png +pics\block4.png +pics\sphere1.png +image193.jpg +image29.gif +image160.jpg +files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image133.gif +files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image34.gif +pics\changeorientation.png +pics\pipesn.png +pics\pipe_wire_edgesn.png +image2.gif +pics\chamfer_faces.png +pics\fillet_prism.png +pics\rotationsn1.png +pics\disp_mode1sn.png +pics\cones.png +pics\planes1.png +pics\lines.png +pics\neo-obj4.png +pics\neo-localcs3.png +pics\repair4.png +pics\bool2.png +pics\partition2.png +pics\block5.png +pics\sphere2.png +pics\point1.png +pics\rotationsn2.png +pics\disp_mode2sn.png +pics\neo-detect2.png +pics\neo-section.png +pics\neo-obj5.png +pics\measures3.png +pics\repair5.png +pics\bool3.png +pics\chamfer1.png +pics\filling.png +pics\revolution.png +pics\arc.png +pics\ellipse.png +pics\circle1.png +image3.gif +files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image56.gif +pics\extrusion1.png +image4.gif +pics\isos_u12_v12sn.png +pics\free_boudaries1.png +pics\multi_rotation1d1.png +pics\multi_translation2dsn.png +pics\offsetsn.png +pics\compoundsn.png +pics\prisms_basessn.png +pics\cylinders.png +pics\vectors.png +pics\neo-obj6.png +pics\measures4.png +pics\repair6.png +pics\chamfer2.png +pics\cone1.png +pics\circle2.png +pics\point3.png +image185.jpg +files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image57.gif +pics\extrusion2.png +image5.gif +pics\free_boudaries2.png +pics\multi_rotation2d1.png +pics\multi_rotation1d2.png +pics\mirror_pointsn1.png +pics\new-tolerance.png +pics\neo-obj7.png +pics\neo-point2.png +pics\measures5.png +pics\repair7.png +pics\chamfer3.png +pics\cone2.png +files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image58.gif +files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image27.gif +pics\image91.gif +pics\chamfer_edge.png +pics\fillet_edge.png +pics\multi_rotation2d2.png +pics\scale_transformsn1.png +pics\mirror_pointsn2.png +pics\cutsn.png +pics\shellsn.png +pics\filling_compoundsn.png +pics\prismssn.png +pics\neo-mrot1.png +pics\repair8.png +pics\cylinder1.png +pics\vector1.png +image61.gif +image154.jpg +image110.jpg +files\salome2_sp3_generationgui_functions_salome2_sp3_generationgui_functions_image59.gif +image40.gif +pics\scale_transformsn2.png +pics\translationsn1.png +pics\facesn1.png +pics\neo-mrot2.png +pics\repair9.png +pics\cylinder2.png +pics\vector2.png +image51.gif +files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image128.gif +files\salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image121.gif +files\salome2_sp3_operationgui_functions_salome2_sp3_operationgui_functions_image90.gif +files\salome2_sp3_basicgui_functions_salome2_sp3_basicgui_functions_image29.gif +i_blue.jpg +image30.gif +pics\free_faces1.png +pics\fillet_all.png +pics\translationsn2.png +pics\partitionsn1.png +pics\colorsn.png +pics\facesn2.png +pics\interpol.png +pics\measures8.png +pics\fillet1.png +pics\archimede.png +pics\workplane4.png +image52.gif +image167.jpg +image156.jpg +image41.gif +image145.jpg +image112.jpg +files\salome2_sp3_transformationgui_functions_salome2_sp3_transformationgui_functions_image129.gif +files\salome2_sp3_repairgui_functions_salome2_sp3_repairgui_functions_image122.gif +files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image100.gif +files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image99.gif +salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image13.gif +pics\image100.gif +pics\geomcreategroup.png +pics\commonsn.png +pics\free_faces2.png +pics\mirror_planesn1.png +pics\block_explodesn.png +pics\partitionsn2.png +pics\solidsn.png +pics\facesn3.png +pics\distance.png +pics\neo-scetcher1.png +pics\neo-transparency.png +pics\measures9.png +pics\fillet2.png +pics\workplane5.png +image53.gif +image168.jpg +image42.gif +image113.jpg +files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image101.gif +files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image1.gif +salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image14.gif +image43.gif +pics\image95.gif +pics\mirror_planesn2.png +pics\neo-scetcher2.png +pics\transformation1.png +pics\fillet3.png +pics\box1.png +pics\workplane6.png +pics\curve.png +pics\line.png +image10.gif +image32.gif +files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image102.gif +files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image71.gif +files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image2.gif +salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image15.gif +image33.gif +pics\image102.gif +pics\image96.gif +pics\geomexport.png +pics\multi_translation_initialsn.png +pics\plane_on_face.png +pics\bezier.png +pics\repair10.png +pics\transformation2.png +pics\mtransf1.png +pics\editgroup.png +pics\box2.png +image44.gif +files\salome2_sp3_primitivegui_functions_salome2_sp3_primitivegui_functions_image103.gif +files\salome2_sp3_measuregui_functions_salome2_sp3_measuregui_functions_image72.gif +files\salome2_sp3_booleangui_functions_salome2_sp3_booleangui_functions_image3.gif +salome2_sp3_buildgui_functions_salome2_sp3_buildgui_functions_image16.gif +ehlpdhtm.js +index.ppf +default_ns.css +whxdata\whtdata0.xml +whxdata\whftdata0.xml +whxdata\whfwdata0.xml +whxdata\whgdata0.xml +whdata\whtdata0.htm +whdata\whftdata0.htm +whdata\whfwdata0.htm +whdata\whgdata0.htm +whgdata\whlstt0.htm +whgdata\whlstt1.htm +whgdata\whlstt2.htm +whgdata\whlstt3.htm +whgdata\whlstt4.htm +whgdata\whlstt5.htm +whgdata\whlstt6.htm +whgdata\whlstt7.htm +whgdata\whlstt8.htm +whgdata\whlstt9.htm +whgdata\whlstt10.htm +whgdata\whlstt11.htm +whgdata\whlstt12.htm +whgdata\whlstt13.htm +whgdata\whlstt14.htm +whgdata\whlstt15.htm +whgdata\whlstt16.htm +whgdata\whlsti0.htm +whgdata\whlstfl0.htm +whgdata\whlstfl1.htm +whgdata\whlstfl2.htm +whgdata\whlstfl3.htm +whgdata\whlstfl4.htm +whgdata\whlstfl5.htm +whgdata\whlstfl6.htm +whgdata\whlstfl7.htm +whgdata\whlstfl8.htm +whgdata\whlstfl9.htm +whgdata\whlstfl10.htm +whgdata\whlstfl11.htm +whgdata\whlstfl12.htm +whgdata\whlstfl13.htm +whgdata\whlstfl14.htm +whgdata\whlstfl15.htm +whgdata\whlstfl16.htm +whgdata\whlstfl17.htm +whgdata\whlstfl18.htm +whgdata\whlstfl19.htm +whgdata\whlstfl20.htm +whgdata\whlstfl21.htm +whgdata\whlstfl22.htm +whgdata\whlstfl23.htm +whgdata\whlstfl24.htm +whgdata\whlstfl25.htm +whgdata\whlstfl26.htm +whgdata\whlstf0.htm +whgdata\whlstf1.htm +whgdata\whlstf2.htm +whgdata\whlstf3.htm +whgdata\whlstf4.htm +whgdata\whlstf5.htm +whgdata\whlstf6.htm +whgdata\whlstf7.htm +whgdata\whlstf8.htm +whgdata\whlstf9.htm +whgdata\whlstf10.htm +whgdata\whlstf11.htm +whgdata\whlstf12.htm +whgdata\whlstf13.htm +whgdata\whlstf14.htm +whgdata\whlstg0.htm +index.htm +index_csh.htm +index_rhc.htm diff --git a/doc/salome/gui/GEOM/geometrical_objects.htm b/doc/salome/gui/GEOM/geometrical_objects.htm index 7e26114b9..2ef298ee7 100755 --- a/doc/salome/gui/GEOM/geometrical_objects.htm +++ b/doc/salome/gui/GEOM/geometrical_objects.htm @@ -1,570 +1,570 @@ - - - - - -Geometrical Objects - - - - - - - - - - - - -

Advanced Geometrical Objects

- -

Creation of an Edge

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p0   = - geompy.MakeVertex(0.  , - 0.  , 0. -  )

- -

pxyz = geompy.MakeVertex(100., - 100., 100.)

- -

 

- -

# create an edge

- -

edge = geompy.MakeEdge(p0, - pxyz)

- -

 

- -

# add object in the study

- -

id_edge = geompy.addToStudy(edge,"Edge")

- -

 

- -

# display an edge

- -

gg.createAndDisplayGO(id_edge) -

- -

 

- -

Creation of a Wire

- -

import - geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

px   = - geompy.MakeVertex(100., 0.  , - 0.  )

- -

py   = - geompy.MakeVertex(0.  , - 100., 0.  )

- -

pz   = - geompy.MakeVertex(0.  , - 0.  , 100.)

- -

 

- -

# create a vector from - two points

- -

vxy = geompy.MakeVector(px, - py)

- -

 

- -

# create an arc from - three points

- -

arc = geompy.MakeArc(py, - pz, px)

- -

 

- -

# create a wire

- -

wire = geompy.MakeWire([vxy, - arc])

- -

 

- -

# add an object in the - study

- -

id_wire = geompy.addToStudy(wire,"Wire")

- -

 

- -

# display the wire

- -

gg.createAndDisplayGO(id_wire) -

- -

 

- -

 

- -

Creation of a Face

- -

import - geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create vertices

- -

p0   = - geompy.MakeVertex(0.  , - 0.  , 0. -  )

- -

px   = - geompy.MakeVertex(100., 0.  , - 0.  )

- -

py   = - geompy.MakeVertex(0.  , - 100., 0.  )

- -

pz   = - geompy.MakeVertex(0.  , - 0.  , 100.)

- -

pxyz = geompy.MakeVertex(100., - 100., 100.)

- -

 

- -

# create a vector from - two points

- -

vxy = geompy.MakeVector(px, - py)

- -

 

- -

# create an arc from - three points

- -

arc = geompy.MakeArc(py, - pz, px)

- -

 

- -

# create a wire

- -

wire = geompy.MakeWire([vxy, - arc])

- -

 

- -

# create sketchers

- -

sketcher1 = geompy.MakeSketcher("Sketcher:F - -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WW",

- -

                                [100,0,0, - 1,1,1, -1,1,0])

- -

sketcher2 = geompy.MakeSketcher("Sketcher:F - 0 0:TT 70 0:TT 70 70:TT 0 70:WW")

- -

sketcher3 = geompy.MakeSketcher("Sketcher:F - 20 20:TT 50 20:TT 50 50:TT 20 50:WW")

- -

isPlanarFace = 1

- -

 

- -

# create a face from - the wire

- -

face1 = geompy.MakeFace(wire, - isPlanarFace)

- -

 

- -

# create faces from two - wires

- -

face2 = geompy.MakeFaceWires([wire, - sketcher1],isPlanarFace)

- -

face3 = geompy.MakeFaces([sketcher2, - sketcher3],isPlanarFace)

- -

 

- -

# add objects in the - study

- -

id_face1 = geompy.addToStudy(face1,"Face1")

- -

id_face2 = geompy.addToStudy(face2,"Face2")

- -

id_face3 = geompy.addToStudy(face3,"Face3")

- -

 

- -

# display the faces

- -

gg.createAndDisplayGO(id_face1)

- -

gg.setDisplayMode(id_face1,1)

- -

gg.setTransparency(id_face1,0.2)

- -

gg.createAndDisplayGO(id_face2)

- -

gg.setDisplayMode(id_face2,1)

- -

gg.setTransparency(id_face2,0.2)

- -

gg.createAndDisplayGO(id_face3)

- -

gg.setDisplayMode(id_face3,1)

- -

gg.setTransparency(id_face3,0.2) -

- -

 

- -

Creation of a Shell

- -

import - geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

#create vertices

- -

p0   = - geompy.MakeVertex( 0.,  0., -  0.)

- -

pxyz = geompy.MakeVertex( - 5.,  5., - 40.)

- -

 

- -

# create sketchers

- -

sketcher1 = geompy.MakeSketcher("Sketcher:F - 0 0:TT 70 0:TT 70 70:TT 0 70:WW")

- -

sketcher2 = geompy.MakeSketcher("Sketcher:F - 20 20:TT 50 20:TT 50 50:TT 20 50:WW")

- -

isPlanarFace = 1

- -

 

- -

# create a face from - two wires

- -

face = geompy.MakeFaces([sketcher1, - sketcher2],isPlanarFace)

- -

 

- -

# create a prism

- -

prism = geompy.MakePrism(face, - p0, pxyz)

- -

 

- -

# explode the prism into - faces

- -

prism_faces = geompy.SubShapeAllSorted(prism, - geompy.ShapeType["FACE"])

- -

 

- -

# create a shell from - a set of faces

- -

shell = geompy.MakeShell([prism_faces[0], - prism_faces[2], prism_faces[3],

- -

                          prism_faces[7], - prism_faces[9]])

- -

 

- -

# add objects in the - study

- -

id_shell = geompy.addToStudy(shell,"Shell")

- -

 

- -

# display the shell

- -

gg.createAndDisplayGO(id_shell)

- -

gg.setDisplayMode(id_shell,1) -

- -

 

- -

Creation of a Solid

- -

import - geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

#create vertices

- -

p0 = geompy.MakeVertex( - 0.,  0., -  0.)

- -

pz = geompy.MakeVertex( - 0.,  0., - 40.)

- -

 

- -

# create sketchers

- -

sketcher = geompy.MakeSketcher("Sketcher:F - -50 -50:TT 100 -50:R 0:C 50 70:R 0:L 100:WW")

- -

 

- -

# create faces from two - wires

- -

face = geompy.MakeFace(sketcher,1)

- -

 

- -

# create a prism

- -

prism = geompy.MakePrism(face, - p0, pz)

- -

 

- -

# explode the prism into - faces

- -

prism_faces = geompy.SubShapeAllSorted(prism, - geompy.ShapeType["FACE"])

- -

 

- -

# create a shell from - a set of faces

- -

shell = geompy.MakeShell([prism_faces[0], - prism_faces[1],

- -

                          prism_faces[3], - prism_faces[4],

- -

                          prism_faces[5], - prism_faces[2]])

- -

 

- -

# create a solid, bounded - by the given shells

- -

solid = geompy.MakeSolid([shell])

- -

 

- -

# add objects in the - study

- -

id_solid = geompy.addToStudy(solid,"Solid")

- -

 

- -

# display the solid

- -

gg.createAndDisplayGO(id_solid)

- -

gg.setDisplayMode(id_solid,1) -

- -

 

- -

Creation of a Compound

- -

import - geompy

- -

import salome

- -

 

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create a vertex and - a vector

- -

p1 = geompy.MakeVertex( -  -30.,  -30., -  50.)

- -

p2 = geompy.MakeVertex( -  -60.,  -60., -  30.)

- -

p3 = geompy.MakeVertex( -  -30.,  -30., -  10.)

- -

 

- -

# create an arc from - three points

- -

arc = geompy.MakeArc(p1, - p2, p3)

- -

ShapeListCompound - = []

- -

i = 0

- -

while i <= 3 :

- -

    S - = geompy.MakeTranslation(arc, i * 50., 0., 0.)

- -

    ShapeListCompound.append(S)

- -

    i - = i + 1

- -

 

- -

# create a compund of - the given shapes

- -

compound = geompy.MakeCompound(ShapeListCompound)

- -

 

- -

# add object in the study

- -

id_compound = geompy.addToStudy(compound,"Compound")

- -

 

- -

# display the compound

- -

gg.createAndDisplayGO(id_compound) -

- - - - + + + + + +Geometrical Objects + + + + + + + + + + + + +

Advanced Geometrical Objects

+ +

Creation of an Edge

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p0   = + geompy.MakeVertex(0.  , + 0.  , 0. +  )

+ +

pxyz = geompy.MakeVertex(100., + 100., 100.)

+ +

 

+ +

# create an edge

+ +

edge = geompy.MakeEdge(p0, + pxyz)

+ +

 

+ +

# add object in the study

+ +

id_edge = geompy.addToStudy(edge,"Edge")

+ +

 

+ +

# display an edge

+ +

gg.createAndDisplayGO(id_edge) +

+ +

 

+ +

Creation of a Wire

+ +

import + geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

px   = + geompy.MakeVertex(100., 0.  , + 0.  )

+ +

py   = + geompy.MakeVertex(0.  , + 100., 0.  )

+ +

pz   = + geompy.MakeVertex(0.  , + 0.  , 100.)

+ +

 

+ +

# create a vector from + two points

+ +

vxy = geompy.MakeVector(px, + py)

+ +

 

+ +

# create an arc from + three points

+ +

arc = geompy.MakeArc(py, + pz, px)

+ +

 

+ +

# create a wire

+ +

wire = geompy.MakeWire([vxy, + arc])

+ +

 

+ +

# add an object in the + study

+ +

id_wire = geompy.addToStudy(wire,"Wire")

+ +

 

+ +

# display the wire

+ +

gg.createAndDisplayGO(id_wire) +

+ +

 

+ +

 

+ +

Creation of a Face

+ +

import + geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create vertices

+ +

p0   = + geompy.MakeVertex(0.  , + 0.  , 0. +  )

+ +

px   = + geompy.MakeVertex(100., 0.  , + 0.  )

+ +

py   = + geompy.MakeVertex(0.  , + 100., 0.  )

+ +

pz   = + geompy.MakeVertex(0.  , + 0.  , 100.)

+ +

pxyz = geompy.MakeVertex(100., + 100., 100.)

+ +

 

+ +

# create a vector from + two points

+ +

vxy = geompy.MakeVector(px, + py)

+ +

 

+ +

# create an arc from + three points

+ +

arc = geompy.MakeArc(py, + pz, px)

+ +

 

+ +

# create a wire

+ +

wire = geompy.MakeWire([vxy, + arc])

+ +

 

+ +

# create sketchers

+ +

sketcher1 = geompy.MakeSketcher("Sketcher:F + -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WW",

+ +

                                [100,0,0, + 1,1,1, -1,1,0])

+ +

sketcher2 = geompy.MakeSketcher("Sketcher:F + 0 0:TT 70 0:TT 70 70:TT 0 70:WW")

+ +

sketcher3 = geompy.MakeSketcher("Sketcher:F + 20 20:TT 50 20:TT 50 50:TT 20 50:WW")

+ +

isPlanarFace = 1

+ +

 

+ +

# create a face from + the wire

+ +

face1 = geompy.MakeFace(wire, + isPlanarFace)

+ +

 

+ +

# create faces from two + wires

+ +

face2 = geompy.MakeFaceWires([wire, + sketcher1],isPlanarFace)

+ +

face3 = geompy.MakeFaces([sketcher2, + sketcher3],isPlanarFace)

+ +

 

+ +

# add objects in the + study

+ +

id_face1 = geompy.addToStudy(face1,"Face1")

+ +

id_face2 = geompy.addToStudy(face2,"Face2")

+ +

id_face3 = geompy.addToStudy(face3,"Face3")

+ +

 

+ +

# display the faces

+ +

gg.createAndDisplayGO(id_face1)

+ +

gg.setDisplayMode(id_face1,1)

+ +

gg.setTransparency(id_face1,0.2)

+ +

gg.createAndDisplayGO(id_face2)

+ +

gg.setDisplayMode(id_face2,1)

+ +

gg.setTransparency(id_face2,0.2)

+ +

gg.createAndDisplayGO(id_face3)

+ +

gg.setDisplayMode(id_face3,1)

+ +

gg.setTransparency(id_face3,0.2) +

+ +

 

+ +

Creation of a Shell

+ +

import + geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

#create vertices

+ +

p0   = + geompy.MakeVertex( 0.,  0., +  0.)

+ +

pxyz = geompy.MakeVertex( + 5.,  5., + 40.)

+ +

 

+ +

# create sketchers

+ +

sketcher1 = geompy.MakeSketcher("Sketcher:F + 0 0:TT 70 0:TT 70 70:TT 0 70:WW")

+ +

sketcher2 = geompy.MakeSketcher("Sketcher:F + 20 20:TT 50 20:TT 50 50:TT 20 50:WW")

+ +

isPlanarFace = 1

+ +

 

+ +

# create a face from + two wires

+ +

face = geompy.MakeFaces([sketcher1, + sketcher2],isPlanarFace)

+ +

 

+ +

# create a prism

+ +

prism = geompy.MakePrism(face, + p0, pxyz)

+ +

 

+ +

# explode the prism into + faces

+ +

prism_faces = geompy.SubShapeAllSorted(prism, + geompy.ShapeType["FACE"])

+ +

 

+ +

# create a shell from + a set of faces

+ +

shell = geompy.MakeShell([prism_faces[0], + prism_faces[2], prism_faces[3],

+ +

                          prism_faces[7], + prism_faces[9]])

+ +

 

+ +

# add objects in the + study

+ +

id_shell = geompy.addToStudy(shell,"Shell")

+ +

 

+ +

# display the shell

+ +

gg.createAndDisplayGO(id_shell)

+ +

gg.setDisplayMode(id_shell,1) +

+ +

 

+ +

Creation of a Solid

+ +

import + geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

#create vertices

+ +

p0 = geompy.MakeVertex( + 0.,  0., +  0.)

+ +

pz = geompy.MakeVertex( + 0.,  0., + 40.)

+ +

 

+ +

# create sketchers

+ +

sketcher = geompy.MakeSketcher("Sketcher:F + -50 -50:TT 100 -50:R 0:C 50 70:R 0:L 100:WW")

+ +

 

+ +

# create faces from two + wires

+ +

face = geompy.MakeFace(sketcher,1)

+ +

 

+ +

# create a prism

+ +

prism = geompy.MakePrism(face, + p0, pz)

+ +

 

+ +

# explode the prism into + faces

+ +

prism_faces = geompy.SubShapeAllSorted(prism, + geompy.ShapeType["FACE"])

+ +

 

+ +

# create a shell from + a set of faces

+ +

shell = geompy.MakeShell([prism_faces[0], + prism_faces[1],

+ +

                          prism_faces[3], + prism_faces[4],

+ +

                          prism_faces[5], + prism_faces[2]])

+ +

 

+ +

# create a solid, bounded + by the given shells

+ +

solid = geompy.MakeSolid([shell])

+ +

 

+ +

# add objects in the + study

+ +

id_solid = geompy.addToStudy(solid,"Solid")

+ +

 

+ +

# display the solid

+ +

gg.createAndDisplayGO(id_solid)

+ +

gg.setDisplayMode(id_solid,1) +

+ +

 

+ +

Creation of a Compound

+ +

import + geompy

+ +

import salome

+ +

 

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create a vertex and + a vector

+ +

p1 = geompy.MakeVertex( +  -30.,  -30., +  50.)

+ +

p2 = geompy.MakeVertex( +  -60.,  -60., +  30.)

+ +

p3 = geompy.MakeVertex( +  -30.,  -30., +  10.)

+ +

 

+ +

# create an arc from + three points

+ +

arc = geompy.MakeArc(p1, + p2, p3)

+ +

ShapeListCompound + = []

+ +

i = 0

+ +

while i <= 3 :

+ +

    S + = geompy.MakeTranslation(arc, i * 50., 0., 0.)

+ +

    ShapeListCompound.append(S)

+ +

    i + = i + 1

+ +

 

+ +

# create a compund of + the given shapes

+ +

compound = geompy.MakeCompound(ShapeListCompound)

+ +

 

+ +

# add object in the study

+ +

id_compound = geompy.addToStudy(compound,"Compound")

+ +

 

+ +

# display the compound

+ +

gg.createAndDisplayGO(id_compound) +

+ + + + diff --git a/doc/salome/gui/GEOM/geometry.htm b/doc/salome/gui/GEOM/geometry.htm index 3e2e4ceaf..7a68cf459 100755 --- a/doc/salome/gui/GEOM/geometry.htm +++ b/doc/salome/gui/GEOM/geometry.htm @@ -1,144 +1,144 @@ - - - - - -geometry - - - - - - - - - - - - -

Introduction to Geometry

- -

Geometry module - of SALOME is destined for:

- -

 

- -
    - -
  • Import and export of geometrical models in IGES, - BREP and STEP formats.

  • - -
  • Construction and optimization of geometrical models - using a wide range of  CAD - functions:

  • -
- -

 

- - --- - - - -
-
    - -
  • Creation of basic geometrical objects

  • - -
  • Construction of primitives

  • - -
  • Building shapes

  • - -
  • Generation of complex shapes

  • - -
  • Working with groups

  • - -
  • Geometrical repairing of objects

  • - -
  • Geometrical boolean operations

  • - -
  • Geometrical transformations

  • - -
  • Building by blocks

  • -
-

 

-

- -

 

- - - - + + + + + +geometry + + + + + + + + + + + + +

Introduction to Geometry

+ +

Geometry module + of SALOME is destined for:

+ +

 

+ +
    + +
  • Import and export of geometrical models in IGES, + BREP and STEP formats.

  • + +
  • Construction and optimization of geometrical models + using a wide range of  CAD + functions:

  • +
+ +

 

+ + +++ + + + +
+
    + +
  • Creation of basic geometrical objects

  • + +
  • Construction of primitives

  • + +
  • Building shapes

  • + +
  • Generation of complex shapes

  • + +
  • Working with groups

  • + +
  • Geometrical repairing of objects

  • + +
  • Geometrical boolean operations

  • + +
  • Geometrical transformations

  • + +
  • Building by blocks

  • +
+

 

+

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/geompy_doc/namespacegeompy.html b/doc/salome/gui/GEOM/geompy_doc/namespacegeompy.html index 768eb3629..e83be11f9 100644 --- a/doc/salome/gui/GEOM/geompy_doc/namespacegeompy.html +++ b/doc/salome/gui/GEOM/geompy_doc/namespacegeompy.html @@ -36,6 +36,9 @@ def MakeVertexOnCurve  Create a point, corresponding to the given parameter on the given curve.
+def MakeTangentOnCurve + + Create a tangent, corresponding to the given parameter on the given curve.
def MakeVectorDXDYDZ  Create a vector with the given components.
@@ -138,6 +141,12 @@ def MakeRevolution  Create a shape by revolution of the base shape around the axis on the given angle, i.e.
+def MakeThruSections + + Create a shell or solid passing through set of sections.Sections should be wires,edges or vertices.
+def MakePipeWithDifferentSections + + Create a shape by extrusion of the profile shape along the path shape.
def MakeEdge  Create a linear edge with specified ends.
@@ -186,6 +195,12 @@ def GetShapesOnPlaneIDs  Works like the above method, but returns list of sub-shapes indices.
+def GetShapesOnPlaneWithLocation + + Find in theShape all sub-shapes of type theShapeType, situated relatively the specified plane by the certain way, defined through theState parameter.
+def GetShapesOnPlaneWithLocationIDs + + Works like the above method, but returns list of sub-shapes indices.
def GetShapesOnCylinder  Find in theShape all sub-shapes of type theShapeType, situated relatively the specified cylinder by the certain way, defined through theState parameter.
@@ -204,9 +219,18 @@ def GetShapesOnQuadrangleIDs  Works like the above method, but returns list of sub-shapes indices.
+def GetShapesOnBox + + Find in theShape all sub-shapes of type theShapeType, situated relatively the specified theBox by the certain way, defined through theState parameter.
+def GetShapesOnBoxIDs + + Works like the above method, but returns list of sub-shapes indices.
def GetInPlace  Get sub-shape(s) of theShapeWhere, which are coincident with theShapeWhat or could be a part of it.
+def GetSame + + Get sub-shape of theShapeWhere, which is equal to theShapeWhat.
def GetSubShape  Obtain a composite sub-shape of <aShape>, composed from sub-shapes of <aShape>, selected by their unique IDs inside <aShape>.
@@ -255,6 +279,12 @@ def DivideEdge  Addition of a point to a given edge object.
+def ChangeOrientationShell + + Change orientation of the given object.
+def ChangeOrientationShellCopy + + Change orientation of the given object.
def GetFreeBoundary  Get a list of wires (wrapped in GEOM_Object-s), that constitute a free boundary of the given shape.
@@ -285,6 +315,9 @@ def MakePartition  Perform partition operation.
+def MakePartitionNonSelfIntersectedShape + + Perform partition operation.
def Partition  Shortcut to MakePartition().
@@ -303,6 +336,9 @@ def MakeRotation  Rotate the given object around the given axis on the given angle, creating its copy before the rotatation.
+def MakeRotationThreePoints + + Rotate given object around vector perpendicular to plane containing three points, creating its copy before the rotatation.
def MakeScaleTransform  Scale the given object by the factor, creating its copy before the scaling.
@@ -317,7 +353,7 @@  Create an object, symmetrical to the given one relatively the given point.
def MakePosition - Modify the Location of the given object by LCS creating its copy before the setting.
+ Modify the Location of the given object by LCS, creating its copy before the setting.
def MakeOffset  Create new object as offset of the given one.
@@ -387,6 +423,9 @@ def CheckShape  Check a topology of the given shape.
+def GetPosition + + Get position (LCS) of theShape.
def Import  Import a shape from the BREP or IGES or STEP file (depends on given format) with given name.
@@ -512,8 +551,10 @@  Returns a main shape associated with the group.
def GetEdgesByLength + Create group of edges of theShape, whose length is in range [min_length, max_length].
def SelectEdges + Create group of edges of selected shape, whose length is in range [min_length, max_length].
def addPath  Add Path to load python scripts from.
@@ -890,6 +931,50 @@ Example: see GEOM_TestAll.py Example: see GEOM_TestAll.py +

+ + + + +
+ + + + + + + + + + + + + + + + + + +
def geompy::MakeTangentOnCurve   theRefCurve,
  theParameter
+
+ + + + + +
+   + + +

+

Parameters:
+ + + +
theRefCurve The referenced curve.
theParameter Value of parameter on the referenced curve.
+
+
Returns:
New GEOM_Object, containing the created tangent.
+

@@ -1218,7 +1303,7 @@ Example: see GEOM_TestAll.py

Parameters:
- +
theFace Referenced plane.
theFace Referenced plane or LCS(Marker).
theTrimSize New half size of a side of quadrangle face, representing the plane.
@@ -1776,7 +1861,7 @@ Example: see GEOM_TestAll.py

Parameters:
- +
theCommand String, defining the sketcher in local coordinates of the working plane.
theWorkingPlane Planar Face of the working plane.
theWorkingPlane Planar Face or LCS(Marker) of the working plane.
Returns:
New GEOM_Object, containing the created wire.
@@ -2602,6 +2687,129 @@ all the space, transfixed by the base shape during its rotation around the axis Example: see GEOM_TestAll.py +

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def geompy::MakeThruSections   theSeqSections,
  theModeSolid,
  thePreci,
  theRuled
+
+ + + + + +
+   + + +

+

Parameters:
+ + + + + +
theSeqSections - set of specified sections.
theModeSolid - mode defining building solid or shell
thePreci - precision 3D used for smoothing by default 1.e-6
theRuled - mode defining type of the result surfaces (ruled or smoothed).
+
+
Returns:
New GEOM_Object, containing the created shell or solid.
+Example: see GEOM_TestAll.py
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def geompy::MakePipeWithDifferentSections   theSeqBases,
  theLocations,
  thePath,
  theWithContact,
  theWithCorrection
+
+ + + + + +
+   + + +

+The path shape can be a wire or an edge. the several profiles can be specified in the several locations of path.

Parameters:
+ + + + + + +
theSeqBases - list of Bases shape to be extruded.
theLocations - list of locations on the path corresponding specified list of the Bases shapes. Number of locations should be equal to number of bases or list of locations can be empty.
thePath - Path shape to extrude the base shape along it.
theWithContact - the mode defining that the section is translated to be in contact with the spine.
- WithCorrection - defining that the section is rotated to be orthogonal to the spine tangent in the correspondent point
+
+
Returns:
New GEOM_Object, containing the created pipe.
+Example: see GEOM_TestAll.py

@@ -2716,7 +2924,7 @@ Example: see GEOM_TestAll.py

Parameters:
- +
theWire Wire to build the face on.
theWire closed Wire or Edge to build the face on.
isPlanarWanted If TRUE, only planar face will be built. If impossible, NULL object will be returned.
@@ -2760,7 +2968,7 @@ Example: see GEOM_TestAll.py

Parameters:
- +
theWires List of wires to build the face on.
theWires List of closed wires or edges to build the face on.
isPlanarWanted If TRUE, only planar face will be built. If impossible, NULL object will be returned.
@@ -3229,13 +3437,13 @@ Example: see GEOM_TestOthers.py Example: see GEOM_TestOthers.py -

+

Example: see GEOM_TestOthers.py
- + @@ -3250,13 +3458,13 @@ Example: see GEOM_TestOthers.py - + - + @@ -3285,8 +3493,8 @@ Example: see GEOM_TestOthers.py
def geompy::GetShapesOnCylinder def geompy::GetShapesOnPlaneWithLocation   theShape,   theAxis, theAx1,
  theRadius, thePnt,
- - + +
theShape Shape to find sub-shapes of.
theShapeType Type of sub-shapes to be retrieved.
theAxis Vector (or line, or linear edge), specifying axis of the cylinder to find shapes on.
theRadius Radius of the cylinder to find shapes on.
theAx1 Vector (or line, or linear edge), specifying normal direction of the plane to find shapes on.
thePnt Point specifying location of the plane to find shapes on.
theState The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
@@ -3294,13 +3502,13 @@ Example: see GEOM_TestOthers.py
-

+

+ + + + + + + + + + + + + +
- + @@ -3315,13 +3523,13 @@ Example: see GEOM_TestOthers.py - + - + @@ -3349,13 +3557,13 @@ Example: see GEOM_TestOthers.py Example: see GEOM_TestOthers.py
def geompy::GetShapesOnCylinderIDs def geompy::GetShapesOnPlaneWithLocationIDs   theShape,   theAxis, theAx1,
  theRadius, thePnt,
-

+

Example: see GEOM_TestOthers.py
- + @@ -3370,7 +3578,7 @@ Example: see GEOM_TestOthers.py - + @@ -3405,8 +3613,8 @@ Example: see GEOM_TestOthers.py
def geompy::GetShapesOnSphere def geompy::GetShapesOnCylinder   theShape,   theCenter, theAxis,
- - + +
theShape Shape to find sub-shapes of.
theShapeType Type of sub-shapes to be retrieved.
theCenter Point, specifying center of the sphere to find shapes on.
theRadius Radius of the sphere to find shapes on.
theAxis Vector (or line, or linear edge), specifying axis of the cylinder to find shapes on.
theRadius Radius of the cylinder to find shapes on.
theState The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
@@ -3414,13 +3622,13 @@ Example: see GEOM_TestOthers.py
-

+

- + @@ -3435,7 +3643,7 @@ Example: see GEOM_TestOthers.py - + @@ -3469,13 +3677,13 @@ Example: see GEOM_TestOthers.py Example: see GEOM_TestOthers.py
def geompy::GetShapesOnSphereIDs def geompy::GetShapesOnCylinderIDs   theShape,   theCenter, theAxis,
-

+

Example: see GEOM_TestHealing.py
- + @@ -3490,25 +3698,13 @@ Example: see GEOM_TestOthers.py - - - - - - - - - - - - - + - + @@ -3546,13 +3742,13 @@ Example: see GEOM_TestOthers.py Example: see GEOM_TestOthers.py
def geompy::GetShapesOnQuadrangle def geompy::GetShapesOnSphere   theShape,   theTopLeftPoint,
  theTopRigthPoint,
  theBottomLeftPoint, theCenter,
  theBottomRigthPoint, theRadius,
-

+

+ +
- + @@ -3567,25 +3763,13 @@ Example: see GEOM_TestOthers.py - - - - - - - - - - - - - + - + @@ -3613,48 +3797,345 @@ Example: see GEOM_TestOthers.py Example: see GEOM_TestOthers.py
def geompy::GetShapesOnQuadrangleIDs def geompy::GetShapesOnSphereIDs   theShape,   theTopLeftPoint,
  theTopRigthPoint,
  theBottomLeftPoint, theCenter,
  theBottomRigthPoint, theRadius,
-

+

- -
- + - + - + + - - + + -
def geompy::GetInPlace def geompy::GetShapesOnQuadrangle   theShapeWhere, theShape,
  theShapeWhat theShapeType,
  theTopLeftPoint,
-
- - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
-   - - -

-

Parameters:
- - - -
theShapeWhere Shape to find sub-shapes of.
theShapeWhat Shape, specifying what to find.
-
-
Returns:
Group of all found sub-shapes or a single found sub-shape.
-Example: see GEOM_TestOthers.py
  theTopRigthPoint,
  theBottomLeftPoint,
  theBottomRigthPoint,
  theState
+

+ + + + + +
+   + + +

+

Parameters:
+ + + + + + + + +
theShape Shape to find sub-shapes of.
theShapeType Type of sub-shapes to be retrieved.
theTopLeftPoint Point, specifying top left corner of a quadrangle
theTopRigthPoint Point, specifying top right corner of a quadrangle
theBottomLeftPoint Point, specifying bottom left corner of a quadrangle
theBottomRigthPoint Point, specifying bottom right corner of a quadrangle
theState The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
+
+
Returns:
List of all found sub-shapes.
+Example: see GEOM_TestOthers.py
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def geompy::GetShapesOnQuadrangleIDs   theShape,
  theShapeType,
  theTopLeftPoint,
  theTopRigthPoint,
  theBottomLeftPoint,
  theBottomRigthPoint,
  theState
+
+ + + + + +
+   + + +

+Example: see GEOM_TestOthers.py

+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def geompy::GetShapesOnBox   theBox,
  theShape,
  theShapeType,
  theState
+
+ + + + + +
+   + + +

+

Parameters:
+ + + + + +
theBox Shape for relative comparing.
theShape Shape to find sub-shapes of.
theShapeType Type of sub-shapes to be retrieved.
theState The state of the subshapes to find. It can be one of ST_ON, ST_OUT, ST_ONOUT, ST_IN, ST_ONIN.
+
+
Returns:
List of all found sub-shapes.
+
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def geompy::GetShapesOnBoxIDs   theBox,
  theShape,
  theShapeType,
  theState
+
+ + + + + +
+   + + +

+

+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
def geompy::GetInPlace   theShapeWhere,
  theShapeWhat
+
+ + + + + +
+   + + +

+

Parameters:
+ + + +
theShapeWhere Shape to find sub-shapes of.
theShapeWhat Shape, specifying what to find.
+
+
Returns:
Group of all found sub-shapes or a single found sub-shape.
+Example: see GEOM_TestOthers.py
+

+ + + + +
+ + + + + + + + + + + + + + + + + + +
def geompy::GetSame   theShapeWhere,
  theShapeWhat
+
+ + + +
+   + + +

+

Parameters:
+ + + +
theShapeWhere Shape to find sub-shape of.
theShapeWhat Shape, specifying what to find.
+
+
Returns:
New GEOM_Object for found sub-shape.
+

@@ -4375,6 +4856,73 @@ Example: see GEOM_TestHealing.py

+

+ + + + +
+ + + + + + + + + +
def geompy::ChangeOrientationShell   theObject  ) 
+
+ + + + + +
+   + + +

+

Parameters:
+ + +
theObject Shape to be processed. given shape
+
+
+

+ + + + +
+ + + + + + + + + +
def geompy::ChangeOrientationShellCopy   theObject  ) 
+
+ + + + + +
+   + + +

+

Parameters:
+ + +
theObject Shape to be processed.
+
+
Returns:
New GEOM_Object, containing processed shape.
+

@@ -4819,18 +5367,93 @@ Example: see GEOM_TestOthers.py
Parameters:
- + + +
ListShapes Shapes to be intersected.
ListTools Shapes to intersect theShapes.
ListTools Shapes to intersect theShapes. !!!NOTE: Each compound from ListShapes and ListTools will be exploded in order to avoid possible intersection between shapes from this compound.
Limit Type of resulting shapes (corresponding to TopAbs_ShapeEnum).
+ +After implementation new version of PartitionAlgo (October 2006) other parameters are ignored by current functionality. They are kept in this function only for support old versions. Ignored parameters:

Parameters:
+ - - +
ListKeepInside Shapes, outside which the results will be deleted. Each shape from theKeepInside must belong to theShapes also.
ListRemoveInside Shapes, inside which the results will be deleted. Each shape from theRemoveInside must belong to theShapes also.
Limit Type of resulting shapes (corresponding to TopAbs_ShapeEnum).
RemoveWebs If TRUE, perform Glue 3D algorithm.
ListMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
ListMaterials Material indices for each shape. Make sence, only if theRemoveWebs is TRUE.
Returns:
New GEOM_Object, containing the result shapes.
Example: see GEOM_TestAll.py
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def geompy::MakePartitionNonSelfIntersectedShape   ListShapes,
  ListTools = [],
  ListKeepInside = [],
  ListRemoveInside = [],
  Limit = ShapeType["SHAPE"],
  RemoveWebs = 0,
  ListMaterials = []
+
+ + + + + +
+   + + +

+This method may be useful if it is needed to make a partition for compound contains nonintersected shapes. Performance will be better since intersection between shapes from compound is not performed.

+Description of all parameters as in previous method MakePartition()

+!!!NOTE: Passed compounds (via ListShapes or via ListTools) have to consist of nonintersecting shapes.

+

Returns:
New GEOM_Object, containing the result shapes.
+

@@ -5144,6 +5767,63 @@ Example: see GEOM_TestAll.py Example: see GEOM_TestAll.py
+

+ + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
def geompy::MakeRotationThreePoints   theObject,
  theCentPoint,
  thePoint1,
  thePoint2
+
+ + + + + +
+   + + +

+

Parameters:
+ + + + +
theObject The object to be rotated.
theCentPoint central point - the axis is the vector perpendicular to the plane containing the three points.
thePoint1 and thePoint2 - in a perpendicular plan of the axis.
+
+
Returns:
New GEOM_Object, containing the rotated object.
+Example: see GEOM_TestAll.py

@@ -5367,6 +6047,14 @@ Example: see GEOM_TestAll.py

+

Parameters:
+ + + + +
theObject The object to be displaced.
theStartLCS Coordinate system to perform displacement from it. If theStartLCS is NULL, displacement will be performed from global CS. If theObject itself is used as theStartLCS, its location will be changed to theEndLCS.
theEndLCS Coordinate system to perform displacement to it.
+
+
Returns:
New GEOM_Object, containing the displaced shape.
Example: see GEOM_TestAll.py
@@ -6459,6 +7147,50 @@ Example: see GEOM_TestMeasures.py

def geompy::CheckShape   theShape,
  theIsCheckGeom = 0
+ + + + + + + + +
+   + + +

+

Parameters:
+ + + +
theShape Shape to check validity of.
theIsCheckGeom If FALSE, only the shape's topology will be checked, if TRUE, the shape's geometry will be checked also.
+
+
Returns:
TRUE, if the shape "seems to be valid". If theShape is invalid, prints a description of problem.
+Example: see GEOM_TestMeasures.py
+

+ + + "; - gaTypes[nBtn]=sType; - } -} - -function isSyncEnabled() -{ - if(!gbCheckSync) - { - var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null); - if(SendMessage(oMsg)) - { - gbSyncEnabled=oMsg.oParam; - } - gbCheckSync=true; - } - return gbSyncEnabled; -} - -function isInPopup() -{ - return (window.name.indexOf("BSSCPopup")!=-1); -} - -function getIntopicBar(sAlign) -{ - var sHTML=""; - if(gaButtons.length>0) - { - sHTML+="
"; - - sHTML+="
+ + + + + @@ -6475,12 +7207,13 @@ Example: see GEOM_TestMeasures.py
def geompy::GetPosition   theShape  ) 

+Origin of the LCS is situated at the shape's center of mass. Axes of the LCS are obtained from shape's location or, if the shape is a planar face, from position of its plane.

Parameters:
- +
theShape Shape to check validity of.
theShape Shape to calculate position of.
-
Returns:
TRUE, if the shape "seems to be valid" from the topological point of view. If theShape is invalid, prints a description of problem.
+
Returns:
[Ox,Oy,Oz, Zx,Zy,Zz, Xx,Xy,Xz]. Ox,Oy,Oz: Coordinates of shape's LCS origin. Zx,Zy,Zz: Coordinates of shape's LCS normal(main) direction. Xx,Xy,Xz: Coordinates of shape's LCS X direction.
Example: see GEOM_TestMeasures.py
@@ -7498,7 +8231,7 @@ Example: see GEOM_Spanner.py

-Unite faces and edges, sharing one surface.

Parameters:
+Unite faces and edges, sharing one surface. It means that this faces must have references to one C++ surface object (handle).
Parameters:
theShape The compound or single solid to remove irregular edges from.
diff --git a/doc/salome/gui/GEOM/glue_faces.htm b/doc/salome/gui/GEOM/glue_faces.htm index 3f4d92b43..9cdc1db72 100755 --- a/doc/salome/gui/GEOM/glue_faces.htm +++ b/doc/salome/gui/GEOM/glue_faces.htm @@ -1,165 +1,165 @@ - - - - - -Glue Faces - - - - - - - - - - - - - -

Glue Faces

- -

To - Glue Faces in the Main Menu select Repair - > Glue Faces.

- -

 

- -

This operation - glues faces that are coincident with respect to the given tolerance - value.

- -

 

- -

The Result will - be a GEOM_Object.

- -

 

- -

TUI Command : geompy.MakeGlueFaces(theShape, - theTolerance), where theShape is a compound of shapes to be glued, - theTolerance is a maximum distance between two faces, which can be considered - as coincident.

- -

Arguments: - Name + 1 Compound - + Tolerance value

- -

 

- -

 

- -

- -

 

- -

Example:

- -

 

- -

  

- -

 

- -

 

- -

Our - TUI Scripts provide you with useful - examples of the use of Repairing - Operations.

- -

 

- - - - + + + + + +Glue Faces + + + + + + + + + + + + + +

Glue Faces

+ +

To + Glue Faces in the Main Menu select Repair - > Glue Faces.

+ +

 

+ +

This operation + glues faces that are coincident with respect to the given tolerance + value.

+ +

 

+ +

The Result will + be a GEOM_Object.

+ +

 

+ +

TUI Command : geompy.MakeGlueFaces(theShape, + theTolerance), where theShape is a compound of shapes to be glued, + theTolerance is a maximum distance between two faces, which can be considered + as coincident.

+ +

Arguments: + Name + 1 Compound + + Tolerance value

+ +

 

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

  

+ +

 

+ +

 

+ +

Our + TUI Scripts provide you with useful + examples of the use of Repairing + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/groups.htm b/doc/salome/gui/GEOM/groups.htm index a95d45034..6cabf4139 100755 --- a/doc/salome/gui/GEOM/groups.htm +++ b/doc/salome/gui/GEOM/groups.htm @@ -1,327 +1,327 @@ - - - - - -Groups - - - - - - - - - - - - -

Groups

- -

Creation of a group

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create two vertices

- -

p0 = geompy.MakeVertex(0. -  , 0.  , - 0.  )

- -

p200 = geompy.MakeVertex(200., - 200., 200.)

- -

 

- -

# create a box from two points

- -

Box = geompy.MakeBoxTwoPnt(p0, - p200)

- -

 

- -

# create a group from the faces of the box

- -

group = geompy.CreateGroup(Box, - geompy.ShapeType["FACE"])

- -

 

- -

# add objects to the group

- -

SubFaceList = geompy.SubShapeAllSorted(Box, - geompy.ShapeType["FACE"])

- -

for i in [0, 3, 5] - :

- -

    FaceID - = geompy.GetSubShapeID(Box, SubFaceList[i])

- -

    geompy.AddObject(group, - FaceID)

- -

 

- -

# add all selected shapes from the list to the group

- -

# (the program doesn't raise error, if some shapes are already included)

- -

geompy.UnionList(group, - [SubFaceList[0], SubFaceList[2], SubFaceList[5]])

- -

 

- -

# remove an object from the group

- -

geompy.RemoveObject(group, - FaceID)

- -

 

- -

# remove all selected shapes from the group

- -

# (the program doesn't raise error, if some shapes are not included)

- -

geompy.DifferenceList(group, - [SubFaceList[2], SubFaceList[3], SubFaceList[4]])

- -

id_group1 = geompy.addToStudy(group, - "Group1")

- -

 

- -

# display the contents of the group

- -

gg.createAndDisplayGO(id_group1)

- -

salome.sg.updateObjBrowser(1) -

- -

Adding an object to the group.

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create two vertices

- -

p0 = geompy.MakeVertex(0. -  , 0.  , - 0.  )

- -

p200 = geompy.MakeVertex(200., - 200., 200.)

- -

 

- -

# create a box from two points

- -

Box = geompy.MakeBoxTwoPnt(p0, - p200)

- -

 

- -

# create a group from the faces of the box

- -

group = geompy.CreateGroup(Box, - geompy.ShapeType["FACE"])

- -

 

- -

# add objects to the group

- -

SubFaceList = geompy.SubShapeAllSorted(Box, - geompy.ShapeType["FACE"])

- -

for i in [0, 3, 5] - :

- -

    FaceID - = geompy.GetSubShapeID(Box, SubFaceList[i])

- -

    geompy.AddObject(group, - FaceID)

- -

id_group1 = geompy.addToStudy(group, - "Group1")

- -

 

- -

# display the contents of the group

- -

gg.createAndDisplayGO(id_group1)

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

Removing an object from the group

- -

import geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create two vertices

- -

p0 = geompy.MakeVertex(0. -  , 0.  , - 0.  )

- -

p200 = geompy.MakeVertex(200., - 200., 200.)

- -

 

- -

# create a box from two points

- -

Box = geompy.MakeBoxTwoPnt(p0, - p200)

- -

 

- -

# create a group from the faces of the box

- -

group = geompy.CreateGroup(Box, - geompy.ShapeType["FACE"])

- -

 

- -

# add objects to the group

- -

SubFaceList = geompy.SubShapeAllSorted(Box, - geompy.ShapeType["FACE"])

- -

for i in [0, 3, 5] - :

- -

    FaceID - = geompy.GetSubShapeID(Box, SubFaceList[i])

- -

    geompy.AddObject(group, - FaceID)

- -

 

- -

# add all selected shapes from the list to the group

- -

# (the program doesn't raise errors, if some shapes are already included)

- -

geompy.UnionList(group, - [SubFaceList[0], SubFaceList[2], SubFaceList[5]])

- -

 

- -

# remove an object from the group

- -

geompy.RemoveObject(group, - FaceID)

- -

id_group1 = geompy.addToStudy(group, - "Group1")

- -

 

- -

# display the contents of the group

- -

gg.createAndDisplayGO(id_group1)

- -

salome.sg.updateObjBrowser(1) -

- -

 

- -

 

- -

 

- -

 

- -

 

- -

 

- -

 

- - - - + + + + + +Groups + + + + + + + + + + + + +

Groups

+ +

Creation of a group

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create two vertices

+ +

p0 = geompy.MakeVertex(0. +  , 0.  , + 0.  )

+ +

p200 = geompy.MakeVertex(200., + 200., 200.)

+ +

 

+ +

# create a box from two points

+ +

Box = geompy.MakeBoxTwoPnt(p0, + p200)

+ +

 

+ +

# create a group from the faces of the box

+ +

group = geompy.CreateGroup(Box, + geompy.ShapeType["FACE"])

+ +

 

+ +

# add objects to the group

+ +

SubFaceList = geompy.SubShapeAllSorted(Box, + geompy.ShapeType["FACE"])

+ +

for i in [0, 3, 5] + :

+ +

    FaceID + = geompy.GetSubShapeID(Box, SubFaceList[i])

+ +

    geompy.AddObject(group, + FaceID)

+ +

 

+ +

# add all selected shapes from the list to the group

+ +

# (the program doesn't raise error, if some shapes are already included)

+ +

geompy.UnionList(group, + [SubFaceList[0], SubFaceList[2], SubFaceList[5]])

+ +

 

+ +

# remove an object from the group

+ +

geompy.RemoveObject(group, + FaceID)

+ +

 

+ +

# remove all selected shapes from the group

+ +

# (the program doesn't raise error, if some shapes are not included)

+ +

geompy.DifferenceList(group, + [SubFaceList[2], SubFaceList[3], SubFaceList[4]])

+ +

id_group1 = geompy.addToStudy(group, + "Group1")

+ +

 

+ +

# display the contents of the group

+ +

gg.createAndDisplayGO(id_group1)

+ +

salome.sg.updateObjBrowser(1) +

+ +

Adding an object to the group.

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create two vertices

+ +

p0 = geompy.MakeVertex(0. +  , 0.  , + 0.  )

+ +

p200 = geompy.MakeVertex(200., + 200., 200.)

+ +

 

+ +

# create a box from two points

+ +

Box = geompy.MakeBoxTwoPnt(p0, + p200)

+ +

 

+ +

# create a group from the faces of the box

+ +

group = geompy.CreateGroup(Box, + geompy.ShapeType["FACE"])

+ +

 

+ +

# add objects to the group

+ +

SubFaceList = geompy.SubShapeAllSorted(Box, + geompy.ShapeType["FACE"])

+ +

for i in [0, 3, 5] + :

+ +

    FaceID + = geompy.GetSubShapeID(Box, SubFaceList[i])

+ +

    geompy.AddObject(group, + FaceID)

+ +

id_group1 = geompy.addToStudy(group, + "Group1")

+ +

 

+ +

# display the contents of the group

+ +

gg.createAndDisplayGO(id_group1)

+ +

salome.sg.updateObjBrowser(1) +

+ +

 

+ +

Removing an object from the group

+ +

import geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create two vertices

+ +

p0 = geompy.MakeVertex(0. +  , 0.  , + 0.  )

+ +

p200 = geompy.MakeVertex(200., + 200., 200.)

+ +

 

+ +

# create a box from two points

+ +

Box = geompy.MakeBoxTwoPnt(p0, + p200)

+ +

 

+ +

# create a group from the faces of the box

+ +

group = geompy.CreateGroup(Box, + geompy.ShapeType["FACE"])

+ +

 

+ +

# add objects to the group

+ +

SubFaceList = geompy.SubShapeAllSorted(Box, + geompy.ShapeType["FACE"])

+ +

for i in [0, 3, 5] + :

+ +

    FaceID + = geompy.GetSubShapeID(Box, SubFaceList[i])

+ +

    geompy.AddObject(group, + FaceID)

+ +

 

+ +

# add all selected shapes from the list to the group

+ +

# (the program doesn't raise errors, if some shapes are already included)

+ +

geompy.UnionList(group, + [SubFaceList[0], SubFaceList[2], SubFaceList[5]])

+ +

 

+ +

# remove an object from the group

+ +

geompy.RemoveObject(group, + FaceID)

+ +

id_group1 = geompy.addToStudy(group, + "Group1")

+ +

 

+ +

# display the contents of the group

+ +

gg.createAndDisplayGO(id_group1)

+ +

salome.sg.updateObjBrowser(1) +

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/index.htm b/doc/salome/gui/GEOM/index.htm index aff470fc2..54c41df02 100755 --- a/doc/salome/gui/GEOM/index.htm +++ b/doc/salome/gui/GEOM/index.htm @@ -1,180 +1,180 @@ - - -Geometry Module Reference Manual - - - - - - - - - - - - - + + +Geometry Module Reference Manual + + + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/index_csh.htm b/doc/salome/gui/GEOM/index_csh.htm index 6aeea9d3f..631f73da1 100755 --- a/doc/salome/gui/GEOM/index_csh.htm +++ b/doc/salome/gui/GEOM/index_csh.htm @@ -1,106 +1,106 @@ - - -Geometry Module Reference Manual - - - - - - - - - - - - + + +Geometry Module Reference Manual + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GEOM/index_rhc.htm b/doc/salome/gui/GEOM/index_rhc.htm index 431b5e60e..459833070 100755 --- a/doc/salome/gui/GEOM/index_rhc.htm +++ b/doc/salome/gui/GEOM/index_rhc.htm @@ -1,106 +1,106 @@ - - -Geometry Module Reference Manual - - - - - - - - - - - - + + +Geometry Module Reference Manual + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GEOM/isos.htm b/doc/salome/gui/GEOM/isos.htm index a238df85a..d2eae1bec 100755 --- a/doc/salome/gui/GEOM/isos.htm +++ b/doc/salome/gui/GEOM/isos.htm @@ -1,113 +1,113 @@ - - - - - -Isos - - - - - - - - - - - - -

Isolines

- -

In this menu you can change the number of isolines - displayed within a shape.

- -

Arguments: - 2 values (number of isolines).

- -

 

- -

- -

 

- -

Example:

- -

 

- -

 

- -

 

- -

 

- - - - + + + + + +Isos + + + + + + + + + + + + +

Isolines

+ +

In this menu you can change the number of isolines + displayed within a shape.

+ +

Arguments: + 2 values (number of isolines).

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

 

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/line.htm b/doc/salome/gui/GEOM/line.htm index 40c441b5e..0ad6efe1a 100755 --- a/doc/salome/gui/GEOM/line.htm +++ b/doc/salome/gui/GEOM/line.htm @@ -1,159 +1,159 @@ - - - - - -Line - - - - - - - - - - - - -

Line

- -

To create a Line in the Main Menu select New - Entity - > Basic - > Line

- -

 

- -

To create a Line - you should define Point1 and Point2, which are the points through -  which the - Line passes.

- -

The - Result of the operation will be a - GEOM_Object (edge).

- -

 

- -

TUI Command: - geompy.MakeLineTwoPnt(Point1, Point2) -

- -

Arguments: - Name + 2 vertices.

- -

 

- -

 

- -

- -

 

- -

Example:

- -

 

- -

- -

 

- -

NB! There - is another way to create a line, which is currently accessible only via - TUI commands.

- -

 

- -

You - can define a line  passing - through the given Point and - parallel to the given Vector.

- -

TUI - Command: geompy.MakeLine(Point, - Vector)

- -

 

- -

Our TUI Scripts - provide you with useful examples of creation of Basic - Geometric Objects.

- -

 

- - - - + + + + + +Line + + + + + + + + + + + + +

Line

+ +

To create a Line in the Main Menu select New + Entity - > Basic - > Line

+ +

 

+ +

To create a Line + you should define Point1 and Point2, which are the points through +  which the + Line passes.

+ +

The + Result of the operation will be a + GEOM_Object (edge).

+ +

 

+ +

TUI Command: + geompy.MakeLineTwoPnt(Point1, Point2) +

+ +

Arguments: + Name + 2 vertices.

+ +

 

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

+ +

 

+ +

NB! There + is another way to create a line, which is currently accessible only via + TUI commands.

+ +

 

+ +

You + can define a line  passing + through the given Point and + parallel to the given Vector.

+ +

TUI + Command: geompy.MakeLine(Point, + Vector)

+ +

 

+ +

Our TUI Scripts + provide you with useful examples of creation of Basic + Geometric Objects.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/local_coordinate_system.htm b/doc/salome/gui/GEOM/local_coordinate_system.htm index 93d76f282..8e9387c94 100755 --- a/doc/salome/gui/GEOM/local_coordinate_system.htm +++ b/doc/salome/gui/GEOM/local_coordinate_system.htm @@ -1,183 +1,183 @@ - - - - - -Local Coordinate System - - - - - - - - - - - - - -

Local Coordinate - System

- -

To create a Local Coordinate System - in the Main Menu select New Entity - > Basic - > Local Coordinate - System

- -

There are three algorithms to choose from.

- -

 

- -

Firstly, you can define the values of X, Y, - and Z coordinates of origin and the directions of X and Y axes directly - in the menu.

- -

TUI command: - geompy.MakeMarker(OX, OY, OZ, XDX, XDY, - XDZ, YDX, YDY, YDZ), where OX, OY, OZ are coordinates of the origin - of LCS, XDX, XDY, XDZ is a vector of OX  direction - of the LCS and YDX, YDY, YDZ is a a vector of OY direction of the LCS.

- -

Arguments: - Name + Coordinates of origin, X axis direction, Y axis direction.

- -

 

- -

- -

 

- -

Secondly, you can simply - select any object in the object browser or 3D viewer, in this case the - coordinates of origin and axes direction of the LCS are calculated automatically - basing on the selected object.

- -

Arguments: - Name + reference object.

- -

 

- -

- -

 

- -

The last algorithm of LCS construction allows - to define the coordinates of origin by a point and axes directions by - a line or a vector.

- -

Arguments: - Name + 1 point of origin + X axis direction, - Y axis direction.

- -

 

- -

- -

 

- -

Press «OK» or «Apply» button to create an LCS - at the location with the specified coordinates. The new object is shown - in the Object Browser and in 3D viewer.

- -

 

- -

Example:

- -

- -

 

- -

 

- - - - + + + + + +Local Coordinate System + + + + + + + + + + + + + +

Local Coordinate + System

+ +

To create a Local Coordinate System + in the Main Menu select New Entity - > Basic - > Local Coordinate + System

+ +

There are three algorithms to choose from.

+ +

 

+ +

Firstly, you can define the values of X, Y, + and Z coordinates of origin and the directions of X and Y axes directly + in the menu.

+ +

TUI command: + geompy.MakeMarker(OX, OY, OZ, XDX, XDY, + XDZ, YDX, YDY, YDZ), where OX, OY, OZ are coordinates of the origin + of LCS, XDX, XDY, XDZ is a vector of OX  direction + of the LCS and YDX, YDY, YDZ is a a vector of OY direction of the LCS.

+ +

Arguments: + Name + Coordinates of origin, X axis direction, Y axis direction.

+ +

 

+ +

+ +

 

+ +

Secondly, you can simply + select any object in the object browser or 3D viewer, in this case the + coordinates of origin and axes direction of the LCS are calculated automatically + basing on the selected object.

+ +

Arguments: + Name + reference object.

+ +

 

+ +

+ +

 

+ +

The last algorithm of LCS construction allows + to define the coordinates of origin by a point and axes directions by + a line or a vector.

+ +

Arguments: + Name + 1 point of origin + X axis direction, + Y axis direction.

+ +

 

+ +

+ +

 

+ +

Press «OK» or «Apply» button to create an LCS + at the location with the specified coordinates. The new object is shown + in the Object Browser and in 3D viewer.

+ +

 

+ +

Example:

+ +

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/measurement_tools.htm b/doc/salome/gui/GEOM/measurement_tools.htm index c3dd6ab37..122025fef 100755 --- a/doc/salome/gui/GEOM/measurement_tools.htm +++ b/doc/salome/gui/GEOM/measurement_tools.htm @@ -1,452 +1,452 @@ - - - - - -Measurement Tools - - - - - - - - - - - - -

Measurement Tools

- -

Point Coordinates

- -

import math

- -

import geompy

- -

 

- -

# create a point

- -

point = geompy.MakeVertex(15., - 23., 80.)

- -

 

- -

# get the coordinates - of the point and check its values

- -

coords = geompy.PointCoordinates(point)

- -

 

- -

# check the obtained - coordinate values

- -

tolerance = 1.e-07

- -

def IsEqual(val1, - val2): return (math.fabs(val1 - val2) < tolerance)

- -

 

- -

if IsEqual(coords[0], - 15.) and IsEqual(coords[1], 23.) and IsEqual(coords[2], 80.):

- -

    print - "All values are OK."

- -

else :

- -

    print - "Coordinates of point must be (15, 23, 80), but returned (",

- -

    print - coords[0], ", ", coords[1], ", ", coords[2], ")"

- -

    pass -

- -

Basic Properties

- -

import geompy

- -

import math

- -

 

- -

# create a box

- -

box = geompy.MakeBoxDXDYDZ(100,30,100)

- -

props = geompy.BasicProperties(box)

- -

print "\nBox - 100x30x100 Basic Properties:"

- -

print " Wires - length: ", props[0]

- -

print " Surface - area: ", props[1]

- -

print " Volume -      : - ", props[2]

- -

length = math.sqrt((props[0] - - 1840)*(props[0] - 1840))

- -

area = math.sqrt((props[1] - - 32000)*(props[1] - 32000))

- -

volume = math.sqrt((props[2] - - 300000)*(props[2] - 300000))

- -

if length > 1e-7 - or area > 1e-7 or volume > 1e-7:

- -

    print - "While must be:"

- -

    print - " Wires length: ", 1840

- -

    print - " Surface area: ", 32000

- -

    print - " Volume      : - ", 300000.

- -

Center of masses

- -

import geompy

- -

import math

- -

 

- -

# create a box

- -

box = geompy.MakeBoxDXDYDZ(100,30,100)

- -

cm = geompy.MakeCDG(box)

- -

if cm is None:

- -

    raise - RuntimeError, "MakeCDG(box) failed"

- -

else:

- -

    print - "\nCentre of gravity of box has been successfully obtained:"

- -

    coords - = geompy.PointCoordinates(cm)

- -

    print - "(", coords[0], ", ", coords[1], ", ", coords[2], - ")"

- -

    dx - = math.sqrt((coords[0] - 50)*(coords[0] - 50))

- -

    dy - = math.sqrt((coords[1] - 15)*(coords[1] - 15))

- -

    dz - = math.sqrt((coords[2] - 50)*(coords[2] - 50))

- -

    if - dx > 1e-7 or dy > 1e-7 or dz > 1e-7:

- -

        print - "But must be (50, 15, 50)"

- -

Inertia

- -

import geompy

- -

import math

- -

 

- -

# create a box

- -

box = geompy.MakeBoxDXDYDZ(100,30,100)

- -

In = geompy.Inertia(box)

- -

print "\nInertia - matrix of box 100x30x100:"

- -

print " (", - In[0], ", ", In[1], ", ", In[2], ")"

- -

print " (", - In[3], ", ", In[4], ", ", In[5], ")"

- -

print " (", - In[6], ", ", In[7], ", ", In[8], ")"

- -

print "Main moments - of inertia of box 100x30x100:"

- -

print " Ix = - ", In[9], ", Iy = ", In[10], ", Iz = ", In[11] -

- -

 

- -

Bounding Box

- -

import geompy

- -

 

- -

# create a box

- -

box = geompy.MakeBoxDXDYDZ(100,30,100)

- -

bb = geompy.BoundingBox(box)

- -

print "\nBounding - Box of box 100x30x100:"

- -

print " Xmin - = ", bb[0], ", Xmax = ", bb[1]

- -

print " Ymin - = ", bb[2], ", Ymax = ", bb[3]

- -

print " Zmin - = ", bb[4], ", Zmax = ", bb[5]

- -

 

- -

 

- -

Minimal Distance

- -

import - geompy

- -

 

- -

# create boxes

- -

box1 = geompy.MakeBoxDXDYDZ(100,30,100)

- -

box2 = geompy.MakeBox(105,0,0,200,30,100)

- -

min_dist = geompy.MinDistance(box1,box2)

- -

print "\nMinimal - distance between box1 and box2 = ", min_dist

- -

 

- -

Tolerance

- -

import - geompy

- -

 

- -

# create a box

- -

box = geompy.MakeBoxDXDYDZ(100,30,100)

- -

Toler = geompy.Tolerance(box)

- -

print "\nBox - 100x30x100 tolerance:"

- -

print " Face - min. tolerance: ", Toler[0]

- -

print " Face - max. tolerance: ", Toler[1]

- -

print " Edge - min. tolerance: ", Toler[2]

- -

print " Edge - max. tolerance: ", Toler[3]

- -

print " Vertex - min. tolerance: ", Toler[4]

- -

print " Vertex - max. tolerance: ", Toler[5]

- -

 

- -

What Is

- -

import - geompy

- -

 

- -

# create a box

- -

box = geompy.MakeBoxDXDYDZ(100,30,100)

- -

Descr = geompy.WhatIs(box)

- -

print "\nBox - 100x30x100 description:"

- -

print Descr

- -

 

- -

Check Shape

- -

import geompy

- -

 

- -

# create a box

- -

box = geompy.MakeBoxDXDYDZ(100,30,100)

- -

IsValid = geompy.CheckShape(box)

- -

if IsValid == 0:

- -

    raise - RuntimeError, "Invalid box created"

- -

else:

- -

    print - "\nBox is valid"

- -

 

- -

 

- -

Check Compound of Blocks

- -

import - geompy

- -

import salome

- -

gg = salome.ImportComponentGUI("GEOM")

- -

 

- -

# create boxes

- -

box1 = geompy.MakeBox(0,0,0,100,50,100)

- -

box2 = geompy.MakeBox(100,0,0,250,50,100)

- -

 

- -

# make a compound

- -

compound = geompy.MakeCompound([box1, - box2])

- -

 

- -

# glue the faces of the - compound

- -

tolerance = 1e-5

- -

glue = geompy.MakeGlueFaces(compound, - tolerance)

- -

IsValid = geompy.CheckCompoundOfBlocks(glue)

- -

if IsValid == 0:

- -

    raise - RuntimeError, "Invalid compound created"

- -

else:

- -

    print - "\nCompound is valid"

- -

 

- -

 

- -

 

- - - - + + + + + +Measurement Tools + + + + + + + + + + + + +

Measurement Tools

+ +

Point Coordinates

+ +

import math

+ +

import geompy

+ +

 

+ +

# create a point

+ +

point = geompy.MakeVertex(15., + 23., 80.)

+ +

 

+ +

# get the coordinates + of the point and check its values

+ +

coords = geompy.PointCoordinates(point)

+ +

 

+ +

# check the obtained + coordinate values

+ +

tolerance = 1.e-07

+ +

def IsEqual(val1, + val2): return (math.fabs(val1 - val2) < tolerance)

+ +

 

+ +

if IsEqual(coords[0], + 15.) and IsEqual(coords[1], 23.) and IsEqual(coords[2], 80.):

+ +

    print + "All values are OK."

+ +

else :

+ +

    print + "Coordinates of point must be (15, 23, 80), but returned (",

+ +

    print + coords[0], ", ", coords[1], ", ", coords[2], ")"

+ +

    pass +

+ +

Basic Properties

+ +

import geompy

+ +

import math

+ +

 

+ +

# create a box

+ +

box = geompy.MakeBoxDXDYDZ(100,30,100)

+ +

props = geompy.BasicProperties(box)

+ +

print "\nBox + 100x30x100 Basic Properties:"

+ +

print " Wires + length: ", props[0]

+ +

print " Surface + area: ", props[1]

+ +

print " Volume +      : + ", props[2]

+ +

length = math.sqrt((props[0] + - 1840)*(props[0] - 1840))

+ +

area = math.sqrt((props[1] + - 32000)*(props[1] - 32000))

+ +

volume = math.sqrt((props[2] + - 300000)*(props[2] - 300000))

+ +

if length > 1e-7 + or area > 1e-7 or volume > 1e-7:

+ +

    print + "While must be:"

+ +

    print + " Wires length: ", 1840

+ +

    print + " Surface area: ", 32000

+ +

    print + " Volume      : + ", 300000.

+ +

Center of masses

+ +

import geompy

+ +

import math

+ +

 

+ +

# create a box

+ +

box = geompy.MakeBoxDXDYDZ(100,30,100)

+ +

cm = geompy.MakeCDG(box)

+ +

if cm is None:

+ +

    raise + RuntimeError, "MakeCDG(box) failed"

+ +

else:

+ +

    print + "\nCentre of gravity of box has been successfully obtained:"

+ +

    coords + = geompy.PointCoordinates(cm)

+ +

    print + "(", coords[0], ", ", coords[1], ", ", coords[2], + ")"

+ +

    dx + = math.sqrt((coords[0] - 50)*(coords[0] - 50))

+ +

    dy + = math.sqrt((coords[1] - 15)*(coords[1] - 15))

+ +

    dz + = math.sqrt((coords[2] - 50)*(coords[2] - 50))

+ +

    if + dx > 1e-7 or dy > 1e-7 or dz > 1e-7:

+ +

        print + "But must be (50, 15, 50)"

+ +

Inertia

+ +

import geompy

+ +

import math

+ +

 

+ +

# create a box

+ +

box = geompy.MakeBoxDXDYDZ(100,30,100)

+ +

In = geompy.Inertia(box)

+ +

print "\nInertia + matrix of box 100x30x100:"

+ +

print " (", + In[0], ", ", In[1], ", ", In[2], ")"

+ +

print " (", + In[3], ", ", In[4], ", ", In[5], ")"

+ +

print " (", + In[6], ", ", In[7], ", ", In[8], ")"

+ +

print "Main moments + of inertia of box 100x30x100:"

+ +

print " Ix = + ", In[9], ", Iy = ", In[10], ", Iz = ", In[11] +

+ +

 

+ +

Bounding Box

+ +

import geompy

+ +

 

+ +

# create a box

+ +

box = geompy.MakeBoxDXDYDZ(100,30,100)

+ +

bb = geompy.BoundingBox(box)

+ +

print "\nBounding + Box of box 100x30x100:"

+ +

print " Xmin + = ", bb[0], ", Xmax = ", bb[1]

+ +

print " Ymin + = ", bb[2], ", Ymax = ", bb[3]

+ +

print " Zmin + = ", bb[4], ", Zmax = ", bb[5]

+ +

 

+ +

 

+ +

Minimal Distance

+ +

import + geompy

+ +

 

+ +

# create boxes

+ +

box1 = geompy.MakeBoxDXDYDZ(100,30,100)

+ +

box2 = geompy.MakeBox(105,0,0,200,30,100)

+ +

min_dist = geompy.MinDistance(box1,box2)

+ +

print "\nMinimal + distance between box1 and box2 = ", min_dist

+ +

 

+ +

Tolerance

+ +

import + geompy

+ +

 

+ +

# create a box

+ +

box = geompy.MakeBoxDXDYDZ(100,30,100)

+ +

Toler = geompy.Tolerance(box)

+ +

print "\nBox + 100x30x100 tolerance:"

+ +

print " Face + min. tolerance: ", Toler[0]

+ +

print " Face + max. tolerance: ", Toler[1]

+ +

print " Edge + min. tolerance: ", Toler[2]

+ +

print " Edge + max. tolerance: ", Toler[3]

+ +

print " Vertex + min. tolerance: ", Toler[4]

+ +

print " Vertex + max. tolerance: ", Toler[5]

+ +

 

+ +

What Is

+ +

import + geompy

+ +

 

+ +

# create a box

+ +

box = geompy.MakeBoxDXDYDZ(100,30,100)

+ +

Descr = geompy.WhatIs(box)

+ +

print "\nBox + 100x30x100 description:"

+ +

print Descr

+ +

 

+ +

Check Shape

+ +

import geompy

+ +

 

+ +

# create a box

+ +

box = geompy.MakeBoxDXDYDZ(100,30,100)

+ +

IsValid = geompy.CheckShape(box)

+ +

if IsValid == 0:

+ +

    raise + RuntimeError, "Invalid box created"

+ +

else:

+ +

    print + "\nBox is valid"

+ +

 

+ +

 

+ +

Check Compound of Blocks

+ +

import + geompy

+ +

import salome

+ +

gg = salome.ImportComponentGUI("GEOM")

+ +

 

+ +

# create boxes

+ +

box1 = geompy.MakeBox(0,0,0,100,50,100)

+ +

box2 = geompy.MakeBox(100,0,0,250,50,100)

+ +

 

+ +

# make a compound

+ +

compound = geompy.MakeCompound([box1, + box2])

+ +

 

+ +

# glue the faces of the + compound

+ +

tolerance = 1e-5

+ +

glue = geompy.MakeGlueFaces(compound, + tolerance)

+ +

IsValid = geompy.CheckCompoundOfBlocks(glue)

+ +

if IsValid == 0:

+ +

    raise + RuntimeError, "Invalid compound created"

+ +

else:

+ +

    print + "\nCompound is valid"

+ +

 

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/mirror_image.htm b/doc/salome/gui/GEOM/mirror_image.htm index 34eb31d0e..dce4702d8 100755 --- a/doc/salome/gui/GEOM/mirror_image.htm +++ b/doc/salome/gui/GEOM/mirror_image.htm @@ -1,196 +1,196 @@ - - - - - -Mirror Image - - - - - - - - - - - - - -

Mirror Image

- -

To produce - a Mirror Image in the Main Menu - select Operations - > Transformation - - > Mirror Image

- -

 

- -

This operation creates a symmetrical copy of - an Object, which can be mirrored - in three different ways. Create a copy - checkbox allows to keep the initial object, otherwise it will be - removed.

- -

The - Result will be a GEOM_Object.

- -

 

- -

Firstly an Object - can be mirrored through a Point of symmetry

- -

TUI Command: - geompy.MakeMirrorByPoint(Object, - Point)

- -

Arguments: Name + 1 shape + 1 vertex.

- -

 

- -

 

- -

 

- -

 

- -

 

- -

 

- -

Secondly an - Object can be mirrored through an Axis of symmetry

- -

TUI Command: - geompy.MakeMirrorByAxis(Object, - Axis)

- -

Arguments: Name + 1 shape + 1 vector.

- -

 

- -

 

- -

 

- -

 

- -

 

- -

Finally an Object - can be mirrored through a Plane - of symmetry

- -

TUI Command: - geompy.MakeMirrorByPlane(Shape, - Plane),

- -

Arguments: - Name + 1 shape + 1 plane

- -

 

- -

 

- -

 

- -

 

- -

 

- -

  Our TUI Scripts - provide you with useful examples of the use of Transformation - Operations.

- -

 

- - - - + + + + + +Mirror Image + + + + + + + + + + + + + +

Mirror Image

+ +

To produce + a Mirror Image in the Main Menu + select Operations - > Transformation + - > Mirror Image

+ +

 

+ +

This operation creates a symmetrical copy of + an Object, which can be mirrored + in three different ways. Create a copy + checkbox allows to keep the initial object, otherwise it will be + removed.

+ +

The + Result will be a GEOM_Object.

+ +

 

+ +

Firstly an Object + can be mirrored through a Point of symmetry

+ +

TUI Command: + geompy.MakeMirrorByPoint(Object, + Point)

+ +

Arguments: Name + 1 shape + 1 vertex.

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

Secondly an + Object can be mirrored through an Axis of symmetry

+ +

TUI Command: + geompy.MakeMirrorByAxis(Object, + Axis)

+ +

Arguments: Name + 1 shape + 1 vector.

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

Finally an Object + can be mirrored through a Plane + of symmetry

+ +

TUI Command: + geompy.MakeMirrorByPlane(Shape, + Plane),

+ +

Arguments: + Name + 1 shape + 1 plane

+ +

 

+ +

 

+ +

 

+ +

 

+ +

 

+ +

  Our TUI Scripts + provide you with useful examples of the use of Transformation + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/modify_the_location.htm b/doc/salome/gui/GEOM/modify_the_location.htm index ceddd9a59..2db2e84a9 100755 --- a/doc/salome/gui/GEOM/modify_the_location.htm +++ b/doc/salome/gui/GEOM/modify_the_location.htm @@ -1,219 +1,219 @@ - - - - - -Modify the Location - - - - - - - - - - - - - -

Modify the Location

- -

To Modify the Location in the Main Menu - select Operations - > Transformation - - > Modify the Location.

- -

 

- -

This operation modifies the Location - of an Object.

- -

 

- -

The first algorithm places the object so that - its center coincides with the center of an End Local Coordinate System.

- -

Create a copy - checkbox allows to keep the initial object, otherwise it will be - removed.

- -

Arguments: - Name + 1 Object + End Coordinate System.

- -

 

- -

  

- -

 

- -

In the picture the initial cube with the global - coordinate system is  to - the right and the modified cube with the Local Coordinate System in the - center of it is to the left .

- -

 

- -

- -

 

- -

The second algorithm  modifies - the location of an object using Start and End LSC, although the final - position of the object will not coincide with the center of  either - of the two systems. In this method the object is shifted from its initial - position by the value of the remainder after subtraction of the coordinates - of the Start LSC from the coordinates of the End LSC.

- -

Create a copy - checkbox allows to keep the initial object, otherwise it will be - removed.

- -

Arguments: - Name + 1 Object + Start Coordinate System + End Coordinate System.

- -

 

- -

- -

 

- -

In this picture we see the initial cube with - the global coordinate system and two LCS: LocalCS1 (GCS+100 along x-axis) - and LocalCS2 (GCS+200 along x-axis)  

- -

 

- -

- -

 

- - --- - - - - - - - -
-

Selecting Start LCS = LCS1 and End LCS = LCS2, - we obtain the translated cube at the position (100;0;0)

-

 

-

Selecting Start LCS = LCS2 and End LCS = LCS1, - we obtain the translated cube at the position (-100;0;0)

-

-

- -

 

- -

TUI Command: - geompy.MakePosition(theObject, theStartLCS, theEndLCS), where theObject - is a shape, location of which is modified, theStartLCS is a location to - move the shape from, theEndLCS is a location to move the shape to.

- -

 

- -

Our TUI Scripts - provide you with useful examples of the use of Transformation - Operations.

- -

 

- - - - + + + + + +Modify the Location + + + + + + + + + + + + + +

Modify the Location

+ +

To Modify the Location in the Main Menu + select Operations - > Transformation + - > Modify the Location.

+ +

 

+ +

This operation modifies the Location + of an Object.

+ +

 

+ +

The first algorithm places the object so that + its center coincides with the center of an End Local Coordinate System.

+ +

Create a copy + checkbox allows to keep the initial object, otherwise it will be + removed.

+ +

Arguments: + Name + 1 Object + End Coordinate System.

+ +

 

+ +

  

+ +

 

+ +

In the picture the initial cube with the global + coordinate system is  to + the right and the modified cube with the Local Coordinate System in the + center of it is to the left .

+ +

 

+ +

+ +

 

+ +

The second algorithm  modifies + the location of an object using Start and End LSC, although the final + position of the object will not coincide with the center of  either + of the two systems. In this method the object is shifted from its initial + position by the value of the remainder after subtraction of the coordinates + of the Start LSC from the coordinates of the End LSC.

+ +

Create a copy + checkbox allows to keep the initial object, otherwise it will be + removed.

+ +

Arguments: + Name + 1 Object + Start Coordinate System + End Coordinate System.

+ +

 

+ +

+ +

 

+ +

In this picture we see the initial cube with + the global coordinate system and two LCS: LocalCS1 (GCS+100 along x-axis) + and LocalCS2 (GCS+200 along x-axis)  

+ +

 

+ +

+ +

 

+ + +++ + + + + + + + +
+

Selecting Start LCS = LCS1 and End LCS = LCS2, + we obtain the translated cube at the position (100;0;0)

+

 

+

Selecting Start LCS = LCS2 and End LCS = LCS1, + we obtain the translated cube at the position (-100;0;0)

+

+

+ +

 

+ +

TUI Command: + geompy.MakePosition(theObject, theStartLCS, theEndLCS), where theObject + is a shape, location of which is modified, theStartLCS is a location to + move the shape from, theEndLCS is a location to move the shape to.

+ +

 

+ +

Our TUI Scripts + provide you with useful examples of the use of Transformation + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/multi_rotation.htm b/doc/salome/gui/GEOM/multi_rotation.htm index fa8e0ee28..c42f36e7d 100755 --- a/doc/salome/gui/GEOM/multi_rotation.htm +++ b/doc/salome/gui/GEOM/multi_rotation.htm @@ -1,190 +1,190 @@ - - - - - -Multi Rotation - - - - - - - - - - - - -

 Multi - Rotation

- -

To produce - a Multi Rotation in the Main Menu - select Operations - > Transformation - - > Multi Rotation

- -

 

- -

This operation creates several geometrical - objects rotated in one or two dimensions basing on the initial - geometrical object.

- -

The Result will - be one or several GEOM_Objects (compound).

- -

 

- -

To produce a Simple - Multi Rotation (in one dimension) you need to define a Shape - to be rotated, an Axis of rotation - and a Number of Times the shape - must be rotated. Rotation Angle - will be 2*PI/NbTimes

- -

TUI - Command: geompy.MultiRotate1D(Shape, - Axis, NbTimes)

- -

Arguments: - Name + 1 shape + 1 vector for direction - + 1 value (repetition).

- -

 

- -

There is a TUI-only command geompy.MakeMultiRotation1D(Shape, - Dir, Point, NbTimes) which works in the same way, but the Axis - is defined  by - direction and point.

- -

 

- -

- -

 

- -

 

- -

Double Multi - Rotation (in two dimensions) rotates the given Object - around the given Axis on the given - Angle a given Number - of Times and multi-translates each rotation result.  Translation - direction passes through the center of gravity of the rotated shape and - its projection on the rotation axis. Reverse - checkbox allows to set the direction of rotation.

- -

TUI - Command: geompy.MultiRotate2D(Shape, - Axis, Angle, NbTimes1, Step, NbTimes2)

- -

Arguments: Name + 1 shape + 1 vector - for direction + 1 angle + 1 value (repetition) + 1 step value + 1 value - (repetition);

- -

 

- -

There is a TUI-only - command geompy.MakeMultiRotation2D(Shape, - Dir, Point, Angle, nbtimes1, Step, nbtimes2) which works in the - same way, but the Axis is defined  by - direction and point.

- -

 

- -

- -

 

- -

 

- -

      

- -

Our TUI - Scripts provide you with useful examples of the use of Transformation - Operations.

- -

 

- - - - + + + + + +Multi Rotation + + + + + + + + + + + + +

 Multi + Rotation

+ +

To produce + a Multi Rotation in the Main Menu + select Operations - > Transformation + - > Multi Rotation

+ +

 

+ +

This operation creates several geometrical + objects rotated in one or two dimensions basing on the initial + geometrical object.

+ +

The Result will + be one or several GEOM_Objects (compound).

+ +

 

+ +

To produce a Simple + Multi Rotation (in one dimension) you need to define a Shape + to be rotated, an Axis of rotation + and a Number of Times the shape + must be rotated. Rotation Angle + will be 2*PI/NbTimes

+ +

TUI + Command: geompy.MultiRotate1D(Shape, + Axis, NbTimes)

+ +

Arguments: + Name + 1 shape + 1 vector for direction + + 1 value (repetition).

+ +

 

+ +

There is a TUI-only command geompy.MakeMultiRotation1D(Shape, + Dir, Point, NbTimes) which works in the same way, but the Axis + is defined  by + direction and point.

+ +

 

+ +

+ +

 

+ +

 

+ +

Double Multi + Rotation (in two dimensions) rotates the given Object + around the given Axis on the given + Angle a given Number + of Times and multi-translates each rotation result.  Translation + direction passes through the center of gravity of the rotated shape and + its projection on the rotation axis. Reverse + checkbox allows to set the direction of rotation.

+ +

TUI + Command: geompy.MultiRotate2D(Shape, + Axis, Angle, NbTimes1, Step, NbTimes2)

+ +

Arguments: Name + 1 shape + 1 vector + for direction + 1 angle + 1 value (repetition) + 1 step value + 1 value + (repetition);

+ +

 

+ +

There is a TUI-only + command geompy.MakeMultiRotation2D(Shape, + Dir, Point, Angle, nbtimes1, Step, nbtimes2) which works in the + same way, but the Axis is defined  by + direction and point.

+ +

 

+ +

+ +

 

+ +

 

+ +

      

+ +

Our TUI + Scripts provide you with useful examples of the use of Transformation + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/multi_transformation.htm b/doc/salome/gui/GEOM/multi_transformation.htm index 047fbc337..3362e1f57 100755 --- a/doc/salome/gui/GEOM/multi_transformation.htm +++ b/doc/salome/gui/GEOM/multi_transformation.htm @@ -1,183 +1,183 @@ - - - - - -Multi Transformation - - - - - - - - - - - - - -

Block Multi Transformation

- -

To produce - a Multi Transformation operation - in the Main Menu select Operations - - > Blocks - > Multi Transformation

- -

 

- -

This operation makes several translations of - a block (solid) in one or two directions depending on the arguments - specified by the user.

- -

The - Result in both cases will be a - GEOM_Object.

- -

 

- -

Simple Multi - Transformation (in one direction).

- -

TUI - Command: geompy. - MakeMultiTransformation1D(Block, DirFaceID1, DirFaceID2, NbTimes), where - Block is a block to be transformed, DirFaceID1 is an ID of the face which defines the first - direction of transformation, - DirFaceID2 is an ID of the face - which defines the second direction of transformation, - NbTimes is a number of transformations.

- -

Arguments: Name - + 1 hexahedral solid + 1 or 2 faces + 1 integer (number of blocks).

- -

 

- -

  

- -

 

- -

Double - Multi Transformation (in two directions).

- -

TUI - Command: geompy. - MakeMultiTransformation2D(Block, DirFaceID1U, DirFaceID2U, NbTimesU, DirFaceID1V, - DirFaceID2V, NbTimesV), where Block - is a block to be transformed, DirFaceID1U and DirFaceID2U are IDs of the - faces, which define directions of the first transformation, DirFaceID1V - and DirFaceID2V are ID’s of the faces which define directions of the second - transformation, NbTimesU and NbTimesV are numbers of transformations.

- -

Arguments:  Name - + 1 hexahedral solid + 2, 3 or 4 faces + 2 integers (number of blocks).

- -

 

- -

 

- -

 

- -

   Our TUI Scripts - provide you with useful examples of the use of - Blocks Operations.

- -

  

- -

 

- -

 

- - - - + + + + + +Multi Transformation + + + + + + + + + + + + + +

Block Multi Transformation

+ +

To produce + a Multi Transformation operation + in the Main Menu select Operations - + > Blocks - > Multi Transformation

+ +

 

+ +

This operation makes several translations of + a block (solid) in one or two directions depending on the arguments + specified by the user.

+ +

The + Result in both cases will be a + GEOM_Object.

+ +

 

+ +

Simple Multi + Transformation (in one direction).

+ +

TUI + Command: geompy. + MakeMultiTransformation1D(Block, DirFaceID1, DirFaceID2, NbTimes), where + Block is a block to be transformed, DirFaceID1 is an ID of the face which defines the first + direction of transformation, + DirFaceID2 is an ID of the face + which defines the second direction of transformation, + NbTimes is a number of transformations.

+ +

Arguments: Name + + 1 hexahedral solid + 1 or 2 faces + 1 integer (number of blocks).

+ +

 

+ +

  

+ +

 

+ +

Double + Multi Transformation (in two directions).

+ +

TUI + Command: geompy. + MakeMultiTransformation2D(Block, DirFaceID1U, DirFaceID2U, NbTimesU, DirFaceID1V, + DirFaceID2V, NbTimesV), where Block + is a block to be transformed, DirFaceID1U and DirFaceID2U are IDs of the + faces, which define directions of the first transformation, DirFaceID1V + and DirFaceID2V are ID’s of the faces which define directions of the second + transformation, NbTimesU and NbTimesV are numbers of transformations.

+ +

Arguments:  Name + + 1 hexahedral solid + 2, 3 or 4 faces + 2 integers (number of blocks).

+ +

 

+ +

 

+ +

 

+ +

   Our TUI Scripts + provide you with useful examples of the use of + Blocks Operations.

+ +

  

+ +

 

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/multi_translation.htm b/doc/salome/gui/GEOM/multi_translation.htm index f4d6e62cd..05449ca5a 100755 --- a/doc/salome/gui/GEOM/multi_translation.htm +++ b/doc/salome/gui/GEOM/multi_translation.htm @@ -1,197 +1,197 @@ - - - - - -Multi Translation - - - - - - - - - - - - - -

Multi Translation

- -

To produce - a Multi Translation in the Main - Menu select Operations - > Transformation - - > Multi Translation

- -

 

- -

This operation - makes several translations of a shape in one - or two directions.

- -

The - Result will be one or several - GEOM_Objects (compound).

- -

 

- -

To produce a Simple - Multi Translation (in one direction) you need to indicate a Shape to be translated, a Vector - of translation, a Step of translation - and a Number of Times the shape - must be moved.

- -

TUI Command: - geompy.MakeMultiTranslation1D(Shape, - Dir, Step, NbTimes)

- -

Arguments: - Name + 1 shape + 1 vector (for direction) + 1 step value + - 1 value (repetition).

- -

- -

 

- -

  

- -

 

- -

To produce a - Double Multi - Translation (in two directions) - you need to indicate a Shape to be translated and a Vector of translation, a Step of translation and a Number - of Times the shape must be moved - along each axis.

- -

 

- -

TUI Command: - geompy.MakeMultiTranslation2D(Shape, Dir1, - Step1, NbTimes1, Dir2, Step2, NbTimes2), where Shape - is a shape to be translated, Dir1 - is the first direction of translation, Step1 - of the first translation, NbTimes1 - is a number of translations to be done along Dir1, - Dir2 is the second direction - of translation, Step2 of the - second translation, NbTimes2 - is a number of translations to be done along Dir2.

- -

Arguments: - Name + 1 shape + 2 vectors defining the direction + 2 step - values + 2 values (repetitions).

- -

 

- -

- -

 

- -

   

- -

  

- -

Our TUI Scripts - provide you with useful examples of the use of Transformation - Operations.

- -

 

- - - - + + + + + +Multi Translation + + + + + + + + + + + + + +

Multi Translation

+ +

To produce + a Multi Translation in the Main + Menu select Operations - > Transformation + - > Multi Translation

+ +

 

+ +

This operation + makes several translations of a shape in one + or two directions.

+ +

The + Result will be one or several + GEOM_Objects (compound).

+ +

 

+ +

To produce a Simple + Multi Translation (in one direction) you need to indicate a Shape to be translated, a Vector + of translation, a Step of translation + and a Number of Times the shape + must be moved.

+ +

TUI Command: + geompy.MakeMultiTranslation1D(Shape, + Dir, Step, NbTimes)

+ +

Arguments: + Name + 1 shape + 1 vector (for direction) + 1 step value + + 1 value (repetition).

+ +

+ +

 

+ +

  

+ +

 

+ +

To produce a + Double Multi + Translation (in two directions) + you need to indicate a Shape to be translated and a Vector of translation, a Step of translation and a Number + of Times the shape must be moved + along each axis.

+ +

 

+ +

TUI Command: + geompy.MakeMultiTranslation2D(Shape, Dir1, + Step1, NbTimes1, Dir2, Step2, NbTimes2), where Shape + is a shape to be translated, Dir1 + is the first direction of translation, Step1 + of the first translation, NbTimes1 + is a number of translations to be done along Dir1, + Dir2 is the second direction + of translation, Step2 of the + second translation, NbTimes2 + is a number of translations to be done along Dir2.

+ +

Arguments: + Name + 1 shape + 2 vectors defining the direction + 2 step + values + 2 values (repetitions).

+ +

 

+ +

+ +

 

+ +

   

+ +

  

+ +

Our TUI Scripts + provide you with useful examples of the use of Transformation + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/newentity_blocks.htm b/doc/salome/gui/GEOM/newentity_blocks.htm index bd0b02887..1fcbf4c89 100755 --- a/doc/salome/gui/GEOM/newentity_blocks.htm +++ b/doc/salome/gui/GEOM/newentity_blocks.htm @@ -1,340 +1,340 @@ - - - - - -Blocks - - - - - - - - - - - - - -

Building by blocks

- -

Introduction.

- -

 

- -

Below are some general notions about blocks:

- -

 

- -

A block is a an elementary geometric solid that - has specific geometric constraints oriented for meshing. In the hexahedral - case, blocks have 6 faces and each face has 4 edges.  

- -

 

- -

Tetrahedral Block - is a block with constraints for tetrahedral meshing. -

- -

 

- -

Hexahedral Block - is a block with constraints for hexahedral meshing.

- -

 

- -

Block Compound - is a compound composed of blocks only.

- -

 

- -

These functionalities are available from the main menu via New - Entity / Blocks.

- -

 

- - - -

 

- -

 

- -

Quadrangle - face

- -

 

- -

Description: - Builds a face using the below mentioned arguments. This operation allows - to build a face bypassing the intermediate stage of building edges and - wires (in the case of building by 4 points) or wires (in the case of building - by 4 or 2 edges).

- -

 

- -

The Result of - the operation will be a GEOM_Object (face).

- -

 

- -

TUI Command:

- -
    - -
  • geompy.MakeQuad4Vertices(V1, - V2, V3, V4), where V1, V2, V3, V4 are - four vertices from which a face is constructed. Edges are created automatically.

  • - -
  • geompy.MakeQuad2Edges(E1, - E2), where E1, E2 are edges from which the face is constructed, - two other edges are created automatically.

  • - -
  • geompy.MakeQuad(E1, E2, E3, E4), - where E1, E2, E3, E4 are four edges from which the face is constructed.

  • -
- -

 

- -

Arguments: -

- -
    - -
  • Name + 4 Points, or

  • - -
  • Name + 2 Edges, or

  • - -
  • Name + 4 Edges.

  • -
- -

 

- -

Dialog Box:

- - ---- - - - - -
-

-

-

- -

 

- -

 

- -

Example:

- -

 

- -

- -

 

- -

 

- -

Hexahedral - solid

- -

 

- -

Description: - Builds a hexahedral solid. either of the below mentioned arguments. This - operation allows to build a solid bypassing the intermediate stage of - building a shell and 4 faces (in the case of building by 2 faces) or just - a shell (in the case of building by 6 faces).

- -

 

- -

The - Result of the operation will be a - GEOM_Object (solid).

- -

 

- -

TUI Command:

- -
    - -
  • geompy.MakeHexa2Faces(F1, - F2), where F1 and F2 are faces - from which the hexahedron is constructed, other four faces are created - automatically.

  • - -
  • geompy.MakeHexa(F1, - F2, F3, F4, F5, F6), where F1 – F6 are six faces from which the - hexahedron is constructed.

  • -
- -

 

- -

Arguments: -

- -
    - -
  • Name + 2 Faces, or

  • - -
  • Name + 6 Faces.

  • -
- -

 

- -

Dialog Box:

- -

 

- - --- - - - - - - - -
-

 

-

-

 

-

 

- -

 

- -

Example:

- -

 

- -

     

- -

     

- -

Our TUI Scripts - provide you with useful examples of Building - by Blocks.

- -

 

- - - - + + + + + +Blocks + + + + + + + + + + + + + +

Building by blocks

+ +

Introduction.

+ +

 

+ +

Below are some general notions about blocks:

+ +

 

+ +

A block is a an elementary geometric solid that + has specific geometric constraints oriented for meshing. In the hexahedral + case, blocks have 6 faces and each face has 4 edges.  

+ +

 

+ +

Tetrahedral Block - is a block with constraints for tetrahedral meshing. +

+ +

 

+ +

Hexahedral Block - is a block with constraints for hexahedral meshing.

+ +

 

+ +

Block Compound - is a compound composed of blocks only.

+ +

 

+ +

These functionalities are available from the main menu via New + Entity / Blocks.

+ +

 

+ + + +

 

+ +

 

+ +

Quadrangle + face

+ +

 

+ +

Description: + Builds a face using the below mentioned arguments. This operation allows + to build a face bypassing the intermediate stage of building edges and + wires (in the case of building by 4 points) or wires (in the case of building + by 4 or 2 edges).

+ +

 

+ +

The Result of + the operation will be a GEOM_Object (face).

+ +

 

+ +

TUI Command:

+ +
    + +
  • geompy.MakeQuad4Vertices(V1, + V2, V3, V4), where V1, V2, V3, V4 are + four vertices from which a face is constructed. Edges are created automatically.

  • + +
  • geompy.MakeQuad2Edges(E1, + E2), where E1, E2 are edges from which the face is constructed, + two other edges are created automatically.

  • + +
  • geompy.MakeQuad(E1, E2, E3, E4), + where E1, E2, E3, E4 are four edges from which the face is constructed.

  • +
+ +

 

+ +

Arguments: +

+ +
    + +
  • Name + 4 Points, or

  • + +
  • Name + 2 Edges, or

  • + +
  • Name + 4 Edges.

  • +
+ +

 

+ +

Dialog Box:

+ + ++++ + + + + +
+

+

+

+ +

 

+ +

 

+ +

Example:

+ +

 

+ +

+ +

 

+ +

 

+ +

Hexahedral + solid

+ +

 

+ +

Description: + Builds a hexahedral solid. either of the below mentioned arguments. This + operation allows to build a solid bypassing the intermediate stage of + building a shell and 4 faces (in the case of building by 2 faces) or just + a shell (in the case of building by 6 faces).

+ +

 

+ +

The + Result of the operation will be a + GEOM_Object (solid).

+ +

 

+ +

TUI Command:

+ +
    + +
  • geompy.MakeHexa2Faces(F1, + F2), where F1 and F2 are faces + from which the hexahedron is constructed, other four faces are created + automatically.

  • + +
  • geompy.MakeHexa(F1, + F2, F3, F4, F5, F6), where F1 – F6 are six faces from which the + hexahedron is constructed.

  • +
+ +

 

+ +

Arguments: +

+ +
    + +
  • Name + 2 Faces, or

  • + +
  • Name + 6 Faces.

  • +
+ +

 

+ +

Dialog Box:

+ +

 

+ + +++ + + + + + + + +
+

 

+

+

 

+

 

+ +

 

+ +

Example:

+ +

 

+ +

     

+ +

     

+ +

Our TUI Scripts + provide you with useful examples of Building + by Blocks.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/occ_viewer.htm b/doc/salome/gui/GEOM/occ_viewer.htm index 171561038..372116efb 100755 --- a/doc/salome/gui/GEOM/occ_viewer.htm +++ b/doc/salome/gui/GEOM/occ_viewer.htm @@ -1,206 +1,258 @@ - - - - - -OCC_Viewer - - - - - - - - - - - - -

OCC 3D Viewer

- -

OCC (Open CasCade) 3D viewer - has been developed on the basis of Open CASCADE Technology. This is the - default viewer for Geometry Module, providing good representation of construction - and transformation of geometrical objects. Only this viewer allows to - work with groups and sub-shapes. This viewer can also work in Mesh module, - however, it doesn't allow to visualize meshes.

- -

 

- -

The functions of OCC viewer are available via its Viewer Toolbar. Buttons - marked with small downward triangles have extended functionality which - can be accessed by locking on them with left mouse button.  

- -

 

- -

- -

 

- -
    - -
  • Dump - View - exports an object from the viewer in bmp, png, jpg or jpeg - image format.

  • - -
  • Show/Hide - Trihedron - shows or hides coordinate axes.

  • - -
  •  Fit all - allows - to select a point to be the center of a scene representing all displayed - objects in the visible area.

  • - -
  •   Fit area - resizes - the view to place in the visible area only the contents of a frame drawn - with pressed left mouse button.

  • - -
  • Zoom - -  allows - to zoom in and out.

  • - -
  • Panning - - if the represented objects are greater that the visible area and you - don't wish to use Fit all functionality, - click on this button and you'll be able to drag the scene to see its remote - parts.

  • - -
  • Global - panning - represents all displayed objects in the visible area. -

  • - -
  • Rotation - - allows to rotate the selected object using the mouse.

  • - -
  • These buttons orientate the scene - strictly about coordinate axes.

  • - -
  • Reset - - restores the default position (isometric) of objects in the scene.

  • - -
  • Memorise - view - saves the current position of objects in the scene

  • - -
  • Restore - view - restores the saved - position of objects in the scene

  • - -
  • Clone - view - opens a new duplicate scene.

  • - -
  • Clipping - - allows to create cross-section views (clipping planes) of geometrical - objects.

  • -
- -

 

- -

- -

 

- -
    - -
  • Base - point - allows to define the coordinates of the base point for - the clipping plane. Click

  • - -
  • Reset - - returns the base point to coordinate origin.

  • - -
  • Direction - - allows to define the orientation of the clipping plane.

  • - -
  • Invert - - allows to select which part of the object will be removed and which - will remain after clipping.

  • - -
  • Preview - - allows to see the results of clipping in the viewer.

  • -
- -

 

- - - - + + + + + +OCC_Viewer + + + + + + + + + + + + + +

OCC 3D Viewer

+ +

OCC (Open CasCade) 3D viewer + has been developed on the basis of Open CASCADE Technology. This is the + default viewer for Geometry Module, providing good representation of construction + and transformation of geometrical objects. Only this viewer allows to + work with groups and sub-shapes. This viewer can also work in Mesh module, + however, it doesn't allow to visualize meshes.

+ +

 

+ +

The functions of OCC viewer are available via its Viewer Toolbar. Buttons + marked with small downward triangles have extended functionality which + can be accessed by locking on them with left mouse button.  

+ +

 

+ +

+ +

 

+ +
    + +
  • Dump + View - exports an object from the viewer in bmp, png, jpg or jpeg + image format.

  • + +
  • Show/Hide + Trihedron - shows or hides coordinate axes.

  • + +
  •  Fit all - allows + to select a point to be the center of a scene representing all displayed + objects in the visible area.

  • + +
  •   Fit area - resizes + the view to place in the visible area only the contents of a frame drawn + with pressed left mouse button.

  • + +
  • Zoom + -  allows + to zoom in and out.

  • + +
  • Panning + - if the represented objects are greater that the visible area and you + don't wish to use Fit all functionality, + click on this button and you'll be able to drag the scene to see its remote + parts.

  • + +
  • Global + panning - represents all displayed objects in the visible area. +

  • +
+ +
    + +
  • Change rotation point + - allows to to choose the point around which the rotation is performed

  • +
+ +

+ +

 

+ +

By default the rotation point is located + in the Center of the bounding box of an object.

+ +

 

+ +

+ +

 

+ +

Unchecking Use + Bounding Box Center box allows you to define the coordinates of + the rotation point manually.

+ +

 

+ +

Set to Origin + button restores the default rotation point coordinates.

+ +

Select Point + from View button allows to select the rotation point in the 3D + Viewer

+ +

 

+ +
    + +
  • Rotation + - allows to rotate the selected object using the mouse.

  • + +
  • These buttons orientate the scene + strictly about coordinate axes.

  • + +
  • Reset + - restores the default position (isometric) of objects in the scene.

  • + +
  • Memorise + view - saves the current position of objects in the scene

  • + +
  • Restore + view - restores the saved + position of objects in the scene

  • + +
  • Clone + view - opens a new duplicate scene.

  • + +
  • Clipping + - allows to create cross-section views (clipping planes) of geometrical + objects.

  • +
+ +

 

+ +

+ +

 

+ +
    + +
  • Base + point - allows to define the coordinates of the base point for + the clipping plane. Click

  • + +
  • Reset + - returns the base point to coordinate origin.

  • + +
  • Direction + - allows to define the orientation of the clipping plane.

  • + +
  • Invert + - allows to select which part of the object will be removed and which + will remain after clipping.

  • + +
  • Preview + - allows to see the results of clipping in the viewer.

  • +
+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/offset_surface.htm b/doc/salome/gui/GEOM/offset_surface.htm index a051068ff..776c23f69 100755 --- a/doc/salome/gui/GEOM/offset_surface.htm +++ b/doc/salome/gui/GEOM/offset_surface.htm @@ -1,151 +1,151 @@ - - - - - -Offset Surface - - - - - - - - - - - - - -

Offset Surface

- -

To produce - an Offset Surface in the Main - Menu select Operations - > Transformation - - > Offset Surface

- -

 

- -

This operation - translates each point of an Object - (a set of Objects) along a local normal by a given Offset - distance (signed number, negative value meaning inner offset). Offset - operation is applicable to faces, shells and solids.

- -

The - Result will be a GEOM_Object -

- -

TUI - Command: geompy.MakeOffset(Shape, - Offset), where Shape is a shape which has to be an offset, Offset - is a value of the offset.

- -

Arguments: Name + Object (face, shell, solid, compound) - + Offset value

- -

 

- -

- -

 

- -

Example:

- -

- -

 

- -

  Our TUI Scripts - provide you with useful examples of the use of Transformation - Operations.

- -

 

- - - - + + + + + +Offset Surface + + + + + + + + + + + + + +

Offset Surface

+ +

To produce + an Offset Surface in the Main + Menu select Operations - > Transformation + - > Offset Surface

+ +

 

+ +

This operation + translates each point of an Object + (a set of Objects) along a local normal by a given Offset + distance (signed number, negative value meaning inner offset). Offset + operation is applicable to faces, shells and solids.

+ +

The + Result will be a GEOM_Object +

+ +

TUI + Command: geompy.MakeOffset(Shape, + Offset), where Shape is a shape which has to be an offset, Offset + is a value of the offset.

+ +

Arguments: Name + Object (face, shell, solid, compound) + + Offset value

+ +

 

+ +

+ +

 

+ +

Example:

+ +

+ +

 

+ +

  Our TUI Scripts + provide you with useful examples of the use of Transformation + Operations.

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/partition.htm b/doc/salome/gui/GEOM/partition.htm index 7efc6046d..cd5a9e6b7 100755 --- a/doc/salome/gui/GEOM/partition.htm +++ b/doc/salome/gui/GEOM/partition.htm @@ -1,181 +1,179 @@ - - - - - -Partition - - - - - - - - - - - - -

 Partition

- -

To produce - a Partition in the Main - Menu select Operations - > - Partition

- -

 

- -

This - operation builds a shape by intersection of two shapes or a shape - and a plane.

- -

The - Result will be any GEOM_Object.

- -

 

- -

Intersection - of two shapes.

- -

 

- -

TUI Command: - geompy.MakePartition(ListOfShapes, - ListOfTools, ListOfKeepInside, ListOfRemoveInside, Limit, RemoveWebs, - ListOfMaterials), where ListOfShapes is a list of shapes to be - intersected, ListOfTools is a list of shapes to intersect the shapes from - ListOfShapes, ListOfKeepInside is a list of shapes outside which the results - will be deleted, ListOfRemoveInside is a list of shapes inside which the - results will be deleted, Limit is a type of the result shapes, if RemoveWebs - is True the Glue 3D algorithm will be performed on the results, ListOfMaterials - is a list of materials indices for each shape, it makes sense only if - RemoveWebs is True.

- -

Arguments: - Name + 2 shapes (the first shape - will be intersected by the second shape) + reconstruction limit.

- -

 

- -

- -

 

- -

- -

 

- -

 

- -

Intersection of a Shape - and a Plane.

- -

 

- -

TUI Command -  geompy.MakeHalfPartition(Shape, - Plane), where Shape is - a Shape to be intersected and Plane - is a Tool shape, to intersect the Shape.

- -

Arguments: Name - + 1 shape which will be intersected + 1 cutting face.

- -

 

- -

- -

 

- -

 

- -

Example:

- -

 

- -

 

- -

 

- -

Our TUI Scripts provide you with useful examples - of the use of Basic Operations. -

- -

 

- - - - + + + + + +Partition + + + + + + + + + + + + +

 Partition

+ +

To produce + a Partition in the Main + Menu select Operations - > + Partition

+ +

 

+ +

This + operation builds a shape by intersection of two shapes or a shape + and a plane.

+ +

The + Result will be any GEOM_Object.

+ +

 

+ +

Intersection + of two shapes.

+ +

 

+ +

As far as the intersection + of two objects can produce any type of geometrical objects, Reconstruction + Limit box allows to choose the preferrable result, i.e. a solid, + a shell, a list of faces, etc.

+ +

TUI Command: + geompy.MakePartition(ListOfShapes, + ListOfTools, ListOfKeepInside, ListOfRemoveInside, Limit, RemoveWebs, + ListOfMaterials), where ListOfShapes + is a list of shapes to be intersected and  ListOfTools + is a list of shapes to intersect the shapes from ListOfShapes.

+ +

Since the implementation of a new version of + PartitionAlgo other parameters are ignored by the current functionality + and remain there only to support the old scripts.  

+ +

Arguments: Name + 2 lists of shapes + (the shapes from the first list will be intersected with the shapes from + the second list) + reconstruction limit.

+ +

 

+ +

+ +

 

+ +

 

+ +

Intersection of a Shape + and a Plane.

+ +

 

+ +

TUI Command +  geompy.MakeHalfPartition(Shape, + Plane), where Shape is + a Shape to be intersected and Plane + is a Tool shape, to intersect the Shape.

+ +

Arguments: Name + + 1 shape which will be intersected + 1 cutting face.

+ +

 

+ +

+ +

 

+ +

Example:

+ +

 

+ +

 

+ +

 

+ +

Our TUI Scripts provide you with useful examples + of the use of Basic Operations. +

+ +

 

+ + + + diff --git a/doc/salome/gui/GEOM/pics/image95.gif b/doc/salome/gui/GEOM/pics/image95.gif index b734add2203cb84abae2df9993060b49cdd1241c..fb293e23475a5b23151773b875982f47d76a505c 100755 GIT binary patch delta 1939 zcmV;E2WMCFQ>t9avZc#`Ctu2(NmFKm1ONckOc`^hLk>V00_6~q=*0#NEK=}^5hnnr zIw2k~7@(@vt5zLO{TS1M1Evat63j`KpxB>4B}kA+HfK__Mk!EGySAd-yLgvQG}cq{5@ZMws(%2ls3jw9R>&f`bRN9e-jj{lIkT@~nkdTuu*2 zg*uh z1Sg_60RWvfaNlP!N=Q}%9s+P72Pe)amj)CNIaiJt<|UVWx-H-U1W4)_9)S^vhaZYi zJtZFiS4OG9RDT#M*MXP`PJkqsNH*r<0x@=AK?ZQfSz(-X!ihiz3P5mx0ty^Z=bv|cS%|VpfM}f@WX2^24U7lcq;a~HC|Ph~I%!)OfJ#9I6yOKk zs1yLuByO^~|7zQloYqMrrVVh}Vt;==MV5jya(QU2aeq!#rnP=CO>jzOz3qSM0Z)wPoxIbPZfuWReUwFVvNx^gjq->76et=riW7fqv!6?+AN*jVd| zpQ9l52NcnD1|Gl$d5<|VnT08M^5W~xmy=`O8ysii)G|%L0gh`+!20K-?Xzi5;!B#N z6Mq97`iPiq7y74d^;htGyLy1n2p1;~cnw-UE1=hG<36VK4k%`e80>^cmIsszd2u3` z+zuruDp_fJ$D&@|`c@_oB5H8|DjWa~_b2kntXhdWp8_hNfC8|ueZgZ|XCCM_XRWO* znNiw!|8!`(v7}pc~sPDTl-&n2V4C zG(b7(jDaFouEuj86NaoX$ytu}{uDSmy{uF%TfiM#_@)&e#VppHp}7%GhKZv<1dzQ6+;UWTlvW=zFf)douUj@;-vA7`N`C?HK4J6WqU2J# z*=(kXb$TUv_T##v9Z#0UsUiXawXp70(Kc9Q7%E+bn{<-XfIy*|W?1x1SyGH`K-nD~ zxd;C(+)Phz0tje82f`d*?z3pYoPU&?Fu+g@2&AD9ZRi02KmczMfGh>L&66U^Q4EOD zE3IMT@j4386fr7QZ1l?Ocq0LlVn8#WnbA-}w3*Mil%yPBC|MY~fCk*Op%VCCdu~(8 zo8nVyO=5r%TiQ{eU?86(1*%$pO46J_fOs4*UPq_W(R@u{dez%yFSptOs()fYO&D0f zO&1zbuekK8;L6Qyut-&Ha^`3@{i&ijK+V-fvP3^s3uZi{#MkB3s10>$LjjQ1o|=`R z1j`jW>1xz<_Ow5T<)~AELfOaawSVOz>rKHL)`ApNv{Xf_T3yOkh`N=eVr&2du4p5b z|3)>i?qVcWbIMng8rEIj$$zO?E0`%&JvJv1rB6?N>RHVcOtuVo5>s6ozF(njx4h-z zMm_seF^2SBs3j@({HCDr8r3mrU8@Be`r5LRbe?QnDNDI4)#=_ep1u`PNxc_XE-g_+ z;WKJmR!d*up7o=*z3Elu+D@UirKv#CC^M6toy#(%PYiIV@ zd1jWv6#fl8?W@xV;})+>oex!!avKy61*k(~u}eSdl^);ccrxxN!Dic86mt~5LB_Cq zUCQ7lcbKCY)+>nB3(ShKz|!8^tBV-5ULM{W7N?usO5@*3ujzVdv> zXBIP;J=|5V+WF3O{%~oCIoet|`}xl$^>dd2O=u$zy3i;-bVQeoXhzG~O&5r?q$7=i zNn85Tn9j7OH_hozd-~I$4z;L9P3lsc`qZdSb*9~9fmXY^)fafRtY=N@THE^8xX!h% Zcg^cw`})_w4z{p|P3&UV+D!og06Qj4bp`+c delta 1871 zcmV-V2e9~;71I<6M@dFFH(?_I9kB@s0}CSo9RL6b{{RnI7?T|X7=IrM%*e5$$B!UG ziX2I@;DHV(Q>t9avZc$HFk{M`NwcQSn>cgo+{v?NOoAtU3LQ$csL`WHlPc{1bg9#) zP@_tnTC^$Et5~xZO^^Tp0IgE3g2l<9tjw|;Zl>KyVeHVZ0N{SL8B}F}yLj{BrCFD# z*bWXHxIMczrPsqM&41QJD?!3cv?wW1XzZA+R?UMC&mw%@+b_{uOhugU^1K?nM=3x#G@_$RWk6dzx%Q*qCz+s0m zM}Y$mD0kch!#zOUaQmr5U|9q{Kv#Di?A6@@6O4CUYaNL9Qd1g~XkuU)n5g243^1_b zi!f>+90U$Zz#xPY#Q36D@zMBz171a-echu;`)yNB{u^(dkAbauQ4mCl| z1sPC~V0E4%|0f^?&dG|UmZt)0AXymUDAiHO8&}q6`f4-dxYHq%g3IVb7 znd@l;4|t`jssQXsL0PAIWu}=5Q!s0m?YgV#1EU7qV06LC#bJ>NM!=Fs>4x`83y7Gb$HX`gu$pTF`F0>;@fdAi&5i zg*R!+e-{5B@U&jByr|4_?}^f>1Q=jI0TpmifPdl!5KsWA$Hw||jR5b~n8d0cs2{PF zK0pDfPBZ9Zex(NOG18|7&FH(5F_2)aU_<@f*bx_PB#;ybmNcbbwjIHY4wgkUpeYBi z0o`tDxKel%pj>#?O?uT@^#b!rxT1arOTYn&drQFh-$N`daa!)nU<8$yjU0kXPY{7* z2!8@!;igUg`hc{2eylaE=5t!@D0I79NhW|21AiEhb_ldZvG0nEBF+wdRX+{_s!iWJm#S!mF(mYPCFpe zd71|U3-G8s@fnzkLI7vpat?ElSX53rh>2HGBNkQUBrj5BxZvfECiGLRLo&f8W zfS?%xnU*wc0@7DU7s}GIQ1z^5&0o5P>d~J1^m#%ZXikfI)TCB)srPK^LZ#RM1{@Jd z5lz}zx49cW7L@}nkTktxT#v|9;T`e9Bp?Av|X0Ylat^rszC!oVFV?uNsE1eWA7SZf`1|x!}x^nLdQ#D z`i9uPBn7Tv7mC<=qPW8_UazJKOwR*Pc4(@#@pkWdQ5v&XUV>b%N_9L?PFmQae(#Hmx?+O1ILTPf@<8#6WiD$u$zJ|4jKhr2DSz3_Fecmu*39NLW1u+A zaE`N_=S=51+xgCT&MdQ@_sr)$`}xm+4z!@-Ot^$xpd^S+w4xWy=tfI~aD$1oq$f>j Jq!1(^06XG?V+;TQ diff --git a/doc/salome/gui/GEOM/pics/partition1.png b/doc/salome/gui/GEOM/pics/partition1.png index eb6bf4305c6100f20ecd2fb05a5e3ef7c4c83ef6..20b22d296fe7e860dd5da61e340aba75279c2441 100755 GIT binary patch literal 16738 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 literal 19008 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
  • X8WM0dWv` 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 J!uL8~{uhI7M_B*> literal 15665 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 diff --git a/doc/salome/gui/GEOM/pipe_creation.htm b/doc/salome/gui/GEOM/pipe_creation.htm index 11b959395..4d392fee0 100755 --- a/doc/salome/gui/GEOM/pipe_creation.htm +++ b/doc/salome/gui/GEOM/pipe_creation.htm @@ -1,145 +1,145 @@ - - - - - -Pipe Creation - - - - - - - - - - - - -

    Pipe Construction

    - -

    To generate - a Pipe - in the Main Menu select New Entity - > Generation  - - > Extrusion along a path

    - -

     

    - -

    To create an extruded Pipe shape, - you need to define the Base Object (vertex, edge, wire, face or shell), which will be extruded and the Path Object (edge, - face or shell) along which the Base Object will be extruded.

    - -

    The - Result of the operation will be a - GEOM_Object (edge, face, solid or compsolid).

    - -

     

    - -

    TUI Command: - geompy.MakePipe(baseShape, pathShape) -

    - -

    Arguments: - Name + 1 shape (vertex, edge, wire, face or shell) serving as base object - + 1 shape (edge, face or shell) for definition of the path.

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

     

    - -

     

    - -

    Our TUI Scripts provide you with useful examples - of creation of Complex Geometric - Objects.

    - -

     

    - -

     

    - -

     

    - - - - + + + + + +Pipe Creation + + + + + + + + + + + + +

    Pipe Construction

    + +

    To generate + a Pipe + in the Main Menu select New Entity - > Generation  - + > Extrusion along a path

    + +

     

    + +

    To create an extruded Pipe shape, + you need to define the Base Object (vertex, edge, wire, face or shell), which will be extruded and the Path Object (edge, + face or shell) along which the Base Object will be extruded.

    + +

    The + Result of the operation will be a + GEOM_Object (edge, face, solid or compsolid).

    + +

     

    + +

    TUI Command: + geompy.MakePipe(baseShape, pathShape) +

    + +

    Arguments: + Name + 1 shape (vertex, edge, wire, face or shell) serving as base object + + 1 shape (edge, face or shell) for definition of the path.

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

     

    + +

     

    + +

    Our TUI Scripts provide you with useful examples + of creation of Complex Geometric + Objects.

    + +

     

    + +

     

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/plane.htm b/doc/salome/gui/GEOM/plane.htm index 60c00d903..2bd45592a 100755 --- a/doc/salome/gui/GEOM/plane.htm +++ b/doc/salome/gui/GEOM/plane.htm @@ -1,206 +1,206 @@ - - - - - -Plane - - - - - - - - - - - - -

    Plane

    - -

    To create a Plane in the Main Menu select New - Entity - > Basic - > Plane

    - -

     

    - -

    There are three algorithms to create - a plane in the 3D space.

    - -

    The Result of - each operation will be a GEOM_Object - (face).

    - -

     

    - -

    Firstly, you can define a Plane - by a Point through which  the - plane passes, a Vector giving - a normal of the plane and a Size of the - Plane (size of a side of quadrangle face, representing the plane).

    - -

    TUI - Command: geompy.MakePlane(Point, - Vector, TrimSize)

    - -

    Arguments: Name - + 1 vertex + 1 vector  + - 1 value (to define the size of the plane).

    - -

    - -

     

    - -

    Secondly, you can define a Plane - by three Points through which -  the plane - passes and a Size of the Plane.

    - -

    TUI - Command: geompy.MakePlaneThreePnt(Point1, - Point2, Point3, TrimSize)

    - -

    Arguments: - Name + 3 vertices + 1 value (to - define the size of the plane).

    - -

     

    - -

    - -

     

    - -

    Finally, you can define a Plane - by another Plane or Local Coordinate System and a Size of the Plane.

    - -

    TUI - Command: geompy.MakePlaneFace(Face, TrimSize)

    - -

    Arguments: Name + 1 face + 1 value (to - define the size of the plane).

    - -

     

    - -

    - -

     

    - -

    Examples:

    - -

     

    - -

    Planes -                                                             A - Plane created on a Plane of another size

    - -

     

    - - ---- - - - - -
    -

    -

    -

     

    - -

     

    - -

    Our TUI Scripts provide you with useful examples - of creation of Basic - Geometric Objects.

    - -

     

    - - - - + + + + + +Plane + + + + + + + + + + + + +

    Plane

    + +

    To create a Plane in the Main Menu select New + Entity - > Basic - > Plane

    + +

     

    + +

    There are three algorithms to create + a plane in the 3D space.

    + +

    The Result of + each operation will be a GEOM_Object + (face).

    + +

     

    + +

    Firstly, you can define a Plane + by a Point through which  the + plane passes, a Vector giving + a normal of the plane and a Size of the + Plane (size of a side of quadrangle face, representing the plane).

    + +

    TUI + Command: geompy.MakePlane(Point, + Vector, TrimSize)

    + +

    Arguments: Name + + 1 vertex + 1 vector  + + 1 value (to define the size of the plane).

    + +

    + +

     

    + +

    Secondly, you can define a Plane + by three Points through which +  the plane + passes and a Size of the Plane.

    + +

    TUI + Command: geompy.MakePlaneThreePnt(Point1, + Point2, Point3, TrimSize)

    + +

    Arguments: + Name + 3 vertices + 1 value (to + define the size of the plane).

    + +

     

    + +

    + +

     

    + +

    Finally, you can define a Plane + by another Plane or Local Coordinate System and a Size of the Plane.

    + +

    TUI + Command: geompy.MakePlaneFace(Face, TrimSize)

    + +

    Arguments: Name + 1 face + 1 value (to + define the size of the plane).

    + +

     

    + +

    + +

     

    + +

    Examples:

    + +

     

    + +

    Planes +                                                             A + Plane created on a Plane of another size

    + +

     

    + + ++++ + + + + +
    +

    +

    +

     

    + +

     

    + +

    Our TUI Scripts provide you with useful examples + of creation of Basic + Geometric Objects.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/point.htm b/doc/salome/gui/GEOM/point.htm index 8207fb641..6400c2995 100755 --- a/doc/salome/gui/GEOM/point.htm +++ b/doc/salome/gui/GEOM/point.htm @@ -1,201 +1,201 @@ - - - - - -Point - - - - - - - - - - - - - -

    Point

    - -

    To create a Point in the Main Menu select New - Entity - > Basic - > Point

    - -

     

    - -

    There are three algorithms to create - a Point in the 3D space.

    - -

    Each - time the Result of the operation - will be a GEOM_Object (vertex).

    - -

     

    - -

    Firstly, - we can define a point by setting its X, Y and Z Coordinates. -

    - -

    TUI Command : -   geompy.MakeVertex(X, - Y, Z)

    - -

    Arguments: Name - (Vertex_n by default) + - X, Y and Z coordinates of the point.

    - -

     

    - -

    - -

     

    - -

    Secondly,  we - can define a point by a Reference - to another point and the shift of the coordinates of the new point regarding - the coordinates of the old one.

    - -

    TUI Command : -   geompy.MakeVertexWithRef(Reference, - X, Y, Z).

    - -

    Arguments: Name - + 1 reference point + 3 coordinates defining the position of this point - regarding the reference one.

    - -

     

    - -

    - -

     

    - -

    Finally, we can define a - point by an Edge and a Parameter -  indicating - its position on the Edge. For example, 0.5 means that the point is located - in the middle of the edge.

    - -

    TUI - Command :   geompy.MakeVertexOnCurve(Edge, - Parameter).

    - -

    Arguments: Name - + 1 edge  + - 1 Parameter defining the position of the point on the given edge.

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

    - -

     

    - -

    Our TUI Scripts - provide you with useful examples of creation of Basic - Geometric Objects.

    - - - - + + + + + +Point + + + + + + + + + + + + + +

    Point

    + +

    To create a Point in the Main Menu select New + Entity - > Basic - > Point

    + +

     

    + +

    There are three algorithms to create + a Point in the 3D space.

    + +

    Each + time the Result of the operation + will be a GEOM_Object (vertex).

    + +

     

    + +

    Firstly, + we can define a point by setting its X, Y and Z Coordinates. +

    + +

    TUI Command : +   geompy.MakeVertex(X, + Y, Z)

    + +

    Arguments: Name + (Vertex_n by default) + + X, Y and Z coordinates of the point.

    + +

     

    + +

    + +

     

    + +

    Secondly,  we + can define a point by a Reference + to another point and the shift of the coordinates of the new point regarding + the coordinates of the old one.

    + +

    TUI Command : +   geompy.MakeVertexWithRef(Reference, + X, Y, Z).

    + +

    Arguments: Name + + 1 reference point + 3 coordinates defining the position of this point + regarding the reference one.

    + +

     

    + +

    + +

     

    + +

    Finally, we can define a + point by an Edge and a Parameter +  indicating + its position on the Edge. For example, 0.5 means that the point is located + in the middle of the edge.

    + +

    TUI + Command :   geompy.MakeVertexOnCurve(Edge, + Parameter).

    + +

    Arguments: Name + + 1 edge  + + 1 Parameter defining the position of the point on the given edge.

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

    + +

     

    + +

    Our TUI Scripts + provide you with useful examples of creation of Basic + Geometric Objects.

    + + + + diff --git a/doc/salome/gui/GEOM/primitives.htm b/doc/salome/gui/GEOM/primitives.htm index 13f9f6577..3c1d4eb4e 100755 --- a/doc/salome/gui/GEOM/primitives.htm +++ b/doc/salome/gui/GEOM/primitives.htm @@ -1,379 +1,379 @@ - - - - - -Primitives - - - - - - - - - - - - -

    Primitives

    - -

    Creation of a Box

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create vertices

    - -

    p0 = geompy.MakeVertex(15, - 25, 35)

    - -

    p70 = geompy.MakeVertex(70, - 70, 70)

    - -

     

    - -

    # create boxes

    - -

    box1 = geompy.MakeBoxDXDYDZ(10, - 20, 30)

    - -

    box2 = geompy.MakeBox(10,20,30, - 15,25,35)

    - -

    box3 = geompy.MakeBoxTwoPnt(p0, - p70)

    - -

     

    - -

    # add objects in the study

    - -

    id_box1 = geompy.addToStudy(box1,"Box1")

    - -

    id_box2 = geompy.addToStudy(box2,"Box2")

    - -

    id_box3 = geompy.addToStudy(box3,"Box3")

    - -

     

    - -

    # display the boxes

    - -

    gg.createAndDisplayGO(id_box1)

    - -

    gg.setDisplayMode(id_box1,1)

    - -

    gg.createAndDisplayGO(id_box2)

    - -

    gg.setDisplayMode(id_box2,1)

    - -

    gg.createAndDisplayGO(id_box3)

    - -

    gg.setDisplayMode(id_box3,1) -

    - -

     

    - -

    Creation of a Cylinder

    - -

    import geompy

    - -

    import salome

    - -

     

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a vertex and a vector

    - -

    p1 = geompy.MakeVertex(25, - 35, 45)

    - -

    p2 = geompy.MakeVertex(70, - 70, 70)

    - -

    v = geompy.MakeVector(p1, - p2)

    - -

     

    - -

    # create cylinders

    - -

    height = 40

    - -

     

    - -

    radius1 = 15

    - -

    cylinder1 = geompy.MakeCylinder(p1, - v, radius1, height)

    - -

     

    - -

    radius2 = 30

    - -

    cylinder2 = geompy.MakeCylinderRH(radius2, - height)

    - -

     

    - -

    # add objects in the study

    - -

    id_cylinder1 = geompy.addToStudy(cylinder1,"Cylinder1")

    - -

    id_cylinder2 = geompy.addToStudy(cylinder2,"Cylinder2")

    - -

     

    - -

    # display the cylinders

    - -

    gg.createAndDisplayGO(id_cylinder1)

    - -

    gg.setDisplayMode(id_cylinder1,1)

    - -

    gg.createAndDisplayGO(id_cylinder2)

    - -

    gg.setDisplayMode(id_cylinder2,1) -

    - -

     

    - -

    Creation of a Sphere

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a vertex

    - -

    p = geompy.MakeVertex(55, - 45, 25)

    - -

     

    - -

    # create spheres

    - -

    radius1 = 20

    - -

    sphere1 = geompy.MakeSpherePntR(p, - radius1)

    - -

    radius2 = 15

    - -

    sphere2 = geompy.MakeSphere(0, - 0, 45, radius2)

    - -

    radius3 = 30

    - -

    sphere3 = geompy.MakeSphereR(radius3)

    - -

     

    - -

    # add objects in the study

    - -

    id_sphere1 = geompy.addToStudy(sphere1,"Sphere1")

    - -

    id_sphere2 = geompy.addToStudy(sphere2,"Sphere2")

    - -

    id_sphere3 = geompy.addToStudy(sphere3,"Sphere3")

    - -

     

    - -

    # display spheres

    - -

    gg.createAndDisplayGO(id_sphere1)

    - -

    gg.setDisplayMode(id_sphere1,1)

    - -

    gg.createAndDisplayGO(id_sphere2)

    - -

    gg.setDisplayMode(id_sphere2,1)

    - -

    gg.createAndDisplayGO(id_sphere3)

    - -

    gg.setDisplayMode(id_sphere3,1) -

    - -

     

    - -

    Creation of a Torus

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a vertex and a vector

    - -

    p1 = geompy.MakeVertex(35, - 40, 45)

    - -

    p2 = geompy.MakeVertex(35, - 45, 70)

    - -

    v = geompy.MakeVector(p1, - p2)

    - -

     

    - -

    # create toruses

    - -

    torus1 = geompy.MakeTorus(p1, - v, 20, 10)

    - -

    torus2 = geompy.MakeTorusRR(30, - 15)

    - -

     

    - -

    # add objects in the study

    - -

    id_torus1 = geompy.addToStudy(torus1,"Torus1")

    - -

    id_torus2 = geompy.addToStudy(torus2,"Torus2")

    - -

     

    - -

    # display toruses

    - -

    gg.createAndDisplayGO(id_torus1)

    - -

    gg.setDisplayMode(id_torus1,1)

    - -

    gg.createAndDisplayGO(id_torus2)

    - -

    gg.setDisplayMode(id_torus2,1) -

    - -

    Creation of a Cone

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a vertex and a vector

    - -

    p1 = geompy.MakeVertex(35, - 35, 0)

    - -

    p2 = geompy.MakeVertex(35, - 35, 70)

    - -

    v = geompy.MakeVector(p1, - p2)

    - -

     

    - -

    # create cones

    - -

    cone1 = geompy.MakeCone(p1, - v, 17, 1, 20)

    - -

    cone2 = geompy.MakeConeR1R2H(30, - 10, 30)

    - -

     

    - -

    # add objects in the study

    - -

    id_cone1 = geompy.addToStudy(cone1,"Cone1")

    - -

    id_cone2 = geompy.addToStudy(cone2,"Cone2")

    - -

     

    - -

    # display cones

    - -

    gg.createAndDisplayGO(id_cone1)

    - -

    gg.setDisplayMode(id_cone1,1)

    - -

    gg.createAndDisplayGO(id_cone2)

    - -

    gg.setDisplayMode(id_cone2,1) -

    - - - - + + + + + +Primitives + + + + + + + + + + + + +

    Primitives

    + +

    Creation of a Box

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create vertices

    + +

    p0 = geompy.MakeVertex(15, + 25, 35)

    + +

    p70 = geompy.MakeVertex(70, + 70, 70)

    + +

     

    + +

    # create boxes

    + +

    box1 = geompy.MakeBoxDXDYDZ(10, + 20, 30)

    + +

    box2 = geompy.MakeBox(10,20,30, + 15,25,35)

    + +

    box3 = geompy.MakeBoxTwoPnt(p0, + p70)

    + +

     

    + +

    # add objects in the study

    + +

    id_box1 = geompy.addToStudy(box1,"Box1")

    + +

    id_box2 = geompy.addToStudy(box2,"Box2")

    + +

    id_box3 = geompy.addToStudy(box3,"Box3")

    + +

     

    + +

    # display the boxes

    + +

    gg.createAndDisplayGO(id_box1)

    + +

    gg.setDisplayMode(id_box1,1)

    + +

    gg.createAndDisplayGO(id_box2)

    + +

    gg.setDisplayMode(id_box2,1)

    + +

    gg.createAndDisplayGO(id_box3)

    + +

    gg.setDisplayMode(id_box3,1) +

    + +

     

    + +

    Creation of a Cylinder

    + +

    import geompy

    + +

    import salome

    + +

     

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a vertex and a vector

    + +

    p1 = geompy.MakeVertex(25, + 35, 45)

    + +

    p2 = geompy.MakeVertex(70, + 70, 70)

    + +

    v = geompy.MakeVector(p1, + p2)

    + +

     

    + +

    # create cylinders

    + +

    height = 40

    + +

     

    + +

    radius1 = 15

    + +

    cylinder1 = geompy.MakeCylinder(p1, + v, radius1, height)

    + +

     

    + +

    radius2 = 30

    + +

    cylinder2 = geompy.MakeCylinderRH(radius2, + height)

    + +

     

    + +

    # add objects in the study

    + +

    id_cylinder1 = geompy.addToStudy(cylinder1,"Cylinder1")

    + +

    id_cylinder2 = geompy.addToStudy(cylinder2,"Cylinder2")

    + +

     

    + +

    # display the cylinders

    + +

    gg.createAndDisplayGO(id_cylinder1)

    + +

    gg.setDisplayMode(id_cylinder1,1)

    + +

    gg.createAndDisplayGO(id_cylinder2)

    + +

    gg.setDisplayMode(id_cylinder2,1) +

    + +

     

    + +

    Creation of a Sphere

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a vertex

    + +

    p = geompy.MakeVertex(55, + 45, 25)

    + +

     

    + +

    # create spheres

    + +

    radius1 = 20

    + +

    sphere1 = geompy.MakeSpherePntR(p, + radius1)

    + +

    radius2 = 15

    + +

    sphere2 = geompy.MakeSphere(0, + 0, 45, radius2)

    + +

    radius3 = 30

    + +

    sphere3 = geompy.MakeSphereR(radius3)

    + +

     

    + +

    # add objects in the study

    + +

    id_sphere1 = geompy.addToStudy(sphere1,"Sphere1")

    + +

    id_sphere2 = geompy.addToStudy(sphere2,"Sphere2")

    + +

    id_sphere3 = geompy.addToStudy(sphere3,"Sphere3")

    + +

     

    + +

    # display spheres

    + +

    gg.createAndDisplayGO(id_sphere1)

    + +

    gg.setDisplayMode(id_sphere1,1)

    + +

    gg.createAndDisplayGO(id_sphere2)

    + +

    gg.setDisplayMode(id_sphere2,1)

    + +

    gg.createAndDisplayGO(id_sphere3)

    + +

    gg.setDisplayMode(id_sphere3,1) +

    + +

     

    + +

    Creation of a Torus

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a vertex and a vector

    + +

    p1 = geompy.MakeVertex(35, + 40, 45)

    + +

    p2 = geompy.MakeVertex(35, + 45, 70)

    + +

    v = geompy.MakeVector(p1, + p2)

    + +

     

    + +

    # create toruses

    + +

    torus1 = geompy.MakeTorus(p1, + v, 20, 10)

    + +

    torus2 = geompy.MakeTorusRR(30, + 15)

    + +

     

    + +

    # add objects in the study

    + +

    id_torus1 = geompy.addToStudy(torus1,"Torus1")

    + +

    id_torus2 = geompy.addToStudy(torus2,"Torus2")

    + +

     

    + +

    # display toruses

    + +

    gg.createAndDisplayGO(id_torus1)

    + +

    gg.setDisplayMode(id_torus1,1)

    + +

    gg.createAndDisplayGO(id_torus2)

    + +

    gg.setDisplayMode(id_torus2,1) +

    + +

    Creation of a Cone

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a vertex and a vector

    + +

    p1 = geompy.MakeVertex(35, + 35, 0)

    + +

    p2 = geompy.MakeVertex(35, + 35, 70)

    + +

    v = geompy.MakeVector(p1, + p2)

    + +

     

    + +

    # create cones

    + +

    cone1 = geompy.MakeCone(p1, + v, 17, 1, 20)

    + +

    cone2 = geompy.MakeConeR1R2H(30, + 10, 30)

    + +

     

    + +

    # add objects in the study

    + +

    id_cone1 = geompy.addToStudy(cone1,"Cone1")

    + +

    id_cone2 = geompy.addToStudy(cone2,"Cone2")

    + +

     

    + +

    # display cones

    + +

    gg.createAndDisplayGO(id_cone1)

    + +

    gg.setDisplayMode(id_cone1,1)

    + +

    gg.createAndDisplayGO(id_cone2)

    + +

    gg.setDisplayMode(id_cone2,1) +

    + + + + diff --git a/doc/salome/gui/GEOM/propagate.htm b/doc/salome/gui/GEOM/propagate.htm index 06263793a..fc07f3be3 100755 --- a/doc/salome/gui/GEOM/propagate.htm +++ b/doc/salome/gui/GEOM/propagate.htm @@ -1,154 +1,154 @@ - - - - - -Propagate - - - - - - - - - - - - - -

    Propagate

    - -

    To produce - a Propagate operation in the Main - Menu select Operations - > Blocks - - > Propagate

    - -

     

    - -

    This operation breaks a multitude of edges - of a shape into groups (builds all possible propagation groups).

    - -

    The - Result will be a List of - GEOM_Objects. Each Geom Object will contain a group of edges.

    - -

     

    - -

    TUI Command: - geompy.Propagate(Shape), - where Shape is a shape to build propagation groups on.

    - -

    Arguments: 1 Shape.

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

         

    - -

     

    - -

       Our TUI - Scripts provide you with useful examples - of the use of Blocks - Operations.

    - -

     

    - - - - + + + + + +Propagate + + + + + + + + + + + + + +

    Propagate

    + +

    To produce + a Propagate operation in the Main + Menu select Operations - > Blocks + - > Propagate

    + +

     

    + +

    This operation breaks a multitude of edges + of a shape into groups (builds all possible propagation groups).

    + +

    The + Result will be a List of + GEOM_Objects. Each Geom Object will contain a group of edges.

    + +

     

    + +

    TUI Command: + geompy.Propagate(Shape), + where Shape is a shape to build propagation groups on.

    + +

    Arguments: 1 Shape.

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

         

    + +

     

    + +

       Our TUI + Scripts provide you with useful examples + of the use of Blocks + Operations.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/repairing_operations.htm b/doc/salome/gui/GEOM/repairing_operations.htm index 9f9bfafdc..60a5c824b 100755 --- a/doc/salome/gui/GEOM/repairing_operations.htm +++ b/doc/salome/gui/GEOM/repairing_operations.htm @@ -1,1058 +1,1058 @@ - - - - - -Repairing Operations - - - - - - - - - - - - -

    Repairing Operations

    - -

    Shape Processing

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create vertices, an edge, an arc, a wire, a face and a prism

    - -

    p1 = geompy.MakeVertex(0,0,0)

    - -

    p2 = geompy.MakeVertex(200,0,0)

    - -

    p3 = geompy.MakeVertex(100,150,0)

    - -

    edge = geompy.MakeEdge(p1,p2)

    - -

    arc  = - geompy.MakeArc(p1,p3,p2)

    - -

    wire = geompy.MakeWire([edge,arc])

    - -

    face = geompy.MakeFace(wire, - 1)

    - -

    theShape = geompy.MakePrismVecH(face, - edge, 130)

    - -

     

    - -

    # check the shape at the beginning

    - -

    print "Before - ProcessShape:"

    - -

    isValid = geompy.CheckShape(theShape)

    - -

    if isValid == 0:

    - -

        print - "The shape is not valid"

    - -

    else:

    - -

        print - "The shape seems to be valid"

    - -

     

    - -

    # process the Shape

    - -

    Operators = ["FixShape"]

    - -

    Parameters = ["FixShape.Tolerance3d"]

    - -

    Values = ["1e-7"]

    - -

    PS = geompy.ProcessShape(theShape, - Operators, Parameters, Values)

    - -

     

    - -

    # check the shape at the end

    - -

    print "After - ProcessShape:"

    - -

    isValid = geompy.CheckShape(PS)

    - -

    if isValid == 0:

    - -

        print - "The shape is not valid"

    - -

        raise - RuntimeError, "It seems, that the ProcessShape() has failed"

    - -

    else:

    - -

        print - "The shape seems to be valid"

    - -

     

    - -

    # add in the study and display

    - -

    Id_Shape = geompy.addToStudy(theShape, - "Invalid Shape")

    - -

    Id_PS    = - geompy.addToStudy(PS, "Processed Shape")

    - -

    gg.createAndDisplayGO(Id_Shape)

    - -

    gg.setDisplayMode(Id_Shape,1)

    - -

    gg.createAndDisplayGO(Id_PS)

    - -

    gg.setDisplayMode(Id_PS,1) -

    - -

     

    - -

    Suppress Faces

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a box

    - -

    box = geompy.MakeBoxDXDYDZ(200, - 200, 200)

    - -

     

    - -

    # The list of IDs (IDList) for suppress faces

    - -

    sup_faces = []

    - -

    sup_faces = geompy.SubShapeAllSorted(box, - geompy.ShapeType["FACE"])

    - -

     

    - -

    # get indices of the sub-shape

    - -

    f1_id = geompy.GetSubShapeID(box, - sup_faces[3])

    - -

     

    - -

    # remove faces from the given object (shape)

    - -

    result = geompy.SuppressFaces(box, - [f1_id])

    - -

     

    - -

    # add objects in the study

    - -

    id_box = geompy.addToStudy(box, - "Box")

    - -

    id_result = geompy.addToStudy(result, - "Result")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_box)

    - -

    gg.setDisplayMode(id_box,1)

    - -

    gg.createAndDisplayGO(id_result)

    - -

    gg.setDisplayMode(id_result,1) -

    - -

     

    - -

    Close Contour

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create vertices and vectors

    - -

    p0  = - geompy.MakeVertex(  0., -   0., -   0.)

    - -

    px  = - geompy.MakeVertex(100.,   0., -   0.)

    - -

    py  = - geompy.MakeVertex(  0., - 100.,   0.)

    - -

    py1 = geompy.MakeVertex( -  0., 140., -   0.)

    - -

    pz  = - geompy.MakeVertex(  0., -   0., - 100.)

    - -

    vxy = geompy.MakeVector(px, - py)

    - -

      

    - -

    # create an arc

    - -

    arc = geompy.MakeArc(py1, - pz, px)

    - -

     

    - -

    # create a wire

    - -

    wire = geompy.MakeWire([vxy, - arc])

    - -

     

    - -

    # close an open wire by creation of an edge between ends

    - -

    wire_close = geompy.CloseContour(wire, - [1], 0)

    - -

     

    - -

    # add objects in the study

    - -

    id_wire = geompy.addToStudy(wire, - "Wire")

    - -

    id_wire_close = geompy.addToStudy(wire_close, - "Wire close")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_wire)

    - -

    gg.createAndDisplayGO(id_wire_close) -

    - -

     

    - -

    Suppress Internal Wires

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a vertex and a vector

    - -

    p1 = geompy.MakeVertex(55, - 65, 50)

    - -

    p2 = geompy.MakeVertex(55, -  0, 50)

    - -

    v = geompy.MakeVector(p1, - p2)

    - -

     

    - -

    # create a cylinder

    - -

    height = 100

    - -

    radius1 = 40

    - -

    cylinder = geompy.MakeCylinder(p1, - v, radius1, height)

    - -

     

    - -

    # create a box

    - -

    box = geompy.MakeBoxDXDYDZ(100, - 100, 100)

    - -

     

    - -

    # make a cut

    - -

    cut = geompy.MakeCut(box, - cylinder)

    - -

     

    - -

    # suppress all internal wires

    - -

    result = geompy.SuppressInternalWires(cut, - [])

    - -

     

    - -

    # add objects in the study

    - -

    id_cut = geompy.addToStudy(cut, - "Cut")

    - -

    id_result = geompy.addToStudy(result, - "Result")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_cut)

    - -

    gg.setDisplayMode(id_cut,1)

    - -

    gg.createAndDisplayGO(id_result)

    - -

    gg.setDisplayMode(id_result,1) -

    - -

     

    - -

    Suppress Holes

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a vertex and a vector

    - -

    p1 = geompy.MakeVertex(35, - 35, 0)

    - -

    p2 = geompy.MakeVertex(35, - 35, 50)

    - -

    v = geompy.MakeVector(p1, - p2)

    - -

     

    - -

    # create a cylinder

    - -

    height = 20

    - -

    radius1 = 20

    - -

    cylinder = geompy.MakeCylinder(p1, - v, radius1, height)

    - -

     

    - -

    # create a cone

    - -

    cone = geompy.MakeCone(p1, - v, 70, 0, 80)

    - -

     

    - -

    # make a cut

    - -

    cut = geompy.MakeCut(cone, - cylinder)

    - -

     

    - -

    # get faces as sub-shapes

    - -

    faces = []

    - -

    faces = geompy.SubShapeAllSorted(cut, - geompy.ShapeType["FACE"])

    - -

    f_2 = geompy.GetSubShapeID(cut, - faces[2])

    - -

     

    - -

    # remove one face from the shape

    - -

    cut_without_f_2 = - geompy.SuppressFaces(cut, [f_2])

    - -

     

    - -

    # get wires as sub-shapes

    - -

    wires = []

    - -

    wires = geompy.SubShapeAllSorted(cut_without_f_2, - geompy.ShapeType["WIRE"])

    - -

    w_0 = geompy.GetSubShapeID(cut_without_f_2, - wires[0])

    - -

     

    - -

    # suppress the selected wire

    - -

    result = geompy.SuppressHoles(cut_without_f_2, - [w_0])

    - -

     

    - -

    # add objects in the study

    - -

    id_cut = geompy.addToStudy(cut, - "Cut")

    - -

    id_cut_without_f_2 - = geompy.addToStudy(cut_without_f_2, "Cut without f_2")

    - -

    id_result = geompy.addToStudy(result, - "Result")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_cut)

    - -

    gg.setDisplayMode(id_cut,1)

    - -

    gg.createAndDisplayGO(id_cut_without_f_2)

    - -

    gg.setDisplayMode(id_cut_without_f_2,1)

    - -

    gg.createAndDisplayGO(id_result)

    - -

    gg.setDisplayMode(id_result,1) -

    - -

     

    - -

    Sewing

    - -

    import geompy

    - -

    import salome

    - -

    import math

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create base points

    - -

    px = geompy.MakeVertex(100., - 0., 0.)

    - -

    py = geompy.MakeVertex(0., - 100., 0.)

    - -

    pz = geompy.MakeVertex(0., - 0., 100.)

    - -

     

    - -

    # create base geometry 2D & 3D

    - -

    vector = geompy.MakeVector(px, - py)

    - -

    arc = geompy.MakeArc(py, - pz, px)

    - -

     

    - -

    # create base objects

    - -

    angle = 45. * math.pi - / 180

    - -

    WantPlanarFace = 1 - #True

    - -

    wire = geompy.MakeWire([vector, - arc])

    - -

    face = geompy.MakeFace(wire, - WantPlanarFace)

    - -

    face_rot = geompy.MakeRotation(face, - vector, angle)

    - -

     

    - -

    # make sewing

    - -

    precision = 0.00001

    - -

    sewing = geompy.MakeSewing([face, - face_rot], precision)

    - -

     

    - -

    # add objects in the study

    - -

    id_face = geompy.addToStudy(face, - "Face")

    - -

    id_face_rot = geompy.addToStudy(face_rot, - "Face rotation")

    - -

    id_sewing = geompy.addToStudy(sewing, - "Sewing")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_face)

    - -

    gg.setDisplayMode(id_face,1)

    - -

    gg.createAndDisplayGO(id_face_rot)

    - -

    gg.setDisplayMode(id_face_rot,1)

    - -

    gg.createAndDisplayGO(id_sewing)

    - -

    gg.setDisplayMode(id_sewing,1) -

    - -

     

    - -

    Glue Faces

    - -

    import - geompy

    - -

    import salome

    - -

     

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create boxes

    - -

    box1 = geompy.MakeBox(0,0,0,100,50,100)

    - -

    box2 = geompy.MakeBox(100,0,0,250,50,100)

    - -

     

    - -

    # make compound

    - -

    compound = geompy.MakeCompound([box1, - box2])

    - -

     

    - -

    # glue compound's faces

    - -

    tolerance = 1e-5

    - -

    glue = geompy.MakeGlueFaces(compound, - tolerance)

    - -

     

    - -

    # add objects in study

    - -

    id_box1 = geompy.addToStudy(box1, - "Box1")

    - -

    id_box2 = geompy.addToStudy(box2, - "Box2")

    - -

    id_compound = geompy.addToStudy(compound, - "Compound")

    - -

    id_glue = geompy.addToStudy(glue, - "Glue faces")

    - -

     

    - -

    # display results

    - -

    gg.createAndDisplayGO(id_box1)

    - -

    gg.setDisplayMode(id_box1,1)

    - -

    gg.createAndDisplayGO(id_box2)

    - -

    gg.setDisplayMode(id_box2,1)

    - -

    gg.createAndDisplayGO(id_compound)

    - -

    gg.setDisplayMode(id_compound,1)

    - -

    gg.createAndDisplayGO(id_glue)

    - -

    gg.setDisplayMode(id_glue,1) -

    - -

     

    - -

    Add Point on Edge

    - -

    import - geompy

    - -

    import salome

    - -

     

    - -

    # create vertices

    - -

    p1 = geompy.MakeVertex(0,0,50)

    - -

    p2 = geompy.MakeVertex(60,0,50)

    - -

     

    - -

    # make an edge

    - -

    edge = geompy.MakeEdge(p1, - p2) #geompy.GetSubShape(box, edge_ind)

    - -

     

    - -

    # divide an edge

    - -

    divide = geompy.DivideEdge(edge, - -1, 0.5, 0)

    - -

     

    - -

    # add objects in the - study

    - -

    id_edge = geompy.addToStudy(edge, - "Edge")

    - -

    edge_points = geompy.SubShapeAllSorted(edge, - geompy.ShapeType["VERTEX"])

    - -

    for point in edge_points:

    - -

        geompy.addToStudyInFather(edge, - point, "Edge's point")

    - -

        

    - -

    id_divide = geompy.addToStudy(divide, - "Divided edge")

    - -

    edge_points = geompy.SubShapeAllSorted(divide, - geompy.ShapeType["VERTEX"])

    - -

    for point in edge_points:

    - -

        geompy.addToStudyInFather(divide, - point, "Edge's point after divide")

    - -

      

    - -

    salome.sg.updateObjBrowser(1) -

    - -

     

    - -

    Check Free Boundaries

    - -

    import os

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create boxes

    - -

    box1 = geompy.MakeBox(0,0,0,100,50,100)

    - -

    box2 = geompy.MakeBox(100,0,0,250,50,100)

    - -

     

    - -

    # make a compound

    - -

    compound = geompy.MakeCompound([box1, - box2])

    - -

     

    - -

    # import from *.brep

    - -

    ImportBREP = geompy.ImportBREP("os.getenv("DATA_DIR")+"/Shapes/Brep/flight_solid.brep")

    - -

     

    - -

    # get a face

    - -

    faces = geompy.SubShapeAllSorted(ImportBREP, - geompy.ShapeType["FACE"])

    - -

     

    - -

    # get the free boundary - for face 32

    - -

    Res = geompy.GetFreeBoundary(faces[32])

    - -

    isSuccess   = - Res[0]

    - -

    ClosedWires = Res[1]

    - -

    OpenWires   = - Res[2]

    - -

      

    - -

    if - isSuccess == 1 :

    - -

        print - "Checking free boudaries is OK."

    - -

    else :

    - -

        print - "Checking free boudaries is KO!"

    - -

    print "len(ClosedWires) - = ", len(ClosedWires)

    - -

    i = 0

    - -

    for wire in ClosedWires - :

    - -

        wire_name - = "Face 32 -> Close wires : WIRE %d"%(i+1)

    - -

        geompy.addToStudy(ClosedWires[i], - wire_name)

    - -

        if - i < len(ClosedWires) :

    - -

            i - = i+ 1

    - -

    print "len(OpenWires) - = ", len(OpenWires)

    - -

    i = 0

    - -

    for wire in OpenWires - :

    - -

        wire_name - = "Face 32 -> Open wires : WIRE %d"%(i+1)

    - -

        geompy.addToStudy(OpenWires[i], - wire_name)

    - -

        if - i < len(OpenWires) :

    - -

            i - = i+ 1

    - -

     

    - -

    # get the free boundary - for face 41

    - -

    Res = geompy.GetFreeBoundary(faces[41])

    - -

    isSuccess   = - Res[0]

    - -

    ClosedWires = Res[1]

    - -

    OpenWires   = - Res[2]

    - -

      

    - -

    if isSuccess == 1 - :

    - -

        print - "Checking free boudaries is OK."

    - -

    else :

    - -

        print - "Checking free boudaries is KO!"

    - -

    print "len(ClosedWires) - = ", len(ClosedWires)

    - -

    i = 0

    - -

    for wire in ClosedWires - :

    - -

        wire_name - = "Face 41 -> Close wires : WIRE %d"%(i+1)

    - -

        geompy.addToStudy(ClosedWires[i], - wire_name)

    - -

        if - i < len(ClosedWires) :

    - -

            i - = i+ 1

    - -

    print "len(OpenWires) - = ", len(OpenWires)

    - -

    i = 0

    - -

    for wire in OpenWires - :

    - -

        wire_name - = "Face 41 -> Open wires : WIRE %d"%(i+1)

    - -

        geompy.addToStudy(OpenWires[i], - wire_name)

    - -

        if - i < len(OpenWires) :

    - -

            i - = i+ 1

    - -

            

    - -

    # add the imported object - to the study

    - -

    id_ImportBREP = geompy.addToStudy(ImportBREP, - "ImportBREP")

    - -

    salome.sg.updateObjBrowser(1) -

    - -

     

    - -

    Check Free Faces

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a vertex and a vector

    - -

    p1 = geompy.MakeVertex(35, - 35, 0)

    - -

    p2 = geompy.MakeVertex(35, - 35, 50)

    - -

    v = geompy.MakeVector(p1, - p2)

    - -

     

    - -

    # create a cylinder

    - -

    cylinder = geompy.MakeCone(p1, - v, 30, 20, 20)

    - -

     

    - -

    # create a cone

    - -

    cone = geompy.MakeCone(p1, - v, 70, 40, 60)

    - -

     

    - -

    # make cut

    - -

    cut = geompy.MakeCut(cone, - cylinder)

    - -

     

    - -

    # get faces as sub-shapes

    - -

    faces = []

    - -

    faces = geompy.SubShapeAllSorted(cut, - geompy.ShapeType["FACE"])

    - -

    f_2 = geompy.GetSubShapeID(cut, - faces[0])

    - -

     

    - -

    # remove one face from the shape

    - -

    cut_without_f_2 = - geompy.SuppressFaces(cut, [f_2])

    - -

     

    - -

    # suppress the specified wire

    - -

    result = geompy.GetFreeFacesIDs(cut_without_f_2)

    - -

    print "A number - of free faces is ", len(result)

    - -

     

    - -

    # add objects in the study

    - -

    all_faces = geompy.SubShapeAllSorted(cut_without_f_2, - geompy.ShapeType["FACE"])

    - -

    for face in all_faces - :

    - -

        sub_shape_id - = geompy.GetSubShapeID(cut_without_f_2, face)

    - -

        if - result.count(sub_shape_id) > 0 :

    - -

            face_name - = "Free face %d"%(sub_shape_id)

    - -

            geompy.addToStudy(face, - face_name)

    - -

     

    - -

    # in this example all faces from cut_without_f_2 are free

    - -

    id_cut_without_f_2 - = geompy.addToStudy(cut_without_f_2, "Cut without f_2")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_cut_without_f_2)

    - -

    gg.setDisplayMode(id_cut_without_f_2,1) -

    - - - - + + + + + +Repairing Operations + + + + + + + + + + + + +

    Repairing Operations

    + +

    Shape Processing

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create vertices, an edge, an arc, a wire, a face and a prism

    + +

    p1 = geompy.MakeVertex(0,0,0)

    + +

    p2 = geompy.MakeVertex(200,0,0)

    + +

    p3 = geompy.MakeVertex(100,150,0)

    + +

    edge = geompy.MakeEdge(p1,p2)

    + +

    arc  = + geompy.MakeArc(p1,p3,p2)

    + +

    wire = geompy.MakeWire([edge,arc])

    + +

    face = geompy.MakeFace(wire, + 1)

    + +

    theShape = geompy.MakePrismVecH(face, + edge, 130)

    + +

     

    + +

    # check the shape at the beginning

    + +

    print "Before + ProcessShape:"

    + +

    isValid = geompy.CheckShape(theShape)

    + +

    if isValid == 0:

    + +

        print + "The shape is not valid"

    + +

    else:

    + +

        print + "The shape seems to be valid"

    + +

     

    + +

    # process the Shape

    + +

    Operators = ["FixShape"]

    + +

    Parameters = ["FixShape.Tolerance3d"]

    + +

    Values = ["1e-7"]

    + +

    PS = geompy.ProcessShape(theShape, + Operators, Parameters, Values)

    + +

     

    + +

    # check the shape at the end

    + +

    print "After + ProcessShape:"

    + +

    isValid = geompy.CheckShape(PS)

    + +

    if isValid == 0:

    + +

        print + "The shape is not valid"

    + +

        raise + RuntimeError, "It seems, that the ProcessShape() has failed"

    + +

    else:

    + +

        print + "The shape seems to be valid"

    + +

     

    + +

    # add in the study and display

    + +

    Id_Shape = geompy.addToStudy(theShape, + "Invalid Shape")

    + +

    Id_PS    = + geompy.addToStudy(PS, "Processed Shape")

    + +

    gg.createAndDisplayGO(Id_Shape)

    + +

    gg.setDisplayMode(Id_Shape,1)

    + +

    gg.createAndDisplayGO(Id_PS)

    + +

    gg.setDisplayMode(Id_PS,1) +

    + +

     

    + +

    Suppress Faces

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a box

    + +

    box = geompy.MakeBoxDXDYDZ(200, + 200, 200)

    + +

     

    + +

    # The list of IDs (IDList) for suppress faces

    + +

    sup_faces = []

    + +

    sup_faces = geompy.SubShapeAllSorted(box, + geompy.ShapeType["FACE"])

    + +

     

    + +

    # get indices of the sub-shape

    + +

    f1_id = geompy.GetSubShapeID(box, + sup_faces[3])

    + +

     

    + +

    # remove faces from the given object (shape)

    + +

    result = geompy.SuppressFaces(box, + [f1_id])

    + +

     

    + +

    # add objects in the study

    + +

    id_box = geompy.addToStudy(box, + "Box")

    + +

    id_result = geompy.addToStudy(result, + "Result")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_box)

    + +

    gg.setDisplayMode(id_box,1)

    + +

    gg.createAndDisplayGO(id_result)

    + +

    gg.setDisplayMode(id_result,1) +

    + +

     

    + +

    Close Contour

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create vertices and vectors

    + +

    p0  = + geompy.MakeVertex(  0., +   0., +   0.)

    + +

    px  = + geompy.MakeVertex(100.,   0., +   0.)

    + +

    py  = + geompy.MakeVertex(  0., + 100.,   0.)

    + +

    py1 = geompy.MakeVertex( +  0., 140., +   0.)

    + +

    pz  = + geompy.MakeVertex(  0., +   0., + 100.)

    + +

    vxy = geompy.MakeVector(px, + py)

    + +

      

    + +

    # create an arc

    + +

    arc = geompy.MakeArc(py1, + pz, px)

    + +

     

    + +

    # create a wire

    + +

    wire = geompy.MakeWire([vxy, + arc])

    + +

     

    + +

    # close an open wire by creation of an edge between ends

    + +

    wire_close = geompy.CloseContour(wire, + [1], 0)

    + +

     

    + +

    # add objects in the study

    + +

    id_wire = geompy.addToStudy(wire, + "Wire")

    + +

    id_wire_close = geompy.addToStudy(wire_close, + "Wire close")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_wire)

    + +

    gg.createAndDisplayGO(id_wire_close) +

    + +

     

    + +

    Suppress Internal Wires

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a vertex and a vector

    + +

    p1 = geompy.MakeVertex(55, + 65, 50)

    + +

    p2 = geompy.MakeVertex(55, +  0, 50)

    + +

    v = geompy.MakeVector(p1, + p2)

    + +

     

    + +

    # create a cylinder

    + +

    height = 100

    + +

    radius1 = 40

    + +

    cylinder = geompy.MakeCylinder(p1, + v, radius1, height)

    + +

     

    + +

    # create a box

    + +

    box = geompy.MakeBoxDXDYDZ(100, + 100, 100)

    + +

     

    + +

    # make a cut

    + +

    cut = geompy.MakeCut(box, + cylinder)

    + +

     

    + +

    # suppress all internal wires

    + +

    result = geompy.SuppressInternalWires(cut, + [])

    + +

     

    + +

    # add objects in the study

    + +

    id_cut = geompy.addToStudy(cut, + "Cut")

    + +

    id_result = geompy.addToStudy(result, + "Result")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_cut)

    + +

    gg.setDisplayMode(id_cut,1)

    + +

    gg.createAndDisplayGO(id_result)

    + +

    gg.setDisplayMode(id_result,1) +

    + +

     

    + +

    Suppress Holes

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a vertex and a vector

    + +

    p1 = geompy.MakeVertex(35, + 35, 0)

    + +

    p2 = geompy.MakeVertex(35, + 35, 50)

    + +

    v = geompy.MakeVector(p1, + p2)

    + +

     

    + +

    # create a cylinder

    + +

    height = 20

    + +

    radius1 = 20

    + +

    cylinder = geompy.MakeCylinder(p1, + v, radius1, height)

    + +

     

    + +

    # create a cone

    + +

    cone = geompy.MakeCone(p1, + v, 70, 0, 80)

    + +

     

    + +

    # make a cut

    + +

    cut = geompy.MakeCut(cone, + cylinder)

    + +

     

    + +

    # get faces as sub-shapes

    + +

    faces = []

    + +

    faces = geompy.SubShapeAllSorted(cut, + geompy.ShapeType["FACE"])

    + +

    f_2 = geompy.GetSubShapeID(cut, + faces[2])

    + +

     

    + +

    # remove one face from the shape

    + +

    cut_without_f_2 = + geompy.SuppressFaces(cut, [f_2])

    + +

     

    + +

    # get wires as sub-shapes

    + +

    wires = []

    + +

    wires = geompy.SubShapeAllSorted(cut_without_f_2, + geompy.ShapeType["WIRE"])

    + +

    w_0 = geompy.GetSubShapeID(cut_without_f_2, + wires[0])

    + +

     

    + +

    # suppress the selected wire

    + +

    result = geompy.SuppressHoles(cut_without_f_2, + [w_0])

    + +

     

    + +

    # add objects in the study

    + +

    id_cut = geompy.addToStudy(cut, + "Cut")

    + +

    id_cut_without_f_2 + = geompy.addToStudy(cut_without_f_2, "Cut without f_2")

    + +

    id_result = geompy.addToStudy(result, + "Result")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_cut)

    + +

    gg.setDisplayMode(id_cut,1)

    + +

    gg.createAndDisplayGO(id_cut_without_f_2)

    + +

    gg.setDisplayMode(id_cut_without_f_2,1)

    + +

    gg.createAndDisplayGO(id_result)

    + +

    gg.setDisplayMode(id_result,1) +

    + +

     

    + +

    Sewing

    + +

    import geompy

    + +

    import salome

    + +

    import math

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create base points

    + +

    px = geompy.MakeVertex(100., + 0., 0.)

    + +

    py = geompy.MakeVertex(0., + 100., 0.)

    + +

    pz = geompy.MakeVertex(0., + 0., 100.)

    + +

     

    + +

    # create base geometry 2D & 3D

    + +

    vector = geompy.MakeVector(px, + py)

    + +

    arc = geompy.MakeArc(py, + pz, px)

    + +

     

    + +

    # create base objects

    + +

    angle = 45. * math.pi + / 180

    + +

    WantPlanarFace = 1 + #True

    + +

    wire = geompy.MakeWire([vector, + arc])

    + +

    face = geompy.MakeFace(wire, + WantPlanarFace)

    + +

    face_rot = geompy.MakeRotation(face, + vector, angle)

    + +

     

    + +

    # make sewing

    + +

    precision = 0.00001

    + +

    sewing = geompy.MakeSewing([face, + face_rot], precision)

    + +

     

    + +

    # add objects in the study

    + +

    id_face = geompy.addToStudy(face, + "Face")

    + +

    id_face_rot = geompy.addToStudy(face_rot, + "Face rotation")

    + +

    id_sewing = geompy.addToStudy(sewing, + "Sewing")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_face)

    + +

    gg.setDisplayMode(id_face,1)

    + +

    gg.createAndDisplayGO(id_face_rot)

    + +

    gg.setDisplayMode(id_face_rot,1)

    + +

    gg.createAndDisplayGO(id_sewing)

    + +

    gg.setDisplayMode(id_sewing,1) +

    + +

     

    + +

    Glue Faces

    + +

    import + geompy

    + +

    import salome

    + +

     

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create boxes

    + +

    box1 = geompy.MakeBox(0,0,0,100,50,100)

    + +

    box2 = geompy.MakeBox(100,0,0,250,50,100)

    + +

     

    + +

    # make compound

    + +

    compound = geompy.MakeCompound([box1, + box2])

    + +

     

    + +

    # glue compound's faces

    + +

    tolerance = 1e-5

    + +

    glue = geompy.MakeGlueFaces(compound, + tolerance)

    + +

     

    + +

    # add objects in study

    + +

    id_box1 = geompy.addToStudy(box1, + "Box1")

    + +

    id_box2 = geompy.addToStudy(box2, + "Box2")

    + +

    id_compound = geompy.addToStudy(compound, + "Compound")

    + +

    id_glue = geompy.addToStudy(glue, + "Glue faces")

    + +

     

    + +

    # display results

    + +

    gg.createAndDisplayGO(id_box1)

    + +

    gg.setDisplayMode(id_box1,1)

    + +

    gg.createAndDisplayGO(id_box2)

    + +

    gg.setDisplayMode(id_box2,1)

    + +

    gg.createAndDisplayGO(id_compound)

    + +

    gg.setDisplayMode(id_compound,1)

    + +

    gg.createAndDisplayGO(id_glue)

    + +

    gg.setDisplayMode(id_glue,1) +

    + +

     

    + +

    Add Point on Edge

    + +

    import + geompy

    + +

    import salome

    + +

     

    + +

    # create vertices

    + +

    p1 = geompy.MakeVertex(0,0,50)

    + +

    p2 = geompy.MakeVertex(60,0,50)

    + +

     

    + +

    # make an edge

    + +

    edge = geompy.MakeEdge(p1, + p2) #geompy.GetSubShape(box, edge_ind)

    + +

     

    + +

    # divide an edge

    + +

    divide = geompy.DivideEdge(edge, + -1, 0.5, 0)

    + +

     

    + +

    # add objects in the + study

    + +

    id_edge = geompy.addToStudy(edge, + "Edge")

    + +

    edge_points = geompy.SubShapeAllSorted(edge, + geompy.ShapeType["VERTEX"])

    + +

    for point in edge_points:

    + +

        geompy.addToStudyInFather(edge, + point, "Edge's point")

    + +

        

    + +

    id_divide = geompy.addToStudy(divide, + "Divided edge")

    + +

    edge_points = geompy.SubShapeAllSorted(divide, + geompy.ShapeType["VERTEX"])

    + +

    for point in edge_points:

    + +

        geompy.addToStudyInFather(divide, + point, "Edge's point after divide")

    + +

      

    + +

    salome.sg.updateObjBrowser(1) +

    + +

     

    + +

    Check Free Boundaries

    + +

    import os

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create boxes

    + +

    box1 = geompy.MakeBox(0,0,0,100,50,100)

    + +

    box2 = geompy.MakeBox(100,0,0,250,50,100)

    + +

     

    + +

    # make a compound

    + +

    compound = geompy.MakeCompound([box1, + box2])

    + +

     

    + +

    # import from *.brep

    + +

    ImportBREP = geompy.ImportBREP("os.getenv("DATA_DIR")+"/Shapes/Brep/flight_solid.brep")

    + +

     

    + +

    # get a face

    + +

    faces = geompy.SubShapeAllSorted(ImportBREP, + geompy.ShapeType["FACE"])

    + +

     

    + +

    # get the free boundary + for face 32

    + +

    Res = geompy.GetFreeBoundary(faces[32])

    + +

    isSuccess   = + Res[0]

    + +

    ClosedWires = Res[1]

    + +

    OpenWires   = + Res[2]

    + +

      

    + +

    if + isSuccess == 1 :

    + +

        print + "Checking free boudaries is OK."

    + +

    else :

    + +

        print + "Checking free boudaries is KO!"

    + +

    print "len(ClosedWires) + = ", len(ClosedWires)

    + +

    i = 0

    + +

    for wire in ClosedWires + :

    + +

        wire_name + = "Face 32 -> Close wires : WIRE %d"%(i+1)

    + +

        geompy.addToStudy(ClosedWires[i], + wire_name)

    + +

        if + i < len(ClosedWires) :

    + +

            i + = i+ 1

    + +

    print "len(OpenWires) + = ", len(OpenWires)

    + +

    i = 0

    + +

    for wire in OpenWires + :

    + +

        wire_name + = "Face 32 -> Open wires : WIRE %d"%(i+1)

    + +

        geompy.addToStudy(OpenWires[i], + wire_name)

    + +

        if + i < len(OpenWires) :

    + +

            i + = i+ 1

    + +

     

    + +

    # get the free boundary + for face 41

    + +

    Res = geompy.GetFreeBoundary(faces[41])

    + +

    isSuccess   = + Res[0]

    + +

    ClosedWires = Res[1]

    + +

    OpenWires   = + Res[2]

    + +

      

    + +

    if isSuccess == 1 + :

    + +

        print + "Checking free boudaries is OK."

    + +

    else :

    + +

        print + "Checking free boudaries is KO!"

    + +

    print "len(ClosedWires) + = ", len(ClosedWires)

    + +

    i = 0

    + +

    for wire in ClosedWires + :

    + +

        wire_name + = "Face 41 -> Close wires : WIRE %d"%(i+1)

    + +

        geompy.addToStudy(ClosedWires[i], + wire_name)

    + +

        if + i < len(ClosedWires) :

    + +

            i + = i+ 1

    + +

    print "len(OpenWires) + = ", len(OpenWires)

    + +

    i = 0

    + +

    for wire in OpenWires + :

    + +

        wire_name + = "Face 41 -> Open wires : WIRE %d"%(i+1)

    + +

        geompy.addToStudy(OpenWires[i], + wire_name)

    + +

        if + i < len(OpenWires) :

    + +

            i + = i+ 1

    + +

            

    + +

    # add the imported object + to the study

    + +

    id_ImportBREP = geompy.addToStudy(ImportBREP, + "ImportBREP")

    + +

    salome.sg.updateObjBrowser(1) +

    + +

     

    + +

    Check Free Faces

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a vertex and a vector

    + +

    p1 = geompy.MakeVertex(35, + 35, 0)

    + +

    p2 = geompy.MakeVertex(35, + 35, 50)

    + +

    v = geompy.MakeVector(p1, + p2)

    + +

     

    + +

    # create a cylinder

    + +

    cylinder = geompy.MakeCone(p1, + v, 30, 20, 20)

    + +

     

    + +

    # create a cone

    + +

    cone = geompy.MakeCone(p1, + v, 70, 40, 60)

    + +

     

    + +

    # make cut

    + +

    cut = geompy.MakeCut(cone, + cylinder)

    + +

     

    + +

    # get faces as sub-shapes

    + +

    faces = []

    + +

    faces = geompy.SubShapeAllSorted(cut, + geompy.ShapeType["FACE"])

    + +

    f_2 = geompy.GetSubShapeID(cut, + faces[0])

    + +

     

    + +

    # remove one face from the shape

    + +

    cut_without_f_2 = + geompy.SuppressFaces(cut, [f_2])

    + +

     

    + +

    # suppress the specified wire

    + +

    result = geompy.GetFreeFacesIDs(cut_without_f_2)

    + +

    print "A number + of free faces is ", len(result)

    + +

     

    + +

    # add objects in the study

    + +

    all_faces = geompy.SubShapeAllSorted(cut_without_f_2, + geompy.ShapeType["FACE"])

    + +

    for face in all_faces + :

    + +

        sub_shape_id + = geompy.GetSubShapeID(cut_without_f_2, face)

    + +

        if + result.count(sub_shape_id) > 0 :

    + +

            face_name + = "Free face %d"%(sub_shape_id)

    + +

            geompy.addToStudy(face, + face_name)

    + +

     

    + +

    # in this example all faces from cut_without_f_2 are free

    + +

    id_cut_without_f_2 + = geompy.addToStudy(cut_without_f_2, "Cut without f_2")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_cut_without_f_2)

    + +

    gg.setDisplayMode(id_cut_without_f_2,1) +

    + + + + diff --git a/doc/salome/gui/GEOM/revolution.htm b/doc/salome/gui/GEOM/revolution.htm index e7b123514..316aed90f 100755 --- a/doc/salome/gui/GEOM/revolution.htm +++ b/doc/salome/gui/GEOM/revolution.htm @@ -1,142 +1,142 @@ - - - - - -Revolution - - - - - - - - - - - - -

    Revolution

    - -

    To - create an extruded - shape by Revolution in the Main - Menu select New - Entity - > Generation  - - > Revolution

    - -

     

    - -

    To create an extruded shape by Revolution - you need to define the source Object - to rotate, the Axis of revolution - and the Angle by which the Shape - has to be rotated around the Axis - (in degrees).

    - -

    The Result of - the operation will be a GEOM_Object (edge, face, solid or compsolid).

    - -

     

    - -

    TUI Command: - geompy.MakeRevolution(Shape, Axis, - Angle).

    - -

    Arguments: - Name + 1 shape (vertex, edge, wire, face or shell) serving as base object - + 1 vector (for direction) + 1 value (angle).

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

     

    - -

     

    - -

    Our TUI Scripts - provide you with useful examples of creation of Complex - Geometric Objects.

    - -

     

    - - - - + + + + + +Revolution + + + + + + + + + + + + +

    Revolution

    + +

    To + create an extruded + shape by Revolution in the Main + Menu select New + Entity - > Generation  - + > Revolution

    + +

     

    + +

    To create an extruded shape by Revolution + you need to define the source Object + to rotate, the Axis of revolution + and the Angle by which the Shape + has to be rotated around the Axis + (in degrees).

    + +

    The Result of + the operation will be a GEOM_Object (edge, face, solid or compsolid).

    + +

     

    + +

    TUI Command: + geompy.MakeRevolution(Shape, Axis, + Angle).

    + +

    Arguments: + Name + 1 shape (vertex, edge, wire, face or shell) serving as base object + + 1 vector (for direction) + 1 value (angle).

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

     

    + +

     

    + +

    Our TUI Scripts + provide you with useful examples of creation of Complex + Geometric Objects.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/rotation.htm b/doc/salome/gui/GEOM/rotation.htm index 374ce1204..5487b9d14 100755 --- a/doc/salome/gui/GEOM/rotation.htm +++ b/doc/salome/gui/GEOM/rotation.htm @@ -1,160 +1,190 @@ - - - - - -Rotation - - - - - - - - - - - - - -

    Rotation

    - -

    To produce - a Rotation in the Main Menu select - Operations - > Transformation - > - Rotation

    - -

     

    - -

    This operation rotates the initial shape. To - produce a Rotation you need to - define an Object  to - be rotated, an Axis of rotation - and an Angle of rotation.

    - -

    Reverse - checkbox allows to specify the direction of rotation.

    - -

    Create a copy - checkbox allows to keep the initial object, otherwise it will be - removed.

    - -

     

    - -

    The - Result will be any  GEOM_Object.

    - -

    TUI Command: - geompy.MakeRotation(Shape, Axis, - Angle)

    - -

    Arguments: - 1 shape + 1 vector for direction of rotation + 1 angle.

    - -

     

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

     

    - -

      

    - -

    Our TUI Scripts - provide you with useful examples of the use of Transformation - Operations.

    - -

     

    - - - - + + + + + +Rotation + + + + + + + + + + + + + +

    Rotation

    + +

    To produce + a Rotation in the Main Menu select + Operations - > Transformation - > + Rotation

    + +

     

    + +

    This operation rotates + the initial shape.

    + +

     

    + +

    The + first Rotation algorithm + needs you to define an Object +  to be rotated, + an Axis of rotation and an Angle of rotation.

    + +

    TUI Command: + geompy.MakeRotation(Shape, Axis, + Angle)

    + +

    Arguments: + 1 shape + 1 vector for direction of rotation + 1 angle.

    + +

     

    + +

    + +

     

    + +

    Reverse + checkbox allows to specify the direction + of rotation.

    + +

    Create a copy + checkbox allows to keep the initial object, otherwise it will be + removed.

    + +

    The + Result will be any GEOM_Object.

    + +

     

    + +

    The second algorithm allows + to define the rotated Object by + three points. Rotation axis will pass through the Central + Point and will be will be orthogonal to a plane defned by three + points. In this case rotation Angle + is the angle between two vectors directed from the first point to the + second and to the third.

    + +

    TUI + Command: geompy.MakeRotationThreePoints(Shape, + CentralPoint, Point1, Point2).

    + +

    Arguments: + 1 shape + 3 points.

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

     

    + +

      

    + +

    Our TUI Scripts + provide you with useful examples of the use of Transformation + Operations.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/scale_transform.htm b/doc/salome/gui/GEOM/scale_transform.htm index dbd4f0d4d..0c1c6338e 100755 --- a/doc/salome/gui/GEOM/scale_transform.htm +++ b/doc/salome/gui/GEOM/scale_transform.htm @@ -1,152 +1,152 @@ - - - - - -Scale Transform - - - - - - - - - - - - - -

     Scale - Transform

    - -

    To produce - a Scale Transform in the Main - Menu select Operations - > Transformation - - > Scale Transform

    - -

     

    - -

    This operation creates a scaled shape basing - on the initial shape. For this, you need to define the Shape - to be scaled, the Central Point - of scale and the Scale Factor.

    - -

    The - Result will be a GEOM_Object.

    - -

    TUI Command: - geompy.MakeScaleTransform(Shape, - CenterOfScale, Factor),

    - -

    Arguments: - Name + 1 shape(s) + 1 vertex + 1 Scale Factor.

    - -

     

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

     

    - -

     

    - -

      Our TUI Scripts - provide you with useful examples of the use of Transformation - Operations.

    - -

     

    - - - - + + + + + +Scale Transform + + + + + + + + + + + + + +

     Scale + Transform

    + +

    To produce + a Scale Transform in the Main + Menu select Operations - > Transformation + - > Scale Transform

    + +

     

    + +

    This operation creates a scaled shape basing + on the initial shape. For this, you need to define the Shape + to be scaled, the Central Point + of scale and the Scale Factor.

    + +

    The + Result will be a GEOM_Object.

    + +

    TUI Command: + geompy.MakeScaleTransform(Shape, + CenterOfScale, Factor),

    + +

    Arguments: + Name + 1 shape(s) + 1 vertex + 1 Scale Factor.

    + +

     

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

     

    + +

     

    + +

      Our TUI Scripts + provide you with useful examples of the use of Transformation + Operations.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/section.htm b/doc/salome/gui/GEOM/section.htm index 9e5d4fd0a..fd55db031 100755 --- a/doc/salome/gui/GEOM/section.htm +++ b/doc/salome/gui/GEOM/section.htm @@ -1,156 +1,156 @@ - - - - - -Section - - - - - - - - - - - - - -

    Section

    - -

    To produce - a Section operation in the Main - Menu select Operations - > Boolean - - > Section

    - -

     

    - -

    This - operation creates the section between 2 shapes.

    - -

     

    - -

    The - Result will be a GEOM_Object - (COMPOUND).

    - -

    TUI Command: -  geompy.MakeSection(s1, - s2)

    - -

    Arguments: - Name + 2 shapes.

    - -

     

    - -

     

    - -

    - -

     

    - -

     

    - -

    Example:

    - -

     

    - -

     

    - -

     

    - -

      Our TUI Scripts - provide you with useful examples of the use of Boolean - Operations.

    - -

     

    - - - - + + + + + +Section + + + + + + + + + + + + + +

    Section

    + +

    To produce + a Section operation in the Main + Menu select Operations - > Boolean + - > Section

    + +

     

    + +

    This + operation creates the section between 2 shapes.

    + +

     

    + +

    The + Result will be a GEOM_Object + (COMPOUND).

    + +

    TUI Command: +  geompy.MakeSection(s1, + s2)

    + +

    Arguments: + Name + 2 shapes.

    + +

     

    + +

     

    + +

    + +

     

    + +

     

    + +

    Example:

    + +

     

    + +

     

    + +

     

    + +

      Our TUI Scripts + provide you with useful examples of the use of Boolean + Operations.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/sewing.htm b/doc/salome/gui/GEOM/sewing.htm index afcc96d75..6851c44d4 100755 --- a/doc/salome/gui/GEOM/sewing.htm +++ b/doc/salome/gui/GEOM/sewing.htm @@ -1,150 +1,150 @@ - - - - - -Sewing - - - - - - - - - - - - -

    Sewing

    - -

    To produce - a Sewing operation in the Main - Menu select Repair - > Sewing.

    - -

     

    - -

    This - operation allows to sew several  shapes.

    - -

     

    - -

    The Result will - be a GEOM_Object.

    - -

     

    - -

    TUI Command : - geompy.MakeSewing(ListOfShape, Precision), - where ListOfShape is list of shapes to be sewed, Precision is a precision - for sewing.

    - -

     

    - -

    - -

     

    - -

    Arguments: - Name + 1 or more shapes + 1 value (sew precision).

    - -

    Detect - button allows to display the number of free boundaries in your - shape:

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

     

    - -

     

    - -

    Our - TUI Scripts provide you with useful - examples of the use of Repairing - Operations.

    - -

     

    - - - - + + + + + +Sewing + + + + + + + + + + + + +

    Sewing

    + +

    To produce + a Sewing operation in the Main + Menu select Repair - > Sewing.

    + +

     

    + +

    This + operation allows to sew several  shapes.

    + +

     

    + +

    The Result will + be a GEOM_Object.

    + +

     

    + +

    TUI Command : + geompy.MakeSewing(ListOfShape, Precision), + where ListOfShape is list of shapes to be sewed, Precision is a precision + for sewing.

    + +

     

    + +

    + +

     

    + +

    Arguments: + Name + 1 or more shapes + 1 value (sew precision).

    + +

    Detect + button allows to display the number of free boundaries in your + shape:

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

     

    + +

     

    + +

    Our + TUI Scripts provide you with useful + examples of the use of Repairing + Operations.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/shape_processing.htm b/doc/salome/gui/GEOM/shape_processing.htm index e9d4fad77..9355a95b6 100755 --- a/doc/salome/gui/GEOM/shape_processing.htm +++ b/doc/salome/gui/GEOM/shape_processing.htm @@ -1,388 +1,388 @@ - - - - - -Shape Processing - - - - - - - - - - - - - -

    Shape Processing

    - -

    To produce - a Shape Processing operation in - the Main Menu select Repair - > - Shape Processing.

    - -

    This operation processes one or more shapes - using various operators.

    - -

     

    - -

    The - Result will be a GEOM_Object.

    - -

     

    - -

    TUI Command: - geompy.ProcessShape(Shape, Operators, - Parameters, Values), where Shape is a processed shape, Operators - is a list of operators ("FixShape", "SplitClosedFaces", - etc.), Parameters is a list of parameters (“FixShape.Tolerance3d”, etc), - Values is a list of values of parameters placed in the same order as in - the list of Parameters .

    - -

     

    - -

    In this dialog box you can select the object - that you need to process, define its name and operators applied to it - during processing.

    - -

     

    - -

    - -

     

    - -

    Operators and Parameters (TUI names are given in brackets)

    - -

     

    - -
      - -
    • Fix - Shape (FixShape) - corrects invalid shapes.

    • - -
    • 3D Tolerance (FixShape.Tolerance3d) - - work tolerance for detection of the problems and correction of them.

    • - -
    • Max 3D Tolerance (FixShape.MaxTolerance3d) -  - maximal - possible tolerance of the shape after correction.

    • - -
    • Fix Face Size (FixFaceSize) - removes - small faces, such as spots and strips.

    • - -
    • Tolerance (FixFaceSize.Tolerance) - - defines minimum possible face size.

    • - -
    • Drop Small Edges (DropSmallEdges) - - removes edges, which merge with neighbouring edges.

    • - -
    • 3D Tolerance (DropSmallEdges.Tolerance3d) - - defines minimum possible distance between two parallel edges.

    • - -
    • Split Angle (SplitAngle) - splits faces - based on conical surfaces, surfaces of revolution and cylindrical surfaces - in segments using a certain angle .  

    • - -
    • Angle (SplitAngle.Angle) - the central - angle of the resulting segments (i.e. we obtain two segments if Angle=180, - four if Angle=90, etc).

    • - -
    • Max. Tolerance (SplitAngle.MaxTolerance) - - maximum possible tolerance among the resulting segments.

    • - -
    • Split Closed Faces - (SplitClosedFaces) - splits - closed faces in segments. The number of segments depends on the number - of splitting points.

    • - -
    • Number of splitting points (SplitClosedFaces.NbSplitPoints) - - the number of splitting points.

    • - -
    • Split Continuity (SplitContinuity) - splits shapes to reduce - continuities of curves and surfaces.

    • - -
    • 3D Tolerance - (SplitContinuity.Tolerance3d) - 3D tolerance for correction of geometry.

    • - -
    • Surface Continuity (SplitContinuity.SurfaceContinuity) - required - continuity for surfaces.

    • - -
    • Curve Continuity (SplitContinuity.CurveContinuity) - - required continuity for curves.

    • -
    - -

    This and the previous parameters can - take the following values:

    - -

    Parametric Continuity -

    - -

    C0 - (Positional Continuity): curves are joined (the end positions of curves - or surfaces are coincidental. The curves or surfaces may still meet at - an angle, giving rise to a sharp corner or edge).

    - -

    C1 - (Tangential Continuity): first derivatives are equal (the end vectors - of curves or surfaces are parallel, ruling out sharp edges).

    - -

    C2 - (Curvature Continuity): first and second derivatives are equal (the end - vectors of curves or surfaces are of the same magnitude).

    - -

    CN - N-th derivatives are equal (both the direction and the magnitude of the - Nth derivatives of curves or surfaces (d/du C(u)) are the same at junction.

    - -

    Geometric Continuity

    - -

    G1: - first derivatives are proportional at junction

    - -

    The curve tangents thus have the same - direction, but not necessarily the same magnitude. i.e., C1'(1) = (a,b,c) - and C2'(0) = (k*a, k*b, k*c).

    - -

    G2: - first and second derivatives are proportional at junction

    - -

    As the names imply, geometric continuity - requires the geometry to be continuous, while parametric continuity requires - that the underlying parameterization was continuous as well.

    - -

    Parametric continuity of order n implies - geometric continuity of order n, but not vice-versa.

    - -
      - -
    • Bspline - Restriction (BsplineRestriction) - converts curves and surfaces - to Bsplines and processes them with the following parameters:

    • - -
    • Surface Mode - (BSplineRestriction.SurfaceMode) - approximation of surfaces if restriction - is necessary.

    • - -
    • 3D Curve Mode (BSplineRestriction.Curve3dMode) - conversion - of any 3D curve to BSpline and approximation.

    • - -
    • 2D Curve Mode (BSplineRestriction.Curve2dMode) - - conversion of any 2D curve to BSpline - and approximation.

    • - -
    • 3D - Tolerance (BSplineRestriction.Tolerance3d) - defines the possibility - of surfaces and 3D curves approximation with the specified parameters.

    • - -
    • 2D - Tolerance (BSplineRestriction.Tolerance2d) - defines the possibility - of surfaces and 2D curves approximation with the specified parameters.

    • - -
    • Required - Degree (BSplineRestriction.RequiredDegree) - required degree of - the resulting BSplines.

    • - -
    • Required - number of segments (BSplineRestriction.RequiredNbSegments) - required - maximum number of segments of resultant BSplines

    • - -
    • 3D - Continuity (BSplineRestriction.Continuity3d) - continuity of the - resulting surfaces and 3D curves.

    • - -
    • 2D - Continuity (BSplineRestriction.Continuity2d) - continuity of the - resulting 2D curves.

    • - -
    • To Bezier (ToBezier) - converts curves - and surfaces of any type to Bezier curves and surfaces.

    • - -
    • Surface Mode - (ToBezier.SurfaceMode) - if checked in, allows conversion of surfaces.

    • - -
    • 3D Curve Mode (ToBezier.Curve3dMode) - if checked in, allows - conversion of 2D curves.

    • - -
    • 2D Curve Mode (ToBezier.Curve2dMode) - if checked in, allows - conversion of 3D curves.

    • - -
    • Max Tolerance (ToBezier.MaxTolerance) - defines - tolerance for detection and correction - of problems.

    • - -
    • Same Parameter (SameParameter) –  fixes - edges of 2D and 3D curves not having the same parameter.

    • - -
    • 3D Tolerance (SameParameter.Tolerance3d) - – defines tolerance for fixing - of edges.

    • -
    - -

     

    - -

    Dialog Box:

    - -

     

    - -

    - -

     

    - -

     

    - -

    Example:

    - -

     

    - -

    Shape before applying Shape Processing (FixShape - operator).

    - -

     

    - -

       

    - -

     

    - -

    The - same shape after applying Shape Processing.

    - -

     

    - -

    - -

     

    - -

    Our - TUI Scripts provide you with useful - examples of the use of Repairing - Operations.

    - -

     

    - - - - + + + + + +Shape Processing + + + + + + + + + + + + + +

    Shape Processing

    + +

    To produce + a Shape Processing operation in + the Main Menu select Repair - > + Shape Processing.

    + +

    This operation processes one or more shapes + using various operators.

    + +

     

    + +

    The + Result will be a GEOM_Object.

    + +

     

    + +

    TUI Command: + geompy.ProcessShape(Shape, Operators, + Parameters, Values), where Shape is a processed shape, Operators + is a list of operators ("FixShape", "SplitClosedFaces", + etc.), Parameters is a list of parameters (“FixShape.Tolerance3d”, etc), + Values is a list of values of parameters placed in the same order as in + the list of Parameters .

    + +

     

    + +

    In this dialog box you can select the object + that you need to process, define its name and operators applied to it + during processing.

    + +

     

    + +

    + +

     

    + +

    Operators and Parameters (TUI names are given in brackets)

    + +

     

    + +
      + +
    • Fix + Shape (FixShape) - corrects invalid shapes.

    • + +
    • 3D Tolerance (FixShape.Tolerance3d) + - work tolerance for detection of the problems and correction of them.

    • + +
    • Max 3D Tolerance (FixShape.MaxTolerance3d) +  - maximal + possible tolerance of the shape after correction.

    • + +
    • Fix Face Size (FixFaceSize) - removes + small faces, such as spots and strips.

    • + +
    • Tolerance (FixFaceSize.Tolerance) - + defines minimum possible face size.

    • + +
    • Drop Small Edges (DropSmallEdges) - + removes edges, which merge with neighbouring edges.

    • + +
    • 3D Tolerance (DropSmallEdges.Tolerance3d) + - defines minimum possible distance between two parallel edges.

    • + +
    • Split Angle (SplitAngle) - splits faces + based on conical surfaces, surfaces of revolution and cylindrical surfaces + in segments using a certain angle .  

    • + +
    • Angle (SplitAngle.Angle) - the central + angle of the resulting segments (i.e. we obtain two segments if Angle=180, + four if Angle=90, etc).

    • + +
    • Max. Tolerance (SplitAngle.MaxTolerance) + - maximum possible tolerance among the resulting segments.

    • + +
    • Split Closed Faces + (SplitClosedFaces) - splits + closed faces in segments. The number of segments depends on the number + of splitting points.

    • + +
    • Number of splitting points (SplitClosedFaces.NbSplitPoints) + - the number of splitting points.

    • + +
    • Split Continuity (SplitContinuity) - splits shapes to reduce + continuities of curves and surfaces.

    • + +
    • 3D Tolerance + (SplitContinuity.Tolerance3d) - 3D tolerance for correction of geometry.

    • + +
    • Surface Continuity (SplitContinuity.SurfaceContinuity) - required + continuity for surfaces.

    • + +
    • Curve Continuity (SplitContinuity.CurveContinuity) + - required continuity for curves.

    • +
    + +

    This and the previous parameters can + take the following values:

    + +

    Parametric Continuity +

    + +

    C0 + (Positional Continuity): curves are joined (the end positions of curves + or surfaces are coincidental. The curves or surfaces may still meet at + an angle, giving rise to a sharp corner or edge).

    + +

    C1 + (Tangential Continuity): first derivatives are equal (the end vectors + of curves or surfaces are parallel, ruling out sharp edges).

    + +

    C2 + (Curvature Continuity): first and second derivatives are equal (the end + vectors of curves or surfaces are of the same magnitude).

    + +

    CN + N-th derivatives are equal (both the direction and the magnitude of the + Nth derivatives of curves or surfaces (d/du C(u)) are the same at junction.

    + +

    Geometric Continuity

    + +

    G1: + first derivatives are proportional at junction

    + +

    The curve tangents thus have the same + direction, but not necessarily the same magnitude. i.e., C1'(1) = (a,b,c) + and C2'(0) = (k*a, k*b, k*c).

    + +

    G2: + first and second derivatives are proportional at junction

    + +

    As the names imply, geometric continuity + requires the geometry to be continuous, while parametric continuity requires + that the underlying parameterization was continuous as well.

    + +

    Parametric continuity of order n implies + geometric continuity of order n, but not vice-versa.

    + +
      + +
    • Bspline + Restriction (BsplineRestriction) - converts curves and surfaces + to Bsplines and processes them with the following parameters:

    • + +
    • Surface Mode + (BSplineRestriction.SurfaceMode) - approximation of surfaces if restriction + is necessary.

    • + +
    • 3D Curve Mode (BSplineRestriction.Curve3dMode) - conversion + of any 3D curve to BSpline and approximation.

    • + +
    • 2D Curve Mode (BSplineRestriction.Curve2dMode) - + conversion of any 2D curve to BSpline + and approximation.

    • + +
    • 3D + Tolerance (BSplineRestriction.Tolerance3d) - defines the possibility + of surfaces and 3D curves approximation with the specified parameters.

    • + +
    • 2D + Tolerance (BSplineRestriction.Tolerance2d) - defines the possibility + of surfaces and 2D curves approximation with the specified parameters.

    • + +
    • Required + Degree (BSplineRestriction.RequiredDegree) - required degree of + the resulting BSplines.

    • + +
    • Required + number of segments (BSplineRestriction.RequiredNbSegments) - required + maximum number of segments of resultant BSplines

    • + +
    • 3D + Continuity (BSplineRestriction.Continuity3d) - continuity of the + resulting surfaces and 3D curves.

    • + +
    • 2D + Continuity (BSplineRestriction.Continuity2d) - continuity of the + resulting 2D curves.

    • + +
    • To Bezier (ToBezier) - converts curves + and surfaces of any type to Bezier curves and surfaces.

    • + +
    • Surface Mode + (ToBezier.SurfaceMode) - if checked in, allows conversion of surfaces.

    • + +
    • 3D Curve Mode (ToBezier.Curve3dMode) - if checked in, allows + conversion of 2D curves.

    • + +
    • 2D Curve Mode (ToBezier.Curve2dMode) - if checked in, allows + conversion of 3D curves.

    • + +
    • Max Tolerance (ToBezier.MaxTolerance) - defines + tolerance for detection and correction + of problems.

    • + +
    • Same Parameter (SameParameter) –  fixes + edges of 2D and 3D curves not having the same parameter.

    • + +
    • 3D Tolerance (SameParameter.Tolerance3d) + – defines tolerance for fixing + of edges.

    • +
    + +

     

    + +

    Dialog Box:

    + +

     

    + +

    + +

     

    + +

     

    + +

    Example:

    + +

     

    + +

    Shape before applying Shape Processing (FixShape + operator).

    + +

     

    + +

       

    + +

     

    + +

    The + same shape after applying Shape Processing.

    + +

     

    + +

    + +

     

    + +

    Our + TUI Scripts provide you with useful + examples of the use of Repairing + Operations.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/shell.htm b/doc/salome/gui/GEOM/shell.htm index fc57cbf76..ede227480 100755 --- a/doc/salome/gui/GEOM/shell.htm +++ b/doc/salome/gui/GEOM/shell.htm @@ -1,137 +1,137 @@ - - - - - -Shell - - - - - - - - - - - - -

    Shell

    - -

    To create - a Shell in the Main Menu select - New Entity - > Build - > Shell

    - -

     

    - -

    You - can create a Shell from a list of faces and (or) - shells.

    - -

    The - Result will be a  GEOM_Object - (shell).

    - -

     

    - -

    TUI Command: - geompy.MakeShell(ListOfShape) -

    - -

    Arguments: - Name + List of faces having connected edges.

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

    - -

     

    - -

    Our TUI Scripts provide you with useful examples - of creation of Advanced Geometric - Objects.

    - -

     

    - -

     

    - - - - + + + + + +Shell + + + + + + + + + + + + +

    Shell

    + +

    To create + a Shell in the Main Menu select + New Entity - > Build - > Shell

    + +

     

    + +

    You + can create a Shell from a list of faces and (or) + shells.

    + +

    The + Result will be a  GEOM_Object + (shell).

    + +

     

    + +

    TUI Command: + geompy.MakeShell(ListOfShape) +

    + +

    Arguments: + Name + List of faces having connected edges.

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

    + +

     

    + +

    Our TUI Scripts provide you with useful examples + of creation of Advanced Geometric + Objects.

    + +

     

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/sketcher.htm b/doc/salome/gui/GEOM/sketcher.htm index 1db40edfa..1bff414a8 100755 --- a/doc/salome/gui/GEOM/sketcher.htm +++ b/doc/salome/gui/GEOM/sketcher.htm @@ -1,221 +1,221 @@ - - - - - -Sketcher - - - - - - - - - - - - - -

    Sketcher

    - -

    Sketcher allows to create curves of 2 types: line - segment and arc.  The - curve is created from the current point (center of coordinates when the - sketcher is started).  The - end of the curve is defined by means of "destination", which - can be a destination point (for segment only) or destination direction - coupled with length of a segment or angle and radius of an arc.

    - -

     

    - -

    Sketcher is able to create planar curves only. Therefore, it is necessary - to select a working plane before starting a sketch (by default, XOY plane - is used). Sketcher creates curves lying in the current working plane (New - Entity -> Basic -> Working Plane).

    - -

     

    - -

    This functionality is available from the main menu via New - Entity / Sketch.

    - -

     

    - -

    The Result of - the operation will be a GEOM_Object.

    - -

     

    - -

    TUI Command: - geompy.MakeSketcher(Command, WorkingPlane)

    - -

    This algorithm creates - a sketcher (wire or face), following the textual description, passed through - the Command argument. The edges of the resulting wire or face will be - arcs of circles and/or linear segments.

    - -

    Command - is a string, defining the sketcher by the coordinates of points in the - local working plane.

    - -

    WorkingPlane - is a planar face of the working plane (a list of 9 doubles which are coordinates - of OZ and OX of the local working plane).

    - -

     

    - -

    Arguments: -

    - -

    1. Element type (segment or arc).

    - -

    2. Destination type (point or direction).

    - -

    3. Destination point by means of:

    - -
      - -
    • absolute coordinates - X,Y;

    • - -
    • relative coordinates - DX, DY (with respect to the current point);

    • - -
    • selection of an existing - point.

    • -
    - -

    4. Destination direction by means of:

    - -
      - -
    • angle between the new - segment and the previous one;

    • - -
    • perpendicular to the - previous segment (same as previous, but angle is predefined and is equal - to 90 degrees);

    • - -
    • tangent to the previous - segment;

    • - -
    • vector components DX, - DY.

    • -
    - -

    5. Parameters of an element (for segment : - length or target X or Y coordinate value, for arc : radius and angle).

    - -

     

    - -

    Dialog Box:

    - -

     

    - -

      

    - -

     

    - -

    Example:

    - -

     

    - -

      

    - -

     

    - -

    Our TUI Scripts - provide you with useful examples of the use of Sketcher. -

    - -

     

    - - - - + + + + + +Sketcher + + + + + + + + + + + + + +

    Sketcher

    + +

    Sketcher allows to create curves of 2 types: line + segment and arc.  The + curve is created from the current point (center of coordinates when the + sketcher is started).  The + end of the curve is defined by means of "destination", which + can be a destination point (for segment only) or destination direction + coupled with length of a segment or angle and radius of an arc.

    + +

     

    + +

    Sketcher is able to create planar curves only. Therefore, it is necessary + to select a working plane before starting a sketch (by default, XOY plane + is used). Sketcher creates curves lying in the current working plane (New + Entity -> Basic -> Working Plane).

    + +

     

    + +

    This functionality is available from the main menu via New + Entity / Sketch.

    + +

     

    + +

    The Result of + the operation will be a GEOM_Object.

    + +

     

    + +

    TUI Command: + geompy.MakeSketcher(Command, WorkingPlane)

    + +

    This algorithm creates + a sketcher (wire or face), following the textual description, passed through + the Command argument. The edges of the resulting wire or face will be + arcs of circles and/or linear segments.

    + +

    Command + is a string, defining the sketcher by the coordinates of points in the + local working plane.

    + +

    WorkingPlane + is a planar face of the working plane (a list of 9 doubles which are coordinates + of OZ and OX of the local working plane).

    + +

     

    + +

    Arguments: +

    + +

    1. Element type (segment or arc).

    + +

    2. Destination type (point or direction).

    + +

    3. Destination point by means of:

    + +
      + +
    • absolute coordinates + X,Y;

    • + +
    • relative coordinates + DX, DY (with respect to the current point);

    • + +
    • selection of an existing + point.

    • +
    + +

    4. Destination direction by means of:

    + +
      + +
    • angle between the new + segment and the previous one;

    • + +
    • perpendicular to the + previous segment (same as previous, but angle is predefined and is equal + to 90 degrees);

    • + +
    • tangent to the previous + segment;

    • + +
    • vector components DX, + DY.

    • +
    + +

    5. Parameters of an element (for segment : + length or target X or Y coordinate value, for arc : radius and angle).

    + +

     

    + +

    Dialog Box:

    + +

     

    + +

      

    + +

     

    + +

    Example:

    + +

     

    + +

      

    + +

     

    + +

    Our TUI Scripts + provide you with useful examples of the use of Sketcher. +

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/sketcher_tui.htm b/doc/salome/gui/GEOM/sketcher_tui.htm index d48ead5ca..2294988a4 100755 --- a/doc/salome/gui/GEOM/sketcher_tui.htm +++ b/doc/salome/gui/GEOM/sketcher_tui.htm @@ -1,182 +1,182 @@ - - - - - -Sketcher - - - - - - - - - - - - -

    Sketcher

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create vertices

    - -

    p1 = geompy.MakeVertex(70., -  0.,  0.)

    - -

    p2 = geompy.MakeVertex(70., - 70., 80.)

    - -

    p3 = geompy.MakeVertex( - 0., 70.,  0.)

    - -

     

    - -

    #create a vector from two points

    - -

    vector_arc = geompy.MakeVector(p1, - p3)

    - -

     

    - -

    # create an arc from three points

    - -

    arc = geompy.MakeArc(p1, - p2, p3)

    - -

     

    - -

    # create a wire

    - -

    wire = geompy.MakeWire([vector_arc, - arc])

    - -

     

    - -

    # create a planar face

    - -

    isPlanarWanted = 1

    - -

    face = geompy.MakeFace(wire, - isPlanarWanted)

    - -

     

    - -

    # create a sketcher (face), following the textual description

    - -

    sketcher1 = geompy.MakeSketcher("Sketcher:F - -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WF",

    - -

                                    [100,0,0, - 1,1,1, -1,1,0])

    - -

     

    - -

    # create a sketcher (wire) on the given face

    - -

    sketcher2 = geompy.MakeSketcherOnPlane("Sketcher:F - 10 -30:R 10:C 20 180:R 15:L 50:WW",

    - -

                                           face)

    - -

     

    - -

    # add objects in the study

    - -

    id_face = geompy.addToStudy(face,"Face")

    - -

    id_sketcher1 = geompy.addToStudy(sketcher1,"Sketcher1")

    - -

    id_sketcher2 = geompy.addToStudy(sketcher2,"Sketcher2")

    - -

     

    - -

    # display the first sketcher and the second sketcher with its planar - face

    - -

    gg.createAndDisplayGO(id_face)

    - -

    gg.setDisplayMode(id_face,1)

    - -

    gg.setTransparency(id_face,0.5)

    - -

    gg.createAndDisplayGO(id_sketcher1)

    - -

    gg.createAndDisplayGO(id_sketcher2) -

    - - - - + + + + + +Sketcher + + + + + + + + + + + + +

    Sketcher

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create vertices

    + +

    p1 = geompy.MakeVertex(70., +  0.,  0.)

    + +

    p2 = geompy.MakeVertex(70., + 70., 80.)

    + +

    p3 = geompy.MakeVertex( + 0., 70.,  0.)

    + +

     

    + +

    #create a vector from two points

    + +

    vector_arc = geompy.MakeVector(p1, + p3)

    + +

     

    + +

    # create an arc from three points

    + +

    arc = geompy.MakeArc(p1, + p2, p3)

    + +

     

    + +

    # create a wire

    + +

    wire = geompy.MakeWire([vector_arc, + arc])

    + +

     

    + +

    # create a planar face

    + +

    isPlanarWanted = 1

    + +

    face = geompy.MakeFace(wire, + isPlanarWanted)

    + +

     

    + +

    # create a sketcher (face), following the textual description

    + +

    sketcher1 = geompy.MakeSketcher("Sketcher:F + -100 -100:TT 250 -100:R 0:C 100 150:R 0:L 300:WF",

    + +

                                    [100,0,0, + 1,1,1, -1,1,0])

    + +

     

    + +

    # create a sketcher (wire) on the given face

    + +

    sketcher2 = geompy.MakeSketcherOnPlane("Sketcher:F + 10 -30:R 10:C 20 180:R 15:L 50:WW",

    + +

                                           face)

    + +

     

    + +

    # add objects in the study

    + +

    id_face = geompy.addToStudy(face,"Face")

    + +

    id_sketcher1 = geompy.addToStudy(sketcher1,"Sketcher1")

    + +

    id_sketcher2 = geompy.addToStudy(sketcher2,"Sketcher2")

    + +

     

    + +

    # display the first sketcher and the second sketcher with its planar + face

    + +

    gg.createAndDisplayGO(id_face)

    + +

    gg.setDisplayMode(id_face,1)

    + +

    gg.setTransparency(id_face,0.5)

    + +

    gg.createAndDisplayGO(id_sketcher1)

    + +

    gg.createAndDisplayGO(id_sketcher2) +

    + + + + diff --git a/doc/salome/gui/GEOM/solid.htm b/doc/salome/gui/GEOM/solid.htm index a715f69c4..a46e8a241 100755 --- a/doc/salome/gui/GEOM/solid.htm +++ b/doc/salome/gui/GEOM/solid.htm @@ -1,138 +1,138 @@ - - - - - -Solid - - - - - - - - - - - - -

     Solid

    - -

    To create - a Solid in the Main Menu select - New Entity - > Build - > Solid.

    - -

     

    - -

    You - can create a Solid from a list - of shells.

    - -

     

    - -

    The - Result will be a -  GEOM_Object - (SOLID).

    - -

     

    - -

    TUI Command: - geompy.MakeSolid(ListOfShape), - where ListOfShape is a list of shells from which the solid is constructed.

    - -

    Arguments: Name + A closed shell or - a list of shells.

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

    - -

     

    - -

    Our TUI Scripts provide you with useful examples - of creation of Advanced Geometric - Objects.

    - -

     

    - - - - + + + + + +Solid + + + + + + + + + + + + +

     Solid

    + +

    To create + a Solid in the Main Menu select + New Entity - > Build - > Solid.

    + +

     

    + +

    You + can create a Solid from a list + of shells.

    + +

     

    + +

    The + Result will be a +  GEOM_Object + (SOLID).

    + +

     

    + +

    TUI Command: + geompy.MakeSolid(ListOfShape), + where ListOfShape is a list of shells from which the solid is constructed.

    + +

    Arguments: Name + A closed shell or + a list of shells.

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

    + +

     

    + +

    Our TUI Scripts provide you with useful examples + of creation of Advanced Geometric + Objects.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/sphere.htm b/doc/salome/gui/GEOM/sphere.htm index 7cb72f663..b23ecdcab 100755 --- a/doc/salome/gui/GEOM/sphere.htm +++ b/doc/salome/gui/GEOM/sphere.htm @@ -1,166 +1,166 @@ - - - - - -Sphere - - - - - - - - - - - - -

     Sphere

    - -

    To create a Sphere - in the Main Menu select New Entity - > Primitives - > Sphere

    - -

     

    - -

    There are two algorithms for creation of a Sphere. -

    - -

    The - Result of each operation will be a - GEOM_Object (SOLID).

    - -

     

    - -

    Firstly, you can define a Sphere - by the Center Point and the Radius.

    - -

    TUI Command: geompy.MakeSphere(Point, - Radius)

    - -

    Arguments: Name - + 1 vertex + 1 value (Radius).

    - -

    - -

     

    - -

    Secondly, - you can define a Sphere with - the center at the origin of coordinate system by the Radius.

    - -

    TUI Command: geompy. - MakeSphereR(Radius)

    - -

    Arguments: Name - + 1  value - (Radius from the origin).

    - -

    - -

     

    - -

    NB! The - is another way to create a Sphere, - which is currently accessible only via TUI commands.

    - -

    You - can define the Sphere by the - coordinates of the Center Point and - its Radius (in this way you - don't need to create it in advance).

    - -

    TUI - Command: geompy.MakeSphere(X, - Y, Z, Radius)

    - -

     

    - -

    Example:

    - -

     

    - -

    - -

     

    - -

    Our TUI Scripts provide you with useful examples - of creation of Primitives.

    - -

     

    - - - - + + + + + +Sphere + + + + + + + + + + + + +

     Sphere

    + +

    To create a Sphere + in the Main Menu select New Entity - > Primitives - > Sphere

    + +

     

    + +

    There are two algorithms for creation of a Sphere. +

    + +

    The + Result of each operation will be a + GEOM_Object (SOLID).

    + +

     

    + +

    Firstly, you can define a Sphere + by the Center Point and the Radius.

    + +

    TUI Command: geompy.MakeSphere(Point, + Radius)

    + +

    Arguments: Name + + 1 vertex + 1 value (Radius).

    + +

    + +

     

    + +

    Secondly, + you can define a Sphere with + the center at the origin of coordinate system by the Radius.

    + +

    TUI Command: geompy. + MakeSphereR(Radius)

    + +

    Arguments: Name + + 1  value + (Radius from the origin).

    + +

    + +

     

    + +

    NB! The + is another way to create a Sphere, + which is currently accessible only via TUI commands.

    + +

    You + can define the Sphere by the + coordinates of the Center Point and + its Radius (in this way you + don't need to create it in advance).

    + +

    TUI + Command: geompy.MakeSphere(X, + Y, Z, Radius)

    + +

     

    + +

    Example:

    + +

     

    + +

    + +

     

    + +

    Our TUI Scripts provide you with useful examples + of creation of Primitives.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/suppress_faces.htm b/doc/salome/gui/GEOM/suppress_faces.htm index 46bca08d6..1322bddf2 100755 --- a/doc/salome/gui/GEOM/suppress_faces.htm +++ b/doc/salome/gui/GEOM/suppress_faces.htm @@ -1,143 +1,143 @@ - - - - - -Suppress Faces - - - - - - - - - - - - -

    Suppress Faces

    - -

    To produce - a Suppress Faces operation in - the Main Menu select Repair - > Suppress - Faces.

    - -

     

    - -

    This operation suppresses a face of a shape. - This operation is available in OCC Viewer - only.

    - -

     

    - -

    The - Result will be a GEOM_Object (ListOfGeomShapes)..

    - -

     

    - -

    TUI Command: geompy.SuppressFaces(Shape, - ListOfID), where Shape is a shape to be processed, ListOfID is - a list of faces ID's to be removed.

    - -

    Arguments: - Name + Faces which should be removed (you can select them in the 3D viewer).

    - -

     

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

     

    - -

     

    - -

    Our - TUI Scripts provide you with useful - examples of the use of Repairing - Operations.

    - -

     

    - - - - + + + + + +Suppress Faces + + + + + + + + + + + + +

    Suppress Faces

    + +

    To produce + a Suppress Faces operation in + the Main Menu select Repair - > Suppress + Faces.

    + +

     

    + +

    This operation suppresses a face of a shape. + This operation is available in OCC Viewer + only.

    + +

     

    + +

    The + Result will be a GEOM_Object (ListOfGeomShapes)..

    + +

     

    + +

    TUI Command: geompy.SuppressFaces(Shape, + ListOfID), where Shape is a shape to be processed, ListOfID is + a list of faces ID's to be removed.

    + +

    Arguments: + Name + Faces which should be removed (you can select them in the 3D viewer).

    + +

     

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

     

    + +

     

    + +

    Our + TUI Scripts provide you with useful + examples of the use of Repairing + Operations.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/suppress_holes.htm b/doc/salome/gui/GEOM/suppress_holes.htm index 52d9d29f9..1ced853b9 100755 --- a/doc/salome/gui/GEOM/suppress_holes.htm +++ b/doc/salome/gui/GEOM/suppress_holes.htm @@ -1,154 +1,154 @@ - - - - - -Suppress Holes - - - - - - - - - - - - -

    Suppress Holes

    - -

    To Suppress Holes in the Main Menu select - Repair - > Suppress Holes.

    - -

     

    - -

    This operation removes holes on a selected shape. This - operation is available in OCC - Viewer only.

    - -

     

    - -

    The Result will - be a GEOM_Object.

    - -

     

    - -

    TUI Command: - geompy.SuppressHoles(Shape, ListOfWireID), - where Shape is a shape where holes must be removed, ListOfWireID is a - list of wire sub shapes ID’s. If it is empty, then all holes are removed.

    - -

     

    - -

    - -

     

    - -

    Arguments: Name - + 1 shape + Wires which should be removed.

    - -

    Remove all - holes checkbox allows to fill all holes of a definite shape.

    - -

    Detect button - allows to display the number of free boundaries in your shape:

    - -

     

    - -

    - -

      

    - -

    Example:

    - -

     

    - -

       

    - -

     

    - -

    Our - TUI Scripts provide you with useful - examples of the use of Repairing - Operations.

    - -

     

    - -

     

    - - - - + + + + + +Suppress Holes + + + + + + + + + + + + +

    Suppress Holes

    + +

    To Suppress Holes in the Main Menu select + Repair - > Suppress Holes.

    + +

     

    + +

    This operation removes holes on a selected shape. This + operation is available in OCC + Viewer only.

    + +

     

    + +

    The Result will + be a GEOM_Object.

    + +

     

    + +

    TUI Command: + geompy.SuppressHoles(Shape, ListOfWireID), + where Shape is a shape where holes must be removed, ListOfWireID is a + list of wire sub shapes ID’s. If it is empty, then all holes are removed.

    + +

     

    + +

    + +

     

    + +

    Arguments: Name + + 1 shape + Wires which should be removed.

    + +

    Remove all + holes checkbox allows to fill all holes of a definite shape.

    + +

    Detect button + allows to display the number of free boundaries in your shape:

    + +

     

    + +

    + +

      

    + +

    Example:

    + +

     

    + +

       

    + +

     

    + +

    Our + TUI Scripts provide you with useful + examples of the use of Repairing + Operations.

    + +

     

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/suppress_internal_wires.htm b/doc/salome/gui/GEOM/suppress_internal_wires.htm index debe6fe34..53228dc22 100755 --- a/doc/salome/gui/GEOM/suppress_internal_wires.htm +++ b/doc/salome/gui/GEOM/suppress_internal_wires.htm @@ -1,160 +1,160 @@ - - - - - -Suppress Internal Wires - - - - - - - - - - - - -

    Suppress Internal - Wires

    - -

    To Suppress Internal Wires in the Main - Menu select Repair - > Suppress Internal - Wires.

    - -

     

    - -

    This operation removes all internal wires or - specified internal wires from user specified faces. This operation is - available in OCC Viewer only. -

    - -

     

    - -

    The - Result will be a GEOM_Object.

    - -

     

    - -

    TUI Command: - geompy.SuppressInternalWires(Shape, - Wires), where Shape is a shape where wires are to be removed, Wires - is a list of wires ID’s to be removed; if the list is empty then all internal - wires are removed.

    - -

     

    - -

    Arguments:

    - -
      - -
    • Name of the resulting - object

    • - -
    • User specified face

    • - -
    • User specified internal - wires (lying on this face except for its boundary), or, in case the Remove all internal wires box is checked, - all internal wires

    • -
    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

       

    - -

     

    - -

    Our - TUI Scripts provide you with useful - examples of the use of Repairing - Operations.

    - -

     

    - - - - + + + + + +Suppress Internal Wires + + + + + + + + + + + + +

    Suppress Internal + Wires

    + +

    To Suppress Internal Wires in the Main + Menu select Repair - > Suppress Internal + Wires.

    + +

     

    + +

    This operation removes all internal wires or + specified internal wires from user specified faces. This operation is + available in OCC Viewer only. +

    + +

     

    + +

    The + Result will be a GEOM_Object.

    + +

     

    + +

    TUI Command: + geompy.SuppressInternalWires(Shape, + Wires), where Shape is a shape where wires are to be removed, Wires + is a list of wires ID’s to be removed; if the list is empty then all internal + wires are removed.

    + +

     

    + +

    Arguments:

    + +
      + +
    • Name of the resulting + object

    • + +
    • User specified face

    • + +
    • User specified internal + wires (lying on this face except for its boundary), or, in case the Remove all internal wires box is checked, + all internal wires

    • +
    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

       

    + +

     

    + +

    Our + TUI Scripts provide you with useful + examples of the use of Repairing + Operations.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/transformation_operations.htm b/doc/salome/gui/GEOM/transformation_operations.htm index 4547213f2..b5f37efb7 100755 --- a/doc/salome/gui/GEOM/transformation_operations.htm +++ b/doc/salome/gui/GEOM/transformation_operations.htm @@ -1,1083 +1,1070 @@ - - - - - -Transformation Operations - - - - - - - - - - - - -

    Transformation Operations

    - -

    Translation

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a vertex and a vector

    - -

    p1 = geompy.MakeVertex(10, - 40, 0)

    - -

    p2 = geompy.MakeVertex( - 0,  0, 50)

    - -

    p3 = geompy.MakeVertex(50, - 80, 0)

    - -

    v = geompy.MakeVector(p1, - p2)

    - -

    vt = geompy.MakeVector(p1, - p3)

    - -

     

    - -

    # create a cylinder

    - -

    height = 35

    - -

    radius1 = 20

    - -

    cylinder = geompy.MakeCylinder(p1, - v, radius1, height)

    - -

     

    - -

    # translate the given object along the vector, specified by its end - points

    - -

    # (all three functions produce the same result)

    - -

    translation1 = geompy.MakeTranslationTwoPoints(cylinder, - p1, p3)

    - -

    translation2 = geompy.MakeTranslation(cylinder, - 40, 40, 0)

    - -

    translation3 = geompy.MakeTranslationVector(cylinder, - vt)

    - -

     

    - -

    # add objects in the study

    - -

    id_cylinder = geompy.addToStudy(cylinder, - "Cylinder")

    - -

    id_translation1 = - geompy.addToStudy(translation1, "Translation1")

    - -

    id_translation2 = - geompy.addToStudy(translation2, "Translation2")

    - -

    id_translation3 = - geompy.addToStudy(translation3, "Translation3")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_cylinder)

    - -

    gg.setDisplayMode(id_cylinder,1)

    - -

    gg.createAndDisplayGO(id_translation1)

    - -

    gg.setDisplayMode(id_translation1,1)

    - -

    gg.createAndDisplayGO(id_translation2)

    - -

    gg.setDisplayMode(id_translation2,1)

    - -

    gg.createAndDisplayGO(id_translation3)

    - -

    gg.setDisplayMode(id_translation3,1) -

    - -

    Rotation

    - -

    import geompy

    - -

    import salome

    - -

    import math

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a vertex and a vector

    - -

    p1 = geompy.MakeVertex(10, - 40, 0)

    - -

    p2 = geompy.MakeVertex( - 0,  0, 50)

    - -

    p3 = geompy.MakeVertex(10, - 50,-20)

    - -

    p4 = geompy.MakeVertex(10, - 50, 60)

    - -

    v = geompy.MakeVector(p1, - p2)

    - -

    vr = geompy.MakeVector(p3, - p4)

    - -

     

    - -

    # create a cylinder

    - -

    height = 35

    - -

    radius1 = 20

    - -

    cylinder = geompy.MakeCylinder(p1, - v, radius1, height)

    - -

     

    - -

    # rotate the given object around the given axis by the given angle

    - -

    rotation = geompy.MakeRotation(cylinder, - vr, math.pi)

    - -

     

    - -

    # add objects in the study

    - -

    id_vr = geompy.addToStudy(vr, - "Rotation axis")

    - -

    id_cylinder = geompy.addToStudy(cylinder, - "Cylinder")

    - -

    id_rotation = geompy.addToStudy(rotation, - "Rotation")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_vr)

    - -

    gg.createAndDisplayGO(id_cylinder)

    - -

    gg.setDisplayMode(id_cylinder,1)

    - -

    gg.createAndDisplayGO(id_rotation)

    - -

    gg.setDisplayMode(id_rotation,1) -

    - -

     

    - -

    Modify Location

    - -

    import geompy

    - -

    import salome

    - -

    import math

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a vertex and a vector

    - -

    p1 = geompy.MakeVertex(10, - 40, 0)

    - -

    p2 = geompy.MakeVertex( - 0,  0, 50)

    - -

    v = geompy.MakeVector(p1, - p2)

    - -

     

    - -

    # create a cylinder

    - -

    height = 35

    - -

    radius1 = 20

    - -

    cylinder = geompy.MakeCylinder(p1, - v, radius1, height)

    - -

     

    - -

    # create local coordinate systems

    - -

    cs1 = geompy.MakeMarker( - 0, 0, 0, 1,0,0, 0,1,0)

    - -

    cs2 = geompy.MakeMarker(30,40,40, - 1,0,0, 0,1,0)

    - -

     

    - -

    # modify the location of the given object

    - -

    position = geompy.MakePosition(cylinder, - cs1, cs2)

    - -

     

    - -

    # add objects in the study

    - -

    id_cs1 = geompy.addToStudy(cs1, - "Coordinate system 1")

    - -

    id_cs2 = geompy.addToStudy(cs2, - "Coordinate system 2")

    - -

    id_cylinder = geompy.addToStudy(cylinder, - "Cylinder")

    - -

    id_position = geompy.addToStudy(position, - "Position")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_cylinder)

    - -

    gg.setDisplayMode(id_cylinder,1)

    - -

    gg.createAndDisplayGO(id_position)

    - -

    gg.setDisplayMode(id_position,1) -

    - -

     

    - -

    Mirror Image

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a box

    - -

    box = geompy.MakeBoxDXDYDZ(200, - 200, 200)

    - -

     

    - -

    # create an object, symmetrical to another object through the given - plane

    - -

    p1 = geompy.MakeVertex( - 0, 25,  0)

    - -

    p2 = geompy.MakeVertex( - 5, 25,  0)

    - -

    p3 = geompy.MakeVertex( - 0,-30, 40)

    - -

    plane = geompy.MakePlaneThreePnt(p1, - p2, p3, 1000.)

    - -

    mirror1 = geompy.MakeMirrorByPlane(box, - plane)

    - -

     

    - -

    # create an object, symmetrical to another object through the given - axis

    - -

    p4 = geompy.MakeVertex( - 210, 210, -20)

    - -

    p5 = geompy.MakeVertex( - 210, 210, 220)

    - -

    axis = geompy.MakeVector(p4, - p5)

    - -

    mirror2 = geompy.MakeMirrorByAxis(box, - axis)

    - -

     

    - -

    # create an object, symmetrical to another object through the given - point

    - -

    mirror3 = geompy.MakeMirrorByPoint(box, - p4)

    - -

     

    - -

    # add objects in the study

    - -

    id_box = geompy.addToStudy(box, - "Box")

    - -

    id_plane = geompy.addToStudy(plane, - "Plane")

    - -

    id_mirror1 = geompy.addToStudy(mirror1, - "Mirror plane")

    - -

    id_axis = geompy.addToStudy(axis, - "Axis")

    - -

    id_mirror2 = geompy.addToStudy(mirror2, - "Mirror axis")

    - -

    id_p4 = geompy.addToStudy(p4, - "Point")

    - -

    id_mirror3 = geompy.addToStudy(mirror3, - "Mirror point")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_box)

    - -

    gg.setDisplayMode(id_box,1)

    - -

    gg.createAndDisplayGO(id_plane)

    - -

    gg.createAndDisplayGO(id_mirror1)

    - -

    gg.setDisplayMode(id_mirror1,1)

    - -

    gg.createAndDisplayGO(id_axis)

    - -

    gg.createAndDisplayGO(id_mirror2)

    - -

    gg.setDisplayMode(id_mirror2,1)

    - -

    gg.createAndDisplayGO(id_p4)

    - -

    gg.createAndDisplayGO(id_mirror3)

    - -

    gg.setDisplayMode(id_mirror3,1) -

    - -

     

    - -

    Scale Transform

    - -

    import geompy

    - -

    import salome

    - -

     

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a box and a - sphere

    - -

    box = geompy.MakeBoxDXDYDZ(200, - 200, 200)

    - -

     

    - -

    # scale the given object - by the factor

    - -

    p0 = geompy.MakeVertex(100, - 100, 100)

    - -

    factor = 0.5

    - -

    scale = geompy.MakeScaleTransform(box, - p0, factor)

    - -

     

    - -

    # add objects in the - study

    - -

    id_box = geompy.addToStudy(box, - "Box")

    - -

    id_scale = geompy.addToStudy(scale, - "Scale")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_box)

    - -

    gg.setDisplayMode(id_box,1)

    - -

    gg.setTransparency(id_box,0.5)

    - -

    gg.createAndDisplayGO(id_scale)

    - -

    gg.setDisplayMode(id_scale,1) -

    - -

     

    - -

    Offset Surface

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create a box and a sphere

    - -

    box = geompy.MakeBox(20, - 20, 20, 200, 200, 200)

    - -

     

    - -

    # create a new object as offset of the given object

    - -

    offset = geompy.MakeOffset(box, - 70.)

    - -

     

    - -

    # add objects in the study

    - -

    id_box = geompy.addToStudy(box, - "Box")

    - -

    id_offset = geompy.addToStudy(offset, - "Offset")

    - -

     

    - -

    # display the results

    - -

    gg.createAndDisplayGO(id_box)

    - -

    gg.setDisplayMode(id_box,1)

    - -

    gg.createAndDisplayGO(id_offset) -

    - -

     

    - -

    Multi Translation

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create vertices and vectors

    - -

    p0  = - geompy.MakeVertex( 0.,  0., -  0.)

    - -

    px  = - geompy.MakeVertex(20.,  0., -  0.)

    - -

    py  = - geompy.MakeVertex( 0., 20.,  0.)

    - -

    pz  = - geompy.MakeVertex( 0.,  0., - 20.)

    - -

    pxy = geompy.MakeVertex( - 50., 0., 0.)

    - -

    pxyz = geompy.MakeVertex( - 50., 50., 50.)

    - -

    vz  = - geompy.MakeVector(p0, pz)

    - -

    vxy = geompy.MakeVector(px, - py)

    - -

    vtr1d = geompy.MakeVector(p0, - pxyz)

    - -

    vtr2d = geompy.MakeVector(p0, - pxy)

    - -

      

    - -

    # create an arc

    - -

    arc = geompy.MakeArc(py, - pz, px)

    - -

     

    - -

    # create a wire

    - -

    wire = geompy.MakeWire([vxy, - arc])

    - -

     

    - -

    # create a planar face

    - -

    face = geompy.MakeFace(wire, - 1)

    - -

     

    - -

    # create a prism

    - -

    prism = geompy.MakePrismVecH(face, - vz, 20.0)

    - -

     

    - -

    # translate the given object along the given vector a given number of - times

    - -

    tr1d = geompy.MakeMultiTranslation1D(prism, - vtr1d, 20, 4)

    - -

     

    - -

    # consequently apply two specified translations to the object a given - number of times

    - -

    tr2d = geompy.MakeMultiTranslation2D(prism, - vtr1d, 20, 4, vtr2d, 80, 3)

    - -

     

    - -

    # add objects in the study

    - -

    id_prism = geompy.addToStudy(prism,"Prism")

    - -

    id_tr1d = geompy.addToStudy(tr1d,"Translation - 1D")

    - -

    id_tr2d = geompy.addToStudy(tr2d,"Translation - 2D")

    - -

     

    - -

    # display the prism and the results of fillet operation

    - -

    gg.createAndDisplayGO(id_prism)

    - -

    gg.setDisplayMode(id_prism,1)

    - -

    gg.createAndDisplayGO(id_tr1d)

    - -

    gg.setDisplayMode(id_tr1d,1)

    - -

    gg.createAndDisplayGO(id_tr2d)

    - -

    gg.setDisplayMode(id_tr2d,1) -

    - -

     

    - -

    Multi Rotation

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

     

    - -

    # create vertices and vectors

    - -

    p0  = - geompy.MakeVertex( 0.,  0., -  0.)

    - -

    px  = - geompy.MakeVertex(20.,  0., -  0.)

    - -

    py  = - geompy.MakeVertex( 0., 20.,  0.)

    - -

    pz  = - geompy.MakeVertex( 0.,  0., - 20.)

    - -

    pxyz = geompy.MakeVertex( - 50., 50., 10.)

    - -

    vz  = - geompy.MakeVector(p0, pz)

    - -

    vxy = geompy.MakeVector(px, - py)

    - -

    vrot1d = geompy.MakeVector(p0, - pxyz)

    - -

      

    - -

    # create an arc

    - -

    arc = geompy.MakeArc(py, - pz, px)

    - -

     

    - -

    # create a wire

    - -

    wire = geompy.MakeWire([vxy, - arc])

    - -

     

    - -

    # create a planar face

    - -

    face = geompy.MakeFace(wire, - 1)

    - -

     

    - -

    # create a prism

    - -

    prism = geompy.MakePrismVecH(face, - vz, 20.0)

    - -

     

    - -

    # rotate the given object around the given axis by the given angle a - given number of times

    - -

    rot1d = geompy.MultiRotate1D(prism, - vrot1d, 4)

    - -

     

    - -

    # rotate the given object around the given axis by the given angle a - given number of times

    - -

    # and multi-translate the result of each rotation

    - -

    rot2d = geompy.MultiRotate2D(prism, - vrot1d, 60, 4, 50, 5)

    - -

     

    - -

    # add objects in the study

    - -

    id_prism = geompy.addToStudy(prism,"Prism")

    - -

    id_rot1d = geompy.addToStudy(rot1d,"Rotation - 1D")

    - -

    id_rot2d = geompy.addToStudy(rot2d,"Rotation - 2D")

    - -

     

    - -

    # display the prism and the results of fillet operation

    - -

    gg.createAndDisplayGO(id_prism)

    - -

    gg.setDisplayMode(id_prism,1)

    - -

    gg.createAndDisplayGO(id_rot1d)

    - -

    gg.setDisplayMode(id_rot1d,1)

    - -

    gg.createAndDisplayGO(id_rot2d)

    - -

    gg.setDisplayMode(id_rot2d,1) -

    - -

     

    - -

    Fillet

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

    radius  = - 10.

    - -

    ShapeTypeEdge = geompy.ShapeType["EDGE"]

    - -

     

    - -

    # create vertices and vectors

    - -

    p0  = - geompy.MakeVertex(  0., -   0., -   0.)

    - -

    px  = - geompy.MakeVertex(100.,   0., -   0.)

    - -

    py  = - geompy.MakeVertex(  0., - 100.,   0.)

    - -

    pz  = - geompy.MakeVertex(  0., -   0., - 100.)

    - -

    vz  = - geompy.MakeVector(p0, pz)

    - -

    vxy = geompy.MakeVector(px, - py)

    - -

      

    - -

    # create an arc

    - -

    arc = geompy.MakeArc(py, - pz, px)

    - -

     

    - -

    # create a wire

    - -

    wire = geompy.MakeWire([vxy, - arc])

    - -

     

    - -

    # create a planar face

    - -

    face = geompy.MakeFace(wire, - 1)

    - -

     

    - -

    # create a prism

    - -

    prism = geompy.MakePrismVecH(face, - vz, 100.0)

    - -

     

    - -

    # get the list of IDs (IDList) for the fillet

    - -

    prism_edges = geompy.SubShapeAllSorted(prism, - ShapeTypeEdge)

    - -

    IDlist_e = []

    - -

    IDlist_e.append(geompy.GetSubShapeID(prism, - prism_edges[0]))

    - -

    IDlist_e.append(geompy.GetSubShapeID(prism, - prism_edges[1]))

    - -

    IDlist_e.append(geompy.GetSubShapeID(prism, - prism_edges[2]))

    - -

     

    - -

    # make a fillet on the specified edges of the given shape

    - -

    fillet = geompy.MakeFillet(prism, - radius, ShapeTypeEdge, IDlist_e)

    - -

     

    - -

    # make a fillet on all edges of the given shape

    - -

    filletall = geompy.MakeFilletAll(prism, - radius)

    - -

     

    - -

    # add objects in the study

    - -

    id_prism = geompy.addToStudy(prism,"Prism")

    - -

    id_fillet = geompy.addToStudy(fillet,"Fillet")

    - -

    id_filletall = geompy.addToStudy(filletall,"Fillet - all")

    - -

     

    - -

    # display the prism and the results of fillet operation

    - -

    gg.createAndDisplayGO(id_prism)

    - -

    gg.setDisplayMode(id_prism,1)

    - -

    gg.createAndDisplayGO(id_fillet)

    - -

    gg.setDisplayMode(id_fillet,1)

    - -

    gg.createAndDisplayGO(id_filletall)

    - -

    gg.setDisplayMode(id_filletall,1) -

    - -

     

    - -

    Chamfer

    - -

    import geompy

    - -

    import salome

    - -

    gg = salome.ImportComponentGUI("GEOM")

    - -

    d1 = 10.

    - -

    d2 = 10.

    - -

    ShapeTypeFace = geompy.ShapeType["FACE"]

    - -

     

    - -

    # create vertices and vectors

    - -

    p0  = - geompy.MakeVertex(  0., -   0., -   0.)

    - -

    px  = - geompy.MakeVertex(100.,   0., -   0.)

    - -

    py  = - geompy.MakeVertex(  0., - 100.,   0.)

    - -

    pz  = - geompy.MakeVertex(  0., -   0., - 100.)

    - -

    vz  = - geompy.MakeVector(p0, pz)

    - -

    vxy = geompy.MakeVector(px, - py)

    - -

      

    - -

    # create an arc

    - -

    arc = geompy.MakeArc(py, - pz, px)

    - -

     

    - -

    # create a wire

    - -

    wire = geompy.MakeWire([vxy, - arc])

    - -

     

    - -

    # create a planar face

    - -

    face = geompy.MakeFace(wire, - 1)

    - -

     

    - -

    # create a prism

    - -

    prism = geompy.MakePrismVecH(face, - vz, 100.0)

    - -

     

    - -

    # get the list of IDs (IDList) for the chamfer

    - -

    prism_faces = geompy.SubShapeAllSorted(prism, - ShapeTypeFace)

    - -

    f_ind_1 = geompy.GetSubShapeID(prism, - prism_faces[0])

    - -

    f_ind_2 = geompy.GetSubShapeID(prism, - prism_faces[1])

    - -

    IDlist_f = [f_ind_1, - f_ind_2]

    - -

     

    - -

    # perform a chamfer on the edges common to the specified faces

    - -

    chamfer_e = geompy.MakeChamferEdge(prism, - d1, d2, f_ind_1, f_ind_2)

    - -

     

    - -

    # perform a chamfer on all edges of the specified faces

    - -

    chamfer_f = geompy.MakeChamferFaces(prism, - d1, d2, IDlist_f)

    - -

    chamfer_f1 = geompy.MakeChamfer(prism, - d1, d2, ShapeTypeFace, IDlist_f)

    - -

     

    - -

    # perform a symmetric chamfer on all edges of the given shape

    - -

    chamfer_all = geompy.MakeChamferAll(prism, - d1)

    - -

     

    - -

    # add objects in the study

    - -

    id_prism = geompy.addToStudy(prism,"Prism")

    - -

    id_chamfer_e = geompy.addToStudy(chamfer_e,"Chamfer - edge")

    - -

    id_chamfer_f = geompy.addToStudy(chamfer_f,"Chamfer - faces")

    - -

    id_chamfer_f1 = geompy.addToStudy(chamfer_f1,"Chamfer - faces 1")

    - -

    id_chamfer_all = geompy.addToStudy(chamfer_all,"Chamfer - all")

    - -

     

    - -

    # display the prism and the results of chamfer operation

    - -

    gg.createAndDisplayGO(id_prism)

    - -

    gg.setDisplayMode(id_prism,1)

    - -

    gg.createAndDisplayGO(id_chamfer_e)

    - -

    gg.setDisplayMode(id_chamfer_e,1)

    - -

    gg.createAndDisplayGO(id_chamfer_f)

    - -

    gg.setDisplayMode(id_chamfer_f,1)

    - -

    gg.createAndDisplayGO(id_chamfer_f1)

    - -

    gg.setDisplayMode(id_chamfer_f1,1)

    - -

    gg.createAndDisplayGO(id_chamfer_all)

    - -

    gg.setDisplayMode(id_chamfer_all,1) -

    - -

     

    - -

     

    - - - - + + + + + +Transformation Operations + + + + + + + + + + + + +

    Transformation Operations

    + +

    Translation

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a vertex and a vector

    + +

    p1 = geompy.MakeVertex(10, + 40, 0)

    + +

    p2 = geompy.MakeVertex( + 0,  0, 50)

    + +

    p3 = geompy.MakeVertex(50, + 80, 0)

    + +

    v = geompy.MakeVector(p1, + p2)

    + +

    vt = geompy.MakeVector(p1, + p3)

    + +

     

    + +

    # create a cylinder

    + +

    height = 35

    + +

    radius1 = 20

    + +

    cylinder = geompy.MakeCylinder(p1, + v, radius1, height)

    + +

     

    + +

    # translate the given object along the vector, specified by its end + points

    + +

    # (all three functions produce the same result)

    + +

    translation1 = geompy.MakeTranslationTwoPoints(cylinder, + p1, p3)

    + +

    translation2 = geompy.MakeTranslation(cylinder, + 40, 40, 0)

    + +

    translation3 = geompy.MakeTranslationVector(cylinder, + vt)

    + +

     

    + +

    # add objects in the study

    + +

    id_cylinder = geompy.addToStudy(cylinder, + "Cylinder")

    + +

    id_translation1 = + geompy.addToStudy(translation1, "Translation1")

    + +

    id_translation2 = + geompy.addToStudy(translation2, "Translation2")

    + +

    id_translation3 = + geompy.addToStudy(translation3, "Translation3")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_cylinder)

    + +

    gg.setDisplayMode(id_cylinder,1)

    + +

    gg.createAndDisplayGO(id_translation1)

    + +

    gg.setDisplayMode(id_translation1,1)

    + +

    gg.createAndDisplayGO(id_translation2)

    + +

    gg.setDisplayMode(id_translation2,1)

    + +

    gg.createAndDisplayGO(id_translation3)

    + +

    gg.setDisplayMode(id_translation3,1) +

    + +

    Rotation

    + +

    import geompy

    + +

    import salome

    + +

    import math

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a vertex and a vector

    + +

    p1 = geompy.MakeVertex(10, 40,  0)

    +

    p2 = geompy.MakeVertex( 0,  0, 50)

    +

    p3 = geompy.MakeVertex(10, 50,-20)

    +

    p4 = geompy.MakeVertex(10, 50, 60)

    + +

    v = geompy.MakeVector(p1, p2)

    +

    vr = geompy.MakeVector(p3, p4)

    + +

     

    + +

    # create a cylinder

    + +

    height = 35

    +

    radius1 = 20

    + +

    cylinder = geompy.MakeCylinder(p1, v, radius1, height)

    + +

     

    + +

    # rotate the given object around the given axis by the given angle

    + +

    rotation1 = geompy.MakeRotation(cylinder, vr, math.pi)

    +

    rotation2 = geompy.MakeRotationThreePoints(cylinder, p4, p1, p2)

    + +

     

    + +

    # add objects in the study

    + +

    id_vr = geompy.addToStudy(vr, "Rotation 1 axis")

    +

    id_p4 = geompy.addToStudy(p4, "Rotation 2 center")

    +

    id_p1 = geompy.addToStudy(p1, "Rotation 2 point 1")

    +

    id_p2 = geompy.addToStudy(p2, "Rotation 2 point 2")

    +

    id_cylinder = geompy.addToStudy(cylinder, "Cylinder")

    +

    id_rotation1 = geompy.addToStudy(rotation1, "Rotation 1")

    +

    id_rotation2 = geompy.addToStudy(rotation2, "Rotation 2")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_vr)

    +

    gg.createAndDisplayGO(id_p4)

    +

    gg.createAndDisplayGO(id_p1)

    +

    gg.createAndDisplayGO(id_p2)

    +

    gg.createAndDisplayGO(id_cylinder)

    +

    gg.setDisplayMode(id_cylinder,1)

    +

    gg.createAndDisplayGO(id_rotation1)

    +

    gg.createAndDisplayGO(id_rotation2)

    +

    gg.setDisplayMode(id_rotation1,1)

    +

    gg.setDisplayMode(id_rotation2,1)

    + +

     

    + +

    Modify Location

    + +

    import geompy

    + +

    import salome

    + +

    import math

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a vertex and a vector

    + +

    p1 = geompy.MakeVertex(10, + 40, 0)

    + +

    p2 = geompy.MakeVertex( + 0,  0, 50)

    + +

    v = geompy.MakeVector(p1, + p2)

    + +

     

    + +

    # create a cylinder

    + +

    height = 35

    + +

    radius1 = 20

    + +

    cylinder = geompy.MakeCylinder(p1, + v, radius1, height)

    + +

     

    + +

    # create local coordinate systems

    + +

    cs1 = geompy.MakeMarker( + 0, 0, 0, 1,0,0, 0,1,0)

    + +

    cs2 = geompy.MakeMarker(30,40,40, + 1,0,0, 0,1,0)

    + +

     

    + +

    # modify the location of the given object

    + +

    position = geompy.MakePosition(cylinder, + cs1, cs2)

    + +

     

    + +

    # add objects in the study

    + +

    id_cs1 = geompy.addToStudy(cs1, + "Coordinate system 1")

    + +

    id_cs2 = geompy.addToStudy(cs2, + "Coordinate system 2")

    + +

    id_cylinder = geompy.addToStudy(cylinder, + "Cylinder")

    + +

    id_position = geompy.addToStudy(position, + "Position")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_cylinder)

    + +

    gg.setDisplayMode(id_cylinder,1)

    + +

    gg.createAndDisplayGO(id_position)

    + +

    gg.setDisplayMode(id_position,1) +

    + +

     

    + +

    Mirror Image

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a box

    + +

    box = geompy.MakeBoxDXDYDZ(200, + 200, 200)

    + +

     

    + +

    # create an object, symmetrical to another object through the given + plane

    + +

    p1 = geompy.MakeVertex( + 0, 25,  0)

    + +

    p2 = geompy.MakeVertex( + 5, 25,  0)

    + +

    p3 = geompy.MakeVertex( + 0,-30, 40)

    + +

    plane = geompy.MakePlaneThreePnt(p1, + p2, p3, 1000.)

    + +

    mirror1 = geompy.MakeMirrorByPlane(box, + plane)

    + +

     

    + +

    # create an object, symmetrical to another object through the given + axis

    + +

    p4 = geompy.MakeVertex( + 210, 210, -20)

    + +

    p5 = geompy.MakeVertex( + 210, 210, 220)

    + +

    axis = geompy.MakeVector(p4, + p5)

    + +

    mirror2 = geompy.MakeMirrorByAxis(box, + axis)

    + +

     

    + +

    # create an object, symmetrical to another object through the given + point

    + +

    mirror3 = geompy.MakeMirrorByPoint(box, + p4)

    + +

     

    + +

    # add objects in the study

    + +

    id_box = geompy.addToStudy(box, + "Box")

    + +

    id_plane = geompy.addToStudy(plane, + "Plane")

    + +

    id_mirror1 = geompy.addToStudy(mirror1, + "Mirror plane")

    + +

    id_axis = geompy.addToStudy(axis, + "Axis")

    + +

    id_mirror2 = geompy.addToStudy(mirror2, + "Mirror axis")

    + +

    id_p4 = geompy.addToStudy(p4, + "Point")

    + +

    id_mirror3 = geompy.addToStudy(mirror3, + "Mirror point")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_box)

    + +

    gg.setDisplayMode(id_box,1)

    + +

    gg.createAndDisplayGO(id_plane)

    + +

    gg.createAndDisplayGO(id_mirror1)

    + +

    gg.setDisplayMode(id_mirror1,1)

    + +

    gg.createAndDisplayGO(id_axis)

    + +

    gg.createAndDisplayGO(id_mirror2)

    + +

    gg.setDisplayMode(id_mirror2,1)

    + +

    gg.createAndDisplayGO(id_p4)

    + +

    gg.createAndDisplayGO(id_mirror3)

    + +

    gg.setDisplayMode(id_mirror3,1) +

    + +

     

    + +

    Scale Transform

    + +

    import geompy

    + +

    import salome

    + +

     

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a box and a + sphere

    + +

    box = geompy.MakeBoxDXDYDZ(200, + 200, 200)

    + +

     

    + +

    # scale the given object + by the factor

    + +

    p0 = geompy.MakeVertex(100, + 100, 100)

    + +

    factor = 0.5

    + +

    scale = geompy.MakeScaleTransform(box, + p0, factor)

    + +

     

    + +

    # add objects in the + study

    + +

    id_box = geompy.addToStudy(box, + "Box")

    + +

    id_scale = geompy.addToStudy(scale, + "Scale")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_box)

    + +

    gg.setDisplayMode(id_box,1)

    + +

    gg.setTransparency(id_box,0.5)

    + +

    gg.createAndDisplayGO(id_scale)

    + +

    gg.setDisplayMode(id_scale,1) +

    + +

     

    + +

    Offset Surface

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create a box and a sphere

    + +

    box = geompy.MakeBox(20, + 20, 20, 200, 200, 200)

    + +

     

    + +

    # create a new object as offset of the given object

    + +

    offset = geompy.MakeOffset(box, + 70.)

    + +

     

    + +

    # add objects in the study

    + +

    id_box = geompy.addToStudy(box, + "Box")

    + +

    id_offset = geompy.addToStudy(offset, + "Offset")

    + +

     

    + +

    # display the results

    + +

    gg.createAndDisplayGO(id_box)

    + +

    gg.setDisplayMode(id_box,1)

    + +

    gg.createAndDisplayGO(id_offset) +

    + +

     

    + +

    Multi Translation

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create vertices and vectors

    + +

    p0  = + geompy.MakeVertex( 0.,  0., +  0.)

    + +

    px  = + geompy.MakeVertex(20.,  0., +  0.)

    + +

    py  = + geompy.MakeVertex( 0., 20.,  0.)

    + +

    pz  = + geompy.MakeVertex( 0.,  0., + 20.)

    + +

    pxy = geompy.MakeVertex( + 50., 0., 0.)

    + +

    pxyz = geompy.MakeVertex( + 50., 50., 50.)

    + +

    vz  = + geompy.MakeVector(p0, pz)

    + +

    vxy = geompy.MakeVector(px, + py)

    + +

    vtr1d = geompy.MakeVector(p0, + pxyz)

    + +

    vtr2d = geompy.MakeVector(p0, + pxy)

    + +

      

    + +

    # create an arc

    + +

    arc = geompy.MakeArc(py, + pz, px)

    + +

     

    + +

    # create a wire

    + +

    wire = geompy.MakeWire([vxy, + arc])

    + +

     

    + +

    # create a planar face

    + +

    face = geompy.MakeFace(wire, + 1)

    + +

     

    + +

    # create a prism

    + +

    prism = geompy.MakePrismVecH(face, + vz, 20.0)

    + +

     

    + +

    # translate the given object along the given vector a given number of + times

    + +

    tr1d = geompy.MakeMultiTranslation1D(prism, + vtr1d, 20, 4)

    + +

     

    + +

    # consequently apply two specified translations to the object a given + number of times

    + +

    tr2d = geompy.MakeMultiTranslation2D(prism, + vtr1d, 20, 4, vtr2d, 80, 3)

    + +

     

    + +

    # add objects in the study

    + +

    id_prism = geompy.addToStudy(prism,"Prism")

    + +

    id_tr1d = geompy.addToStudy(tr1d,"Translation + 1D")

    + +

    id_tr2d = geompy.addToStudy(tr2d,"Translation + 2D")

    + +

     

    + +

    # display the prism and the results of fillet operation

    + +

    gg.createAndDisplayGO(id_prism)

    + +

    gg.setDisplayMode(id_prism,1)

    + +

    gg.createAndDisplayGO(id_tr1d)

    + +

    gg.setDisplayMode(id_tr1d,1)

    + +

    gg.createAndDisplayGO(id_tr2d)

    + +

    gg.setDisplayMode(id_tr2d,1) +

    + +

     

    + +

    Multi Rotation

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

     

    + +

    # create vertices and vectors

    + +

    p0  = + geompy.MakeVertex( 0.,  0., +  0.)

    + +

    px  = + geompy.MakeVertex(20.,  0., +  0.)

    + +

    py  = + geompy.MakeVertex( 0., 20.,  0.)

    + +

    pz  = + geompy.MakeVertex( 0.,  0., + 20.)

    + +

    pxyz = geompy.MakeVertex( + 50., 50., 10.)

    + +

    vz  = + geompy.MakeVector(p0, pz)

    + +

    vxy = geompy.MakeVector(px, + py)

    + +

    vrot1d = geompy.MakeVector(p0, + pxyz)

    + +

      

    + +

    # create an arc

    + +

    arc = geompy.MakeArc(py, + pz, px)

    + +

     

    + +

    # create a wire

    + +

    wire = geompy.MakeWire([vxy, + arc])

    + +

     

    + +

    # create a planar face

    + +

    face = geompy.MakeFace(wire, + 1)

    + +

     

    + +

    # create a prism

    + +

    prism = geompy.MakePrismVecH(face, + vz, 20.0)

    + +

     

    + +

    # rotate the given object around the given axis by the given angle a + given number of times

    + +

    rot1d = geompy.MultiRotate1D(prism, + vrot1d, 4)

    + +

     

    + +

    # rotate the given object around the given axis by the given angle a + given number of times

    + +

    # and multi-translate the result of each rotation

    + +

    rot2d = geompy.MultiRotate2D(prism, + vrot1d, 60, 4, 50, 5)

    + +

     

    + +

    # add objects in the study

    + +

    id_prism = geompy.addToStudy(prism,"Prism")

    + +

    id_rot1d = geompy.addToStudy(rot1d,"Rotation + 1D")

    + +

    id_rot2d = geompy.addToStudy(rot2d,"Rotation + 2D")

    + +

     

    + +

    # display the prism and the results of fillet operation

    + +

    gg.createAndDisplayGO(id_prism)

    + +

    gg.setDisplayMode(id_prism,1)

    + +

    gg.createAndDisplayGO(id_rot1d)

    + +

    gg.setDisplayMode(id_rot1d,1)

    + +

    gg.createAndDisplayGO(id_rot2d)

    + +

    gg.setDisplayMode(id_rot2d,1) +

    + +

     

    + +

    Fillet

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

    radius  = + 10.

    + +

    ShapeTypeEdge = geompy.ShapeType["EDGE"]

    + +

     

    + +

    # create vertices and vectors

    + +

    p0  = + geompy.MakeVertex(  0., +   0., +   0.)

    + +

    px  = + geompy.MakeVertex(100.,   0., +   0.)

    + +

    py  = + geompy.MakeVertex(  0., + 100.,   0.)

    + +

    pz  = + geompy.MakeVertex(  0., +   0., + 100.)

    + +

    vz  = + geompy.MakeVector(p0, pz)

    + +

    vxy = geompy.MakeVector(px, + py)

    + +

      

    + +

    # create an arc

    + +

    arc = geompy.MakeArc(py, + pz, px)

    + +

     

    + +

    # create a wire

    + +

    wire = geompy.MakeWire([vxy, + arc])

    + +

     

    + +

    # create a planar face

    + +

    face = geompy.MakeFace(wire, + 1)

    + +

     

    + +

    # create a prism

    + +

    prism = geompy.MakePrismVecH(face, + vz, 100.0)

    + +

     

    + +

    # get the list of IDs (IDList) for the fillet

    + +

    prism_edges = geompy.SubShapeAllSorted(prism, + ShapeTypeEdge)

    + +

    IDlist_e = []

    + +

    IDlist_e.append(geompy.GetSubShapeID(prism, + prism_edges[0]))

    + +

    IDlist_e.append(geompy.GetSubShapeID(prism, + prism_edges[1]))

    + +

    IDlist_e.append(geompy.GetSubShapeID(prism, + prism_edges[2]))

    + +

     

    + +

    # make a fillet on the specified edges of the given shape

    + +

    fillet = geompy.MakeFillet(prism, + radius, ShapeTypeEdge, IDlist_e)

    + +

     

    + +

    # make a fillet on all edges of the given shape

    + +

    filletall = geompy.MakeFilletAll(prism, + radius)

    + +

     

    + +

    # add objects in the study

    + +

    id_prism = geompy.addToStudy(prism,"Prism")

    + +

    id_fillet = geompy.addToStudy(fillet,"Fillet")

    + +

    id_filletall = geompy.addToStudy(filletall,"Fillet + all")

    + +

     

    + +

    # display the prism and the results of fillet operation

    + +

    gg.createAndDisplayGO(id_prism)

    + +

    gg.setDisplayMode(id_prism,1)

    + +

    gg.createAndDisplayGO(id_fillet)

    + +

    gg.setDisplayMode(id_fillet,1)

    + +

    gg.createAndDisplayGO(id_filletall)

    + +

    gg.setDisplayMode(id_filletall,1) +

    + +

     

    + +

    Chamfer

    + +

    import geompy

    + +

    import salome

    + +

    gg = salome.ImportComponentGUI("GEOM")

    + +

    d1 = 10.

    + +

    d2 = 10.

    + +

    ShapeTypeFace = geompy.ShapeType["FACE"]

    + +

     

    + +

    # create vertices and vectors

    + +

    p0  = + geompy.MakeVertex(  0., +   0., +   0.)

    + +

    px  = + geompy.MakeVertex(100.,   0., +   0.)

    + +

    py  = + geompy.MakeVertex(  0., + 100.,   0.)

    + +

    pz  = + geompy.MakeVertex(  0., +   0., + 100.)

    + +

    vz  = + geompy.MakeVector(p0, pz)

    + +

    vxy = geompy.MakeVector(px, + py)

    + +

      

    + +

    # create an arc

    + +

    arc = geompy.MakeArc(py, + pz, px)

    + +

     

    + +

    # create a wire

    + +

    wire = geompy.MakeWire([vxy, + arc])

    + +

     

    + +

    # create a planar face

    + +

    face = geompy.MakeFace(wire, + 1)

    + +

     

    + +

    # create a prism

    + +

    prism = geompy.MakePrismVecH(face, + vz, 100.0)

    + +

     

    + +

    # get the list of IDs (IDList) for the chamfer

    + +

    prism_faces = geompy.SubShapeAllSorted(prism, + ShapeTypeFace)

    + +

    f_ind_1 = geompy.GetSubShapeID(prism, + prism_faces[0])

    + +

    f_ind_2 = geompy.GetSubShapeID(prism, + prism_faces[1])

    + +

    IDlist_f = [f_ind_1, + f_ind_2]

    + +

     

    + +

    # perform a chamfer on the edges common to the specified faces

    + +

    chamfer_e = geompy.MakeChamferEdge(prism, + d1, d2, f_ind_1, f_ind_2)

    + +

     

    + +

    # perform a chamfer on all edges of the specified faces

    + +

    chamfer_f = geompy.MakeChamferFaces(prism, + d1, d2, IDlist_f)

    + +

    chamfer_f1 = geompy.MakeChamfer(prism, + d1, d2, ShapeTypeFace, IDlist_f)

    + +

     

    + +

    # perform a symmetric chamfer on all edges of the given shape

    + +

    chamfer_all = geompy.MakeChamferAll(prism, + d1)

    + +

     

    + +

    # add objects in the study

    + +

    id_prism = geompy.addToStudy(prism,"Prism")

    + +

    id_chamfer_e = geompy.addToStudy(chamfer_e,"Chamfer + edge")

    + +

    id_chamfer_f = geompy.addToStudy(chamfer_f,"Chamfer + faces")

    + +

    id_chamfer_f1 = geompy.addToStudy(chamfer_f1,"Chamfer + faces 1")

    + +

    id_chamfer_all = geompy.addToStudy(chamfer_all,"Chamfer + all")

    + +

     

    + +

    # display the prism and the results of chamfer operation

    + +

    gg.createAndDisplayGO(id_prism)

    + +

    gg.setDisplayMode(id_prism,1)

    + +

    gg.createAndDisplayGO(id_chamfer_e)

    + +

    gg.setDisplayMode(id_chamfer_e,1)

    + +

    gg.createAndDisplayGO(id_chamfer_f)

    + +

    gg.setDisplayMode(id_chamfer_f,1)

    + +

    gg.createAndDisplayGO(id_chamfer_f1)

    + +

    gg.setDisplayMode(id_chamfer_f1,1)

    + +

    gg.createAndDisplayGO(id_chamfer_all)

    + +

    gg.setDisplayMode(id_chamfer_all,1) +

    + +

     

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/translation.htm b/doc/salome/gui/GEOM/translation.htm index fcc9e7126..8ab26d96a 100755 --- a/doc/salome/gui/GEOM/translation.htm +++ b/doc/salome/gui/GEOM/translation.htm @@ -1,192 +1,192 @@ - - - - - -Translation - - - - - - - - - - - - - -

    Translation

    - -

    To produce - a Translation in the Main Menu - select Operations - > Transformation - - > Translation

    - -

     

    - -

    This Operation makes a translation of an Object. To translate a shape you need - to define the base shape and the coordinates of the vector of translation. - Create a copy checkbox allows - to keep the initial object, otherwise it will be removed.

    - -

    The - Result of all operations will be any - GEOM_Object.

    - -

     

    - -

    Firstly you can define an Object - and the vector coordinates along the axes.

    - -

    TUI Command: - geompy.MakeTranslation(Shape, DX, - DY, DZ), where Shape is a shape to be translated, DX, DY, DZ are - components of translation vector.

    - -

    Arguments: - Name + 1 shape + 3 values (coordinates).

    - -

     

    - -

    - -

     

    - -

    Secondly you can define an Object - and the start and the end points of the vector  

    - -

    TUI Command: - geompy.MakeTranslationTwoPoints(Object, - Point1, Point2)

    - -

    Arguments: - Name + 1 shape + 2 vertices

    - -

     

    - -

    - -

     

    - -

    Finally you can define an Object and - the vector  

    - -

    TUI Command: - geompy.MakeTranslationVector(Object, Vector)

    - -

    Arguments: - Name + 1 shape + 1 vector.

    - -

     

    - -

    - -

        

    - -

     

    - -

    Example:

    - -

     

    - -

     

    - -

     

    - -

      Our TUI Scripts - provide you with useful examples of the use of Transformation - Operations.

    - -

     

    - - - - + + + + + +Translation + + + + + + + + + + + + + +

    Translation

    + +

    To produce + a Translation in the Main Menu + select Operations - > Transformation + - > Translation

    + +

     

    + +

    This Operation makes a translation of an Object. To translate a shape you need + to define the base shape and the coordinates of the vector of translation. + Create a copy checkbox allows + to keep the initial object, otherwise it will be removed.

    + +

    The + Result of all operations will be any + GEOM_Object.

    + +

     

    + +

    Firstly you can define an Object + and the vector coordinates along the axes.

    + +

    TUI Command: + geompy.MakeTranslation(Shape, DX, + DY, DZ), where Shape is a shape to be translated, DX, DY, DZ are + components of translation vector.

    + +

    Arguments: + Name + 1 shape + 3 values (coordinates).

    + +

     

    + +

    + +

     

    + +

    Secondly you can define an Object + and the start and the end points of the vector  

    + +

    TUI Command: + geompy.MakeTranslationTwoPoints(Object, + Point1, Point2)

    + +

    Arguments: + Name + 1 shape + 2 vertices

    + +

     

    + +

    + +

     

    + +

    Finally you can define an Object and + the vector  

    + +

    TUI Command: + geompy.MakeTranslationVector(Object, Vector)

    + +

    Arguments: + Name + 1 shape + 1 vector.

    + +

     

    + +

    + +

        

    + +

     

    + +

    Example:

    + +

     

    + +

     

    + +

     

    + +

      Our TUI Scripts + provide you with useful examples of the use of Transformation + Operations.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/transparency.htm b/doc/salome/gui/GEOM/transparency.htm index 719dfaccc..9c9c05cab 100755 --- a/doc/salome/gui/GEOM/transparency.htm +++ b/doc/salome/gui/GEOM/transparency.htm @@ -1,126 +1,126 @@ - - - - - -Transparency - - - - - - - - - - - - -

    Transparency

    - -

    You can change the transparency - of a shape in the range between 0 (absolutely opaque) and 1 (absolutely - transparent and thus invisible) in the following dialog box.

    - -

     

    - -

    - -

     

    - -

    or - using a TUI Command: gg.setTransparency(ID, Double)

    - -

     

    - -

    Examples:

    - -

     

    - -

    Opaque                                                                                         50% - Transparent

    - -

     

    - -

      

    - -

    Our TUI Scripts - provide you with useful examples of Changing - Display Parameters.

    - -

     

    - - - - + + + + + +Transparency + + + + + + + + + + + + +

    Transparency

    + +

    You can change the transparency + of a shape in the range between 0 (absolutely opaque) and 1 (absolutely + transparent and thus invisible) in the following dialog box.

    + +

     

    + +

    + +

     

    + +

    or + using a TUI Command: gg.setTransparency(ID, Double)

    + +

     

    + +

    Examples:

    + +

     

    + +

    Opaque                                                                                         50% + Transparent

    + +

     

    + +

      

    + +

    Our TUI Scripts + provide you with useful examples of Changing + Display Parameters.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/turus.htm b/doc/salome/gui/GEOM/turus.htm index ca89dab00..62b81e72d 100755 --- a/doc/salome/gui/GEOM/turus.htm +++ b/doc/salome/gui/GEOM/turus.htm @@ -1,151 +1,151 @@ - - - - - -Turus - - - - - - - - - - - - -

    Torus

    - -

    To create a Torus - in the Main Menu select New Entity - > Primitives - > Torus

    - -

     

    - -

    There are two algorithms for creation of a Torus. -

    - -

    The - Result of each operation will be a - GEOM_Object (SOLID).

    - -

     

    - -

    Firstly, you can define a Torus - by the given Base Point, the normal - Vector and the Major and Minor - Radiuses.

    - -

    TUI Command: geompy.MakeTorus(Point, - Vector, RadiusMajor, RadiusMinor) ,

    - -

    Arguments: - Name + 1 vertex - + 1 vector (for direction) + 2 values (1 & 2 Radius).

    - -

    - -

     

    - -

    Secondly, you can define a Torus with the center at the origin of coordinates - by its Major and Minor Radiuses. -

    - -

    TUI Command: geompy.MakeTorusRR(RadiusMajor, - RadiusMinor)

    - -

    Arguments: - Name + 2 values (1 & 2 Radius from the origin).

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

    - -

     

    - -

    Our TUI Scripts provide you with useful examples - of creation of Primitives.

    - -

     

    - - - - + + + + + +Turus + + + + + + + + + + + + +

    Torus

    + +

    To create a Torus + in the Main Menu select New Entity - > Primitives - > Torus

    + +

     

    + +

    There are two algorithms for creation of a Torus. +

    + +

    The + Result of each operation will be a + GEOM_Object (SOLID).

    + +

     

    + +

    Firstly, you can define a Torus + by the given Base Point, the normal + Vector and the Major and Minor + Radiuses.

    + +

    TUI Command: geompy.MakeTorus(Point, + Vector, RadiusMajor, RadiusMinor) ,

    + +

    Arguments: + Name + 1 vertex + + 1 vector (for direction) + 2 values (1 & 2 Radius).

    + +

    + +

     

    + +

    Secondly, you can define a Torus with the center at the origin of coordinates + by its Major and Minor Radiuses. +

    + +

    TUI Command: geompy.MakeTorusRR(RadiusMajor, + RadiusMinor)

    + +

    Arguments: + Name + 2 values (1 & 2 Radius from the origin).

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

    + +

     

    + +

    Our TUI Scripts provide you with useful examples + of creation of Primitives.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/vector.htm b/doc/salome/gui/GEOM/vector.htm index b72725e63..e6ab39507 100755 --- a/doc/salome/gui/GEOM/vector.htm +++ b/doc/salome/gui/GEOM/vector.htm @@ -1,157 +1,157 @@ - - - - - -Vector - - - - - - - - - - - - -

    Vector

    - -

    To - create a Vector in the Main - Menu select New Entity - > - Basic - > Vector

    - -

     

    - -

    There - are 2 algorithms to create a Vector in - the 3D space.

    - -

    The - Result of each operation will be a - GEOM_Object (edge).

    - -

     

    - -

    Firstly, - you can define a Vector by its - Start and End Points

    - -

    TUI Command:  geompy.MakeVector(Point1, - Point2)

    - -

    Arguments - : Name + 2 vertices.

    - -

     

    - -

    - -

     

    - -

    Secondly, you can define a Vector - starting in the Origin of coordinates - by its End Point.

    - -

    TUI Command: -  geompy.MakeVectorDXDYDZ(DX, - DY, DZ)

    - -

    Arguments - : Name + 3 values

    - -

     

    - -

    - -

     

    - -

    - -

     

    - -

    Our TUI Scripts provide you with useful examples - of creation of Basic - Geometric Objects.

    - -

     

    - - - - + + + + + +Vector + + + + + + + + + + + + +

    Vector

    + +

    To + create a Vector in the Main + Menu select New Entity - > + Basic - > Vector

    + +

     

    + +

    There + are 2 algorithms to create a Vector in + the 3D space.

    + +

    The + Result of each operation will be a + GEOM_Object (edge).

    + +

     

    + +

    Firstly, + you can define a Vector by its + Start and End Points

    + +

    TUI Command:  geompy.MakeVector(Point1, + Point2)

    + +

    Arguments + : Name + 2 vertices.

    + +

     

    + +

    + +

     

    + +

    Secondly, you can define a Vector + starting in the Origin of coordinates + by its End Point.

    + +

    TUI Command: +  geompy.MakeVectorDXDYDZ(DX, + DY, DZ)

    + +

    Arguments + : Name + 3 values

    + +

     

    + +

    + +

     

    + +

    + +

     

    + +

    Our TUI Scripts provide you with useful examples + of creation of Basic + Geometric Objects.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/viewing_geometrical_objects.htm b/doc/salome/gui/GEOM/viewing_geometrical_objects.htm index b3f734767..48d640c53 100755 --- a/doc/salome/gui/GEOM/viewing_geometrical_objects.htm +++ b/doc/salome/gui/GEOM/viewing_geometrical_objects.htm @@ -1,155 +1,155 @@ - - - - - -Viewing Geometrical Objects - - - - - - - - - - - - -

    Viewing Geometrical Objects

    - -

    Newly created geometrical objects are automatically displayed in the - OCC 3D Viewer. -

    - -

     

    - -

    After the object has appeared in the Viewer, you can select it with - left mouse click to change its presentation parameters and access to other - useful options by right-clicking on the selected object.

    - -

     

    - -

    - -

     

    - -
      - -
    • Rename - allows - to change the name of the geometric object. -

    • - -
    • Display - Mode - allows to select between - Wireframe and Shading presentation.

    • - -
    • Color - - allows to change the filling color in the standard - Select Color menu.

    • - -
    • Transparency - allows to change the - transparency of mesh elements.

    • - -
    • Isos - - allows to change the number of isolines - displayed within a shape.

    • - -
    • Erase - allows to hide the selected mesh from the - viewer. TUI Command : sg.EraseOnly(ID)

    • - -
    • Erase all  - - allows to hide all objects from the viewer. TUI Command: sg.EraseAll()

    • - -
    • Display Only -allows to display only the selected - mesh, hiding all other from the viewer. TUI Command: sg.DisplayOnly(ID)

    • - -
    • Update - - refreshes the presentation of your mesh in the Object Browser, applying - all recent changes.

    • - -
    • Dump view - - exports an object from the viewer in bmp, png, jpg or jpeg image format. -

    • - -
    • Change background - - allows to redefine the background color. By default it is black.  

    • -
    - -

     

    - - - - + + + + + +Viewing Geometrical Objects + + + + + + + + + + + + +

    Viewing Geometrical Objects

    + +

    Newly created geometrical objects are automatically displayed in the + OCC 3D Viewer. +

    + +

     

    + +

    After the object has appeared in the Viewer, you can select it with + left mouse click to change its presentation parameters and access to other + useful options by right-clicking on the selected object.

    + +

     

    + +

    + +

     

    + +
      + +
    • Rename - allows + to change the name of the geometric object. +

    • + +
    • Display + Mode - allows to select between + Wireframe and Shading presentation.

    • + +
    • Color + - allows to change the filling color in the standard + Select Color menu.

    • + +
    • Transparency - allows to change the + transparency of mesh elements.

    • + +
    • Isos + - allows to change the number of isolines + displayed within a shape.

    • + +
    • Erase - allows to hide the selected mesh from the + viewer. TUI Command : sg.EraseOnly(ID)

    • + +
    • Erase all  - + allows to hide all objects from the viewer. TUI Command: sg.EraseAll()

    • + +
    • Display Only -allows to display only the selected + mesh, hiding all other from the viewer. TUI Command: sg.DisplayOnly(ID)

    • + +
    • Update + - refreshes the presentation of your mesh in the Object Browser, applying + all recent changes.

    • + +
    • Dump view + - exports an object from the viewer in bmp, png, jpg or jpeg image format. +

    • + +
    • Change background + - allows to redefine the background color. By default it is black.  

    • +
    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/webhelp.jar b/doc/salome/gui/GEOM/webhelp.jar index 53b2666365f925aa3d03937608babf0aef95f661..1d1697e7646e8c22cada468b8813c461258493fa 100755 GIT binary patch delta 23 fcmex5i{tYwj)pCai4xnBBp5#)-5zp}QBfZNfz=89 delta 27 gcmex7i{tAoj)pCai4u&w+kwQ#qd+?79;2c@0Guic761SM diff --git a/doc/salome/gui/GEOM/whcsh_home.htm b/doc/salome/gui/GEOM/whcsh_home.htm index 5a486ba28..bc99598c0 100755 --- a/doc/salome/gui/GEOM/whcsh_home.htm +++ b/doc/salome/gui/GEOM/whcsh_home.htm @@ -1,600 +1,600 @@ - - - - - - \ No newline at end of file + + + + + + diff --git a/doc/salome/gui/GEOM/whcshdata.htm b/doc/salome/gui/GEOM/whcshdata.htm index c0749929c..2f9ae70a0 100755 --- a/doc/salome/gui/GEOM/whcshdata.htm +++ b/doc/salome/gui/GEOM/whcshdata.htm @@ -1,87 +1,87 @@ - - -Geometry Module Reference Manual - - - - - - - - - - + + +Geometry Module Reference Manual + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whd_dpns.htm b/doc/salome/gui/GEOM/whd_dpns.htm index 1bca23603..3983ccbdd 100755 --- a/doc/salome/gui/GEOM/whd_dpns.htm +++ b/doc/salome/gui/GEOM/whd_dpns.htm @@ -1,43 +1,43 @@ - - -Navigator Pane - - - - - - - - - - - - - + + +Navigator Pane + + + + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whd_nvp10.htm b/doc/salome/gui/GEOM/whd_nvp10.htm index a57fe1e49..05b5f908c 100755 --- a/doc/salome/gui/GEOM/whd_nvp10.htm +++ b/doc/salome/gui/GEOM/whd_nvp10.htm @@ -1,15 +1,15 @@ - - -Navigation Pane - - - - - - - - - - - - + + +Navigation Pane + + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whd_nvp20.htm b/doc/salome/gui/GEOM/whd_nvp20.htm index c5754bc41..23c23dc4f 100755 --- a/doc/salome/gui/GEOM/whd_nvp20.htm +++ b/doc/salome/gui/GEOM/whd_nvp20.htm @@ -1,334 +1,334 @@ - - -navigation pane - - - - - - - - - - - - - - - - - + + +navigation pane + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whd_tabs.htm b/doc/salome/gui/GEOM/whd_tabs.htm index 1568f573d..e8c498c88 100755 --- a/doc/salome/gui/GEOM/whd_tabs.htm +++ b/doc/salome/gui/GEOM/whd_tabs.htm @@ -1,533 +1,533 @@ - - -WebHelp Tabs Frame in Navigation Pane - - - - - - - - - - + + +WebHelp Tabs Frame in Navigation Pane + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whd_topic.xml b/doc/salome/gui/GEOM/whd_topic.xml index a1b0320fb..b1946d757 100755 --- a/doc/salome/gui/GEOM/whd_topic.xml +++ b/doc/salome/gui/GEOM/whd_topic.xml @@ -1,85 +1,85 @@ - - - - - - - - - - -"]]> - - - - -"]]> - - - - -"; -OutputInTopicNavBarDataWebSearch.form();]]> - - - - - - - - - - -"]]> - - - + + + + + + + + + + +"]]> + + + + +"]]> + + + + +"; +OutputInTopicNavBarDataWebSearch.form();]]> + + + + + + + + + + +"]]> + + + diff --git a/doc/salome/gui/GEOM/whdata/whftdata.js b/doc/salome/gui/GEOM/whdata/whftdata.js index 071ae6fc7..addf26223 100755 --- a/doc/salome/gui/GEOM/whdata/whftdata.js +++ b/doc/salome/gui/GEOM/whdata/whftdata.js @@ -1,25 +1,25 @@ -// WebHelp 5.10.001 -var gTEA = new Array(); -function aTE(sTopicTitle, sTopicURL) -{ - var len = gTEA.length; - gTEA[len] = new topicEntry(sTopicTitle, sTopicURL); -} - -function topicEntry(sTopicTitle, sTopicURL) -{ - this.sTopicTitle = sTopicTitle; - this.sTopicURL = sTopicURL; -} - -function window_OnLoad() -{ - if (parent && parent != this) { - if (parent.putFtsTData) - { - parent.putFtsTData(gTEA); - } - } -} - +// WebHelp 5.10.001 +var gTEA = new Array(); +function aTE(sTopicTitle, sTopicURL) +{ + var len = gTEA.length; + gTEA[len] = new topicEntry(sTopicTitle, sTopicURL); +} + +function topicEntry(sTopicTitle, sTopicURL) +{ + this.sTopicTitle = sTopicTitle; + this.sTopicURL = sTopicURL; +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putFtsTData) + { + parent.putFtsTData(gTEA); + } + } +} + window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whftdata0.htm b/doc/salome/gui/GEOM/whdata/whftdata0.htm index 7ae43c529..acfb3af6b 100755 --- a/doc/salome/gui/GEOM/whdata/whftdata0.htm +++ b/doc/salome/gui/GEOM/whdata/whftdata0.htm @@ -1,102 +1,102 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whdata/whfts.htm b/doc/salome/gui/GEOM/whdata/whfts.htm index ce9d85c6f..292e30479 100755 --- a/doc/salome/gui/GEOM/whdata/whfts.htm +++ b/doc/salome/gui/GEOM/whdata/whfts.htm @@ -1,18 +1,18 @@ - - - - - - - - - - - \ No newline at end of file + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whdata/whfts.js b/doc/salome/gui/GEOM/whdata/whfts.js index 2b6678690..54246f693 100755 --- a/doc/salome/gui/GEOM/whdata/whfts.js +++ b/doc/salome/gui/GEOM/whdata/whfts.js @@ -1,40 +1,40 @@ -// WebHelp 5.10.001 -var gaFileMapping = new Array(); -var gaFileTopicMapping = new Array(); - -function fileMapping(sStartKey, sEndKey, sFileName) -{ - this.sStartKey = sStartKey; - this.sEndKey = sEndKey; - this.sFileName = sFileName; - this.aFtsKeys = null; -} - -function fileTopicMapping(nIdBegin, nIdEnd, sFileName) -{ - this.nBegin = nIdBegin; - this.nEnd = nIdEnd; - this.sFileName = sFileName; - this.aTopics = null; -} - - -function iWM(sStartKey, sEndKey, sFileName) -{ - gaFileMapping[gaFileMapping.length] = new fileMapping(sStartKey, sEndKey, sFileName); -} - -function window_OnLoad() -{ - if (parent && parent != this && parent.ftsReady) - { - parent.ftsReady(gaFileMapping, gaFileTopicMapping); - } -} - -function iTM(nIdBegin, nIdEnd, sFileName) -{ - gaFileTopicMapping[gaFileTopicMapping.length] = new fileTopicMapping(nIdBegin, nIdEnd, sFileName); -} - -window.onload = window_OnLoad; +// WebHelp 5.10.001 +var gaFileMapping = new Array(); +var gaFileTopicMapping = new Array(); + +function fileMapping(sStartKey, sEndKey, sFileName) +{ + this.sStartKey = sStartKey; + this.sEndKey = sEndKey; + this.sFileName = sFileName; + this.aFtsKeys = null; +} + +function fileTopicMapping(nIdBegin, nIdEnd, sFileName) +{ + this.nBegin = nIdBegin; + this.nEnd = nIdEnd; + this.sFileName = sFileName; + this.aTopics = null; +} + + +function iWM(sStartKey, sEndKey, sFileName) +{ + gaFileMapping[gaFileMapping.length] = new fileMapping(sStartKey, sEndKey, sFileName); +} + +function window_OnLoad() +{ + if (parent && parent != this && parent.ftsReady) + { + parent.ftsReady(gaFileMapping, gaFileTopicMapping); + } +} + +function iTM(nIdBegin, nIdEnd, sFileName) +{ + gaFileTopicMapping[gaFileTopicMapping.length] = new fileTopicMapping(nIdBegin, nIdEnd, sFileName); +} + +window.onload = window_OnLoad; diff --git a/doc/salome/gui/GEOM/whdata/whfwdata.js b/doc/salome/gui/GEOM/whdata/whfwdata.js index e9e8bc6c1..8340b59d5 100755 --- a/doc/salome/gui/GEOM/whdata/whfwdata.js +++ b/doc/salome/gui/GEOM/whdata/whfwdata.js @@ -1,37 +1,37 @@ -// WebHelp 5.10.001 -var gWEA = new Array(); -function aWE() -{ - var len = gWEA.length; - gWEA[len] = new ftsEntry(aWE.arguments); -} - -function ftsEntry(fn_arguments) -{ - if (fn_arguments.length && fn_arguments.length >= 1) - { - this.sItemName = fn_arguments[0]; - this.aTopics = null; - var nLen = fn_arguments.length; - if (nLen > 1) - { - this.aTopics = new Array(); - for (var i = 0; i < nLen - 1; i ++ ) - { - this.aTopics[i] = fn_arguments[i + 1]; - } - } - } -} - -function window_OnLoad() -{ - if (parent && parent != this) { - if (parent.putFtsWData) - { - parent.putFtsWData(gWEA); - } - } -} - +// WebHelp 5.10.001 +var gWEA = new Array(); +function aWE() +{ + var len = gWEA.length; + gWEA[len] = new ftsEntry(aWE.arguments); +} + +function ftsEntry(fn_arguments) +{ + if (fn_arguments.length && fn_arguments.length >= 1) + { + this.sItemName = fn_arguments[0]; + this.aTopics = null; + var nLen = fn_arguments.length; + if (nLen > 1) + { + this.aTopics = new Array(); + for (var i = 0; i < nLen - 1; i ++ ) + { + this.aTopics[i] = fn_arguments[i + 1]; + } + } + } +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putFtsWData) + { + parent.putFtsWData(gWEA); + } + } +} + window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whfwdata0.htm b/doc/salome/gui/GEOM/whdata/whfwdata0.htm index 115ca5607..f6c89c1ac 100755 --- a/doc/salome/gui/GEOM/whdata/whfwdata0.htm +++ b/doc/salome/gui/GEOM/whdata/whfwdata0.htm @@ -1,1367 +1,1367 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whdata/whgdata.js b/doc/salome/gui/GEOM/whdata/whgdata.js index 77e0107f3..e38a107b5 100755 --- a/doc/salome/gui/GEOM/whdata/whgdata.js +++ b/doc/salome/gui/GEOM/whdata/whgdata.js @@ -1,26 +1,26 @@ -// WebHelp 5.10.001 -var gIEA = new Array(); -function aGE(sName, sDef) -{ - var len = gIEA.length; - gIEA[len] = new gloEntry(sName, sDef); -} - -function gloEntry(sName, sDef) -{ - this.sName = sName; - this.sDef = sDef; - this.nNKOff = 0; -} - -function window_OnLoad() -{ - if (parent && parent != this) { - if (parent.putData) - { - parent.putData(gIEA); - } - } -} - +// WebHelp 5.10.001 +var gIEA = new Array(); +function aGE(sName, sDef) +{ + var len = gIEA.length; + gIEA[len] = new gloEntry(sName, sDef); +} + +function gloEntry(sName, sDef) +{ + this.sName = sName; + this.sDef = sDef; + this.nNKOff = 0; +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putData) + { + parent.putData(gIEA); + } + } +} + window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whgdata0.htm b/doc/salome/gui/GEOM/whdata/whgdata0.htm index 9d256b1a8..3865725f4 100755 --- a/doc/salome/gui/GEOM/whdata/whgdata0.htm +++ b/doc/salome/gui/GEOM/whdata/whgdata0.htm @@ -1,33 +1,33 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whdata/whglo.htm b/doc/salome/gui/GEOM/whdata/whglo.htm index dc5a67786..9d7ac79f1 100755 --- a/doc/salome/gui/GEOM/whdata/whglo.htm +++ b/doc/salome/gui/GEOM/whdata/whglo.htm @@ -1,16 +1,16 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whglo.js b/doc/salome/gui/GEOM/whdata/whglo.js index e0519afcb..c34fb24b2 100755 --- a/doc/salome/gui/GEOM/whdata/whglo.js +++ b/doc/salome/gui/GEOM/whdata/whglo.js @@ -1,34 +1,34 @@ -// WebHelp 5.10.001 -var gaFileMapping = new Array(); -function fileMapping(sBK, sEK, sFileName, nNum) -{ - this.sBK = sBK; - this.sEK = sEK; - this.sFileName = sFileName; - this.aKs = null; - this.nNum = nNum; - this.oUsedItems = null; -} - - -function iFM(sBK, sEK, sFileName, nNum) -{ - var i = gaFileMapping.length; - gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum); - if (i == 0) { - gaFileMapping[i].nTotal = nNum; - } - else { - gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal; - } -} - -function window_OnLoad() -{ - if (parent && parent != this && parent.projReady) - { - parent.projReady(gaFileMapping); - } -} - -window.onload = window_OnLoad; +// WebHelp 5.10.001 +var gaFileMapping = new Array(); +function fileMapping(sBK, sEK, sFileName, nNum) +{ + this.sBK = sBK; + this.sEK = sEK; + this.sFileName = sFileName; + this.aKs = null; + this.nNum = nNum; + this.oUsedItems = null; +} + + +function iFM(sBK, sEK, sFileName, nNum) +{ + var i = gaFileMapping.length; + gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum); + if (i == 0) { + gaFileMapping[i].nTotal = nNum; + } + else { + gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal; + } +} + +function window_OnLoad() +{ + if (parent && parent != this && parent.projReady) + { + parent.projReady(gaFileMapping); + } +} + +window.onload = window_OnLoad; diff --git a/doc/salome/gui/GEOM/whdata/whidata.js b/doc/salome/gui/GEOM/whdata/whidata.js index 9f0eb15ed..a92184730 100755 --- a/doc/salome/gui/GEOM/whdata/whidata.js +++ b/doc/salome/gui/GEOM/whdata/whidata.js @@ -1,89 +1,89 @@ -// WebHelp 5.10.001 -// const strings -var gIEA = new Array(); -function aIE() -{ - var len = gIEA.length; - gIEA[len] = new indexEntry(aIE.arguments); -} - -function topic(sName, sURL) -{ - this.sName = sName; - this.sURL = sURL; -} - -function indexEntry(fn_arguments) -{ - if (fn_arguments.length && fn_arguments.length >= 3) - { - this.nType = fn_arguments[0]; - this.nPKOff = 0; - this.nNKOff = fn_arguments[1]; - this.sName = fn_arguments[2]; - this.aTopics = null; - var nLen = fn_arguments.length; - if (Math.floor(nLen / 2) * 2 == nLen) - { - this.sTarget = fn_arguments[3]; - if (nLen > 5) - { - this.aTopics = new Array(); - for (var i = 0; i < (nLen - 5)/2; i++) - { - this.aTopics[i] = new topic(fn_arguments[i * 2 + 4], fn_arguments[i * 2 + 5]); - } - } - - } - else - { - if (nLen > 4) - { - this.aTopics = new Array(); - for (var i = 0; i < (nLen - 4)/2; i++) - { - this.aTopics[i] = new topic(fn_arguments[i * 2 + 3], fn_arguments[i * 2 + 4]); - } - } - } - } -} - -function getIndexTopicMappingList(nItemIndex) -{ - var sTopics = ""; - if (gIEA.length > nItemIndex) - { - if (gIEA[nItemIndex].aTopics) - { - var i = 0; - var nLen = gIEA[nItemIndex].aTopics.length; - for (i = 0; i < nLen; i ++) - { - sTopics += "," + gIEA[nItemIndex].aTopics[i]; - } - } - } - return sTopics; -} - -function window_OnLoad() -{ - if (parent && parent != this) { - if (parent.putData) - { - for (var i = 0; i < gIEA.length; i ++ ) - { - if (gIEA[i].nNKOff != 0 && i + gIEA[i].nNKOff + 1 < gIEA.length) - { - - gIEA[i + gIEA[i].nNKOff + 1].nPKOff = gIEA[i].nNKOff; - } - } - parent.putData(gIEA); - } - } -} - +// WebHelp 5.10.001 +// const strings +var gIEA = new Array(); +function aIE() +{ + var len = gIEA.length; + gIEA[len] = new indexEntry(aIE.arguments); +} + +function topic(sName, sURL) +{ + this.sName = sName; + this.sURL = sURL; +} + +function indexEntry(fn_arguments) +{ + if (fn_arguments.length && fn_arguments.length >= 3) + { + this.nType = fn_arguments[0]; + this.nPKOff = 0; + this.nNKOff = fn_arguments[1]; + this.sName = fn_arguments[2]; + this.aTopics = null; + var nLen = fn_arguments.length; + if (Math.floor(nLen / 2) * 2 == nLen) + { + this.sTarget = fn_arguments[3]; + if (nLen > 5) + { + this.aTopics = new Array(); + for (var i = 0; i < (nLen - 5)/2; i++) + { + this.aTopics[i] = new topic(fn_arguments[i * 2 + 4], fn_arguments[i * 2 + 5]); + } + } + + } + else + { + if (nLen > 4) + { + this.aTopics = new Array(); + for (var i = 0; i < (nLen - 4)/2; i++) + { + this.aTopics[i] = new topic(fn_arguments[i * 2 + 3], fn_arguments[i * 2 + 4]); + } + } + } + } +} + +function getIndexTopicMappingList(nItemIndex) +{ + var sTopics = ""; + if (gIEA.length > nItemIndex) + { + if (gIEA[nItemIndex].aTopics) + { + var i = 0; + var nLen = gIEA[nItemIndex].aTopics.length; + for (i = 0; i < nLen; i ++) + { + sTopics += "," + gIEA[nItemIndex].aTopics[i]; + } + } + } + return sTopics; +} + +function window_OnLoad() +{ + if (parent && parent != this) { + if (parent.putData) + { + for (var i = 0; i < gIEA.length; i ++ ) + { + if (gIEA[i].nNKOff != 0 && i + gIEA[i].nNKOff + 1 < gIEA.length) + { + + gIEA[i + gIEA[i].nNKOff + 1].nPKOff = gIEA[i].nNKOff; + } + } + parent.putData(gIEA); + } + } +} + window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whidx.htm b/doc/salome/gui/GEOM/whdata/whidx.htm index 0a0deedd0..a049a96f9 100755 --- a/doc/salome/gui/GEOM/whdata/whidx.htm +++ b/doc/salome/gui/GEOM/whdata/whidx.htm @@ -1,15 +1,15 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whidx.js b/doc/salome/gui/GEOM/whdata/whidx.js index e0519afcb..c34fb24b2 100755 --- a/doc/salome/gui/GEOM/whdata/whidx.js +++ b/doc/salome/gui/GEOM/whdata/whidx.js @@ -1,34 +1,34 @@ -// WebHelp 5.10.001 -var gaFileMapping = new Array(); -function fileMapping(sBK, sEK, sFileName, nNum) -{ - this.sBK = sBK; - this.sEK = sEK; - this.sFileName = sFileName; - this.aKs = null; - this.nNum = nNum; - this.oUsedItems = null; -} - - -function iFM(sBK, sEK, sFileName, nNum) -{ - var i = gaFileMapping.length; - gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum); - if (i == 0) { - gaFileMapping[i].nTotal = nNum; - } - else { - gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal; - } -} - -function window_OnLoad() -{ - if (parent && parent != this && parent.projReady) - { - parent.projReady(gaFileMapping); - } -} - -window.onload = window_OnLoad; +// WebHelp 5.10.001 +var gaFileMapping = new Array(); +function fileMapping(sBK, sEK, sFileName, nNum) +{ + this.sBK = sBK; + this.sEK = sEK; + this.sFileName = sFileName; + this.aKs = null; + this.nNum = nNum; + this.oUsedItems = null; +} + + +function iFM(sBK, sEK, sFileName, nNum) +{ + var i = gaFileMapping.length; + gaFileMapping[i] = new fileMapping(sBK, sEK, sFileName, nNum); + if (i == 0) { + gaFileMapping[i].nTotal = nNum; + } + else { + gaFileMapping[i].nTotal = nNum + gaFileMapping[i - 1].nTotal; + } +} + +function window_OnLoad() +{ + if (parent && parent != this && parent.projReady) + { + parent.projReady(gaFileMapping); + } +} + +window.onload = window_OnLoad; diff --git a/doc/salome/gui/GEOM/whdata/whtdata.js b/doc/salome/gui/GEOM/whdata/whtdata.js index d5428a7de..0558e198c 100755 --- a/doc/salome/gui/GEOM/whdata/whtdata.js +++ b/doc/salome/gui/GEOM/whdata/whtdata.js @@ -1,64 +1,64 @@ -// WebHelp 5.10.001 -var gTEA = new Array(); -function aTE() -{ - gTEA[gTEA.length] = new tocEntry(aTE.arguments); -} - -function tocEntry(fn_arguments) -{ - if (fn_arguments.length < 3) - { - alert ("data format wrong!!!"); - return; - } - - this.nType = fn_arguments[0]; - this.nContents = fn_arguments[1]; - this.sItemName = fn_arguments[2]; - - if (this.nType == 1 || this.nType == 2 || this.nType == 16) - { - if (fn_arguments.length > 3) - { - this.sItemURL = fn_arguments[3]; - if (fn_arguments.length > 4) - { - this.sTarget = fn_arguments[4]; - if (fn_arguments.length > 5) - this.sIconRef = fn_arguments[5]; - } - } - } - if (this.nType == 4 || this.nType == 8) - { - if (fn_arguments.length > 3) - { - this.sRefURL = fn_arguments[3]; - if (this.nType == 4) - { - if(this.sRefURL.lastIndexOf("/")!=this.sRefURL.length-1) - this.sRefURL+="/"; - } - if (fn_arguments.length > 4) - { - this.sItemURL = fn_arguments[4]; - if (fn_arguments.length > 5) - { - this.sTarget = fn_arguments[5]; - if (fn_arguments.length > 6) - this.sIconRef = fn_arguments[6]; - } - } - } - } -} - - -function window_OnLoad() -{ - if (parent && parent != this && parent.putData) { - parent.putData(gTEA); - } -} +// WebHelp 5.10.001 +var gTEA = new Array(); +function aTE() +{ + gTEA[gTEA.length] = new tocEntry(aTE.arguments); +} + +function tocEntry(fn_arguments) +{ + if (fn_arguments.length < 3) + { + alert ("data format wrong!!!"); + return; + } + + this.nType = fn_arguments[0]; + this.nContents = fn_arguments[1]; + this.sItemName = fn_arguments[2]; + + if (this.nType == 1 || this.nType == 2 || this.nType == 16) + { + if (fn_arguments.length > 3) + { + this.sItemURL = fn_arguments[3]; + if (fn_arguments.length > 4) + { + this.sTarget = fn_arguments[4]; + if (fn_arguments.length > 5) + this.sIconRef = fn_arguments[5]; + } + } + } + if (this.nType == 4 || this.nType == 8) + { + if (fn_arguments.length > 3) + { + this.sRefURL = fn_arguments[3]; + if (this.nType == 4) + { + if(this.sRefURL.lastIndexOf("/")!=this.sRefURL.length-1) + this.sRefURL+="/"; + } + if (fn_arguments.length > 4) + { + this.sItemURL = fn_arguments[4]; + if (fn_arguments.length > 5) + { + this.sTarget = fn_arguments[5]; + if (fn_arguments.length > 6) + this.sIconRef = fn_arguments[6]; + } + } + } + } +} + + +function window_OnLoad() +{ + if (parent && parent != this && parent.putData) { + parent.putData(gTEA); + } +} window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whtdata0.htm b/doc/salome/gui/GEOM/whdata/whtdata0.htm index dec2df455..e4ae2b324 100755 --- a/doc/salome/gui/GEOM/whdata/whtdata0.htm +++ b/doc/salome/gui/GEOM/whdata/whtdata0.htm @@ -1,115 +1,115 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whdata/whtoc.htm b/doc/salome/gui/GEOM/whdata/whtoc.htm index 54e0cbf26..459c3e311 100755 --- a/doc/salome/gui/GEOM/whdata/whtoc.htm +++ b/doc/salome/gui/GEOM/whdata/whtoc.htm @@ -1,16 +1,16 @@ - - - - - - - - - - + + + + + + + + + + \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whdata/whtoc.js b/doc/salome/gui/GEOM/whdata/whtoc.js index 163d8cc9f..62de5a132 100755 --- a/doc/salome/gui/GEOM/whdata/whtoc.js +++ b/doc/salome/gui/GEOM/whdata/whtoc.js @@ -1,31 +1,31 @@ -// WebHelp 5.10.001 -// const strings -var gaProj = new Array(); -var gsRoot = ""; - -function setRoot(sRoot) -{ - gsRoot = sRoot -} - -function aPE(sProjPath, sRootPath) -{ - gaProj[gaProj.length] = new tocProjEntry(sProjPath, sRootPath); -} - -function tocProjEntry(sProjPath, sRootPath) -{ - if(sProjPath.lastIndexOf("/")!=sProjPath.length-1) - sProjPath+="/"; - this.sPPath = sProjPath; - this.sRPath = sRootPath; -} - - -function window_OnLoad() -{ - if (parent && parent != this && parent.projReady) { - parent.projReady(gsRoot, gaProj); - } -} +// WebHelp 5.10.001 +// const strings +var gaProj = new Array(); +var gsRoot = ""; + +function setRoot(sRoot) +{ + gsRoot = sRoot +} + +function aPE(sProjPath, sRootPath) +{ + gaProj[gaProj.length] = new tocProjEntry(sProjPath, sRootPath); +} + +function tocProjEntry(sProjPath, sRootPath) +{ + if(sProjPath.lastIndexOf("/")!=sProjPath.length-1) + sProjPath+="/"; + this.sPPath = sProjPath; + this.sRPath = sRootPath; +} + + +function window_OnLoad() +{ + if (parent && parent != this && parent.projReady) { + parent.projReady(gsRoot, gaProj); + } +} window.onload = window_OnLoad; \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whfbody.htm b/doc/salome/gui/GEOM/whfbody.htm index 5666e1b55..ea648e4b3 100755 --- a/doc/salome/gui/GEOM/whfbody.htm +++ b/doc/salome/gui/GEOM/whfbody.htm @@ -1,37 +1,37 @@ - - -Search Result - - - - - - - - - - - - - - - - - + + +Search Result + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whfdhtml.htm b/doc/salome/gui/GEOM/whfdhtml.htm index 37429607b..c2e65bea1 100755 --- a/doc/salome/gui/GEOM/whfdhtml.htm +++ b/doc/salome/gui/GEOM/whfdhtml.htm @@ -1,30 +1,30 @@ - - -Search Frame - - - - - - - - - + + +Search Frame + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whfform.htm b/doc/salome/gui/GEOM/whfform.htm index 87d754ec4..0f8f90ab6 100755 --- a/doc/salome/gui/GEOM/whfform.htm +++ b/doc/salome/gui/GEOM/whfform.htm @@ -1,136 +1,136 @@ - - -Search Form - - - - - - - - - - - - - - \ No newline at end of file + + +Search Form + + + + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whfhost.js b/doc/salome/gui/GEOM/whfhost.js index 167acc459..c3c7144fa 100755 --- a/doc/salome/gui/GEOM/whfhost.js +++ b/doc/salome/gui/GEOM/whfhost.js @@ -1,945 +1,945 @@ -// WebHelp 5.10.003 -var gsSK2=null; -var gsSK=null; -var gsFtsBreakChars="\t\r\n\"\\ .,!@#$%^&*()~'`:;<>?/{}[]|+-=\x85\x92\x93\x94\x95\x96\x97\x99\xA9\xAE\xB7"; -var gnCLF=0; -var gsHelpCannotSearch="Cannot search for that phrase."; -var gsNoTopics="No Topics Found."; -var gsLoadingDivID="LoadingDiv"; -var gsLoadingMsg="Loading data, please wait..."; -var gsSearchMsg="Searching..."; -var gsResultDivID="ResultDiv"; -var gaaFCD=new Array(); -var gaaFTCD=new Array(); -var goCF=null; -var goCTF=null; -var gaTI=null; -var gnCurrentOp=0; -var gbNot=false; -var gbReady=false; -var gnLoadFts=1; -var gnCacheLimits=5; -var gaCCD=new Array(); -var gbXML=false; -var gaData=new Array(); -var gsBgColor="#ffffff"; -var gsBgImage=""; -var gsMargin="0pt"; -var gsIndent="0pt"; -var gsCheckKey=null; -var gnIndexNum=0; -var gaFtsContentsCon=null; -var gaTopicCheckInfo=null; -var gnTopicCheck=0; -var goFont=null; -var goErrFont=null; -var goHoverFont=null; -var gsABgColor="#cccccc"; -var gbWhFHost=false; -var gbFirst=false; - -function setBackground(sBgImage) -{ - gsBgImage=sBgImage; -} - -function setBackgroundcolor(sBgColor) -{ - gsBgColor=sBgColor; -} - -function setFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration) -{ - var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration); - if(sType=="Normal") - goFont=vFont; - else if(sType=="Error") - goErrFont=vFont; - else if(sType=="Hover") - goHoverFont=vFont; -} - -function setActiveBgColor(sBgColor) -{ - gsABgColor=sBgColor; -} - -function setMargin(sMargin) -{ - gsMargin=sMargin; -} - -function setIndent(sIndent) -{ - gsIndent=sIndent; -} - -function updateCache(oCF) -{ - var len=gaCCD.length; - if(len0&&sURL) - { - var topic=new Object(); - topic.sTopicTitle=name; - topic.sTopicURL=sURL; - aTopics[aTopics.length]=topic; - } - } - oChild=oChild.nextSibling; - } - putFtsTData(aTopics); - } - } - else if(gnLoadFts==2) - { - var node=xmlDoc.lastChild; - if(node) - { - var oChild=node.firstChild; - var aFtsContents=new Array(); - while(oChild) - { - if(oChild.nodeName=="key") - { - var name=oChild.getAttribute("name"); - if(name&&name.length>0) - { - var item=new Object(); - item.sItemName=name; - aFtsContents[aFtsContents.length]=item; - var oChildChild=oChild.firstChild; - while(oChildChild) - { - if(oChildChild.nodeName=="#text") - { - var sIDs=oChildChild.nodeValue; - if(sIDs) - { - var nBPos=0; - do - { - var nPos=sIDs.indexOf(",",nBPos); - var sID=null; - if(nPos!=-1) - sID=sIDs.substring(nBPos,nPos); - else - sID=sIDs.substring(nBPos); - - if(sID) - { - var id=parseInt(sID); - if(!isNaN(id)) - { - if(!item.aTopics) - item.aTopics=new Array(); - item.aTopics[item.aTopics.length]=id; - } - } - nBPos=nPos+1; - }while(nBPos!=0&&nBPos0) - { - document.body.background=gsBgImage; - } - if(gsBgColor&&gsBgColor.length>0) - { - document.body.bgColor=gsBgColor; - } - writeResultDiv(); - loadFts(); - var oMsg=new whMessage(WH_MSG_SHOWFTS,this,1,null) - SendMessage(oMsg); -} - -function writeResultDiv() -{ - var sHTML="
    "; - document.body.insertAdjacentHTML("beforeEnd",sHTML); -} - -function loadFts() -{ - if(!gbReady) - { - var oResMsg=new whMessage(WH_MSG_GETPROJINFO,this,1,null); - if(SendMessage(oResMsg)&&oResMsg.oParam) - { - gbReady=true; - var oProj=oResMsg.oParam; - var aProj=oProj.aProj; - gbXML=oProj.bXML; - if(aProj.length>0) - { - var sLangId=aProj[0].sLangId; - for(var i=0;i=0)&&(gsFtsBreakChars.charAt(nSep)=="|"))){ - gnCurrentOp=0; - gbNot=false; - }else if((sCW=="and")||((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="&"))){ - gnCurrentOp=1; - gbNot=false; - }else if((sCW=="not")|| - ((nSep>=0)&&(gsFtsBreakChars.charAt(nSep)=="~"))){ - gbNot=!gbNot; - }else if(sCW!=""&&!IsStopWord(sCW,gaFtsStop)){ - var sCurrentStem=GetStem(sCW); - gsCW=sCurrentStem; - ftsFindKeyword(); - return; - } - findOneKey(); - } - else{ - displayTopics(); - checkAgain(); - } -} - -function checkAgain() -{ - gsCheckKey = ""; - gnIndexNum = 0; - gsSK=gsSK2; - gsSK2=null; - if(gsSK!=null) - setTimeout("findFTSKey();",1); -} - -function displayTopics() -{ - var sHTML=""; - var sLine=""; - for(var i=0;i"+_textToHtml(gaTI[i].sTopicTitle)+""; - if(i>>4<<4==i) - { - sHTML+=sLine; - sLine=""; - } - } - if(sLine.length>0) - sHTML+=sLine; - - if(sHTML.length==0) - sHTML="

    "+gsNoTopics+"

    " - else - sHTML="
    "+sHTML+"
    "; - - var resultDiv=getElement(gsResultDivID); - if(resultDiv) - resultDiv.innerHTML=sHTML; -} - -function displayMsg(sErrorMsg) -{ - var sHTML="

    "+sErrorMsg+"

    "; - - var resultDiv=getElement(gsResultDivID); - if(resultDiv) - resultDiv.innerHTML=sHTML; -} - -function ftsFindKeyword() -{ - var sKey=gsCW; - var bNeedLoad=false; - var aFtsContentsCon=null; - var s=0; - if(sKey==null) return; - if(!gsCheckKey||sKey!=gsCheckKey||gnIndexNum==0) - { - aFtsContentsCon=new Array(); - gnCheck=0; - gsCheckKey=sKey; - gnTopicCheck=0; - gaTopicCheckInfo=null; - } - else{ - s=gnIndexNum; - aFtsContentsCon=gaFtsContentsCon; - } - for(var i=gnCheck;i=aTI.length) - { - aLS=gaTI; - aSS=aTI; - } - else - { - aLS=aTI; - aSS=gaTI; - } - var s=0; - for(var i=0;i=0) - { - var nM; - var bFound=false; - do{ - nM=(nB+nE)>>1; - if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)>0) - nE=nM-1; - else if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0) - nB=nM+1; - else - { - bFound=true; - break; - } - }while(nB<=nE); - if(bFound) - insertItemIntoArray(aTI,nM,oTI); - else - { - if(compare(aTI[nM].sTopicTitle,oTI.sTopicTitle)<0) - insertItemIntoArray(aTI,nM+1,oTI); - else - insertItemIntoArray(aTI,nM,oTI); - } - } - else - aTI[0]=oTI; -} - -function mergeTopics(aTI1,aTI2) -{ - var i1=0; - var i2=0; - var len1=aTI1.length; - var len2=aTI2.length; - var aTopicNew=new Array(); - var i=0; - while(i1>1; - if(compare(keys[nM].sItemName,sKey)>0) - nE=nM-1; - else if(compare(keys[nM].sItemName,sKey)<0) - nB=nM+1; - else{ - bFound=true; - break; - } - }while(nB<=nE); - if(bFound) - { - if(keys[nM].aTopics) - { - for(var i=0;i>1; - if(aFTCD[nM].nBegin>nTopicId) - nE=nM-1; - else if(aFTCD[nM].nEnd
  • "+sButton+"
    "; - for(var i=0;i0) - { - var sHTML=""; - if(nAligns!=0) - { - sHTML+="
    " - if(nAligns&1) - sHTML+=""; - if(nAligns&2) - sHTML+=""; - if(nAligns&4) - sHTML+=""; - sHTML+="
    "+getIntopicBar("left")+""+getIntopicBar("center")+""+getIntopicBar("right")+"
    "; - document.write(sHTML); - } - } -} - -function sendAveInfoOut() -{ - if(!isInPopup()) - setTimeout("sendAveInfo();",100); -} - -function sendAveInfo() -{ - var oMsg=new whMessage(WH_MSG_AVENUEINFO,this,1,gaAvenues); - SendMessage(oMsg); -} - - -function onNext() -{ - var oMsg=new whMessage(WH_MSG_NEXT,this,1,null); - SendMessage(oMsg); -} - -function onPrev() -{ - var oMsg=new whMessage(WH_MSG_PREV,this,1,null); - SendMessage(oMsg); -} - -function createSyncInfo() -{ - var oParam=new Object(); - if(gsPPath.length==0) - gsPPath=_getPath(document.location.href); - oParam.sPPath=gsPPath; - oParam.sTPath=document.location.href; - oParam.aPaths=gaPaths; - return oParam; -} - -function syncWithShow() -{ - if(isTopicOnly()) - show(); - else - { - sync(); - showTocPane(); - } -} - -function showTocPane() -{ - var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null); - SendMessage(oMsg); -} - -function sendSyncInfo() -{ - if(!isInPopup()) - { - var oParam=null; - if(gaPaths.length>0) - { - oParam=createSyncInfo(); - } - var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,oParam); - SendMessage(oMsg); - } -} - -function sendInvalidSyncInfo() -{ - if(!isInPopup()) - { - var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,null); - SendMessage(oMsg); - } -} - -function enableWebSearch(bEnable) -{ - if(!isInPopup()) - { - var oMsg=new whMessage(WH_MSG_ENABLEWEBSEARCH,this,1,bEnable); - SendMessage(oMsg); - } -} - -function autoSync(nSync) -{ - if(nSync==0) return; - if(isInPopup()) return; - if(isOutMostTopic()) - sync(); -} - -function isOutMostTopic() -{ - if(gnOutmostTopic==-1) - { - var oMessage=new whMessage(WH_MSG_ISINFRAMESET,this,1,null); - if(SendMessage(oMessage)) - gnOutmostTopic=0; - else - gnOutmostTopic=1; - } - return (gnOutmostTopic==1); -} - -function sync() -{ - if(gaPaths.length>0) - { - var oParam=createSyncInfo(); - var oMessage=new whMessage(WH_MSG_SYNCTOC,this,1,oParam); - SendMessage(oMessage); - } -} - - -function avenueInfo(sName,sPrev,sNext) -{ - this.sName=sName; - this.sPrev=sPrev; - this.sNext=sNext; -} - -function getCurrentAvenue() -{ - var oParam=new Object(); - oParam.sAvenue=null; - var oMessage=new whMessage(WH_MSG_GETCURRENTAVENUE,this,1,oParam); - SendMessage(oMessage); - return oParam.sAvenue; -} - -function unRegisterListener() -{ - sendInvalidSyncInfo(); - enableWebSearch(false); - if(whtopic_foldUnload) - whtopic_foldUnload(); -} - -function onSendMessage(oMsg) -{ - var nMsgId=oMsg.nMessageId; - if(nMsgId==WH_MSG_GETAVIAVENUES) - { - oMsg.oParam.aAvenues=gaAvenues; - return false; - } - else if(nMsgId==WH_MSG_GETTOCPATHS) - { - if(isOutMostTopic()) - { - oMsg.oParam.oTocInfo=createSyncInfo(); - return false; - } - else - return true; - } - else if(nMsgId==WH_MSG_NEXT) - { - goAvenue(true); - } - else if(nMsgId==WH_MSG_PREV) - { - goAvenue(false); - } - else if(nMsgId==WH_MSG_WEBSEARCH) - { - websearch(); - } - return true; -} - -function goAvenue(bNext) -{ - var sTopic=null; - var sAvenue=getCurrentAvenue(); - var nAvenue=-1; - if(sAvenue!=null&&sAvenue!="") - { - for(var i=0;i0&&bNext) - { - sTopic=gaAvenues[i].sNext; - break; - } - else if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext) - { - sTopic=gaAvenues[i].sPrev; - break; - } - } - } - - if(sTopic!=null&&sTopic!="") - { - if(gsPPath!=null&&gsPPath!="") - { - sFullTopicPath=_getFullPath(gsPPath,sTopic); - document.location=sFullTopicPath; - } - } -} - -function canGo(bNext) -{ - for(var i=0;i0&&bNext)|| - (gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext)) - return true; - } - return false; -} - -function show() -{ - if(gsStartPage!="") - window.location=gsStartPage+"#"+gsRelCurPagePath; -} - -function hide() -{ - if(goFrame!=null) - { - goFrame.location=window.location; - } -} - -function isTopicOnly() -{ - if(gnTopicOnly==-1) - { - var oParam=new Object(); - oParam.oFrame=null; - var oMsg=new whMessage(WH_MSG_GETSTARTFRAME,this,1,oParam); - if(SendMessage(oMsg)) - { - goFrame=oParam.oFrame; - gnTopicOnly=0; - } - else - gnTopicOnly=1; - } - if(gnTopicOnly==1) - return true; - else - return false; -} - -function websearch() -{ - if(gbNav4) - { - if(document.ehelpform) - document.ehelpform.submit(); - } - else - { - if(window.ehelpform) - window.ehelpform.submit(); - } -} - -function addSearchFormHref(sHref) -{ - gsSearchFormHref=sHref; - enableWebSearch(true); -} - -function searchB(nForm) -{ - var sValue=eval("document.searchForm"+nForm+".searchString.value"); - var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,sValue); - SendMessage(oMsg); -} - -function getSearchFormHTML() -{ - var sHTML=""; - gnForm++; - var sFormName="searchForm"+gnForm; - var sButton="" - sButton+=""; - if(""=="text") - { - sButton+=""; - } - else if(""=="image") - { - sButton+="" - sButton+=""; - } - sButton+=""; - sHTML=""+sButton+""; - return sHTML; -} - -function showHidePane(bShow) -{ - var oMsg=null; - if(bShow) - oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null); - else - oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null); - SendMessage(oMsg); -} - -function isShowHideEnable() -{ - if(gbIE4) - return true; - else - return false; -} - - -function PickupDialog_Invoke() -{ - if(!gbIE4||gbMac) - { - if(typeof(_PopupMenu_Invoke)=="function") - return _PopupMenu_Invoke(PickupDialog_Invoke.arguments); - } - else - { - if(PickupDialog_Invoke.arguments.length>2) - { - var sPickup="whskin_pickup.htm"; - var sPickupPath=gsPPath+sPickup; - if(gbIE4) - { - var sFrame=PickupDialog_Invoke.arguments[1]; - var aTopics=new Array(); - for(var i=2;i1) - { - var nWidth=300; - var nHeight=180; - var nScreenWidth=screen.width; - var nScreenHeight=screen.height; - var nLeft=(nScreenWidth-nWidth)/2; - var nTop=(nScreenHeight-nHeight)/2; - if(gbIE4) - { - var vRet=window.showModalDialog(sPickupPath,aTopics,"dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:yes;status:no;scroll:no;help:no;center:yes;"); - if(vRet) - { - var sURL=vRet.m_url; - if(sFrame) - window.open(sURL,sFrame); - else - window.open(sURL,"_self"); - } - } - } - else if(aTopics.length==1) - { - var sURL=aTopics[0].m_sURL - if(sFrame) - window.open(sURL,sFrame); - else - window.open(sURL,"_self"); - } - } - } - } -} - -if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy) -{ - RegisterListener("bsscright",WH_MSG_GETAVIAVENUES); - RegisterListener("bsscright",WH_MSG_GETTOCPATHS); - RegisterListener("bsscright",WH_MSG_NEXT); - RegisterListener("bsscright",WH_MSG_PREV); - RegisterListener("bsscright",WH_MSG_WEBSEARCH); - if(gbMac&&gbIE4) - { - if(typeof(window.onunload)!="unknown") - if(window.onunload.toString!=unRegisterListener.toString) - whtopic_foldUnload=window.onunload; - } - else - { - if(window.onunload) - if(window.onunload.toString!=unRegisterListener.toString) - whtopic_foldUnload=window.onunload; - } - window.onunload=unRegisterListener; - setButtonFont("show","","","","","",""); -setButtonFont("hide","","","","","",""); - - gbWhTopic=true; -} -else - document.location.reload(); \ No newline at end of file +// WebHelp 5.10.005 +var gsPPath=""; +var gaPaths=new Array(); +var gaAvenues=new Array(); + +var goFrame=null; +var gsStartPage=""; +var gsRelCurPagePath=""; +var gsSearchFormHref=""; +var gnTopicOnly=-1; +var gnOutmostTopic=-1; + +var BTN_TEXT=1; +var BTN_IMG=2; + +var goSync=null; + +var goShow=null; +var goHide=null; + +var goPrev=null; +var goNext=null; +var gnForm=0; +var goShowNav=null; +var goHideNav=null; + +var goWebSearch=null; + +var gsBtnStyle=""; +var gaButtons=new Array(); +var gaTypes=new Array(); +var whtopic_foldUnload=null; +var gbWhTopic=false; +var gbCheckSync=false; +var gbSyncEnabled=false; + +function setButtonFont(sType,sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration) +{ + var vFont=new whFont(sFontName,sFontSize,sFontColor,sFontStyle,sFontWeight,sFontDecoration); + gsBtnStyle+=".whtbtn"+sType+"{"+getFontStyle(vFont)+"}"; +} + +function writeBtnStyle() +{ + if(gaButtons.length>0) + { + if(gsBtnStyle.length>0) + { + var sStyle=""; + document.write(sStyle); + } + } +} + +function button(sText,nWidth,nHeight) +{ + this.sText=sText; + this.nWidth=nWidth; + this.nHeight=nHeight; + + this.aImgs=new Array(); + var i=0; + while(button.arguments.length>i+3) + { + this.aImgs[i]=button.arguments[3+i]; + i++; + } +} + +//project info +function setRelStartPage(sPath) +{ + if(gsPPath.length==0) + { + gsPPath=_getFullPath(_getPath(document.location.href),_getPath(sPath)); + gsStartPage=_getFullPath(_getPath(document.location.href),sPath); + gsRelCurPagePath=_getRelativeFileName(gsStartPage,document.location.href); + } +} + +function getImage(oImage,sType) +{ + var sImg=""; + if(oImage&&oImage.aImgs&&(oImage.aImgs.length>0)) + { + sImg+="\""+sType+"\"0) + sImg+=" width="+oImage.nWidth; + if(oImage.nHeight>0) + sImg+=" height="+oImage.nHeight; + sImg+=" border=0>"; + } + return sImg; +} + +function addTocInfo(sTocPath) +{ + gaPaths[gaPaths.length]=sTocPath; +} + +function addAvenueInfo(sName,sPrev,sNext) +{ + gaAvenues[gaAvenues.length]=new avenueInfo(sName,sPrev,sNext); +} + +function addButton(sType,nStyle,sText,sHref,sOnClick,sOnMouseOver,sOnLoad,nWidth,nHeight,sImg1,sImg2,sImg3) +{ + var sButton=""; + var nBtn=gaButtons.length; + if(sType=="prev") + { + if(canGo(false)) + { + var sTitle="Previous Topic"; + goPrev=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); + sButton=""; + if(nStyle==BTN_TEXT) + sButton+=goPrev.sText; + else + sButton+=getImage(goPrev,sTitle); + sButton+=""; + } + } + else if(sType=="next") + { + if(canGo(true)) + { + var sTitle="Next Topic"; + goNext=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); + sButton=""; + if(nStyle==BTN_TEXT) + sButton+=goNext.sText; + else + sButton+=getImage(goNext,sTitle); + sButton+=""; + } + } + else if(sType=="show") + { + if(isTopicOnly()&&(!gbOpera6||gbOpera7)) + { + var sTitle="Show Navigation Component"; + goShow=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); + sButton=""; + if(nStyle==BTN_TEXT) + sButton+=goShow.sText; + else + sButton+=getImage(goShow,sTitle); + sButton+=""; + } + } + else if(sType=="hide") + { + if(!isTopicOnly()&&!gbOpera6) + { + var sTitle="Hide Navigation Component"; + goHide=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); + sButton=""; + if(nStyle==BTN_TEXT) + sButton+=goHide.sText; + else + sButton+=getImage(goHide,sTitle); + sButton+=""; + } + } + else if(sType=="shownav") + { + if(isShowHideEnable()) + { + var sTitle="Show Navigation Component"; + goShowNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); + sButton=""; + if(nStyle==BTN_TEXT) + sButton+=goShowNav.sText; + else + sButton+=getImage(goShowNav,sTitle); + sButton+=""; + } + } + else if(sType=="hidenav") + { + if(isShowHideEnable()) + { + var sTitle="Hide Navigation Component"; + goHideNav=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); + sButton=""; + if(nStyle==BTN_TEXT) + sButton+=goHideNav.sText; + else + sButton+=getImage(goHideNav,sTitle); + sButton+=""; + } + } + else if(sType=="synctoc") + { + if(gaPaths.length>0) + { + var sTitle="Sync TOC"; + goSync=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); + sButton=""; + if(nStyle==BTN_TEXT) + sButton+=goSync.sText; + else + sButton+=getImage(goSync,sTitle); + sButton+=""; + } + } + else if(sType=="websearch") + { + if(gsSearchFormHref.length>0) + { + var sTitle="WebSearch"; + goWebSearch=new button(sText,nWidth,nHeight,sImg1,sImg2,sImg3); + sButton=""; + if(nStyle==BTN_TEXT) + sButton+=goWebSearch.sText; + else + sButton+=getImage(goWebSearch,sTitle); + sButton+=""; + } + } + else if(sType=="searchform") + { + gaButtons[nBtn]="NeedSearchForm"; + gaTypes[nBtn]=sType; + } + if(sButton.length!=0) + { + if(nStyle==BTN_TEXT) + sButton+=" "; + gaButtons[nBtn]=""+sButton+""; + gaTypes[nBtn]=sType; + } +} + +function isSyncEnabled() +{ + if(!gbCheckSync) + { + var oMsg=new whMessage(WH_MSG_ISSYNCSSUPPORT,this,1,null); + if(SendMessage(oMsg)) + { + gbSyncEnabled=oMsg.oParam; + } + gbCheckSync=true; + } + return gbSyncEnabled; +} + +function isInPopup() +{ + return (window.name.indexOf("BSSCPopup")!=-1); +} + +function getIntopicBar(sAlign) +{ + var sHTML=""; + if(gaButtons.length>0) + { + sHTML+="

    "; + + sHTML+=""; + for(var i=0;i0) + { + var sHTML=""; + if(nAligns!=0) + { + sHTML+="
    " + if(nAligns&1) + sHTML+=""; + if(nAligns&2) + sHTML+=""; + if(nAligns&4) + sHTML+=""; + sHTML+="
    "+getIntopicBar("left")+""+getIntopicBar("center")+""+getIntopicBar("right")+"
    "; + document.write(sHTML); + } + } +} + +function sendAveInfoOut() +{ + if(!isInPopup()) + setTimeout("sendAveInfo();",100); +} + +function sendAveInfo() +{ + var oMsg=new whMessage(WH_MSG_AVENUEINFO,this,1,gaAvenues); + SendMessage(oMsg); +} + + +function onNext() +{ + var oMsg=new whMessage(WH_MSG_NEXT,this,1,null); + SendMessage(oMsg); +} + +function onPrev() +{ + var oMsg=new whMessage(WH_MSG_PREV,this,1,null); + SendMessage(oMsg); +} + +function createSyncInfo() +{ + var oParam=new Object(); + if(gsPPath.length==0) + gsPPath=_getPath(document.location.href); + oParam.sPPath=gsPPath; + oParam.sTPath=document.location.href; + oParam.aPaths=gaPaths; + return oParam; +} + +function syncWithShow() +{ + if(isTopicOnly()) + show(); + else + { + sync(); + showTocPane(); + } +} + +function showTocPane() +{ + var oMsg=new whMessage(WH_MSG_SHOWTOC,this,1,null); + SendMessage(oMsg); +} + +function sendSyncInfo() +{ + if(!isInPopup()) + { + var oParam=null; + if(gaPaths.length>0) + { + oParam=createSyncInfo(); + } + var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,oParam); + SendMessage(oMsg); + } +} + +function sendInvalidSyncInfo() +{ + if(!isInPopup()) + { + var oMsg=new whMessage(WH_MSG_SYNCINFO,this,1,null); + SendMessage(oMsg); + } +} + +function enableWebSearch(bEnable) +{ + if(!isInPopup()) + { + var oMsg=new whMessage(WH_MSG_ENABLEWEBSEARCH,this,1,bEnable); + SendMessage(oMsg); + } +} + +function autoSync(nSync) +{ + if(nSync==0) return; + if(isInPopup()) return; + if(isOutMostTopic()) + sync(); +} + +function isOutMostTopic() +{ + if(gnOutmostTopic==-1) + { + var oMessage=new whMessage(WH_MSG_ISINFRAMESET,this,1,null); + if(SendMessage(oMessage)) + gnOutmostTopic=0; + else + gnOutmostTopic=1; + } + return (gnOutmostTopic==1); +} + +function sync() +{ + if(gaPaths.length>0) + { + var oParam=createSyncInfo(); + var oMessage=new whMessage(WH_MSG_SYNCTOC,this,1,oParam); + SendMessage(oMessage); + } +} + + +function avenueInfo(sName,sPrev,sNext) +{ + this.sName=sName; + this.sPrev=sPrev; + this.sNext=sNext; +} + +function getCurrentAvenue() +{ + var oParam=new Object(); + oParam.sAvenue=null; + var oMessage=new whMessage(WH_MSG_GETCURRENTAVENUE,this,1,oParam); + SendMessage(oMessage); + return oParam.sAvenue; +} + +function unRegisterListener() +{ + sendInvalidSyncInfo(); + enableWebSearch(false); + if(whtopic_foldUnload) + whtopic_foldUnload(); +} + +function onSendMessage(oMsg) +{ + var nMsgId=oMsg.nMessageId; + if(nMsgId==WH_MSG_GETAVIAVENUES) + { + oMsg.oParam.aAvenues=gaAvenues; + return false; + } + else if(nMsgId==WH_MSG_GETTOCPATHS) + { + if(isOutMostTopic()) + { + oMsg.oParam.oTocInfo=createSyncInfo(); + return false; + } + else + return true; + } + else if(nMsgId==WH_MSG_NEXT) + { + goAvenue(true); + } + else if(nMsgId==WH_MSG_PREV) + { + goAvenue(false); + } + else if(nMsgId==WH_MSG_WEBSEARCH) + { + websearch(); + } + return true; +} + +function goAvenue(bNext) +{ + var sTopic=null; + var sAvenue=getCurrentAvenue(); + var nAvenue=-1; + if(sAvenue!=null&&sAvenue!="") + { + for(var i=0;i0&&bNext) + { + sTopic=gaAvenues[i].sNext; + break; + } + else if(gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext) + { + sTopic=gaAvenues[i].sPrev; + break; + } + } + } + + if(sTopic!=null&&sTopic!="") + { + if(gsPPath!=null&&gsPPath!="") + { + sFullTopicPath=_getFullPath(gsPPath,sTopic); + document.location=sFullTopicPath; + } + } +} + +function canGo(bNext) +{ + for(var i=0;i0&&bNext)|| + (gaAvenues[i].sPrev!=null&&gaAvenues[i].sPrev.length>0&&!bNext)) + return true; + } + return false; +} + +function show() +{ + if(gsStartPage!="") + window.location=gsStartPage+"#"+gsRelCurPagePath; +} + +function hide() +{ + if(goFrame!=null) + { + goFrame.location=window.location; + } +} + +function isTopicOnly() +{ + if(gnTopicOnly==-1) + { + var oParam=new Object(); + oParam.oFrame=null; + var oMsg=new whMessage(WH_MSG_GETSTARTFRAME,this,1,oParam); + if(SendMessage(oMsg)) + { + goFrame=oParam.oFrame; + gnTopicOnly=0; + } + else + gnTopicOnly=1; + } + if(gnTopicOnly==1) + return true; + else + return false; +} + +function websearch() +{ + if(gbNav4) + { + if(document.ehelpform) + document.ehelpform.submit(); + } + else + { + if(window.ehelpform) + window.ehelpform.submit(); + } +} + +function addSearchFormHref(sHref) +{ + gsSearchFormHref=sHref; + enableWebSearch(true); +} + +function searchB(nForm) +{ + var sValue=eval("document.searchForm"+nForm+".searchString.value"); + var oMsg=new whMessage(WH_MSG_SEARCHTHIS,this,1,sValue); + SendMessage(oMsg); +} + +function getSearchFormHTML() +{ + var sHTML=""; + gnForm++; + var sFormName="searchForm"+gnForm; + var sButton="
    " + sButton+=""; + if(""=="text") + { + sButton+=""; + } + else if(""=="image") + { + sButton+="" + sButton+=""; + } + sButton+="
    "; + sHTML=""+sButton+""; + return sHTML; +} + +function showHidePane(bShow) +{ + var oMsg=null; + if(bShow) + oMsg=new whMessage(WH_MSG_SHOWPANE,this,1,null); + else + oMsg=new whMessage(WH_MSG_HIDEPANE,this,1,null); + SendMessage(oMsg); +} + +function isShowHideEnable() +{ + if(gbIE4) + return true; + else + return false; +} + + +function PickupDialog_Invoke() +{ + if(!gbIE4||gbMac) + { + if(typeof(_PopupMenu_Invoke)=="function") + return _PopupMenu_Invoke(PickupDialog_Invoke.arguments); + } + else + { + if(PickupDialog_Invoke.arguments.length>2) + { + var sPickup="whskin_pickup.htm"; + var sPickupPath=gsPPath+sPickup; + if(gbIE4) + { + var sFrame=PickupDialog_Invoke.arguments[1]; + var aTopics=new Array(); + for(var i=2;i1) + { + var nWidth=300; + var nHeight=180; + var nScreenWidth=screen.width; + var nScreenHeight=screen.height; + var nLeft=(nScreenWidth-nWidth)/2; + var nTop=(nScreenHeight-nHeight)/2; + if(gbIE4) + { + var vRet=window.showModalDialog(sPickupPath,aTopics,"dialogHeight:"+nHeight+"px;dialogWidth:"+nWidth+"px;resizable:yes;status:no;scroll:no;help:no;center:yes;"); + if(vRet) + { + var sURL=vRet.m_url; + if(sFrame) + window.open(sURL,sFrame); + else + window.open(sURL,"_self"); + } + } + } + else if(aTopics.length==1) + { + var sURL=aTopics[0].m_sURL + if(sFrame) + window.open(sURL,sFrame); + else + window.open(sURL,"_self"); + } + } + } + } +} + +if(window.gbWhUtil&&window.gbWhMsg&&window.gbWhVer&&window.gbWhProxy) +{ + RegisterListener("bsscright",WH_MSG_GETAVIAVENUES); + RegisterListener("bsscright",WH_MSG_GETTOCPATHS); + RegisterListener("bsscright",WH_MSG_NEXT); + RegisterListener("bsscright",WH_MSG_PREV); + RegisterListener("bsscright",WH_MSG_WEBSEARCH); + if(gbMac&&gbIE4) + { + if(typeof(window.onunload)!="unknown") + if(window.onunload.toString!=unRegisterListener.toString) + whtopic_foldUnload=window.onunload; + } + else + { + if(window.onunload) + if(window.onunload.toString!=unRegisterListener.toString) + whtopic_foldUnload=window.onunload; + } + window.onunload=unRegisterListener; + setButtonFont("show","","","","","",""); +setButtonFont("hide","","","","","",""); + + gbWhTopic=true; +} +else + document.location.reload(); diff --git a/doc/salome/gui/GEOM/whutils.js b/doc/salome/gui/GEOM/whutils.js index 85fae7e05..5026b24a3 100755 --- a/doc/salome/gui/GEOM/whutils.js +++ b/doc/salome/gui/GEOM/whutils.js @@ -1,527 +1,527 @@ -// WebHelp 5.10.004 -var gsFileName=""; -var gsDivName=""; -var xmlDoc=null; -var sdocPath=null; -var gsInsertBeforeEndHTML=""; -var sReplaceStringsSrc=new Array(); -var gsDivName="dataDiv"; -var gnLoadDivNum=0; -sReplaceStringsSrc[0]="&"; -sReplaceStringsSrc[1]=">"; -sReplaceStringsSrc[2]="<"; -sReplaceStringsSrc[3]="""; -sReplaceStringsSrc[4]=String.fromCharCode(8364); -sReplaceStringsSrc[5]=" "; - -var sReplaceStringsDst=new Array(); -sReplaceStringsDst[0]="&"; -sReplaceStringsDst[1]=">"; -sReplaceStringsDst[2]="<"; -sReplaceStringsDst[3]="\""; -sReplaceStringsDst[4]=String.fromCharCode(128); -sReplaceStringsDst[5]=" "; -var goHighLighted=null; - -function _getRelativePath(strParentPath,strCurrentPath) -{ - if(_isAbsPath(strCurrentPath)) return _getPath(strCurrentPath); - strParentPath=_replaceSlash(strParentPath); - strParentPath=_getPath(strParentPath); - strCurrentPath=_replaceSlash(strCurrentPath); - strCurrentPath=_getPath(strCurrentPath); - for(var i=0;i0) - { - var nPosx=sPath.indexOf("/",nPos+2); - if(nPosx>0) - return sPath.substring(0,nPosx); - else - return sPath; - } - return sPath; -} - -function _getFullPath(sPath,sRelPath) -{ - if(_isAbsPath(sRelPath)) - return sRelPath; - else if(_isAbsPathToHost(sRelPath)) - return _getHost(sPath)+sRelPath; - else - { - var sFullPath=sPath; - var nPathPos=0; - while(nPathPos!=-1) - { - var nPathPos=sRelPath.indexOf("../"); - if(nPathPos!=-1) - { - sRelPath=sRelPath.substring(nPathPos+3); - sFullPath=sFullPath.substring(0,sFullPath.length-1); - var nPos2=sFullPath.lastIndexOf("/"); - if(nPos2!=-1) - sFullPath=sFullPath.substring(0,nPos2+1); - else - break; - } - } - sFullPath+=sRelPath; - return sFullPath; - } -} - -function _isAbsPath(strPath) -{ - var strUpper=strPath.toUpperCase(); - return (strUpper.indexOf(":")!=-1||strUpper.indexOf("\\\\")==0); -} - -function _replaceSlash(strURL) -{ - var re=new RegExp("\\\\","g"); - var strReplacedURL=strURL.replace(re,"/"); - return strReplacedURL; -} - -function _getPath(strURL) -{ - pathpos=strURL.lastIndexOf("/"); - if(pathpos>0) - return strURL.substring(0,pathpos+1); - else - return ""; -} - -function removeItemFromArray(oArray,i) -{ - if(oArray.length&&i>=0&&i=0&&i<=oArray.length) - { - var len=oArray.length; - for(var s=len;s>i;s--) - oArray[s]=oArray[s-1]; - oArray[i]=obj; - } -} - -function loadData(sFileName) -{ - var i=gnLoadDivNum; - var sName=gsDivName+gnLoadDivNum++; - loadData_2(sFileName,sName); -} - -function loadData_2(sFileName,sDivName) -{ - if(!getElement(sDivName)) - { - if(!insertDataDiv(sDivName)) - { - gsFileName=sFileName; - gsDivName=sDivName; - return; - } - } - var sHTML=""; - if(gbMac) - sHTML+=""; - else - sHTML+=""; - - var oDivCon=getElement(sDivName); - if(oDivCon) - { - if(gbNav6) - { - if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0) - { - oDivCon.getElementsByTagName("iFrame")[0].src=sFileName; - } - else - oDivCon.innerHTML=sHTML; - } - else - oDivCon.innerHTML=sHTML; - } -} - -function loadDataXML(sFileName) -{ - var sCurrentDocPath=_getPath(document.location.href); - sdocPath=_getFullPath(sCurrentDocPath,sFileName); - if(gbIE5) - { - xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); - xmlDoc.async=true; - xmlDoc.onreadystatechange=checkState; - if(document.body!=null) - xmlDoc.load(sdocPath); - } - else if(gbNav6) - { - xmlDoc=document.implementation.createDocument("","",null); - xmlDoc.addEventListener("load",initializeData,false); - xmlDoc.load(sdocPath,"text/xml"); - } -} - -function initializeData() -{ - if(xmlDoc!=null) - putDataXML(xmlDoc,sdocPath); -} - -function checkState() -{ - if(xmlDoc!=null) - { - var state=xmlDoc.readyState; - if(state==4) - { - var err=xmlDoc.parseError; - if(err.errorCode==0) - putDataXML(xmlDoc,sdocPath); - else - onLoadXMLError(); - } - } -} - -function insertDataDiv(sName) -{ - var sHTML=""; - if(gbMac) - sHTML+="
    "; - else - sHTML+="
    "; - if((gbIE5||gbNav6)&&document.body) - document.body.insertAdjacentHTML("beforeEnd",sHTML); - else - { - gsInsertBeforeEndHTML=sHTML; - setTimeout("insertWhenBodyReady();",100); - return false; - } - return true; -} - -function insertWhenBodyReady() -{ - if(gsInsertBeforeEndHTML=="") return; - if(document.body) - { - document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML); - gsInsertBeforeEndHTML=""; - loadData_2(gsFileName,gsDivName); - } - else - { - setTimeout("insertWhenBodyReady();",100); - } -} - -function window_BUnload() -{ - for(var i=0;i='0'&&sBStr.charAt(i)<='9') - { - sNum+=sBStr.charAt(i++); - } - if(sNum!=""){ - var nNum=parseInt(sNum,16); - sText+=String.fromCharCode(nNum); - sBStr=sBStr.substring(i); - } - nPos=sBStr.indexOf('%'); - } - sText+=sBStr; - return sText; -} - -function excapeSingleQuotandSlash(str) -{ - if(str==null) return null; - var nPos=0; - var sRes=""; - var nPosNew=str.indexOf("\\",nPos); - while(nPosNew!=-1){ - sRes+=str.substring(nPos,nPosNew+1)+"\\"; - nPos=nPosNew+1; - nPosNew=str.indexOf("\\",nPos); - } - if(nPos0) + { + var nPosx=sPath.indexOf("/",nPos+2); + if(nPosx>0) + return sPath.substring(0,nPosx); + else + return sPath; + } + return sPath; +} + +function _getFullPath(sPath,sRelPath) +{ + if(_isAbsPath(sRelPath)) + return sRelPath; + else if(_isAbsPathToHost(sRelPath)) + return _getHost(sPath)+sRelPath; + else + { + var sFullPath=sPath; + var nPathPos=0; + while(nPathPos!=-1) + { + var nPathPos=sRelPath.indexOf("../"); + if(nPathPos!=-1) + { + sRelPath=sRelPath.substring(nPathPos+3); + sFullPath=sFullPath.substring(0,sFullPath.length-1); + var nPos2=sFullPath.lastIndexOf("/"); + if(nPos2!=-1) + sFullPath=sFullPath.substring(0,nPos2+1); + else + break; + } + } + sFullPath+=sRelPath; + return sFullPath; + } +} + +function _isAbsPath(strPath) +{ + var strUpper=strPath.toUpperCase(); + return (strUpper.indexOf(":")!=-1||strUpper.indexOf("\\\\")==0); +} + +function _replaceSlash(strURL) +{ + var re=new RegExp("\\\\","g"); + var strReplacedURL=strURL.replace(re,"/"); + return strReplacedURL; +} + +function _getPath(strURL) +{ + pathpos=strURL.lastIndexOf("/"); + if(pathpos>0) + return strURL.substring(0,pathpos+1); + else + return ""; +} + +function removeItemFromArray(oArray,i) +{ + if(oArray.length&&i>=0&&i=0&&i<=oArray.length) + { + var len=oArray.length; + for(var s=len;s>i;s--) + oArray[s]=oArray[s-1]; + oArray[i]=obj; + } +} + +function loadData(sFileName) +{ + var i=gnLoadDivNum; + var sName=gsDivName+gnLoadDivNum++; + loadData_2(sFileName,sName); +} + +function loadData_2(sFileName,sDivName) +{ + if(!getElement(sDivName)) + { + if(!insertDataDiv(sDivName)) + { + gsFileName=sFileName; + gsDivName=sDivName; + return; + } + } + var sHTML=""; + if(gbMac) + sHTML+=""; + else + sHTML+=""; + + var oDivCon=getElement(sDivName); + if(oDivCon) + { + if(gbNav6) + { + if(oDivCon.getElementsByTagName&&oDivCon.getElementsByTagName("iFrame").length>0) + { + oDivCon.getElementsByTagName("iFrame")[0].src=sFileName; + } + else + oDivCon.innerHTML=sHTML; + } + else + oDivCon.innerHTML=sHTML; + } +} + +function loadDataXML(sFileName) +{ + var sCurrentDocPath=_getPath(document.location.href); + sdocPath=_getFullPath(sCurrentDocPath,sFileName); + if(gbIE5) + { + xmlDoc=new ActiveXObject("Microsoft.XMLDOM"); + xmlDoc.async=true; + xmlDoc.onreadystatechange=checkState; + if(document.body!=null) + xmlDoc.load(sdocPath); + } + else if(gbNav6) + { + xmlDoc=document.implementation.createDocument("","",null); + xmlDoc.addEventListener("load",initializeData,false); + xmlDoc.load(sdocPath,"text/xml"); + } +} + +function initializeData() +{ + if(xmlDoc!=null) + putDataXML(xmlDoc,sdocPath); +} + +function checkState() +{ + if(xmlDoc!=null) + { + var state=xmlDoc.readyState; + if(state==4) + { + var err=xmlDoc.parseError; + if(err.errorCode==0) + putDataXML(xmlDoc,sdocPath); + else + onLoadXMLError(); + } + } +} + +function insertDataDiv(sName) +{ + var sHTML=""; + if(gbMac) + sHTML+="
    "; + else + sHTML+="
    "; + if((gbIE5||gbNav6)&&document.body) + document.body.insertAdjacentHTML("beforeEnd",sHTML); + else + { + gsInsertBeforeEndHTML=sHTML; + setTimeout("insertWhenBodyReady();",100); + return false; + } + return true; +} + +function insertWhenBodyReady() +{ + if(gsInsertBeforeEndHTML=="") return; + if(document.body) + { + document.body.insertAdjacentHTML("beforeEnd",gsInsertBeforeEndHTML); + gsInsertBeforeEndHTML=""; + loadData_2(gsFileName,gsDivName); + } + else + { + setTimeout("insertWhenBodyReady();",100); + } +} + +function window_BUnload() +{ + for(var i=0;i='0'&&sBStr.charAt(i)<='9') + { + sNum+=sBStr.charAt(i++); + } + if(sNum!=""){ + var nNum=parseInt(sNum,16); + sText+=String.fromCharCode(nNum); + sBStr=sBStr.substring(i); + } + nPos=sBStr.indexOf('%'); + } + sText+=sBStr; + return sText; +} + +function excapeSingleQuotandSlash(str) +{ + if(str==null) return null; + var nPos=0; + var sRes=""; + var nPosNew=str.indexOf("\\",nPos); + while(nPosNew!=-1){ + sRes+=str.substring(nPos,nPosNew+1)+"\\"; + nPos=nPosNew+1; + nPosNew=str.indexOf("\\",nPos); + } + if(nPos=4) - { - if(navigator.appName=="Netscape") - { - gbNav4=true; - if(gnVerMajor>=5) - gbNav6=true; - } - gbIE4=(navigator.appName.indexOf("Microsoft")!=-1); - } - if(gbNav6) - { - var nPos=gAgent.indexOf("gecko"); - if(nPos!=-1) - { - var nPos2=gAgent.indexOf("/", nPos); - if(nPos2!=-1) - { - var nVersion=parseFloat(gAgent.substring(nPos2+1)); - if(nVersion>=20010726) - { - gbNav61=true; - if (nVersion>=20020823) - gbNav7=true; - } - } - } - }else if(gbIE4) - { - var nPos=gAgent.indexOf("msie"); - if(nPos!=-1) - { - var nVersion=parseFloat(gAgent.substring(nPos+5)); - if(nVersion>=5) - { - gbIE5=true; - if(nVersion>=5.5) - gbIE55=true; - } - } - } -} -else if (gbOpera) -{ - var nPos = gAgent.indexOf("opera"); - if(nPos!=-1) - { - var nVersion=parseFloat(gAgent.substring(nPos+6)); - if(nVersion>=6) - { - gbOpera6=true; - if(nVersion>=7) - gbOpera7=true; - } - } -} -else if (gbKonqueror) -{ - var nPos = gAgent.indexOf("konqueror"); - if(nPos!=-1) - { - var nVersion = parseFloat(gAgent.substring(nPos+10)); - if (nVersion >= 3) - { - gbKonqueror3=true; - } - } -} - +// WebHelp 5.10.006 +var gbNav=false; +var gbNav6=false; +var gbNav61=false; +var gbNav7=false; +var gbNav4=false; +var gbIE4=false; +var gbIE=false; +var gbIE5=false; +var gbIE55=false; +var gbOpera6=false; +var gbOpera7=false; +var gbKonqueror3=false; + +var gAgent=navigator.userAgent.toLowerCase(); +var gbMac=(gAgent.indexOf("mac")!=-1); +var gbSunOS=(gAgent.indexOf("sunos")!=-1); +var gbOpera=(gAgent.indexOf("opera")!=-1); +var gbKonqueror=(gAgent.indexOf("konqueror")!= -1); +var gbSafari=(gAgent.indexOf("safari")!= -1); +var gbWindows=((gAgent.indexOf('win')!= -1)||(gAgent.indexOf('16bit')!= -1)); +var gbMozilla=((gAgent.indexOf('gecko')!=-1) && (gAgent.indexOf('netscape')==-1)); + + +var gVersion=navigator.appVersion.toLowerCase(); + +var gnVerMajor=parseInt(gVersion); +var gnVerMinor=parseFloat(gVersion); + +if(!gbOpera&&!gbKonqueror&&!gbSafari) // opera can mimic IE or Netscape by settings. +{ + gbIE=(navigator.appName.indexOf("Microsoft")!=-1); + gbNav=(gAgent.indexOf('mozilla')!=-1) && ((gAgent.indexOf('spoofer')==-1) && (gAgent.indexOf('compatible')==-1)); + if(gnVerMajor>=4) + { + if(navigator.appName=="Netscape") + { + gbNav4=true; + if(gnVerMajor>=5) + gbNav6=true; + } + gbIE4=(navigator.appName.indexOf("Microsoft")!=-1); + } + if(gbNav6) + { + var nPos=gAgent.indexOf("gecko"); + if(nPos!=-1) + { + var nPos2=gAgent.indexOf("/", nPos); + if(nPos2!=-1) + { + var nVersion=parseFloat(gAgent.substring(nPos2+1)); + if(nVersion>=20010726) + { + gbNav61=true; + if (nVersion>=20020823) + gbNav7=true; + } + } + } + }else if(gbIE4) + { + var nPos=gAgent.indexOf("msie"); + if(nPos!=-1) + { + var nVersion=parseFloat(gAgent.substring(nPos+5)); + if(nVersion>=5) + { + gbIE5=true; + if(nVersion>=5.5) + gbIE55=true; + } + } + } +} +else if (gbOpera) +{ + var nPos = gAgent.indexOf("opera"); + if(nPos!=-1) + { + var nVersion=parseFloat(gAgent.substring(nPos+6)); + if(nVersion>=6) + { + gbOpera6=true; + if(nVersion>=7) + gbOpera7=true; + } + } +} +else if (gbKonqueror) +{ + var nPos = gAgent.indexOf("konqueror"); + if(nPos!=-1) + { + var nVersion = parseFloat(gAgent.substring(nPos+10)); + if (nVersion >= 3) + { + gbKonqueror3=true; + } + } +} + var gbWhVer=true; \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whxdata/whftdata0.xml b/doc/salome/gui/GEOM/whxdata/whftdata0.xml index aa193d66e..0f5be19c9 100755 --- a/doc/salome/gui/GEOM/whxdata/whftdata0.xml +++ b/doc/salome/gui/GEOM/whxdata/whftdata0.xml @@ -1,88 +1,88 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whxdata/whfts.xml b/doc/salome/gui/GEOM/whxdata/whfts.xml index f251f2988..3146b8080 100755 --- a/doc/salome/gui/GEOM/whxdata/whfts.xml +++ b/doc/salome/gui/GEOM/whxdata/whfts.xml @@ -1,7 +1,7 @@ - - - - - - - + + + + + + + diff --git a/doc/salome/gui/GEOM/whxdata/whfwdata0.xml b/doc/salome/gui/GEOM/whxdata/whfwdata0.xml index e6d9fa8a1..b924603e1 100755 --- a/doc/salome/gui/GEOM/whxdata/whfwdata0.xml +++ b/doc/salome/gui/GEOM/whxdata/whfwdata0.xml @@ -1,1353 +1,1353 @@ - - - 0,3,4,5,6,8,11,18,37,40,44,46,56,57,59,65,68,74,76,33, - 59, - 18, - 4, - 44, - 0,2,3,4,5,6,8,9,10,11,14,15,18,20,23,25,26,27,28,29,34,35,37,39,40,43,44,45,46,47,48,49,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,72,74,75,76,77,31,82,83, - 3,18,37,44,57,68,74, - 3,4,5,18,37,44,46,59,68,74, - 3,74, - 4, - 44, - 44, - 44, - 33, - 8, - 59, - 59, - 8,18,44,57,68, - 3,8,37,59,68, - 11, - 57, - 3, - 59,65,68, - 44, - 5,74, - 44,59, - 50,5,7,14,17,18,21,22,23,24,27,28,36,37,40,41,42,44,47,48,49,53,59,63,67,74,75,77,31,78,82, - 3,6,18,37,57,59,68,74, - 3,4,5,40,44,46,59,74, - 74, - 11, - 74, - 44, - 3,5,6,57,74, - 37,44,59,68, - 5,35,59,65,74,31, - 1,2,5,7,11,14,18,20,37,40,44,48,55,56,59,67,74,75,31,78, - 3,8,11,18,37,44,57,59,68,74, - 37,68, - 44, - 11, - 59, - 44, - 6,8,57,59,74, - 14,21,35,43,51,53,55,56,59,65,71,31,33,78,79,81,83, - 50,37,40,44,48,67,74,31, - 6,8,18,37,57,59,74, - 59, - 57,59, - 0,3,11,18,35,37,40,32,44,56,59,67,68,74, - 3,5,8,11,18,37,44,59,68,74,76, - 4, - 6,57,59, - 50,5,44,33, - 18,37,59,74, - 59, - 37,44,59, - 3,8,37,57,59,68,74, - 44, - 44,59,68,74, - 37,44,67, - 65,67, - 51,67, - 67, - 76, - 51,79, - 7,16,29,42,70, - 0, - 0,15, - 15,40,32,83, - 0,3,4,5,6,8,18,37,40,57,59,68,74,83, - 40,83, - 3,4,5,6,8,11,18,37,40,57,59,68,74, - 5,59, - 7,19,24,28,29,37,66,69,70,80, - 7,14,20,21,23,28,43,46,53,55,56,67,70,77,78,82, - 59, - 50,9,26,45,46,47,51,61,64,65,67,72,75,33,79, - 7,9,46,49,52,54,74,75, - 31, - 40, - 46, - 47,59,60,61,65,67,74, - 22,42,55,56,70,74, - 53,61,65,75, - 43,74,83, - 79,83, - 18,37,74, - 9,65, - 52, - 65,79, - 65, - 1,3,18,37,59,67,68,74, - 18, - 18, - 2,4, - 44,51, - 0,1,2,50,7,9,10,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,41,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,66,67,69,70,71,72,73,75,77,31,78,80,82,83, - 47,60,74, - 50,43,79, - 0,50,15,32,51,67,71,72,73,83, - 7,43,49,51,75, - 18,20,23,43,45,46,47,60,61,74,33, - 3,21,65, - 79, - 20,23,28,47,51,54,59,60,62,65,75,77, - 54, - 28,51, - 1,2,3,4,14,21,25,38,30,42,43,44,53,55,56,67,33,78,82, - 44,33, - 44, - 24, - 59,65,67, - 59, - 9, - 50, - 21, - 3,21,65, - 79, - 50,5,8,27,38,30,44,48,58,33, - 51,79, - 6,17,22,36,38,30,63,31,33, - 7,20,48,49,65, - 59, - 8,37,44,33, - 12,59,64,72, - 12,59,73, - 44,33, - 4,50,5,7,11,16,22,27,40,32,44,57,59,65,67,73,74,76,33,80,83, - 5, - 5, - 44,57,59, - 44,57,59, - 57, - 65, - 58, - 38,32,30,59, - 32,43,79,80, - 65, - 65, - 50,5,8,19,24,29,38,30,53,58,66,69,80, - 43,51,54,64,72,80,83, - 50, - 37,65,68, - 65, - 65, - 65, - 38,30, - 33, - 82, - 50,43,48,73, - 51, - 32, - 7,14,20,25,44,46,47,51,67,70,77,33, - 26, - 62, - 20,23,62,65, - 65,83, - 5, - 9,74, - 74, - 74, - 74, - 74, - 10,11,16,41,76,79,81, - 10, - 12,13,27,29,44,59,65,73,33, - 5, - 10,45,46,47,61,72,75,33, - 44,33, - 44,59, - 21, - 27,32,43, - 3,14,67, - 3, - 3, - 16,32,51,54,79,81,83, - 51, - 51, - 12,15,59,65,69,83, - 15,59, - 12,59, - 15, - 44, - 65, - 46, - 39, - 65, - 20,23, - 11,16,79,81, - 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,23,24,25,26,27,28,29,34,35,36,39,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,79,80,81,83, - 6,9,15,17,74,31, - 18,28,35,38,30,54,60,31, - 3,18,67,75, - 50,10,33, - 50,5,17,18,19,22,26,27,35,36,37,39,44,47,49,52,59,63,33, - 26,28,54,60, - 37, - 2,33, - 20,57,59, - 33, - 33, - 57, - 57, - 32,83, - 65, - 9,29,66,33,80, - 33, - 74, - 15,39,33, - 33, - 50, - 50,69, - 21,38,30,51,31, - 0,13,15,58, - 40,32,51, - 65, - 65, - 65, - 65, - 65, - 15,59, - 65, - 65, - 44, - 7,20,23,26,43,44,46,51,56,67,70,74,75,77,33,78,82, - 10,45,46,61,75, - 65, - 7,8, - 65, - 65, - 2,12,21,24,27, - 59, - 67, - 31, - 1,2,3,4,50,5,6,7,8,9,10,14,15,18,19,20,21,23,24,25,26,28,29,34,35,36,37,40,42,43,44,45,46,47,51,54,55,56,57,59,60,61,62,63,66,67,68,69,70,74,75,77,33,78,79,80,82,83, - 3,4,5,6,8,11,18,37,40,57,59,68,74, - 40,83, - 1,3,7,14,15,18,19,20,21,23,24,25,28,29,35,37,38,40,30,42,54,55,56,57,59,60,66,69,70,77,78,80,83, - 5, - 51, - 43, - 74, - 74, - 46, - 7,42,51,67,70, - 3,21,35,65,67, - 65, - 65, - 65, - 65, - 6,17,22,53,59,31, - 59, - 6,20,23,57,59,74, - 18,57, - 57, - 57, - 65, - 9,59,65, - 9,74, - 9,74, - 33, - 59, - 44, - 51,56,67,79,83, - 1,7,9,14,20,21,23,25,26,27,28,34,35,32,42,43,47,48,49,51,54,55,56,60,61,62,65,67,70,75,77,78,82,83, - 72, - 54, - 2, - 33, - 35,60,65,67, - 53,83, - 2, - 48,65, - 65, - 44, - 50,44,67,68,33, - 83, - 38,30, - 67, - 12,64,72, - 65, - 51, - 50,22,32,65,67,76,80,83, - 40, - 45,33, - 7,9,23,28,47,33, - 47,49, - 49, - 49, - 43, - 2,14,20,25,28,43,47,48,49,51,60,61,65,67,77, - 48, - 48, - 48, - 48, - 48, - 48, - 3,4,5,6,8,11,16,18,37,40,32,41,51,57,59,64,68,72,74,76,33,79,81,83, - 79, - 39,44,52,65,33, - 0,59, - 0,59, - 40,51, - 7,10,15,28,49,51,70, - 47,48,49,67,76, - 83, - 51, - 51, - 51, - 65, - 65, - 65, - 51,79, - 51, - 7,44,67,75,78, - 7,44,67,75,78, - 7,44,75,78, - 44,65, - 50, - 50, - 50, - 50, - 83, - 0,1,50,7,8,9,12,14,15,18,21,24,25,26,28,34,35,37,42,44,54,56,58,59,60,65,66,67,74,33,78,80,81, - 59, - 59, - 8, - 8, - 8, - 8, - 0, - 83, - 33, - 33, - 50,46, - 15,29,67,31,33,79,83, - 50, - 3,25, - 44,59, - 72,73, - 33, - 1,15,28,46,59,65,67,74,75,78, - 83, - 33, - 1,50,7,14,19,20,21,23,24,25,26,28,29,35,42,43,54,55,56,60,66,67,69,70,77,78,80,82,83, - 20,65,67, - 79, - 79, - 79, - 12,40,33, - 26,65, - 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,32,41,42,43,45,46,47,48,49,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,80,81,83, - 73, - 55,67,83, - 32, - 5,26,27,37, - 38,32,30,51,79, - 32, - 51, - 33, - 27, - 54,60, - 28,54, - 37,68, - 59, - 74, - 74, - 50, - 59, - 50, - 50, - 50, - 50, - 50, - 44, - 2,3,50,5,8,9,10,13,15,18,26,27,28,29,34,35,37,39,40,44,48,52,53,54,55,59,60,65,66,67,68,71,73,74,33,82, - 59, - 59, - 9,18,37, - 9,18,37, - 37, - 40, - 33, - 33, - 62,74, - 44,59, - 12, - 10, - 16,18,35,32,43,79,81, - 72, - 9,34,74, - 74, - 45,46,55,56,75,82,83, - 7,14,20,23,24,28,43,45,46,48,49,53,55,56,65,68,70,75,77,31,78,82, - 51, - 65, - 65, - 59,65, - 33, - 59, - 65,67,68,76,31,33,83, - 38,32,30,51,79, - 50,8,65, - 51, - 12,13,59,64,72, - 38,30,51,74, - 50, - 51,67,83, - 6,11,36,31, - 11, - 65, - 65, - 15, - 46, - 50,31, - 28,35,54, - 28,35,38,30,54,60, - 3,4,5,6,8,11,18,37,40,44,57,58,59,68,74,33, - 0,1,2,50,7,9,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,45,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,80,83, - 1,50,14,19,21,24,25,28,29,35,42,54,55,56,60,65,66,69,78,79,80, - 3,11,17,37,38,32,30,47,51,31,33,79,81,83, - 38,32,30,51,59,65,33, - 0,1,2,3,4,50,5,6,7,8,9,10,11,12,14,15,17,18,19,20,21,23,24,25,26,27,28,29,34,35,36,37,39,40,42,43,44,45,46,47,48,49,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,31,33,78,80,83, - 5,44,59,74,33, - 59, - 5, - 12,59, - 13,59, - 83, - 59, - 5,40,59,74, - 3,4,5,6,8,11,16,18,37,40,44,57,59,68,74,76,81, - 14,25,32,55,65, - 3,5,8,9,13,18,23,26,27,29,34,37,39,42,47,52,56,59,65,68,74,77,33, - 43,46,51, - 5,39,44,53,59,33, - 51, - 26,44,47,33, - 51, - 5,38,40,30,51,58,83, - 83, - 40, - 83, - 65,66, - 6,20,23,28,57,59,74, - 83, - 8, - 50,8,48, - 50, - 51,79, - 12,33, - 59,72, - 80, - 33, - 18,37,40,59,65, - 33, - 33, - 33, - 33, - 33, - 33, - 33, - 33, - 33, - 0,13,15,16,26,48,59,71,72,73,74,76,79,81,83, - 3, - 4, - 74, - 3, - 4,5,59,74, - 5, - 5, - 57,59, - 57,59, - 57, - 74, - 74, - 74, - 74, - 3, - 3, - 6, - 5,18,37,59, - 57, - 57, - 74, - 74, - 6,59, - 59, - 6,74, - 57, - 57, - 59, - 18,37,59, - 8, - 8, - 8, - 8, - 3, - 3,59,68, - 59, - 18,37, - 18,37, - 37, - 18, - 74, - 74, - 6, - 59, - 40, - 59, - 3, - 3, - 3, - 5, - 74, - 74, - 74, - 74, - 59, - 3, - 3, - 3,8, - 3, - 3,8, - 3,8, - 3,8,74, - 4, - 4, - 4, - 18, - 4,74, - 3, - 3, - 3, - 3, - 74, - 74, - 18, - 18, - 3, - 3, - 3, - 8, - 8, - 8, - 59, - 18, - 74, - 74, - 74, - 74, - 6, - 59, - 59, - 37, - 68, - 68, - 37, - 8, - 8, - 6, - 57, - 57, - 57, - 57, - 57, - 74, - 74, - 74, - 74, - 74, - 3, - 3, - 3, - 18, - 74, - 3, - 18,37,59, - 59, - 59,74, - 74, - 74, - 0,10,12,15,20,29,40,44,51,53,59,65,72,73,33, - 38,32,30, - 5, - 45,51,74,79, - 65, - 32, - 65, - 3,4,5,6,8,11,18,37,38,40,32,30,44,57,59,68,74,33, - 32, - 59, - 3,4,5,6,8,11,18,37,40,44,57,59,68,74, - 29, - 32,52, - 40, - 15, - 17, - 26,83, - 9,26,53,59, - 49,56, - 44,33, - 33, - 10,45,46,47,61,62,75, - 33, - 15, - 53, - 20, - 48, - 27,48, - 27, - 50, - 59,73, - 3, - 21, - 53, - 53, - 50,38,30, - 44,59,65, - 51, - 76, - 10, - 0, - 15, - 44, - 79, - 41,79, - 51, - 37, - 3,18,29,68, - 59, - 44,59, - 35, - 15, - 44,33, - 44,33, - 44,33, - 65, - 51,79, - 51,79, - 65, - 50, - 65, - 45,46,61,75,83, - 83, - 59, - 37,68, - 24,43, - 43,46, - 46, - 46, - 21, - 10,83, - 46,51,79, - 59, - 0,44,67,33, - 1,14, - 53, - 2,3,42,67,83, - 3, - 3, - 67, - 3,9,12,13,15,19,21,26,29,35,40,53,58,59,64,65,66,67,69,71,72,73,74,80,83, - 5, - 9, - 71, - 71, - 26, - 53, - 53, - 53, - 19,21,53,64,66,69,80, - 53, - 72, - 34, - 51, - 43,46,52,67,74, - 46, - 46, - 56, - 32,43,46,74, - 10,51, - 46, - 67,73, - 65, - 0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,43,44,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,80,82,83, - 83, - 25,77, - 5,6,9,44,48,49,53,59,74,75,83, - 5, - 1,3,18,37,59,68,74, - 3,21, - 5,27, - 11,31, - 7,11,44,57,59,74, - 5,7,44,57,59,74, - 4,7,40,57, - 44,33, - 74, - 9,74, - 9,74, - 9,74, - 3,14, - 3,14, - 6,17, - 5,18,19,37,44,59, - 20,57,59, - 20,57, - 6,59, - 6,23,57,59,74, - 23,57, - 8,18,24,37,59, - 3,25, - 3,18,29,37,59,68,74, - 29,37, - 18,35, - 34,74, - 34,74, - 6,36, - 39,44,59, - 4,53, - 50,8, - 50,8, - 3,21, - 3,42, - 3,42, - 43,74, - 45,74, - 45,74, - 45,74, - 47, - 47, - 5,48, - 5,48, - 49,74, - 49,74, - 52,74, - 4,53, - 18,54, - 3,4,55, - 3,55, - 3,55,74, - 3,21, - 46,74, - 18,28,37, - 18,28,59,74, - 50,8, - 50,8, - 50,8, - 18,60, - 59,61,74, - 62,74, - 6,63, - 59,64, - 37,66, - 37,67,68, - 68, - 37,69, - 5,6,11,57,70, - 57, - 57,77, - 57,77, - 18,37,74,75, - 74,75, - 74,75, - 3,6,18,37,57,59,68,74,78, - 3,4,18,78, - 3,4,5,6,8,18,37,40,44,56,57,59,68,74, - 3,56, - 3,56, - 3,18,37,59,68,74,80, - 83, - 51, - 44,33, - 53, - 44,59,74, - 44,33, - 27,35,44,65, - 5, - 18, - 35, - 27,65,33, - 27,35,39,65,33, - 27, - 65, - 65, - 52,56,67,81, - 33, - 44,33, - 32, - 65, - 51, - 50, - 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,32,41,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,79,80,81,82,83, - 65, - 2,50,51,79, - 2,4, - 46, - 1,56, - 27,35,44,33, - 44, - 5, - 18, - 35, - 44,33, - 27,29,44,33, - 27,35,65,33, - 27, - 25,77, - 45,74, - 74, - 74, - 74, - 0,11,15,65,79,81, - 2,38,30, - 15,46, - 46,74, - 38,32,30,51, - 44,33, - 51,79, - 46,49, - 83, - 5,47,48,49,74, - 47,74, - 47,74, - 58, - 44,47,49,72,33, - 65, - 0,1,2,50,7,9,10,14,15,17,19,20,21,22,23,24,25,28,29,34,35,36,39,32,42,43,45,46,47,48,49,52,53,54,55,56,60,62,63,64,65,66,69,70,71,72,73,75,77,78,79,80,82,83, - 5,7,42,70, - 26, - 18,35, - 44, - 44, - 65, - 47,48,49, - 47,49, - 47,49, - 48, - 48, - 44, - 44, - 7,9,26,28,29,34,35,47,49,54,60,61,62,65,70,75, - 65, - 9,34,65,67,33, - 15, - 52, - 65, - 1,50,7,14,15,19,20,21,23,24,25,26,28,29,35,42,43,51,54,55,56,60,66,67,69,70,74,77,78,79,80,82,83, - 44, - 44, - 21, - 12, - 44, - 3,10,14,25,52,55,77, - 20, - 29, - 50, - 65, - 27,35,41,47,48,49,52,59,64,65,72,74,79, - 48, - 1,2,3,4,5,6,8,9,10,11,14,16,17,18,19,21,24,25,26,28,29,34,35,37,38,40,32,30,42,43,45,46,47,51,52,54,55,56,57,58,59,60,61,65,66,68,69,73,74,75,31,33,78,79,80,81,83, - 26,44,46,65, - 0,9,15,34,51,71,72,73,79,83, - 12, - 52,74, - 43,44,59,83, - 56, - 0,15,22,47,48,49,55,56,59,65,67,82, - 76, - 12,15,32,51,59,83, - 12,59, - 0,1,2,4,50,5,6,7,9,10,12,13,14,15,17,20,21,22,23,25,26,27,28,34,35,36,38,39,30,42,45,46,47,48,49,52,53,54,55,56,58,59,60,61,62,63,64,65,67,70,71,72,73,74,75,77,31,78,83, - 59,65, - 32, - 7, - 38,30, - 79,81, - 65, - 50, - 51, - 10,51, - 7,20,23,43,51,70,77,78, - 59, - 0,15,45,46,61,75, - 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,80,81,83, - 51,65, - 53, - 10, - 43,67, - 43, - 20,23,43,67, - 57, - 5, - 5, - 5, - 3, - 3,4,8,18,37,40,57,59,74, - 3,6,8,18,37,57,59,68,74, - 8, - 3, - 8, - 3,6,8,18,37,57,59,68,74, - 4,40, - 3,8,18,37,59,68,74, - 3,8,18,74, - 3,8,18,74, - 3, - 8,18, - 8,18, - 57, - 8,18, - 8, - 51, - 7,42,43,65, - 0,15,56,65, - 4,16,35,59,65,67,76,79,81, - 65, - 65, - 0, - 17,20,51, - 4,53, - 4, - 4, - 4, - 5,21,42,44,47,55,67, - 18,54, - 54, - 4,26,53,74, - 67, - 47,59,74, - 46, - 18,54, - 46,51,65, - 2,3,4,45,51,53,55,67,74,82,83, - 29,67,68,74,82, - 3, - 3, - 3, - 32, - 2, - 51,79, - 0,1,3,4,50,7,8,14,15,18,20,21,23,24,25,28,37,40,42,43,44,45,47,51,52,55,56,59,62,65,67,68,70,74,75,77,33,78,83, - 1,3,7,8,14,24,28,42,55,75,78, - 1,3,7,8,14,24,28,42,55,75,78, - 1,3,8,14,55, - 3,8, - 3, - 44,33, - 3,21, - 16,81, - 0,46,51,56,65,74,82, - 65, - 29, - 65, - 5,21,58,65,33, - 59,64, - 67, - 43,51, - 79, - 43, - 51, - 65,67, - 7,20,23,38,30,57,70,77, - 44,59,33, - 18,28,37,59,74, - 74, - 37,74, - 18, - 18, - 65, - 15,59,65,71, - 59,65, - 2,9,15,17,22,27,34,36,45,47,48,49,52,53,58,61,62,63,64,65,71,74,75, - 40, - 10, - 47,82, - 44, - 5,58, - 5,58, - 44,33, - 65, - 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,80,81,83, - 59, - 2, - 3,18,37,59,74, - 74, - 18,37,74, - 3,18,37,59,74, - 59, - 33, - 3,4,18,37,59,74, - 8, - 8, - 8, - 8, - 8, - 8, - 8, - 50,8,55,33, - 33, - 34,37,68, - 83, - 3,9,14,20,23,25,34,67,70,74,77, - 3,20,25,77, - 6,20,57,59,74, - 20,57, - 57, - 25,77, - 25,77, - 40,44,59, - 0,26,38,32,30,76, - 79, - 53, - 79, - 65, - 43,56, - 79, - 56, - 67, - 81, - 51,81, - 46, - 51, - 40,45,46,51,59,61,65,71,72,73,75,83, - 40,83, - 53, - 79, - 0,10,12,13,15,38,39,30,59,64,65,71,72,73, - 47,49, - 51,55, - 51, - 32,65, - 65, - 65, - 59, - 51, - 51, - 39,67, - 51, - 65, - 0,1,2,4,50,5,6,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,45,47,48,49,51,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,74,75,77,33,78,80,83, - 65, - 13, - 26,27,44,51,33,83, - 10,47,61, - 18,60,65, - 16,46,79,81, - 65, - 74, - 74, - 47,51,60,61,74, - 47,51,59,61,74, - 65, - 44,59, - 12,14,15,18,37,48,59,62,71,72,73,83, - 17,36,63, - 17,36,63, - 3,4,5,6,8,11,18,37,38,40,30,44,57,59,68,74, - 47,65,67,74,83, - 65, - 33, - 32,51, - 62,74, - 51, - 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,80,81,83, - 46,51,81, - 32, - 7,14,20,23,28,43,45,46,48,49,53,55,56,65,68,70,75,77,31,78,82, - 2,6,51,63,31, - 59, - 65,67, - 0,1,2,4,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,40,32,42,43,45,46,47,48,49,51,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,79,80,81,82,83, - 34,67,82,83, - 53, - 31, - 21,28,54,60, - 0,15,27,29,37,47,52,56,82, - 11,16, - 3,4,5,6,8,11,18,37,57,59,68,74,81, - 3,11,37,68,74,76, - 59,64, - 5,40,59,79, - 79,81, - 0,2,4,9,10,12,13,15,17,19,22,26,28,34,35,36,37,38,39,40,30,41,44,45,46,47,49,51,52,53,54,58,59,60,61,62,63,64,65,71,72,73,74,75,76,33,79,83, - 31,33, - 31,33, - 18,37, - 26, - 34,37,40,59,74,83, - 74, - 74, - 13, - 65, - 13,19,37,52,66,69,81, - 50,10,28,37,52,54,60,66,69, - 46,56,80,83, - 16,81, - 29, - 42,71,72,33, - 51,33, - 43, - 55, - 52, - 55, - 43, - 47,48,49, - 29, - 50,8, - 9,55,65, - 37,67,68, - 37, - 37,68, - 37,68, - 37, - 83, - 51,65, - 29,46, - 50,7,8,20,23,26,28,37,48,52,54,60,69,70,77, - 8, - 8, - 26, - 60, - 14,21,55,56,33,78, - 0,7,9,15,34,43,48,59,65,73,74, - 50, - 0,61, - 5,6,11,57,70,74, - 57, - 57, - 57, - 3,21, - 0,65, - 65, - 65, - 65, - 65, - 44, - 50, - 16,79, - 1,28,46,67,75,78, - 38,32,30,47,49, - 49, - 49, - 65, - 67, - 51, - 65, - 3,4,5,6,8,18,37,57,59,68,74, - 26,51,59,72,83, - 59, - 40, - 33, - 26,83, - 26, - 26, - 26,37,40,59,74, - 26, - 83, - 26, - 46, - 44, - 59, - 59,71,72,73, - 59,71, - 59,72, - 59,73, - 29,35,44,52,65,74,33, - 65, - 65, - 74, - 45,74, - 45, - 20,23,43,46,70,74,82, - 7,10,28,40,51,70, - 65, - 65,67, - 65, - 27,67, - 51, - 33, - 50, - 67,68, - 65, - 46, - 33, - 7,26,51,65,71,80,83, - 46, - 67, - 39,59,33, - 46, - 39, - 7, - 1,3,14,18,21,37,43,45,55,56,68,74,82, - 65,76, - 21,47,49,56,74, - 65, - 83, - 44, - 18,35, - 18,35, - 15,35,39,44,59,65,33, - 65, - 59,65, - 44,53,33, - 51,54, - 5, - 5, - 33, - 57,77, - 57, - 57, - 57, - 74, - 74, - 5,17,48,62,74, - 5, - 5,9,34,38,30,45,46,47,48,49,51,52,61,62,74,75, - 46,47,49,52,74,75, - 47,48,49,74,75, - 74, - 74, - 74, - 11,76,79, - 76,81, - 51, - 51, - 3,4,55, - 0,15,53,59,33, - 20, - 29, - 37,68, - 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,79,80,81,83, - 33, - 0,3,4,50,7,8,9,13,17,18,20,24,36,37,39,40,46,47,48,49,53,65,68,70,74,77,33,82,83, - 21,26,27,53,65,67,31,33,83, - 65, - 10, - 15,65, - 40, - 16,20,81, - 79, - 5,40,59, - 2,50,15,26,27,35,38,30,46,48,51,65,67,73,76,31,33,83, - 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,79,80,81,83, - 6,57,59,74, - 50, - 50, - 50, - 50, - 0, - 44, - 44, - 44,59,33, - 33, - 0,2,7,9,15,20,23,28,34,39,41,43,44,46,47,49,52,55,59,60,64,65,67,70,75,77,33,78, - 26, - 65, - 3,4,6,14,18,20,23,25,28,37,42,43,45,47,49,55,57,59,60,61,65,67,68,74,75,77,78,82, - 3,68, - 3,18, - 18, - 18, - 3,18, - 18, - 18, - 18, - 65, - 3,4,6,14,15,18,20,23,24,25,28,37,44,45,54,55,56,57,59,60,62,70,74,77,33, - 56, - 24, - 24, - 33, - 33, - 1,3,50,5,7,8,15,18,24,26,28,37,40,42,55,57,59,68,74,75,78, - 50,7,29,32,42,51,67,70, - 65, - 0,9,11,15,34,43,51,71,72,73,33,79,80,81,83, - 51, - 51, - 44,33, - 74, - 74, - 74, - 74, - 74, - 3,18,37,59,74, - 4, - 74, - 59, - 59, - 2, - 2,4, - 7,26,28,42,45,47,70,83, - 2,4, - 65,33, - 68, - 44, - 44,33, - 33, - 12,18,37,44,65,81, - 29,33, - 38,30, - 0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,32,42,43,45,46,47,48,49,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,78,80,83, - 3,50,12,15,18,26,28,29,37,44,54,59,60,67,68,72,73,74,80, - 59, - 59, - 18, - 18, - 79,81, - 10,26,32,51, - 15,41,79, - 59, - 38,30,47,51,65,67,82,83, - 67, - 37,68, - 3,7,25,43,46,56,67,70,33, - 7, - 7, - 43, - 43, - 43, - 44,33, - 44,33, - 67, - 82, - 5, - 5, - 3,7,25,43,56,67,70,33, - 7, - 7, - 43, - 43, - 43, - 44,33, - 44,33, - 16,32,64,72,79,82,83, - 43, - 5, - 5, - 2,3,7,43,56,70,33, - 7, - 7, - 20, - 44,33, - 44,33, - 51, - - + + + 0,3,4,5,6,8,11,18,37,40,44,46,56,57,59,65,68,74,76,33, + 59, + 18, + 4, + 44, + 0,2,3,4,5,6,8,9,10,11,14,15,18,20,23,25,26,27,28,29,34,35,37,39,40,43,44,45,46,47,48,49,53,54,55,56,57,58,59,60,61,62,64,65,67,68,70,72,74,75,76,77,31,82,83, + 3,18,37,44,57,68,74, + 3,4,5,18,37,44,46,59,68,74, + 3,74, + 4, + 44, + 44, + 44, + 33, + 8, + 59, + 59, + 8,18,44,57,68, + 3,8,37,59,68, + 11, + 57, + 3, + 59,65,68, + 44, + 5,74, + 44,59, + 50,5,7,14,17,18,21,22,23,24,27,28,36,37,40,41,42,44,47,48,49,53,59,63,67,74,75,77,31,78,82, + 3,6,18,37,57,59,68,74, + 3,4,5,40,44,46,59,74, + 74, + 11, + 74, + 44, + 3,5,6,57,74, + 37,44,59,68, + 5,35,59,65,74,31, + 1,2,5,7,11,14,18,20,37,40,44,48,55,56,59,67,74,75,31,78, + 3,8,11,18,37,44,57,59,68,74, + 37,68, + 44, + 11, + 59, + 44, + 6,8,57,59,74, + 14,21,35,43,51,53,55,56,59,65,71,31,33,78,79,81,83, + 50,37,40,44,48,67,74,31, + 6,8,18,37,57,59,74, + 59, + 57,59, + 0,3,11,18,35,37,40,32,44,56,59,67,68,74, + 3,5,8,11,18,37,44,59,68,74,76, + 4, + 6,57,59, + 50,5,44,33, + 18,37,59,74, + 59, + 37,44,59, + 3,8,37,57,59,68,74, + 44, + 44,59,68,74, + 37,44,67, + 65,67, + 51,67, + 67, + 76, + 51,79, + 7,16,29,42,70, + 0, + 0,15, + 15,40,32,83, + 0,3,4,5,6,8,18,37,40,57,59,68,74,83, + 40,83, + 3,4,5,6,8,11,18,37,40,57,59,68,74, + 5,59, + 7,19,24,28,29,37,66,69,70,80, + 7,14,20,21,23,28,43,46,53,55,56,67,70,77,78,82, + 59, + 50,9,26,45,46,47,51,61,64,65,67,72,75,33,79, + 7,9,46,49,52,54,74,75, + 31, + 40, + 46, + 47,59,60,61,65,67,74, + 22,42,55,56,70,74, + 53,61,65,75, + 43,74,83, + 79,83, + 18,37,74, + 9,65, + 52, + 65,79, + 65, + 1,3,18,37,59,67,68,74, + 18, + 18, + 2,4, + 44,51, + 0,1,2,50,7,9,10,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,41,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,66,67,69,70,71,72,73,75,77,31,78,80,82,83, + 47,60,74, + 50,43,79, + 0,50,15,32,51,67,71,72,73,83, + 7,43,49,51,75, + 18,20,23,43,45,46,47,60,61,74,33, + 3,21,65, + 79, + 20,23,28,47,51,54,59,60,62,65,75,77, + 54, + 28,51, + 1,2,3,4,14,21,25,38,30,42,43,44,53,55,56,67,33,78,82, + 44,33, + 44, + 24, + 59,65,67, + 59, + 9, + 50, + 21, + 3,21,65, + 79, + 50,5,8,27,38,30,44,48,58,33, + 51,79, + 6,17,22,36,38,30,63,31,33, + 7,20,48,49,65, + 59, + 8,37,44,33, + 12,59,64,72, + 12,59,73, + 44,33, + 4,50,5,7,11,16,22,27,40,32,44,57,59,65,67,73,74,76,33,80,83, + 5, + 5, + 44,57,59, + 44,57,59, + 57, + 65, + 58, + 38,32,30,59, + 32,43,79,80, + 65, + 65, + 50,5,8,19,24,29,38,30,53,58,66,69,80, + 43,51,54,64,72,80,83, + 50, + 37,65,68, + 65, + 65, + 65, + 38,30, + 33, + 82, + 50,43,48,73, + 51, + 32, + 7,14,20,25,44,46,47,51,67,70,77,33, + 26, + 62, + 20,23,62,65, + 65,83, + 5, + 9,74, + 74, + 74, + 74, + 74, + 10,11,16,41,76,79,81, + 10, + 12,13,27,29,44,59,65,73,33, + 5, + 10,45,46,47,61,72,75,33, + 44,33, + 44,59, + 21, + 27,32,43, + 3,14,67, + 3, + 3, + 16,32,51,54,79,81,83, + 51, + 51, + 12,15,59,65,69,83, + 15,59, + 12,59, + 15, + 44, + 65, + 46, + 39, + 65, + 20,23, + 11,16,79,81, + 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,23,24,25,26,27,28,29,34,35,36,39,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,79,80,81,83, + 6,9,15,17,74,31, + 18,28,35,38,30,54,60,31, + 3,18,67,75, + 50,10,33, + 50,5,17,18,19,22,26,27,35,36,37,39,44,47,49,52,59,63,33, + 26,28,54,60, + 37, + 2,33, + 20,57,59, + 33, + 33, + 57, + 57, + 32,83, + 65, + 9,29,66,33,80, + 33, + 74, + 15,39,33, + 33, + 50, + 50,69, + 21,38,30,51,31, + 0,13,15,58, + 40,32,51, + 65, + 65, + 65, + 65, + 65, + 15,59, + 65, + 65, + 44, + 7,20,23,26,43,44,46,51,56,67,70,74,75,77,33,78,82, + 10,45,46,61,75, + 65, + 7,8, + 65, + 65, + 2,12,21,24,27, + 59, + 67, + 31, + 1,2,3,4,50,5,6,7,8,9,10,14,15,18,19,20,21,23,24,25,26,28,29,34,35,36,37,40,42,43,44,45,46,47,51,54,55,56,57,59,60,61,62,63,66,67,68,69,70,74,75,77,33,78,79,80,82,83, + 3,4,5,6,8,11,18,37,40,57,59,68,74, + 40,83, + 1,3,7,14,15,18,19,20,21,23,24,25,28,29,35,37,38,40,30,42,54,55,56,57,59,60,66,69,70,77,78,80,83, + 5, + 51, + 43, + 74, + 74, + 46, + 7,42,51,67,70, + 3,21,35,65,67, + 65, + 65, + 65, + 65, + 6,17,22,53,59,31, + 59, + 6,20,23,57,59,74, + 18,57, + 57, + 57, + 65, + 9,59,65, + 9,74, + 9,74, + 33, + 59, + 44, + 51,56,67,79,83, + 1,7,9,14,20,21,23,25,26,27,28,34,35,32,42,43,47,48,49,51,54,55,56,60,61,62,65,67,70,75,77,78,82,83, + 72, + 54, + 2, + 33, + 35,60,65,67, + 53,83, + 2, + 48,65, + 65, + 44, + 50,44,67,68,33, + 83, + 38,30, + 67, + 12,64,72, + 65, + 51, + 50,22,32,65,67,76,80,83, + 40, + 45,33, + 7,9,23,28,47,33, + 47,49, + 49, + 49, + 43, + 2,14,20,25,28,43,47,48,49,51,60,61,65,67,77, + 48, + 48, + 48, + 48, + 48, + 48, + 3,4,5,6,8,11,16,18,37,40,32,41,51,57,59,64,68,72,74,76,33,79,81,83, + 79, + 39,44,52,65,33, + 0,59, + 0,59, + 40,51, + 7,10,15,28,49,51,70, + 47,48,49,67,76, + 83, + 51, + 51, + 51, + 65, + 65, + 65, + 51,79, + 51, + 7,44,67,75,78, + 7,44,67,75,78, + 7,44,75,78, + 44,65, + 50, + 50, + 50, + 50, + 83, + 0,1,50,7,8,9,12,14,15,18,21,24,25,26,28,34,35,37,42,44,54,56,58,59,60,65,66,67,74,33,78,80,81, + 59, + 59, + 8, + 8, + 8, + 8, + 0, + 83, + 33, + 33, + 50,46, + 15,29,67,31,33,79,83, + 50, + 3,25, + 44,59, + 72,73, + 33, + 1,15,28,46,59,65,67,74,75,78, + 83, + 33, + 1,50,7,14,19,20,21,23,24,25,26,28,29,35,42,43,54,55,56,60,66,67,69,70,77,78,80,82,83, + 20,65,67, + 79, + 79, + 79, + 12,40,33, + 26,65, + 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,32,41,42,43,45,46,47,48,49,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,80,81,83, + 73, + 55,67,83, + 32, + 5,26,27,37, + 38,32,30,51,79, + 32, + 51, + 33, + 27, + 54,60, + 28,54, + 37,68, + 59, + 74, + 74, + 50, + 59, + 50, + 50, + 50, + 50, + 50, + 44, + 2,3,50,5,8,9,10,13,15,18,26,27,28,29,34,35,37,39,40,44,48,52,53,54,55,59,60,65,66,67,68,71,73,74,33,82, + 59, + 59, + 9,18,37, + 9,18,37, + 37, + 40, + 33, + 33, + 62,74, + 44,59, + 12, + 10, + 16,18,35,32,43,79,81, + 72, + 9,34,74, + 74, + 45,46,55,56,75,82,83, + 7,14,20,23,24,28,43,45,46,48,49,53,55,56,65,68,70,75,77,31,78,82, + 51, + 65, + 65, + 59,65, + 33, + 59, + 65,67,68,76,31,33,83, + 38,32,30,51,79, + 50,8,65, + 51, + 12,13,59,64,72, + 38,30,51,74, + 50, + 51,67,83, + 6,11,36,31, + 11, + 65, + 65, + 15, + 46, + 50,31, + 28,35,54, + 28,35,38,30,54,60, + 3,4,5,6,8,11,18,37,40,44,57,58,59,68,74,33, + 0,1,2,50,7,9,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,45,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,80,83, + 1,50,14,19,21,24,25,28,29,35,42,54,55,56,60,65,66,69,78,79,80, + 3,11,17,37,38,32,30,47,51,31,33,79,81,83, + 38,32,30,51,59,65,33, + 0,1,2,3,4,50,5,6,7,8,9,10,11,12,14,15,17,18,19,20,21,23,24,25,26,27,28,29,34,35,36,37,39,40,42,43,44,45,46,47,48,49,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,77,31,33,78,80,83, + 5,44,59,74,33, + 59, + 5, + 12,59, + 13,59, + 83, + 59, + 5,40,59,74, + 3,4,5,6,8,11,16,18,37,40,44,57,59,68,74,76,81, + 14,25,32,55,65, + 3,5,8,9,13,18,23,26,27,29,34,37,39,42,47,52,56,59,65,68,74,77,33, + 43,46,51, + 5,39,44,53,59,33, + 51, + 26,44,47,33, + 51, + 5,38,40,30,51,58,83, + 83, + 40, + 83, + 65,66, + 6,20,23,28,57,59,74, + 83, + 8, + 50,8,48, + 50, + 51,79, + 12,33, + 59,72, + 80, + 33, + 18,37,40,59,65, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 33, + 0,13,15,16,26,48,59,71,72,73,74,76,79,81,83, + 3, + 4, + 74, + 3, + 4,5,59,74, + 5, + 5, + 57,59, + 57,59, + 57, + 74, + 74, + 74, + 74, + 3, + 3, + 6, + 5,18,37,59, + 57, + 57, + 74, + 74, + 6,59, + 59, + 6,74, + 57, + 57, + 59, + 18,37,59, + 8, + 8, + 8, + 8, + 3, + 3,59,68, + 59, + 18,37, + 18,37, + 37, + 18, + 74, + 74, + 6, + 59, + 40, + 59, + 3, + 3, + 3, + 5, + 74, + 74, + 74, + 74, + 59, + 3, + 3, + 3,8, + 3, + 3,8, + 3,8, + 3,8,74, + 4, + 4, + 4, + 18, + 4,74, + 3, + 3, + 3, + 3, + 74, + 74, + 18, + 18, + 3, + 3, + 3, + 8, + 8, + 8, + 59, + 18, + 74, + 74, + 74, + 74, + 6, + 59, + 59, + 37, + 68, + 68, + 37, + 8, + 8, + 6, + 57, + 57, + 57, + 57, + 57, + 74, + 74, + 74, + 74, + 74, + 3, + 3, + 3, + 18, + 74, + 3, + 18,37,59, + 59, + 59,74, + 74, + 74, + 0,10,12,15,20,29,40,44,51,53,59,65,72,73,33, + 38,32,30, + 5, + 45,51,74,79, + 65, + 32, + 65, + 3,4,5,6,8,11,18,37,38,40,32,30,44,57,59,68,74,33, + 32, + 59, + 3,4,5,6,8,11,18,37,40,44,57,59,68,74, + 29, + 32,52, + 40, + 15, + 17, + 26,83, + 9,26,53,59, + 49,56, + 44,33, + 33, + 10,45,46,47,61,62,75, + 33, + 15, + 53, + 20, + 48, + 27,48, + 27, + 50, + 59,73, + 3, + 21, + 53, + 53, + 50,38,30, + 44,59,65, + 51, + 76, + 10, + 0, + 15, + 44, + 79, + 41,79, + 51, + 37, + 3,18,29,68, + 59, + 44,59, + 35, + 15, + 44,33, + 44,33, + 44,33, + 65, + 51,79, + 51,79, + 65, + 50, + 65, + 45,46,61,75,83, + 83, + 59, + 37,68, + 24,43, + 43,46, + 46, + 46, + 21, + 10,83, + 46,51,79, + 59, + 0,44,67,33, + 1,14, + 53, + 2,3,42,67,83, + 3, + 3, + 67, + 3,9,12,13,15,19,21,26,29,35,40,53,58,59,64,65,66,67,69,71,72,73,74,80,83, + 5, + 9, + 71, + 71, + 26, + 53, + 53, + 53, + 19,21,53,64,66,69,80, + 53, + 72, + 34, + 51, + 43,46,52,67,74, + 46, + 46, + 56, + 32,43,46,74, + 10,51, + 46, + 67,73, + 65, + 0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,43,44,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,80,82,83, + 83, + 25,77, + 5,6,9,44,48,49,53,59,74,75,83, + 5, + 1,3,18,37,59,68,74, + 3,21, + 5,27, + 11,31, + 7,11,44,57,59,74, + 5,7,44,57,59,74, + 4,7,40,57, + 44,33, + 74, + 9,74, + 9,74, + 9,74, + 3,14, + 3,14, + 6,17, + 5,18,19,37,44,59, + 20,57,59, + 20,57, + 6,59, + 6,23,57,59,74, + 23,57, + 8,18,24,37,59, + 3,25, + 3,18,29,37,59,68,74, + 29,37, + 18,35, + 34,74, + 34,74, + 6,36, + 39,44,59, + 4,53, + 50,8, + 50,8, + 3,21, + 3,42, + 3,42, + 43,74, + 45,74, + 45,74, + 45,74, + 47, + 47, + 5,48, + 5,48, + 49,74, + 49,74, + 52,74, + 4,53, + 18,54, + 3,4,55, + 3,55, + 3,55,74, + 3,21, + 46,74, + 18,28,37, + 18,28,59,74, + 50,8, + 50,8, + 50,8, + 18,60, + 59,61,74, + 62,74, + 6,63, + 59,64, + 37,66, + 37,67,68, + 68, + 37,69, + 5,6,11,57,70, + 57, + 57,77, + 57,77, + 18,37,74,75, + 74,75, + 74,75, + 3,6,18,37,57,59,68,74,78, + 3,4,18,78, + 3,4,5,6,8,18,37,40,44,56,57,59,68,74, + 3,56, + 3,56, + 3,18,37,59,68,74,80, + 83, + 51, + 44,33, + 53, + 44,59,74, + 44,33, + 27,35,44,65, + 5, + 18, + 35, + 27,65,33, + 27,35,39,65,33, + 27, + 65, + 65, + 52,56,67,81, + 33, + 44,33, + 32, + 65, + 51, + 50, + 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,32,41,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,79,80,81,82,83, + 65, + 2,50,51,79, + 2,4, + 46, + 1,56, + 27,35,44,33, + 44, + 5, + 18, + 35, + 44,33, + 27,29,44,33, + 27,35,65,33, + 27, + 25,77, + 45,74, + 74, + 74, + 74, + 0,11,15,65,79,81, + 2,38,30, + 15,46, + 46,74, + 38,32,30,51, + 44,33, + 51,79, + 46,49, + 83, + 5,47,48,49,74, + 47,74, + 47,74, + 58, + 44,47,49,72,33, + 65, + 0,1,2,50,7,9,10,14,15,17,19,20,21,22,23,24,25,28,29,34,35,36,39,32,42,43,45,46,47,48,49,52,53,54,55,56,60,62,63,64,65,66,69,70,71,72,73,75,77,78,79,80,82,83, + 5,7,42,70, + 26, + 18,35, + 44, + 44, + 65, + 47,48,49, + 47,49, + 47,49, + 48, + 48, + 44, + 44, + 7,9,26,28,29,34,35,47,49,54,60,61,62,65,70,75, + 65, + 9,34,65,67,33, + 15, + 52, + 65, + 1,50,7,14,15,19,20,21,23,24,25,26,28,29,35,42,43,51,54,55,56,60,66,67,69,70,74,77,78,79,80,82,83, + 44, + 44, + 21, + 12, + 44, + 3,10,14,25,52,55,77, + 20, + 29, + 50, + 65, + 27,35,41,47,48,49,52,59,64,65,72,74,79, + 48, + 1,2,3,4,5,6,8,9,10,11,14,16,17,18,19,21,24,25,26,28,29,34,35,37,38,40,32,30,42,43,45,46,47,51,52,54,55,56,57,58,59,60,61,65,66,68,69,73,74,75,31,33,78,79,80,81,83, + 26,44,46,65, + 0,9,15,34,51,71,72,73,79,83, + 12, + 52,74, + 43,44,59,83, + 56, + 0,15,22,47,48,49,55,56,59,65,67,82, + 76, + 12,15,32,51,59,83, + 12,59, + 0,1,2,4,50,5,6,7,9,10,12,13,14,15,17,20,21,22,23,25,26,27,28,34,35,36,38,39,30,42,45,46,47,48,49,52,53,54,55,56,58,59,60,61,62,63,64,65,67,70,71,72,73,74,75,77,31,78,83, + 59,65, + 32, + 7, + 38,30, + 79,81, + 65, + 50, + 51, + 10,51, + 7,20,23,43,51,70,77,78, + 59, + 0,15,45,46,61,75, + 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,80,81,83, + 51,65, + 53, + 10, + 43,67, + 43, + 20,23,43,67, + 57, + 5, + 5, + 5, + 3, + 3,4,8,18,37,40,57,59,74, + 3,6,8,18,37,57,59,68,74, + 8, + 3, + 8, + 3,6,8,18,37,57,59,68,74, + 4,40, + 3,8,18,37,59,68,74, + 3,8,18,74, + 3,8,18,74, + 3, + 8,18, + 8,18, + 57, + 8,18, + 8, + 51, + 7,42,43,65, + 0,15,56,65, + 4,16,35,59,65,67,76,79,81, + 65, + 65, + 0, + 17,20,51, + 4,53, + 4, + 4, + 4, + 5,21,42,44,47,55,67, + 18,54, + 54, + 4,26,53,74, + 67, + 47,59,74, + 46, + 18,54, + 46,51,65, + 2,3,4,45,51,53,55,67,74,82,83, + 29,67,68,74,82, + 3, + 3, + 3, + 32, + 2, + 51,79, + 0,1,3,4,50,7,8,14,15,18,20,21,23,24,25,28,37,40,42,43,44,45,47,51,52,55,56,59,62,65,67,68,70,74,75,77,33,78,83, + 1,3,7,8,14,24,28,42,55,75,78, + 1,3,7,8,14,24,28,42,55,75,78, + 1,3,8,14,55, + 3,8, + 3, + 44,33, + 3,21, + 16,81, + 0,46,51,56,65,74,82, + 65, + 29, + 65, + 5,21,58,65,33, + 59,64, + 67, + 43,51, + 79, + 43, + 51, + 65,67, + 7,20,23,38,30,57,70,77, + 44,59,33, + 18,28,37,59,74, + 74, + 37,74, + 18, + 18, + 65, + 15,59,65,71, + 59,65, + 2,9,15,17,22,27,34,36,45,47,48,49,52,53,58,61,62,63,64,65,71,74,75, + 40, + 10, + 47,82, + 44, + 5,58, + 5,58, + 44,33, + 65, + 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,80,81,83, + 59, + 2, + 3,18,37,59,74, + 74, + 18,37,74, + 3,18,37,59,74, + 59, + 33, + 3,4,18,37,59,74, + 8, + 8, + 8, + 8, + 8, + 8, + 8, + 50,8,55,33, + 33, + 34,37,68, + 83, + 3,9,14,20,23,25,34,67,70,74,77, + 3,20,25,77, + 6,20,57,59,74, + 20,57, + 57, + 25,77, + 25,77, + 40,44,59, + 0,26,38,32,30,76, + 79, + 53, + 79, + 65, + 43,56, + 79, + 56, + 67, + 81, + 51,81, + 46, + 51, + 40,45,46,51,59,61,65,71,72,73,75,83, + 40,83, + 53, + 79, + 0,10,12,13,15,38,39,30,59,64,65,71,72,73, + 47,49, + 51,55, + 51, + 32,65, + 65, + 65, + 59, + 51, + 51, + 39,67, + 51, + 65, + 0,1,2,4,50,5,6,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,45,47,48,49,51,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,74,75,77,33,78,80,83, + 65, + 13, + 26,27,44,51,33,83, + 10,47,61, + 18,60,65, + 16,46,79,81, + 65, + 74, + 74, + 47,51,60,61,74, + 47,51,59,61,74, + 65, + 44,59, + 12,14,15,18,37,48,59,62,71,72,73,83, + 17,36,63, + 17,36,63, + 3,4,5,6,8,11,18,37,38,40,30,44,57,59,68,74, + 47,65,67,74,83, + 65, + 33, + 32,51, + 62,74, + 51, + 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,80,81,83, + 46,51,81, + 32, + 7,14,20,23,28,43,45,46,48,49,53,55,56,65,68,70,75,77,31,78,82, + 2,6,51,63,31, + 59, + 65,67, + 0,1,2,4,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,40,32,42,43,45,46,47,48,49,51,52,53,54,55,56,58,59,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,33,78,79,80,81,82,83, + 34,67,82,83, + 53, + 31, + 21,28,54,60, + 0,15,27,29,37,47,52,56,82, + 11,16, + 3,4,5,6,8,11,18,37,57,59,68,74,81, + 3,11,37,68,74,76, + 59,64, + 5,40,59,79, + 79,81, + 0,2,4,9,10,12,13,15,17,19,22,26,28,34,35,36,37,38,39,40,30,41,44,45,46,47,49,51,52,53,54,58,59,60,61,62,63,64,65,71,72,73,74,75,76,33,79,83, + 31,33, + 31,33, + 18,37, + 26, + 34,37,40,59,74,83, + 74, + 74, + 13, + 65, + 13,19,37,52,66,69,81, + 50,10,28,37,52,54,60,66,69, + 46,56,80,83, + 16,81, + 29, + 42,71,72,33, + 51,33, + 43, + 55, + 52, + 55, + 43, + 47,48,49, + 29, + 50,8, + 9,55,65, + 37,67,68, + 37, + 37,68, + 37,68, + 37, + 83, + 51,65, + 29,46, + 50,7,8,20,23,26,28,37,48,52,54,60,69,70,77, + 8, + 8, + 26, + 60, + 14,21,55,56,33,78, + 0,7,9,15,34,43,48,59,65,73,74, + 50, + 0,61, + 5,6,11,57,70,74, + 57, + 57, + 57, + 3,21, + 0,65, + 65, + 65, + 65, + 65, + 44, + 50, + 16,79, + 1,28,46,67,75,78, + 38,32,30,47,49, + 49, + 49, + 65, + 67, + 51, + 65, + 3,4,5,6,8,18,37,57,59,68,74, + 26,51,59,72,83, + 59, + 40, + 33, + 26,83, + 26, + 26, + 26,37,40,59,74, + 26, + 83, + 26, + 46, + 44, + 59, + 59,71,72,73, + 59,71, + 59,72, + 59,73, + 29,35,44,52,65,74,33, + 65, + 65, + 74, + 45,74, + 45, + 20,23,43,46,70,74,82, + 7,10,28,40,51,70, + 65, + 65,67, + 65, + 27,67, + 51, + 33, + 50, + 67,68, + 65, + 46, + 33, + 7,26,51,65,71,80,83, + 46, + 67, + 39,59,33, + 46, + 39, + 7, + 1,3,14,18,21,37,43,45,55,56,68,74,82, + 65,76, + 21,47,49,56,74, + 65, + 83, + 44, + 18,35, + 18,35, + 15,35,39,44,59,65,33, + 65, + 59,65, + 44,53,33, + 51,54, + 5, + 5, + 33, + 57,77, + 57, + 57, + 57, + 74, + 74, + 5,17,48,62,74, + 5, + 5,9,34,38,30,45,46,47,48,49,51,52,61,62,74,75, + 46,47,49,52,74,75, + 47,48,49,74,75, + 74, + 74, + 74, + 11,76,79, + 76,81, + 51, + 51, + 3,4,55, + 0,15,53,59,33, + 20, + 29, + 37,68, + 0,1,2,50,7,9,10,12,13,14,15,16,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,42,43,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,33,78,79,80,81,83, + 33, + 0,3,4,50,7,8,9,13,17,18,20,24,36,37,39,40,46,47,48,49,53,65,68,70,74,77,33,82,83, + 21,26,27,53,65,67,31,33,83, + 65, + 10, + 15,65, + 40, + 16,20,81, + 79, + 5,40,59, + 2,50,15,26,27,35,38,30,46,48,51,65,67,73,76,31,33,83, + 0,1,2,50,7,9,12,13,14,15,16,17,19,20,21,22,23,24,25,27,28,29,34,35,36,39,42,45,46,47,48,49,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,76,77,31,78,79,80,81,83, + 6,57,59,74, + 50, + 50, + 50, + 50, + 0, + 44, + 44, + 44,59,33, + 33, + 0,2,7,9,15,20,23,28,34,39,41,43,44,46,47,49,52,55,59,60,64,65,67,70,75,77,33,78, + 26, + 65, + 3,4,6,14,18,20,23,25,28,37,42,43,45,47,49,55,57,59,60,61,65,67,68,74,75,77,78,82, + 3,68, + 3,18, + 18, + 18, + 3,18, + 18, + 18, + 18, + 65, + 3,4,6,14,15,18,20,23,24,25,28,37,44,45,54,55,56,57,59,60,62,70,74,77,33, + 56, + 24, + 24, + 33, + 33, + 1,3,50,5,7,8,15,18,24,26,28,37,40,42,55,57,59,68,74,75,78, + 50,7,29,32,42,51,67,70, + 65, + 0,9,11,15,34,43,51,71,72,73,33,79,80,81,83, + 51, + 51, + 44,33, + 74, + 74, + 74, + 74, + 74, + 3,18,37,59,74, + 4, + 74, + 59, + 59, + 2, + 2,4, + 7,26,28,42,45,47,70,83, + 2,4, + 65,33, + 68, + 44, + 44,33, + 33, + 12,18,37,44,65,81, + 29,33, + 38,30, + 0,1,2,50,7,9,10,12,13,14,15,17,19,20,21,22,23,24,25,26,27,28,29,34,35,36,39,32,42,43,45,46,47,48,49,51,52,53,54,55,56,58,60,61,62,63,64,65,66,67,69,70,71,72,73,75,77,78,80,83, + 3,50,12,15,18,26,28,29,37,44,54,59,60,67,68,72,73,74,80, + 59, + 59, + 18, + 18, + 79,81, + 10,26,32,51, + 15,41,79, + 59, + 38,30,47,51,65,67,82,83, + 67, + 37,68, + 3,7,25,43,46,56,67,70,33, + 7, + 7, + 43, + 43, + 43, + 44,33, + 44,33, + 67, + 82, + 5, + 5, + 3,7,25,43,56,67,70,33, + 7, + 7, + 43, + 43, + 43, + 44,33, + 44,33, + 16,32,64,72,79,82,83, + 43, + 5, + 5, + 2,3,7,43,56,70,33, + 7, + 7, + 20, + 44,33, + 44,33, + 51, + + diff --git a/doc/salome/gui/GEOM/whxdata/whgdata0.xml b/doc/salome/gui/GEOM/whxdata/whgdata0.xml index 0075ff8d5..b0993a043 100755 --- a/doc/salome/gui/GEOM/whxdata/whgdata0.xml +++ b/doc/salome/gui/GEOM/whxdata/whgdata0.xml @@ -1,22 +1,22 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whxdata/whglo.xml b/doc/salome/gui/GEOM/whxdata/whglo.xml index 0f1cd68e5..ac67056d3 100755 --- a/doc/salome/gui/GEOM/whxdata/whglo.xml +++ b/doc/salome/gui/GEOM/whxdata/whglo.xml @@ -1,5 +1,5 @@ - - - - + + + + \ No newline at end of file diff --git a/doc/salome/gui/GEOM/whxdata/whidx.xml b/doc/salome/gui/GEOM/whxdata/whidx.xml index ac66bb966..44f05e5be 100755 --- a/doc/salome/gui/GEOM/whxdata/whidx.xml +++ b/doc/salome/gui/GEOM/whxdata/whidx.xml @@ -1,4 +1,4 @@ - - - - + + + + diff --git a/doc/salome/gui/GEOM/whxdata/whtdata0.xml b/doc/salome/gui/GEOM/whxdata/whtdata0.xml index 00dc1ad9b..7067bbd57 100755 --- a/doc/salome/gui/GEOM/whxdata/whtdata0.xml +++ b/doc/salome/gui/GEOM/whxdata/whtdata0.xml @@ -1,121 +1,121 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/doc/salome/gui/GEOM/whxdata/whtoc.xml b/doc/salome/gui/GEOM/whxdata/whtoc.xml index a271ba7cc..871ec25b9 100755 --- a/doc/salome/gui/GEOM/whxdata/whtoc.xml +++ b/doc/salome/gui/GEOM/whxdata/whtoc.xml @@ -1,4 +1,4 @@ - - - - + + + + diff --git a/doc/salome/gui/GEOM/wire.htm b/doc/salome/gui/GEOM/wire.htm index cf193a34d..ba0ef657b 100755 --- a/doc/salome/gui/GEOM/wire.htm +++ b/doc/salome/gui/GEOM/wire.htm @@ -1,139 +1,139 @@ - - - - - -Wire - - - - - - - - - - - - -

     Wire

    - -

    To create - a Wire in the Main Menu select - New Entity - > Build - > Wire

    - -

     

    - -

    You can create a Wire from several - connected edges and wires by selecting them in the object browser or in - the viewer holding Shift button.  

    - -

    The - Result  will - be a GEOM_Object (WIRE).

    - -

     

    - -

    TUI Command : - geompy.MakeWire(ListOfShape).

    - -

     

    - -

    Arguments: - Name + List of connected wires or edges..

    - -

     

    - -

    Dialog Box:

    - -

     

    - -

    - -

     

    - -

    Example:

    - -

     

    - -

    - -

     

    - -

    Our TUI Scripts provide you with useful examples - of creation of Advanced Geometric - Objects.

    - -

     

    - - - - + + + + + +Wire + + + + + + + + + + + + +

     Wire

    + +

    To create + a Wire in the Main Menu select + New Entity - > Build - > Wire

    + +

     

    + +

    You can create a Wire from several + connected edges and wires by selecting them in the object browser or in + the viewer holding Shift button.  

    + +

    The + Result  will + be a GEOM_Object (WIRE).

    + +

     

    + +

    TUI Command : + geompy.MakeWire(ListOfShape).

    + +

     

    + +

    Arguments: + Name + List of connected wires or edges..

    + +

     

    + +

    Dialog Box:

    + +

     

    + +

    + +

     

    + +

    Example:

    + +

     

    + +

    + +

     

    + +

    Our TUI Scripts provide you with useful examples + of creation of Advanced Geometric + Objects.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/wireframe_and_shading.htm b/doc/salome/gui/GEOM/wireframe_and_shading.htm index d79198037..e5716ceb2 100755 --- a/doc/salome/gui/GEOM/wireframe_and_shading.htm +++ b/doc/salome/gui/GEOM/wireframe_and_shading.htm @@ -1,150 +1,150 @@ - - - - - -Wireframe and Shading - - - - - - - - - - - - - -

    Display Mode

    - -

    This option is relevant for viewing 3D - objects. Wireframe mode means - that you can see only  edges - of the object, while its shells remain transparent. Shading - mode means that the shells are filled with color.

    - -

     

    - -

    To change the display mode right-click on - this geometrical object in the viewer and from the pop-up menu select - Display mode --> Wireframe - or Shading.

    - -

     

    - -

    TUI - Command: gg.setDisplayMode(ID, Short)

    - -

     

    - -

    Examples:

    - -

     

    - -

    Wireframe                                                                                       

    - -

     

    - -

    Shading

    - -

    - -

      

    - -

    Our TUI Scripts provide you with useful examples - of Changing Display - Parameters.

    - -

     

    - - - - + + + + + +Wireframe and Shading + + + + + + + + + + + + + +

    Display Mode

    + +

    This option is relevant for viewing 3D + objects. Wireframe mode means + that you can see only  edges + of the object, while its shells remain transparent. Shading + mode means that the shells are filled with color.

    + +

     

    + +

    To change the display mode right-click on + this geometrical object in the viewer and from the pop-up menu select + Display mode --> Wireframe + or Shading.

    + +

     

    + +

    TUI + Command: gg.setDisplayMode(ID, Short)

    + +

     

    + +

    Examples:

    + +

     

    + +

    Wireframe                                                                                       

    + +

     

    + +

    Shading

    + +

    + +

      

    + +

    Our TUI Scripts provide you with useful examples + of Changing Display + Parameters.

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/working_plane.htm b/doc/salome/gui/GEOM/working_plane.htm index 2b8f5cfa9..0ee62e910 100755 --- a/doc/salome/gui/GEOM/working_plane.htm +++ b/doc/salome/gui/GEOM/working_plane.htm @@ -1,140 +1,140 @@ - - - - - -Working Plane - - - - - - - - - - - - -

    Working Plane

    - -

    To create a Working Plane in - the Main Menu select New - Entity - > Basic - > Working Plane

    - -

     

    - -

    There are some algorithms to set the Working Plane and the Camera Position.

    - -

     

    - -

    Firstly, you can select a Plane, a Planar - Face or a Local Coordinate System - to be your Working Plane

    - -

    Arguments: Name + 1 selection (face - or planar face),

    - -

     

    - -

    - -

     

    - -

    Secondly, you can define a Working - Plane by two Vectors

    - -

    Arguments: - Name +  2 - vectors,

    - -

    - -

     

    - -

    Finally, you can select one of three basic - projections of XYZ coordinate system to be your Working - Plane

    - -

     

    - -

    - -

     

    - -

     

    - - - - + + + + + +Working Plane + + + + + + + + + + + + +

    Working Plane

    + +

    To create a Working Plane in + the Main Menu select New + Entity - > Basic - > Working Plane

    + +

     

    + +

    There are some algorithms to set the Working Plane and the Camera Position.

    + +

     

    + +

    Firstly, you can select a Plane, a Planar + Face or a Local Coordinate System + to be your Working Plane

    + +

    Arguments: Name + 1 selection (face + or planar face),

    + +

     

    + +

    + +

     

    + +

    Secondly, you can define a Working + Plane by two Vectors

    + +

    Arguments: + Name +  2 + vectors,

    + +

    + +

     

    + +

    Finally, you can select one of three basic + projections of XYZ coordinate system to be your Working + Plane

    + +

     

    + +

    + +

     

    + +

     

    + + + + diff --git a/doc/salome/gui/GEOM/working_with_groups.htm b/doc/salome/gui/GEOM/working_with_groups.htm index bb1db960d..59f91ccc1 100755 --- a/doc/salome/gui/GEOM/working_with_groups.htm +++ b/doc/salome/gui/GEOM/working_with_groups.htm @@ -1,269 +1,269 @@ - - - - - -Working with groups - - - - - - - - - - - - - -

    Working with groups

    - -

    Creation and editing groups of subshapes of a geometrical object makes - handling subshapes much easier. This functionality is available in OCC - viewer only.

    - -

     

    - -

    Create - a group

    - -

     

    - -

    To create a group of subshapes of a geometrical - object in the main menu select New entity - > Group > Create.

    - -

    The following menu will appear.

    - -

     

    - -

    - -

     

    - -

    In this Menu:

    - -

     

    - -
      - -
    • Shape - Type radio button define the type of elements for the group (points, - lines, planes or shapes).

    • - -
    • Group - Name - here you can enter the name of the group, by default, it - is Group_n.

    • - -
    • Then, using the button, select the Main - Shape (a geometrical object on which the group will be created). - You can select the elements of your group in two ways:

    • - -
    • Clicking - Select Sub-Shapes button you can - select them manually in the 3D Viewer, and add to the group by clicking - the Add button (keep down the - Shift button on the keyboard to select several elements and add all them - together). The indexes of the selected elements will be displayed in the - list. To delete elements from the list, select them and click Remove - button.  

    • - -
    • Clicking - Select All button you can add - all object's elements of a certain type in the list of the elements of - the group. To delete elements from the list, select them and click Remove button.  

    • - -
    • Finally, - confirm your selection by clicking OK - (also closes the Menu) or Apply - (leaves the Menu open for creation of other groups), or skip it by clicking - Close button.

    • -
    - -

     

    - -

    The - Result of the operation will be a - GEOM_Object.

    - -

     

    - -

    TUI Command: - geompy.CreateGroup(MainShape, ShapeType), - where MainShape is a shape for which the group is created, ShapeType is - a type of shapes in the created group.

    - -

     

    - -

    Arguments: - 1 Shape + Type of subshape.

    - -

     

    - -

    Example:

    - -

     

    - -

    - -

     

    - -

     

    - -

     

    - -

    Edit - a group

    - -

     

    - -

    To Edit an - existing group in the main menu select New - entity > Group > Edit. This menu is designed in the same - way as the Create a group menu. -

    - -

     

    - -

    The - Result of the operation will be a - GEOM_Object.

    - -

     

    - -

    TUI Command: -

    - -
      - -
    • geompy.AddObject(Group, - SubShapeID), where Group is a group to which a sub shape has to - be added, SubShapeID is an ID of the sub shape to be added to the group

    • - -
    • geompy.RemoveObject(Group, - SubShapeID), where Group is a group from which a sub shape has - to be removed, SubShapeID is an ID of the sub shape to be removed from - the group

    • - -
    • geompy.GetObjectIDs(Group), - where Group is a group for which its object ID’s are returned.

    • -
    - -

    Returns: - List of IDs.

    - -

     

    - -

    Arguments: - 1 Shape + its subshapes.

    - -

     

    - -

    Dialog Box:

    - -

     

    - -

    - -

     

    - -

    Our TUI Scripts - provide you with useful examples of Working - with Groups.

    - -

     

    - - - - + + + + + +Working with groups + + + + + + + + + + + + + +

    Working with groups

    + +

    Creation and editing groups of subshapes of a geometrical object makes + handling subshapes much easier. This functionality is available in OCC + viewer only.

    + +

     

    + +

    Create + a group

    + +

     

    + +

    To create a group of subshapes of a geometrical + object in the main menu select New entity + > Group > Create.

    + +

    The following menu will appear.

    + +

     

    + +

    + +

     

    + +

    In this Menu:

    + +

     

    + +
      + +
    • Shape + Type radio button define the type of elements for the group (points, + lines, planes or shapes).

    • + +
    • Group + Name - here you can enter the name of the group, by default, it + is Group_n.

    • + +
    • Then, using the button, select the Main + Shape (a geometrical object on which the group will be created). + You can select the elements of your group in two ways:

    • + +
    • Clicking + Select Sub-Shapes button you can + select them manually in the 3D Viewer, and add to the group by clicking + the Add button (keep down the + Shift button on the keyboard to select several elements and add all them + together). The indexes of the selected elements will be displayed in the + list. To delete elements from the list, select them and click Remove + button.  

    • + +
    • Clicking + Select All button you can add + all object's elements of a certain type in the list of the elements of + the group. To delete elements from the list, select them and click Remove button.  

    • + +
    • Finally, + confirm your selection by clicking OK + (also closes the Menu) or Apply + (leaves the Menu open for creation of other groups), or skip it by clicking + Close button.

    • +
    + +

     

    + +

    The + Result of the operation will be a + GEOM_Object.

    + +

     

    + +

    TUI Command: + geompy.CreateGroup(MainShape, ShapeType), + where MainShape is a shape for which the group is created, ShapeType is + a type of shapes in the created group.

    + +

     

    + +

    Arguments: + 1 Shape + Type of subshape.

    + +

     

    + +

    Example:

    + +

     

    + +

    + +

     

    + +

     

    + +

     

    + +

    Edit + a group

    + +

     

    + +

    To Edit an + existing group in the main menu select New + entity > Group > Edit. This menu is designed in the same + way as the Create a group menu. +

    + +

     

    + +

    The + Result of the operation will be a + GEOM_Object.

    + +

     

    + +

    TUI Command: +

    + +
      + +
    • geompy.AddObject(Group, + SubShapeID), where Group is a group to which a sub shape has to + be added, SubShapeID is an ID of the sub shape to be added to the group

    • + +
    • geompy.RemoveObject(Group, + SubShapeID), where Group is a group from which a sub shape has + to be removed, SubShapeID is an ID of the sub shape to be removed from + the group

    • + +
    • geompy.GetObjectIDs(Group), + where Group is a group for which its object ID’s are returned.

    • +
    + +

    Returns: + List of IDs.

    + +

     

    + +

    Arguments: + 1 Shape + its subshapes.

    + +

     

    + +

    Dialog Box:

    + +

     

    + +

    + +

     

    + +

    Our TUI Scripts + provide you with useful examples of Working + with Groups.

    + +

     

    + + + + -- 2.39.2

    Our TUI Scripts - provide you with useful examples of creation of Basic - Geometric Objects.