Merge branch occ/shape_reparation_2

This commit is contained in:
vsr 2015-01-28 18:16:24 +03:00
commit 97c05bd172
291 changed files with 14140 additions and 3135 deletions

View File

@ -37,9 +37,11 @@ SET(GOOD_TESTS
basic_geom_objs_ex07.py
basic_geom_objs_ex08.py
basic_geom_objs_ex09.py
basic_geom_objs_ex10.py
basic_operations_ex01.py
basic_operations_ex02.py
basic_operations_ex03.py
basic_operations_ex04.py
basic_properties.py
blocks_operations_ex01.py
blocks_operations_ex02.py
@ -64,7 +66,8 @@ SET(GOOD_TESTS
complex_objs_ex07.py
complex_objs_ex08.py
complex_objs_ex09.py
complex_objs_ex10.py
complex_objs_ex10.py
fast_intersection.py
free_boundaries.py
free_faces.py
GEOM_box.py
@ -115,6 +118,7 @@ SET(GOOD_TESTS
transformation_operations_ex11.py
transformation_operations_ex12.py
transformation_operations_ex13.py
transformation_operations_ex14.py
viewing_geom_objs_ex01.py
viewing_geom_objs_ex02.py
viewing_geom_objs_ex03.py

View File

@ -0,0 +1,37 @@
# Creation of a Surface From Face
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
import math
import SALOMEDS
# Create Vertices, Edges, Wire, Face and Disk
Vertex_1 = geompy.MakeVertex(0, 0, 0)
Vertex_2 = geompy.MakeVertex(100, 0, 0)
Vertex_3 = geompy.MakeVertex(50, 100, 0)
Edge_1 = geompy.MakeEdge(Vertex_1, Vertex_2)
Edge_2 = geompy.MakeEdge(Vertex_2, Vertex_3)
Edge_3 = geompy.MakeEdge(Vertex_3, Vertex_1)
Wire_1 = geompy.MakeWire([Edge_1, Edge_2, Edge_3])
Face_1 = geompy.MakeFace(Wire_1, True)
Disk_1 = geompy.MakeDiskR(100, 1)
# Create Surfaces From Faces.
SurfaceFromFace_1 = geompy.MakeSurfaceFromFace(Face_1)
SurfaceFromFace_2 = geompy.MakeSurfaceFromFace(Disk_1)
#Add created object to study
geompy.addToStudy( Vertex_1, "Vertex_1" )
geompy.addToStudy( Vertex_2, "Vertex_2" )
geompy.addToStudy( Vertex_3, "Vertex_3" )
geompy.addToStudy( Edge_1, "Edge_1" )
geompy.addToStudy( Edge_2, "Edge_2" )
geompy.addToStudy( Edge_3, "Edge_3" )
geompy.addToStudy( Wire_1, "Wire_1" )
geompy.addToStudy( Face_1, "Face_1" )
geompy.addToStudy( Disk_1, "Disk_1" )
geompy.addToStudy( SurfaceFromFace_1, "SurfaceFromFace_1" )
geompy.addToStudy( SurfaceFromFace_2, "SurfaceFromFace_2" )

View File

@ -0,0 +1,40 @@
# Get shared sub-shapes
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
import SALOMEDS
# create a box and partigion it by two planes
box = geompy.MakeBoxDXDYDZ(200, 200, 200)
p = geompy.MakeVertex(100, 100, 100)
v1 = geompy.MakeVectorDXDYDZ(1, 1, 0)
v2 = geompy.MakeVectorDXDYDZ(1, -1, 0)
pln1 = geompy.MakePlane(p, v1, 2000)
pln2 = geompy.MakePlane(p, v2, 2000)
partition = geompy.MakePartition([box], [pln1, pln2])
# extract solids from result of partition
solids = geompy.SubShapeAllSorted(partition, geompy.ShapeType['SOLID'])
# get shared shapes from the partition (compound of 4 solids)
# a) faces that are shared by all 4 solids (0 found)
pF_T = geompy.GetSharedShapesMulti(partition, geompy.ShapeType['FACE'])
# b) faces that are shared by any couple of solids (4 found)
pF_F = geompy.GetSharedShapesMulti(partition, geompy.ShapeType['FACE'], False)
# c) edges that are shared by all 4 solids (1 found)
pE_T = geompy.GetSharedShapesMulti(partition, geompy.ShapeType['EDGE'])
# d) edges that are shared by any couple of solids (13 found)
pE_F = geompy.GetSharedShapesMulti(partition, geompy.ShapeType['EDGE'], False)
# get shared shapes from the list of solids
# a) faces that are shared by all 4 solids (0 found)
sF_T = geompy.GetSharedShapesMulti(solids, geompy.ShapeType['FACE'])
# b) faces that are shared by 1st/2nd, 1st/3rd and 1st/4th solids (2 found)
sF_F = geompy.GetSharedShapesMulti(solids, geompy.ShapeType['FACE'], False)
# c) edges that are shared by all 4 solids (1 found)
sE_T = geompy.GetSharedShapesMulti(solids, geompy.ShapeType['EDGE'])
# d) edges that are shared by 1st/2nd, 1st/3rd and 1st/4th solids (7 found)
sE_F = geompy.GetSharedShapesMulti(solids, geompy.ShapeType['EDGE'], False)

View File

@ -10,7 +10,7 @@ geompy = geomBuilder.New(salome.myStudy)
box = geompy.MakeBoxDXDYDZ(100,30,100)
(IsValid, err) = geompy.CheckShape(box, 0, 2)
if IsValid == 0:
geompy.PrintShapeError(box, err)
geompy.PrintShapeErrors(box, err)
raise RuntimeError, "Invalid box created"
else:
print "\nBox is valid"

View File

@ -20,14 +20,12 @@ p3 = geompy.MakeVertex( -30., -30., 10.)
# create an arc from three points
arc = geompy.MakeArc(p1, p2, p3)
ShapeListCompound = []
i = 0
while i <= 3 :
ContoursList = []
for i in range(4):
S = geompy.MakeTranslation(arc, i * 50., 0., 0.)
ShapeListCompound.append(S)
i = i + 1
ContoursList.append(S)
compound = geompy.MakeCompound(ShapeListCompound)
compound = geompy.MakeCompound(ContoursList)
# create a filling
filling = geompy.MakeFilling(compound, mindeg, maxdeg, tol3d, tol2d, nbiter)

View File

@ -0,0 +1,34 @@
# Fast intersection
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
# create a box
box = geompy.MakeBoxDXDYDZ(100,100,100)
# create a cylinder
cylinder = geompy.MakeCylinderRH(100, 300)
isOk, res1, res2 = geompy.FastIntersect(box, cylinder)
if isOk == 0:
raise RuntimeError, "No intersection!"
else:
print "\nTwo lists of indexes of sub-shapes localize the intersection:"
print res1, res2
# create two boxes with gap
Ver1 = geompy.MakeVertex(0, 0, 0)
Ver2 = geompy.MakeVertex(100, 100, 100)
Ver3 = geompy.MakeVertex(100.1, 0, 0)
Ver4 = geompy.MakeVertex(200, 200, 200)
box1 = geompy.MakeBoxTwoPnt(Ver1, Ver2)
box2 = geompy.MakeBoxTwoPnt(Ver3, Ver4)
isOk1, aRes1, aRes2 = geompy.FastIntersect(box1, box2, 1.)
if isOk1 == 0:
raise RuntimeError, "No gaps!"
else:
print "\nTwo lists of indexes of sub-shapes localize the gap:"
print aRes1, aRes2

View File

@ -1,27 +1,26 @@
# Sewing
import salome
import salome, math
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
import math
gg = salome.ImportComponentGUI("GEOM")
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
# create base geometry 2D
vector = geompy.MakeVector(px, py)
arc = geompy.MakeArc(py, pz, px)
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)
WantPlanarFace = True
wire = geompy.MakeWire([vector, arc])
face = geompy.MakeFace(wire, WantPlanarFace)
face_rot = geompy.MakeRotation(face, vector, angle)
# make sewing
@ -29,9 +28,9 @@ precision = 0.00001
sewing = geompy.MakeSewing([face, face_rot], precision)
# add objects in the study
id_face = geompy.addToStudy(face, "Face")
id_face = geompy.addToStudy(face, "Face")
id_face_rot = geompy.addToStudy(face_rot, "Face rotation")
id_sewing = geompy.addToStudy(sewing, "Sewing")
id_sewing = geompy.addToStudy(sewing, "Sewing")
# display the results
gg.createAndDisplayGO(id_face)
@ -40,3 +39,12 @@ gg.createAndDisplayGO(id_face_rot)
gg.setDisplayMode(id_face_rot,1)
gg.createAndDisplayGO(id_sewing)
gg.setDisplayMode(id_sewing,1)
# Example 2: make a shell of a multiply translated face
quad = geompy.MakeFaceHW( 10, 20, 1 )
quadCompound = geompy.MakeMultiTranslation1D( quad, geompy.MakeVectorDXDYDZ(1,0,0), 10, 3)
shell = geompy.Sew( quadCompound, 1e-6 )
id_shell = geompy.addToStudy( shell, "3 quads shell")
gg.createAndDisplayGO(id_shell)

View File

@ -6,6 +6,8 @@ import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
# Variant 1: using DivideEdge()
# create vertices
p1 = geompy.MakeVertex(0,0,50)
p2 = geompy.MakeVertex(60,0,50)
@ -27,4 +29,15 @@ edge_points = geompy.SubShapeAllSortedCentres(divide, geompy.ShapeType["VERTEX"]
for point in edge_points:
geompy.addToStudyInFather(divide, point, "Edge's point after divide")
# Variant 2: using DivideEdgeByPoint()
box = geompy.MakeBox(0,0,0, 10,10,10, theName="box")
p1 = geompy.MakeVertex( 3, -2, 1, theName="point 1 to project" )
p2 = geompy.MakeVertex( 7, -2, 1, theName="point 2 to project" )
edge = geompy.GetEdgeNearPoint( box, p1, theName="edge to split")
div = geompy.DivideEdgeByPoint( box, edge, [p1, p2], theName="box (edge divided)")
salome.sg.updateObjBrowser(1)

View File

@ -30,17 +30,29 @@ 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
sphere = geompy.MakeSphereR(100)
box = geompy.MakeBoxDXDYDZ(200, 200, 200)
cut = geompy.MakeCutList(sphere, [box], True)
# 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)
face4 = geompy.MakeFaceFromSurface(face1, sketcher1)
# create face from edges with constraints
face5 = geompy.MakeFaceWithConstraints([geompy.GetSubShape(cut, [5]), geompy.GetSubShape(cut, [3]),
geompy.GetSubShape(cut, [11]), geompy.GetSubShape(cut, [3]),
geompy.GetSubShape(cut, [13]), geompy.GetSubShape(cut, [3])])
# add objects in the study
id_face1 = geompy.addToStudy(face1,"Face1")
id_face2 = geompy.addToStudy(face2,"Face2")
id_face3 = geompy.addToStudy(face3,"Face3")
id_face4 = geompy.addToStudy(face4,"Face4")
id_face5 = geompy.addToStudy(face5,"Face5")
# display the faces
gg.createAndDisplayGO(id_face1)
@ -52,3 +64,9 @@ gg.setTransparency(id_face2,0.2)
gg.createAndDisplayGO(id_face3)
gg.setDisplayMode(id_face3,1)
gg.setTransparency(id_face3,0.2)
gg.createAndDisplayGO(id_face4)
gg.setDisplayMode(id_face4,1)
gg.setTransparency(id_face4,0.2)
gg.createAndDisplayGO(id_face5)
gg.setDisplayMode(id_face5,1)
gg.setTransparency(id_face5,0.2)

View File

@ -0,0 +1,46 @@
# Creation of a Solid(s) from connected faces
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
gg = salome.ImportComponentGUI("GEOM")
# create a box
box = geompy.MakeBoxDXDYDZ(200, 200, 200)
# make a copy of a box translated by X coordinate
box_translation = geompy.MakeTranslation(box, 200, 0, 0)
# extract shells from boxes
box_shell = geompy.SubShapeAllSorted(box, geompy.ShapeType["SHELL"])[0]
box_translation_shell = geompy.SubShapeAllSorted(box_translation, geompy.ShapeType["SHELL"])[0]
# extract faces from boxes
box_faces = geompy.SubShapeAllSorted(box, geompy.ShapeType["FACE"])
box_translation_faces = geompy.SubShapeAllSorted(box_translation, geompy.ShapeType["FACE"])
# create solids from shells
msf_shells_noint = geompy.MakeSolidFromConnectedFaces([box_shell, box_translation_shell],0)
msf_shells_int = geompy.MakeSolidFromConnectedFaces([box_shell, box_translation_shell], 1)
# create solids from faces
msf_faces_noint = geompy.MakeSolidFromConnectedFaces(box_faces+box_translation_faces, 0)
msf_faces_int = geompy.MakeSolidFromConnectedFaces(box_faces+box_translation_faces, 1)
# add objects in the study
id_solid_shells_noint = geompy.addToStudy(msf_shells_noint,"Solid_from_shells_no_intersect")
id_solid_shells_int = geompy.addToStudy(msf_shells_int,"Solid_from_shells_intersect")
id_solid_faces_noint = geompy.addToStudy(msf_faces_noint,"Solid_from_faces_no_intersect")
id_solid_faces_int = geompy.addToStudy(msf_faces_int,"Solid_from_faces_intersect")
# display the results
gg.createAndDisplayGO(id_solid_shells_noint)
gg.setDisplayMode(id_solid_shells_noint,1)
gg.createAndDisplayGO(id_solid_shells_int)
gg.setDisplayMode(id_solid_shells_int,1)
gg.createAndDisplayGO(id_solid_faces_noint)
gg.setDisplayMode(id_solid_faces_noint,1)
gg.createAndDisplayGO(id_solid_faces_int)
gg.setDisplayMode(id_solid_faces_int,1)

View File

@ -2,7 +2,6 @@
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
@ -25,24 +24,17 @@ projection = geompy.MakeProjection(curve, face_cyl)
# add objects in the study
geompy.addToStudy(cylinder, "cylinder")
geompy.addToStudyInFather(cylinder, face_cyl, "face_cyl")
geompy.addToStudy(p1, "p1")
geompy.addToStudy(p2, "p2")
geompy.addToStudy(p3, "p3")
geompy.addToStudy(p4, "p4")
geompy.addToStudy(p5, "p5")
geompy.addToStudy(curve, "curve")
geompy.addToStudy(projection, "projection")
#projection of point on wire.
#projection of point on wire
e1 = geompy.MakeLineTwoPnt(p1, p2)
e2 = geompy.MakeLineTwoPnt(p2, p3)
w1 = geompy.MakeWire([e1, e2], 1.e-7)
v1 = geompy.MakeVertex(300, 40, 100)
prj = geompy.MakeProjectionOnWire(v1, w1)
geompy.addToStudy(e1, "e1")
geompy.addToStudy(e2, "e2")
prj = geompy.MakeProjection(v1, w1)
geompy.addToStudy(w1, "w1")
geompy.addToStudy(v1, "v1")
geompy.addToStudy(prj[1], "projOnWire")
geompy.addToStudy(prj, "projOnWire")

View File

@ -0,0 +1,75 @@
# Extend Edge and Face
import salome
salome.salome_init()
import GEOM
from salome.geom import geomBuilder
geompy = geomBuilder.New(salome.myStudy)
gg = salome.ImportComponentGUI("GEOM")
# create vertices
p1 = geompy.MakeVertex( 0., 0., 0.)
p2 = geompy.MakeVertex(100., 100., 0.)
p3 = geompy.MakeVertex( 0., 100., 0.)
# create edges
edge1 = geompy.MakeEdge(p1, p2)
edge2 = geompy.MakeCircleR(100)
# create faces
face1 = geompy.MakePlaneThreePnt(p1, p2, p3, 200)
sphere1 = geompy.MakeSpherePntR(p1, 100)
faces2 = geompy.SubShapeAllSorted(sphere1, GEOM.FACE)
face2 = faces2[0]
# perform edge extension
resEdge1 = geompy.ExtendEdge(edge1, 0.2, 0.8)
resEdge2 = geompy.ExtendEdge(edge1, -0.3, 1.3)
resEdge3 = geompy.ExtendEdge(edge2, 0.5, 1)
resEdge4 = geompy.ExtendEdge(edge2, 0.2, 0.5)
# perform face extension
resFace1 = geompy.ExtendFace(face1, 0.2, 0.8, -0.3, 1.3)
resFace2 = geompy.ExtendFace(face1, 0, 0.5, 1, 2)
resFace3 = geompy.ExtendFace(face2, 0.2, 0.8, 0.3, 0.7)
resFace4 = geompy.ExtendFace(face2, 0.5, 1, 0.5, 1)
# add objects in the study
id_edge1 = geompy.addToStudy(edge1, "Edge 1")
id_edge2 = geompy.addToStudy(edge2, "Edge 2")
id_face1 = geompy.addToStudy(face1, "Face 1")
id_face2 = geompy.addToStudy(face2, "Face 2")
id_resEdge1 = geompy.addToStudy(resEdge1, "Extended Edge 1")
id_resEdge2 = geompy.addToStudy(resEdge2, "Extended Edge 1")
id_resEdge3 = geompy.addToStudy(resEdge3, "Extended Edge 2")
id_resEdge4 = geompy.addToStudy(resEdge4, "Extended Edge 3")
id_resFace1 = geompy.addToStudy(resFace1, "Extended Face 1")
id_resFace2 = geompy.addToStudy(resFace2, "Extended Face 2")
id_resFace3 = geompy.addToStudy(resFace3, "Extended Face 3")
id_resFace4 = geompy.addToStudy(resFace4, "Extended Face 4")
# display the prism and the results of chamfer operation
gg.createAndDisplayGO(id_edge1)
gg.setDisplayMode(id_edge1, 1)
gg.createAndDisplayGO(id_edge2)
gg.setDisplayMode(id_edge2, 1)
gg.createAndDisplayGO(id_face1)
gg.setDisplayMode(id_face1, 1)
gg.createAndDisplayGO(id_face2)
gg.setDisplayMode(id_face2, 1)
gg.createAndDisplayGO(id_resEdge1)
gg.setDisplayMode(id_resEdge1, 1)
gg.createAndDisplayGO(id_resEdge2)
gg.setDisplayMode(id_resEdge2, 1)
gg.createAndDisplayGO(id_resEdge3)
gg.setDisplayMode(id_resEdge3, 1)
gg.createAndDisplayGO(id_resEdge4)
gg.setDisplayMode(id_resEdge4, 1)
gg.createAndDisplayGO(id_resFace1)
gg.setDisplayMode(id_resFace1, 1)
gg.createAndDisplayGO(id_resFace2)
gg.setDisplayMode(id_resFace2, 1)
gg.createAndDisplayGO(id_resFace3)
gg.setDisplayMode(id_resFace3, 1)
gg.createAndDisplayGO(id_resFace4)
gg.setDisplayMode(id_resFace4, 1)

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 903 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
doc/salome/gui/GEOM/images/filling.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.4 KiB

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

BIN
doc/salome/gui/GEOM/images/neo-detect2.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

BIN
doc/salome/gui/GEOM/images/neo-obj6.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

BIN
doc/salome/gui/GEOM/images/repair1.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

After

Width:  |  Height:  |  Size: 12 KiB

BIN
doc/salome/gui/GEOM/images/repair6.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 21 KiB

BIN
doc/salome/gui/GEOM/images/repair8.png Executable file → Normal file

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

View File

@ -5,44 +5,66 @@
\n To <b>Add Point on Edge</b> in the <b>Main Menu</b> select
<b>Repair - > Add Point on Edge</b>.
\n This operation splits an edge in two new edges 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 =
by length). This operation is available in <b>OCC Viewer</b> only.
This operation splits an edge in two or more new edges.
This operation is available in <b>OCC Viewer</b> only.
\n The \b Result will be a \b GEOM_Object.
The \b Result will be a \b GEOM_Object.
\n <b>TUI Command:</b> <em>geompy.DivideEdge(Shape, EdgeID, Value,
IsByParameter)</em>
- \em Shape is a shape which contains an edge to be divided
- \em EdgeID is the ID of the edge to be divided, if it is = -1,
then \em Shape should be an edge itself
- \em Value is a value of parameter on edge or length parameter,
depending on \em IsByParameter.
- \em IsByParameter is a boolean flag, specifying operation mode:
- \c True: \em Value is treated as a curve parameter [0..1]
- \c False: \em Value is treated as a length parameter [0..1]
\n Location of a new vertex on a selected edge can be defined two ways:
<ol>
<li> We can specify a position (ranging from 0.0 to 1.0) of the
vertex on the selected edge either by length or by parameter.
<p>
<b>TUI Command:</b> <em>geompy.DivideEdge(Shape, EdgeID, Value,
IsByParameter)</em>
<ul>
<li> \em Shape is a shape which contains an edge to be divided</li>
<li>\em EdgeID is the ID of the edge to be divided, if it is = -1,
then \em Shape should be an edge itself.</li>
<li> \em Value is a value of parameter on edge or length parameter,
depending on \em IsByParameter. </li>
<li> \em IsByParameter is a boolean flag, specifying operation mode:
- \c True: \em Value is treated as a curve parameter [0..1]
- \c False: \em Value is treated as a length parameter [0..1] </li>
</ul>
\b Arguments: Name + 1 Edge + 1 Value setting the position of
the point according to one of the selected modes.
<b>Arguments:</b> Name + 1 Edge + 1 Value setting the position of
the point according to one of the selected modes.
The difference between "by parameter" and "by length" modes becomes
apparent on the edges with irregular parametrization (for example,
b-splines which usually have irregular density by the length).
For example, value 0.5 "by length" on such edge will produce the point
in the middle of this edge (equidistant from both its ends); the same
0.5 value "by parameter" will result in the point situated closer to
one of the ends (depending on the actual parametrization).
The difference between "by parameter" and "by length" modes becomes
apparent on the edges with irregular parametrization (for example,
b-splines which usually have irregular density by the length).
For example, value 0.5 "by length" on such edge will produce the point
in the middle of this edge (equidistant from both its ends); the same
0.5 value "by parameter" will result in the point situated closer to
one of the ends (depending on the actual parametrization).
\image html repair8.png
\n\n
</li>
<li>We can select several points that will be projected to the selected
edge to find the location of new vertices.
<p>
<b>TUI Command:</b> <em>geompy.DivideEdgeByPoint(Shape, Edge, Points)</em>
<ul>
<li> \em Shape is a shape which contains an edge to be divided</li>
<li>\em Edge is an edge to be divided (or it's ID, if it is = -1,
then \em Shape should be an edge itself).</li>
<li> \em Points is a list of points to project to \a Edge. </li>
</ul>
\b Arguments: Name + 1 Edge + 1 or more Points.
\image html repair8.png
\image html divedgebypoint.png
</li>
</ol>
\n <b>Example:</b>
\image html image167.png "The initial edge"
\image html image168.png "The edge split in two segments"
\image html image168.png "The edge split in two segments"
Our <b>TUI Scripts</b> provide you with useful examples of the use of
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_add_point_on_edge "Repairing Operations".
*/

View File

@ -8,7 +8,15 @@ This operation returns the angle in degrees between two lines or linear edges.
If both objects are <b>vectors</b>, the angle is computed in accordance with their orientations, otherwise the minimum angle is computed.
\n <b>TUI Command:</b> <em>geompy.GetAngle(shape1, shape2),</em> where
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
<b>TUI Command:</b> <em>geompy.GetAngle(shape1, shape2),</em> where
Shape1 and Shape2 are shapes between which the angle is computed.
Another TUI command is <em>geompy.GetAngleRadians(shape1,shape2),</em>
which returns the value of angle in radians.

View File

@ -7,7 +7,15 @@ geometrical object.
\image html neo-basicprop.png
\n<b>TUI Command:</b> <em>geompy.BasicProperties(Shape),</em> where
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
<b>TUI Command:</b> <em>geompy.BasicProperties(Shape),</em> where
\em Shape is a shape whose properties are inquired.
See also a \ref tui_basic_properties_page "TUI example".

View File

@ -10,7 +10,15 @@ The coordinates of two corners of its bounding box are shown in the table.
Press \b Apply or <b>Apply and Close</b> button to publish the bounding \b Box in the study.
\n <b>TUI Commands:</b> <em>[Xmin,Xmax, Ymin,Ymax, Zmin,Zmax] = geompy.BoundingBox(Shape, precise)</em>,
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
<b>TUI Commands:</b> <em>[Xmin,Xmax, Ymin,Ymax, Zmin,Zmax] = geompy.BoundingBox(Shape, precise)</em>,
<em>BBox = geompy.MakeBoundingBox(Shape, precise)</em>, where \em Shape
is the shape for which the bounding box is computed. \em precise TRUE
for precise computation; FALSE for fast one. Default value is False.

View File

@ -9,7 +9,15 @@ the selected geometrical object.
Press \b Apply or <b>Apply and Close</b> button to publish the \b Point in the study.
\n <b>TUI Command:</b> <em> geompy.MakeCDG(Shape),</em> where \em Shape is
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
<b>TUI Command:</b> <em> geompy.MakeCDG(Shape),</em> where \em Shape is
the shape for which a center of gravity is computed.
See also a \ref tui_center_of_mass_page "TUI example".

View File

@ -8,9 +8,16 @@ This operation checks the topology of the selected shape to detect self-intersec
In this dialog:
- \b Object - the checked object. \b Selection button allows picking it in the viewer or in the object browser.
- \b Errors list contains the list of intersections. Select the intersection to show <b>Incriminated Sub-shapes</b> in the field to the right.
- \b Object - the checked object. \b Selection button allows picking it in the viewer or in the object browser.
- <b>Level of check</b> - The combo box that allows to set the level of checking shape on self-interference.
It defines which interferferences will be checked. Default value is "All interferences".
- <b>Compute self-intersections</b> button computes self-interferences.
- \b Summary section contains the general report if the object has self-intersections and/or if errors are occured during computation.
- \b Self-intersections list contains the list of self-intersections detected.
Select the intersection(s) to show <b>Sub-shapes</b> in the field to the right.
- \b Apply and <b>Apply and Close</b> buttons are used to store interferences selected in the "Self-intersections" list box in the study for further analysis.
If no any interference is selected, all interferences are published in the study. Each interference is published as a child
compound of the source shape and contains a couple of intersecting sub-shapes.
\note This tool is useful for detection of shapes, not suitable for
arguments of Boolean operations and Partition algorithm.
@ -18,8 +25,10 @@ For more information about Partition and Boolean Operations Algorithms
and their limitations refer to <a href="SALOME_BOA_PA.pdf">this document</a>.
\n <b>Result:</b> Boolean.
\n <b>TUI Command:</b> <em>geompy.CheckSelfIntersections(theShape),</em>
where \em theShape is the shape checked for validity.
\n <b>TUI Command:</b> <em>geompy.CheckSelfIntersections(theShape, theCheckLevel = GEOM.SI_ALL),</em> \n
where: \n
\em theShape is the shape checked for validity. \n
\em theCheckLevel is the level of check. Default value is GEOM.SI_ALL to check all interferences.
See also a \ref tui_check_self_intersections_page "TUI example".

View File

@ -25,7 +25,7 @@ By <b>Cartesian coordinates</b> , which can be either:
- \b Relative coordinates \b DX, \b DY and \b DZ with respect to the previous applied point,
By <b>Angular coordinates</b>, which include:
- the \b Length of the segment and an \b Angle in the chosen plane (OXY for example) in \b Relative mode. The angle is then relative to a local coordinate system with the last point of the sketch as origin. </li>
- the \b Length of the segment and an \b Angle in the chosen plane (OXY for example) in \b Relative mode. The angle is then relative to a local coordinate system with the last point of the sketch as origin.
\image html 3dsketch_angle_rel.png

View File

@ -16,6 +16,7 @@ geometrical objects as:
<li>\subpage create_sketcher_page</li>
<li>\subpage create_3dsketcher_page</li>
<li>\subpage create_polyline_page</li>
<li>\subpage create_surface_from_face_page</li>
<li>\subpage create_vector_page</li>
<li>\subpage create_plane_page</li>
<li>\subpage create_lcs_page</li>

View File

@ -2,49 +2,96 @@
\page create_explode_page Explode
\n To \b Explode an object into sub-shapes, in the <b>Main Menu</b>
select <b>New Entity > Explode</b>.
To \b Explode an object into sub-shapes, in the <b>Main Menu</b>
select <b>New Entity > Explode</b>. This operation opens the
<b>Sub Shapes Selection</b> dialog box.
\n To create a list of sub-shapes (vertices, edges, wires etc.) of the
\image html neo-obj1.png
To create a list of sub-shapes (vertices, edges, wires etc.) of the
given shape using the \b Explode operation, you need to define the <b>Main
Object</b>, which will be exploded and the <b>Type of Sub-shapes</b> you wish to
obtain from it.
\n The \b Result of the operation will be a List of \b GEOM_Objects
The \b Result of the operation will be a List of \b GEOM_Objects
(vertexes, edges, wires, faces, shells or solids).
\n Using <b>TUI Commands</b> you can perform this operation in a
Available choices in the <b>Sub Shapes Type</b> combo box depend on the type
of selected <b>Main Object</b>:
- \b Compound: to extract compounds;
- \b Compsolid: to extract compsolids;
- \b Solid: to extract solids;
- \b Shell: to extract shells;
- \b Face: to extract faces;
- \b Wire: to extract wires;
- \b Edge: to extract edges;
- \b Vertex: to extract vertices;
- \b Shape: to extract top-level contents of the compound shape;
- \b Flat: to extract "flat" contents of the compound shape.
Note: "flat" contents means top-level simple-type sub-shapes extracted from
the compound object recursively (i.e. there is no compounds in the result).
For example, if a compound C1 contains a solid S1 and another compound C2 that
contains solids S2 and S3 (see picture below):
- Explode operation with \b Shape type given as parameter will return S1 and C2;
- Explode operation with \b Flat type given as parameter will return S1, S2 and S3.
\image html flat_contents.png
Switching on <b>Select Sub-shapes</b> check box allows manual selection of sub-shapes
to be extracted from the main object. In this mode the user can select sub-shapes
directly in 3D viewer.
When <b>Select Sub-shapes</b> check box is switched on, additional \b Filter controls
allow to automatically pick up entites which satisfy specified threshold value(s).
The numerical functor for each sub-shape that is compared with threshold value(s)
is computed according to the shape's topological properties:
- length for edges and wires
- area for faces and shells
- volume for solids, compounds, compsolids
Filtering capabilities are not available for vertices.
In order to filter out some entities:
- Activate one or two filtering controls by switching on corresponding check boxes;
- Select required threshold comparator type; the following choices are available:
- <b>Less Than</b> or <b>Equal or Less Than</b> for the first comparator;
- <b>Greater Than</b> or <b>Equal or Greater Than</b> for the second comparator;
- Enter required threshold value (values);
- Press \b Apply button in the \b Filter group.
The entities which satisfy entered filtering parameters will be automatically highlighted
in the 3D viewer.
Using <b>TUI Commands</b> you can perform this operation in a
variety of ways:
<ul>
<li><em>geompy.ExtractShapes(Shape, Type, isSorted)</em> explodes a
Shape into sub-shapes of a given Type and returns a List of sub-shapes.
This method does not return the Shape itself if it matches the
Type.</li>
<li><em>geompy.SubShapeAll(Shape, Type)</em> explodes a Shape on
sub-shapes of a given Type and returns a List of sub-shapes.</li>
<li><em>geompy.SubShapeAllIDs(Shape, Type)</em> explodes a Shape on
sub-shapes of a given Type and returns a List of IDs of
sub-shapes.</li>
<li><em>geompy.SubShapeAllSortedCentres(Shape, Type)</em> explodes a
shape on sub-shapes of a given type and sorts them taking into account
their gravity centers, to provide a stable order of sub-shapes.
It returns a list of sub-shapes.</li>
<li><em>geompy.SubShapeAllSortedCentresIDs(Shape, Type)</em> explodes
a shape on sub-shapes of a given type and sorts them taking into
account their gravity centers, to provide a stable order of sub-shapes.
It returns a List of IDs of sub-shapes.</li>
<li><em>geompy.SubShape(Shape, Type, ListOfInd)</em> 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].</li>
<li><em>geompy.SubShapeSortedCentres(Shape, Type, ListOfInd)</em>
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]</li>
</ul>
- <em>geompy.ExtractShapes(Shape, Type, isSorted)</em> explodes a
Shape into sub-shapes of a given Type and returns a List of sub-shapes.
This method does not return the Shape itself if it matches the
Type.
- <em>geompy.SubShapeAll(Shape, Type)</em> explodes a Shape on
sub-shapes of a given Type and returns a List of sub-shapes.
- <em>geompy.SubShapeAllIDs(Shape, Type)</em> explodes a Shape on
sub-shapes of a given Type and returns a List of IDs of
sub-shapes.
- <em>geompy.SubShapeAllSortedCentres(Shape, Type)</em> explodes a
shape on sub-shapes of a given type and sorts them taking into account
their gravity centers, to provide a stable order of sub-shapes.
It returns a list of sub-shapes.
- <em>geompy.SubShapeAllSortedCentresIDs(Shape, Type)</em> explodes
a shape on sub-shapes of a given type and sorts them taking into
account their gravity centers, to provide a stable order of sub-shapes.
It returns a List of IDs of sub-shapes.
- <em>geompy.SubShape(Shape, Type, ListOfInd)</em> 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].
- <em>geompy.SubShapeSortedCentres(Shape, Type, ListOfInd)</em>
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]
\n <b>Arguments: </b>1 SHAPE + 1 type of SubShape.
\image html neo-obj1.png
<b>Arguments: </b>1 SHAPE + 1 type of SubShape.
<b>Example:</b>

View File

@ -5,7 +5,10 @@
To create a \b Face in the <b>Main Menu</b> select <b>New Entity - >
Build - > Face</b>
\n To create a \b Face you need to select input shape(s). The list of
There are three algorithms to create a \b Face. In all cases the \b Result
of the operation will be a GEOM_Object (FACE).
\n Firstly, to create a \b Face you need to select input shape(s). The list of
input shapes can include shapes of any type except vertices; if the shapes are
neither wires nor edges, the algorithm extracts all edges from
the input shapes and works on the obtaineed edges.
@ -17,14 +20,44 @@ that can be interpreted as an outer one; other wires can be considered as
inner ones.
\n Check <b>Try to create a planar face</b> to create a planar
face or nothing if it is impossible.
\note Please note, that the resulting face can have a huge tolerance, if the initial wire has a big deviation from the plane. If the final tolerance exceeds 1e-06, a warning will be shown, but the face will be created and published in the study in a normal way. Using such faces can lead to failures or unpredictable results in most operations.
\note Please note, that the resulting face can have a huge tolerance, if
the initial wire has a big deviation from the plane. If the final tolerance
exceeds 1e-06, a warning will be shown, but the face will be created
and published in the study in a normal way. Using such faces can lead to failures
or unpredictable results in most operations.
\n The \b Result will be a \b GEOM_Object (FACE).
\n <b>TUI Command:</b> <em>geompy.MakeFaceWires([list of Shapes], isPlanarWanted)</em>
\n <b>Arguments:</b> Name + 1 wire.
\image html neo-obj4.png
\image html neo-obj4.png "Create face by input shape(s)"
\n Secondly, it is possible to create a face based on another face's surface and bounded by a wire.
\n The \b Result will be a \b GEOM_Object (FACE).
\n <b>TUI Command:</b> <em>geompy.MakeFaceFromSurface(theFace, theWire)</em>
\n <b>Arguments:</b> Name + 1 face + 1 wire.
\image html neo-obj4_2.png "Create face by another face's surface"
Thirdly, it is possible to create a \b Face by specifying a set of edges forming a closed wire
and constraints:
- Specify an input wire by selecting it in the object browser or in the viewer.
The input wire will be exploded on edges which will be shown in the \b Constraints list box.
- Specify constraints by associating faces with the edges.
\note Please note, that the constraint face must be connected to a reference edge.
\n The \b Result will be a \b GEOM_Object (FACE).
\n <b>TUI Command:</b> <em>geompy.MakeFaceWithConstraints([List of constraints])</em>
\n <b>Arguments:</b> Name + List of input edges and constraint faces. If a constraint
face is missing for some edge, this means that there is no constraint associated to this edge.
\note Set of edges should form a closed wire.
\image html neo-obj4_3.png "Create face by a wire and its constraints"
\n <b>Example:</b>
@ -34,7 +67,7 @@ face or nothing if it is impossible.
\image html facesn3.png "Examples of faces"
Our <b>TUI Scripts</b> provide you with useful examples of creation of
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_face "Advanced Geometric Objects".
*/

View File

@ -6,19 +6,18 @@ To generate a \b Filling in the <b>Main Menu</b> select <b>New Entity - > Genera
To create a curvilinear face from several edges you need to define the
following parameters:
\n <b>Input Compound</b> - the list of edges/wires used for creation
of the surface. To prepare for the filling each wire of the compound
is converted to an edge created on a BSpline curve built using curves
from all edges of the wire.
\n <b>Input Contours</b> - the list of edges/wires to use for creation
of the surface. You can select either several edges/wires or a
compound of them. To prepare for the filling, each input wire
is converted into a single BSpline curve by concatenating its edges.
\n \b Minimum and <b>Maximum Degree</b> of equation of the resulting
BSpline or Besier curves describing the surface;
BSpline or Besier curves describing the surface.
\n \b Tolerance for \b 2D and for \b 3D - minimum distance between the
created surface and the reference edge;
created surface and the input contours.
\n <b>Number of Iterations</b> - defines the maximum number of iterations. The
iterations are repeated until the required tolerance is reached. So, a
greater number of iterations allows producing a better surface.
\n <b>Method</b> - Kind of method to perform filling operation
<ol>
<li>Default - the standard behaviour.</li>
<li>Use edges orientation - the edges orientation is used: if an edge is
@ -28,7 +27,7 @@ algorithm.</li>
minimize the sum of distances between ends points of edges.</li>
</ol>
\n <b>Approximation</b> - if checked, BSpline curves are generated in
<b>Approximation</b> - if checked, BSpline curves are generated in
the process of surface construction (using
GeomAPI_PointsToBSplineSurface functionality). By default the surface
is created using Besier curves. The usage of <b>Approximation</b>
@ -36,21 +35,29 @@ slows the algorithm, but allows building the surface for complex cases.
\n The \b Result of the operation will be a GEOM_Object (face).
\n <b>TUI Command:</b> <em>geompy.MakeFilling(Edges, MinDegree, MaxDegree, Tol2D, Tol3D, NbIter)</em>
\n <b>Arguments:</b> Name + 1 List of edges + 7 Parameters
(Min. degree, Max. degree, Number of iterations, 2D tolerance, 3D
tolerance, Number of iterations, Method, Approximation).
\n <b>Advanced options</b> \ref preview_anchor "Preview"
\n <b>TUI Command:</b> <em>geompy.MakeFilling(Contours, MinDegree, MaxDegree, Tol2D, Tol3D, NbIter)</em><br>
<b>Arguments:</b> List/compound of edges/wires + 7 Parameters
(Min. degree, Max. degree, 2D tolerance, 3D tolerance, Number of
iterations, Method, Approximation).
\n <b>Advanced options:</b> \ref preview_anchor "Preview"
\image html filling.png
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
<b>Example:</b>
\image html filling_compoundsn.png "Initial edges"
\image html fillingsn.png "Resulting surface"
Our <b>TUI Scripts</b> provide you with useful examples of creation of
Sample <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_filling "Complex Geometric Objects".
*/

View File

@ -53,8 +53,8 @@ projected on the given edge to produce the resulting point.
projected point.
\image html point3_2.png
\n Fourthly, we can define a point by intersection of two \b Lines or \b Wires (or a Wire and a Line).
If they intersect only once, a point will be created. If there are several intersections, a compound of points will be created. The type of the selected object (Line or Wire) can be changed in the popup menu, after clicking the corresponding selection button.
\n Fourthly, we can define a point by intersection of two \b Lines or \b Wires (or a Wire and a Line).
If they intersect only once, a point will be created. If there are several intersections, a compound of points will be created.
\n <b>TUI Command:</b> <em>geompy.MakePointOnLinesIntersection(myLine1,myWire1).</em>
\n <b>Arguments:</b> Name + 2 1D objects
@ -75,6 +75,14 @@ The position of the point on it can be defined in one of two ways:
\image html point5_2.png
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
<b>Example:</b>
\image html points.png "Points by edge and parameter and by coordinates"

View File

@ -2,24 +2,40 @@
\page create_solid_page Solid
\n To create a \b Solid in the <b>Main Menu</b> select <b>New Entity - > Build - >
To create a \b Solid in the <b>Main Menu</b> select <b>New Entity - > Build - >
Solid</b>.
You can create a \b Solid from a list of shells.
Firstly, you can create a \b Solid from a list of shells.
The \b Result will be a \b GEOM_Object (SOLID).
\n <b>TUI Command:</b> <em>geompy.MakeSolid(ListOfShape),</em> where
ListOfShape is a list of shells from which the solid is constructed.
\n <b>Arguments:</b> Name + A closed shell or a list of closed shells.
<b>TUI Command:</b> <em>geompy.MakeSolid(ListOfShape),</em> where
\c ListOfShape is a list of shells from which the solid is constructed.
<b>Arguments:</b> Name + A closed shell or a list of closed shells.
\image html neo-obj6.png
\n <b>Example:</b>
<b>Example:</b>
\image html solidsn.png "Solid"
Secondly, it is possible to create a \b Solid (or a compound of solids) from a list of
connected faces or shells.
The \b Result will be a \b GEOM_Object (SOLID or COMPOUND).
<b>TUI Command:</b> <em>geompy.MakeSolidFromConnectedFaces(ListOfShape, isIntersect),</em> where
\c ListOfShape is a list of faces and/or shells from which the solid is constructed and
\c isIntersect is a boolean flag which, when set to \c True, forces performing intersection/sewing
between arguments
<b>Arguments:</b> Name + A set of connected faces and/or shells + Boolean flag.
\image html neo-obj6_2.png
Our <b>TUI Scripts</b> provide you with useful examples of creation of
\ref tui_creation_solid "Advanced Geometric Objects".
\ref tui_creation_solid "Solid from shell" and
\ref tui_creation_solid_from_faces "Solid from connected faces".
*/

View File

@ -0,0 +1,27 @@
/*!
\page create_surface_from_face_page Surface From Face
To create a <b>Surface From Face</B> in the <b>Main Menu</b> select <b>New Entity - > Basic - > Surface From Face</b>
\n This function takes some face as input parameter and creates new
GEOM_Object, i.e. topological shape by extracting underlying surface
of the source face and limiting it by the Umin, Umax, Vmin, Vmax
parameters of the source face (in the parametrical space).
\n
\ref restore_presentation_parameters_page "Advanced options".
\n <b>TUI Command:</b> <em>geompy.MakeSurfaceFromFace(theFace)</em>,
where \em theFace the input face.
\n <b>Arguments:</b> Name + Object (Face).
\image html surface_from_face1.png "Surface From Face"
\n <b>Example:</b>
\image html surface_from_face_example.png "Original Face (white) and Created Surface"
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_creation_surface "Surface From Face" creation.
*/

View File

@ -86,7 +86,7 @@ Buttons marked with small downward triangles have extended
functionality which can be accessed by locking on them with left
mouse button.
\image tree_tool_bar
\image html tree_tool_bar.png
<b>Dump View</b> - exports the current scene in bmp, png or jpeg image format.
\image html tree_view_dump.png

View File

@ -0,0 +1,58 @@
/*!
\page extension_operation_page Extension of an Edge or a Face
\n To produce an \b Extension in the <b>Main Menu</b> select
<b>Operations - > Transformation - > Extension</b>
\n This operation resizes an \b Edge by means of first
and last parameters modification or a \b Face by means of modification
of minimal and maximal U- and V-Parameters. \n
\ref restore_presentation_parameters_page "Advanced options".
The type of extension is defined using the radio buttons.
Firstly it is possible to resize an \b Edge.
\n <b>TUI Command:</b> <em>geompy.ExtendEdge(theEdge, theMin, theMax)</em>,
where \em theEdge the input edge to be resized, \em theMin the minimal
parameter value, \em theMax the maximal parameter value.
\n <b>Arguments:</b> Name + Object (Edge) + 2 values (Min and Max Parameters).
\image html extension1.png "Extension of an Edge"
\n <b>Example:</b>
\image html extend_edge_example.png "Original edge (white) and extended edge"
\note The input Edge parameters range is [0, 1]. If \b theMin parameter is
negative, the input Edge is extended, otherwise it is shrinked by
\b theMin parameter. If \b theMax is greater than 1, the Edge is
extended, otherwise it is shrinked by \b theMax parameter.
Secondly it is possible to resize a \b Face.
\n <b>TUI Command:</b> <em>geompy.ExtendFace(theFace, theUMin, theUMax,
theVMin, theVMax)</em>, where \em theFace the input face to be resized,
\em theUMin the minimal U-Parameter value, \em theUMax the maximal U-Parameter
value, \em theVMin the minimal V-Parameter value, \em theVMax the maximal
V-Parameter value.
\n <b>Arguments:</b> Name + Object (Face) + 4 values (Min and Max U- and
V-Parameters).
\image html extension2.png "Extension of a Face"
\n <b>Example:</b>
\image html extend_face_example.png "The original face (gray) and a result
face shrinked along U-Direction and extended along V-Direction"
\note The input Face U- and V-Parameters range is [0, 1]. If \b theUMin
parameter is negative, the input Face is extended, otherwise it is
shrinked along U-Direction by \b theUMin parameter. If theUMax is
greater than 1, the Face is extended, otherwise it is shrinked along
U-Direction by \b theUMax parameter. So as for \b theVMin, \b theVMax
and V-Direction of the input Face.
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_extend "Extension Operations".
*/

View File

@ -0,0 +1,61 @@
/*!
\page fast_intersection_page Fast intersection
This operation checks whether or not two selected shapes are overlapped.
This tool is useful for fast detection of intersections and gaps.
In contrast to Boolean Operations, Partition and Detect Self-intersection
algorithms that compute topological intersections, this algoritm computes
intersections by generating tessellation (triangulation) of the source
shapes and detecting overlapping of resulting meshes. High performance is
achieved through the use of existing triangulation of faces.
Due to this fact, the tool is not suitable for computing exact intersection
of shapes; however, it can be used to quickly find zones where
intersections can present, and then use these results in further analysis.
\note For more information about Partition and Boolean Operations Algorithms
and their limitations refer to <a href="SALOME_BOA_PA.pdf">this document</a>.
\image html measures12.png
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
In this dialog:
- \b Object 1 - first checked object. \b Selection button allows picking it in the viewer or in the object browser.
- \b Object 2 - second checked object. \b Selection button allows picking it in the viewer or in the object browser.
- <b>Deflection coefficient</b> specifies the quality of shapes tessellation.
- <b>Detect gaps</b> - when switched on, allows detecting gaps between shapes.
- <b>Tolerance</b> - specifies a distance between shapes used for detecting gaps.
- <b>Compute intersections</b> - press this button to compute interferences.
- <b>Sub-shapes of Object 1</b> - list of sub-shapes from the first source shape that localize the intersection.
- <b>Sub-shapes of Object 2</b> - list of sub-shapes from the second source shape that localize the intersection.
- \b Apply and <b>Apply and Close</b> buttons are used to store selected intersected shapes in the study for
further analysis (see below).
\note Quality of the result depends on the quality of triangulation. Changing a value of the deflection coefficient
parameter can strongly affect the result. On the other hand, small values of deflection coefficient might lead to
some performance loss of the algorithm, as number of triangles of the tesselation mesh depends on this parameter.
It is possible to store sub-shapes selected by the user in the study, for the further analysis.
The selection will be published as a compound containing intersected sub-shapes from both source objects.
<b>TUI Command:</b> <em>geompy.FastIntersect(theShape1, theShape2, theTolerance = 0.0, theDeflection = 0.001),</em> \n
where:
- \em theShape1 First shape.
- \em theShape2 Second shape.
- \em theTolerance When it is negative or equal to zero, the function detects intersections;
when it is positive, the function detects gaps.
- \em theDeflection Linear deflection for shapes; if deflection <= 0, default deflection 0.001 is used
<b>Result:</b> Boolean + two lists of IDs of sub-shapes (from input shapes) that localize the intersection.
See also a \ref tui_fast_intersection_page "TUI example".
*/

View File

@ -8,6 +8,8 @@ A free face is a face, which is not shared between several sub-shapes of the sha
\image html repair10.png
Press \b Apply or <b>Apply and Close</b> button to publish the corresponding faces in the study.
<b>TUI Command:</b> <em>GetFreeFacesIDs(Shape),</em> where \em Shape is
a shape to be checked.
@ -15,4 +17,4 @@ a shape to be checked.
See also a \ref tui_free_faces_page "TUI example".
*/
*/

View File

@ -7,7 +7,7 @@
\n This operation glues edges that are coincident with respect to the
given tolerance value.
\n <b>Arguments:</b> Name + Compound of shapes + Tolerance value.
\n <b>Arguments:</b> Name + Shapes + Tolerance value.
\n <b>Advanced option:</b>
\ref restore_presentation_parameters_page "Set presentation parameters and sub-shapes from arguments".
\n The \b Result will be a \b GEOM_Object.
@ -16,10 +16,10 @@ given tolerance value.
\image html glue4.png
\n <b>TUI Command:</b>
\n <em>geompy.MakeGlueEdges(theShape,theTolerance)</em>,
\n where \em theShape is a compound of shapes to be glued, and \em
theTolerance is a maximum distance between two faces/edges, which can
be considered as coincident.
<p><em>geompy.MakeGlueEdges( theShapes, theTolerance )</em>,
\n where \em theShapes is either a list or compound of shapes to be
glued, and \em theTolerance is a maximum distance between two
edges, which can be considered as coincident.
\n It is also possible to manually select the edges that will be
glued - select the shape, specify the tolerance and press \b Detect button.
@ -36,23 +36,24 @@ possible to select the edges for gluing in the 3D viewer.
The selected edges will be marked in white.
\n <b>TUI Command:</b>
\n <em>geompy.GetGlueEdges(theShape,theTolerance)</em>,
\n where \em theShape is a compound of shapes to be glued, \em
<p><em>geompy.GetGlueEdges( theShapes, theTolerance )</em>,
\n where \em theShape is either a list or compound of shapes to be glued, \em
theTolerance is a maximum distance between two edges, which can
be considered as coincident. The \b Result will be a list of \b
GEOM_Objects, containing one sub-shape per each detected set of
coincident sub-shapes.
GEOM_Objects (edges), containing one sub-shape per each detected set of
coincident sub-shapes. For example if there are two coincident edges
in selected shapes, the result list contains one of the two coincident edges.
\n <em>geompy.MakeGlueEdgesByList(theShape,theTolerance,theEdges)</em>,
\n where \em theShape is a compound of shapes to be glued, \em
<em>geompy.MakeGlueEdgesByList( theShapes, theTolerance, theEdges )</em>,
\n where \em theShape is either a list or compound of shapes to be glued, \em
theTolerance is a maximum distance between two edges, which can
be considered as coincident, \em theEdges is a list of
sub-shapes to be glued.
edges to be glued.
\n <b>Example:</b>
\image html glue8.png
<center><em>Box with an edge that can be glued</em></center>
<center><em>Two boxes with an edge that can be glued</em></center>
Our <b>TUI Scripts</b> provide you with useful examples of the use of
<b>Repairing Operations</b> \ref tui_glue_edges "Glue Edges".

View File

@ -8,7 +8,7 @@
\n This operation glues faces that are coincident with respect to the
given tolerance value.
\n <b>Arguments:</b> Name + Compound of shapes + Tolerance value.
\n <b>Arguments:</b> Name + Shapes + Tolerance value.
\n <b>Advanced option:</b>
\ref restore_presentation_parameters_page "Set presentation parameters and sub-shapes from arguments".
\n The \b Result will be a \b GEOM_Object.
@ -17,8 +17,9 @@ given tolerance value.
\n <b>TUI Commands:</b>
\n <em>geompy.MakeGlueFaces(theShape,theTolerance,doKeepNonSolids)</em>,
\n where \em theShape is a compound of shapes to be glued, \em
<em>geompy.MakeGlueFaces( theShapes, theTolerance, doKeepNonSolids )</em>,
\n where \em theShapes is either a list or compound of shapes to be glued, \em
theTolerance is a maximum distance between two faces, which can
be considered as coincident. The \em doKeepNonSolids flag allows to
throw away non-solids from the result, if false. The \b Result will
@ -38,20 +39,23 @@ performed and displays a notification.
possible to select the faces for gluing in the 3D viewer.
The selected faces will be marked in white.
\n When the faces are glued their edges are glued as well. By default, other
When the faces are glued their edges are glued as well. By default, other
edges are not glued. To force gluing of all edges, check <b>Glue all coincident edges</b>
checkbox.
\n <b>TUI Commands:</b>
\n <em>geompy.GetGlueFaces(theShape,theTolerance)</em>,
\n where \em theShape is a compound of shapes to be glued, \em
theTolerance is a maximum distance between two faces, which can
be considered as coincident. The \b Result will be a list of \b
GEOM_Objects, containing one sub-shape per each detected set of
coincident sub-shapes.
\n <em>geompy.MakeGlueFacesByList(theShape,theTolerance,theFaces,doKeepNonSolids,doGlueAllEdges)</em>,
\n where \em theShape is a compound of shapes to be glued, \em
<em>geompy.GetGlueFaces( theShapes, theTolerance )</em>,
\n where \em theShapes is either a list or compound of shapes to be glued, \em
theTolerance is a maximum distance between two faces, which can
be considered as coincident. The \b Result will be a list of \b
GEOM_Objects (faces), containing one sub-shape per each detected set of
coincident sub-shapes. For example if there are two coincident faces
in selected shapes, the result list contains one of the two coincident faces.
<em>geompy.MakeGlueFacesByList( theShapes, theTolerance, theFaces,
doKeepNonSolids, doGlueAllEdges )</em>,
\n where \em theShapes is either a list or compound of shapes to be glued, \em
theTolerance is a maximum distance between two faces, which can
be considered as coincident, \em theFaces is a list of
sub-shapes to be glued. The \em doKeepNonSolids flag allows to throw

View File

@ -25,8 +25,8 @@ Our <b>TUI Scripts</b> provide you with useful examples of the use of
<em>To import geometrical objects from a BREP, IGES, STEP or STL file:</em>
\par
From the \b File menu choose <b>Import/<FormatName></b>, where <b><FormatName></b> is a name
of desirable format. In the <b>Import <FormatName></b> dialog box select the file to import
From the \b File menu choose <b>Import/\<FormatName\></b>, where <b>\<FormatName\></b> is a name
of desirable format. In the <b>Import \<FormatName\></b> dialog box select the file to import
and press \b Open. The file will be imported in the module and its contents (geometrical object)
will be displayed in the <b>Object Browser</b>.
@ -63,8 +63,8 @@ file:</em>
\par
Select the object you wish to export, then from the \b File menu choose
<b>Export/<FormatName></b>, where <b><FormatName></b> is a name of desirable format.
In the <b>Export <FormatName></b> dialog box define the name and the location
<b>Export/\<FormatName\></b>, where <b>\<FormatName\></b> is a name of desirable format.
In the <b>Export \<FormatName\></b> dialog box define the name and the location
of the file to export and press \b Save.
The dialog box to export the file can provide additional advanced parameters.

View File

@ -10,7 +10,15 @@ The table displays:
- 3*3 matrix of its own moments of inertia (in rows <b> 1:1, 2:1</b> and <b>3:1</b>) and
- the relative moments of inertia (in row <b>IX & IY & IZ</b>)
\n <b>TUI Command:</b> <em>geompy.Inertia(Shape),</em> where \em Shape is
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
<b>TUI Command:</b> <em>geompy.Inertia(Shape),</em> where \em Shape is
a shape for which the own matrix of inertia and the relative moments of inertia are
returned.

View File

@ -0,0 +1,22 @@
/*!
\page inspect_object_operation_page Inspect Object
This operation allows browsing the contents of the selected shape.
To <b>Inspect Object</b>, in the <b>Main Menu</b> select <b>Measures - > Inspect Object</b>.
\image html inspect_object.png
In this dialog:
- Click on the "selection" button and select an object to inspect in the Object Browser or in the viewer.
- Show/hide sub-shape(s) in the 3D viewer, by pressing “eye” icon in the first column of the tree view.
- Show/hide all sub-shapes in the 3D viewer, by pressing “eye” icon in the first column of the tree view header.
- Rename selected sub-shape by double-clicking on the item or pressing <F2> key.
- Show selected sub-shape(s) in the 3D viewer by pressing <b>Show Selected</b> button.
- Show selected sub-shape(s) in the 3D viewer and erase all currently shown objects by pressing <b>Show Only Selected</b> button.
- Hide selected sub-shape(s) from the 3D viewer by pressing <b>Hide Selected</b> button.
- Publish selected sub-shapes in the study, by pressing <b>Publish Selected</b> button.
- Close dialog box, by pressing <b>Close</b> button.
*/

View File

@ -18,7 +18,7 @@ It is possible to show/hide a dimension in the view by checking on/off the box t
The buttons to the right of the list provide the following operations:
<ul>
<li>"Add" - opens \ref add_dimension_page "Add Dimension" dialog to define a new fly-out.</li>
<li>"Add" - opens "Add Dimension" dialog to define a new fly-out.</li>
<li>"Remove" - removes the selected item from the list.</li>
<li>"Show All" / "Hide All" - shows/hides all dimensions existing in the list.</li>
</ul>

View File

@ -17,11 +17,20 @@ Select one of the found solutions in the \b Solution list to display it in the V
Press \b Apply or <b>Apply and Close</b> button to create a set of closest
points, corresponding to all found solutions.
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
<b>TUI Commands:</b>
\n<em>aDist = geompy.MinDistance(Shape1, Shape2),</em>
\n<em>[aDist, DX, DY, DZ] = geompy.MinDistanceComponents(Shape1, Shape2),</em>
\n<em>[nbSols, (x11, y11, z11, x21, y21, z21, ...)] = geompy.ClosestPoints(Shape1, Shape2),</em>
\n where \em Shape1 and \em Shape2 are the shapes, between which the minimal
- <em>aDist = geompy.MinDistance(Shape1, Shape2),</em>
- <em>[aDist, DX, DY, DZ] = geompy.MinDistanceComponents(Shape1, Shape2),</em>
- <em>[nbSols, (x11, y11, z11, x21, y21, z21, ...)] = geompy.ClosestPoints(Shape1, Shape2),</em>
.
where \em Shape1 and \em Shape2 are the shapes, between which the minimal
distance is computed.
See also a \ref tui_min_distance_page "TUI example".

View File

@ -1,24 +1,44 @@
/*!
\page projection_operation_page Projection on a Face
\page projection_operation_page Projection
\n To produce a <b>Projection</b> in the <b>Main Menu</b> select
To produce a <b>Projection</b> in the <b>Main Menu</b> select
<b>Operations - > Transformation - > Projection</b>
\n This operation makes normal projection of a <b>Source vertex, edge
or wire</b> on a given <b>Target face</b>.
\ref restore_presentation_parameters_page "Advanced options".
This operation makes normal projection of one shape to another.
There are 3 types of projection different by types of operands.
Firstly, you can project <b>Source vertex, edge or wire</b> on a given <b>Target face</b>.
\image html projection_dlg.png
\n <b>Example:</b>
Secondly, you can project <b>Source vertex</b> on a given <b>Target wire</b>.
\image html projection_dlg1.png
Thirdly, you can project <b>Source vertex</b> on a given <b>Target edge</b>.
\image html projection_dlg2.png
\ref restore_presentation_parameters_page "Advanced options".
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
<b>Example:</b>
\image html projection_preview.png "The curve (in red) and its projection on the cylindric surface"
\n <b>TUI Command:</b> <em>geompy.MakeProjection(Source, Target),</em>
where \em Source is a shape which has to be projected, \em Target
is a face, on which the \em Source shape will be projected. The \em
Result will be a \em GEOM_Object.
<b>TUI Command:</b> <em>geompy.MakeProjection(Source, Target),</em>
\n where \em Source is a shape which has to be projected, \em Target
is a shape, on which the \em Source shape will be projected. The \em
Result will be a \em GEOM_Object.
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref tui_projection "Transformation Operations".

View File

@ -5,21 +5,22 @@
\n To <b>Remove internal faces</b> in the <b>Main Menu</b> select
<b>Repair - > Remove internal faces</b>.
\n This operation removes all shared faces from a compound to obtain
This operation removes all shared faces from given solids to obtain
one or more bigger solids from a set of smaller solids.
\image html remove_webs.png
\n <b>Arguments:</b> Name + one shape.
\n <b>Arguments:</b> Name + one or more shapes containing solids.
\n <b>Advanced option:</b>
\ref restore_presentation_parameters_page "Set presentation parameters and sub-shapes from arguments".
\note Only shared faces will be removed. Coincident but not shared
faces will stay as is, use Glue Faces or Partition before
Remove Internal Faces if you need to remove them.
faces will stay as is, use \ref glue_faces_operation_page or \ref partition_page before
<b>Remove Internal Faces</b> if you need to remove them.
\n <b>TUI Command:</b> <em>geompy.RemoveInternalFaces(theCompound)</em>,
where <em>theCompound</em> is a compound of solids.
\n <b>TUI Command:</b> <br>
<em>geompy.RemoveInternalFaces( theSolids )</em>,<br>
where <em>theSolids</em> is either a compound or a list of solids.
\n Our <b>TUI Scripts</b> provide you with useful examples of the
\ref tui_remove_webs "Remove Internal Faces" functionality usage.

View File

@ -16,9 +16,9 @@ open contour asnd miodifies the underlying face.</li>
holes with free boundaries on a selected face.</li>
<li>\subpage sewing_operation_page "Sewing" - sews faces or shells.</li>
<li>\subpage glue_faces_operation_page "Glue faces" - unites
coincident faces within the given tolerance.</li>
faces coincident within the given tolerance.</li>
<li>\subpage glue_edges_operation_page "Glue edges" - unites
coincident edges within the given tolerance.</li>
edges coincident within the given tolerance.</li>
<li>\subpage limit_tolerance_operation_page "Limit Tolerance" - tries
to set new tolerance value for the given shape.</li>
<li>\subpage add_point_on_edge_operation_page "Add point on edge" -
@ -26,7 +26,7 @@ splits an edge in two.</li>
<li>\subpage change_orientation_operation_page "Change orientation" -
reverses the normals of the selected faces.</li>
<li>\subpage remove_webs_operation_page "Remove internal faces" -
rebuilds the topology of a compound of solids by removing the faces
rebuilds the topology of solids by removing the faces
are shared by several solids.</li>
<li>\subpage remove_extra_edges_operation_page "Remove extra edges" -
removes seam and degenerated edges from the given shape.</li>

View File

@ -1,27 +1,29 @@
/*!
\page section_opeartion_page Section
\page section_opeartion_page Intersection
\b Section operation creates an edge or a wire representing the intersection of surfaces of two shapes.
\b Intersection operation creates a vertex, an edge, a wire or a compound
of them representing the intersection of two shapes.
To produce it, select in the main menu <b>Operations - > Boolean - > Section</b>
To produce it, select in the main menu <b>Operations - > Boolean - > Intersection</b>
\image html neo-section.png "Section dialog"
\image html neo-section.png "Intersection dialog"
In this dialog:
- Input or accept the default \b Name of the resulting shape.
- Click the arrow button and select in the Object Browser or in the Viewer the intersecting <b>Objects</b>.
- Activate the corresponding check-box if you wish to <b> Detect Self-intersections </b>.
- Activate the corresponding check-box if you wish to <b> Detect Self-intersections</b>. If a self-intersection detected the operation fails.
- Activate \ref restore_presentation_parameters_page "Advanced options" if required.
- Press "Apply" or "Apply & Close" button to get the result (EDGE or WIRE).
- Press "Apply" or "Apply & Close" button to get the result (VERTEX, EDGE, WIRE or COMPOUND).
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
\note This algorithm does not find all types of self-intersections. It is tuned
to detect vertex/vertex, vertex/edge, edge/edge, vertex/face and edge/face
intersections. Face/face intersections detection is switched off as it
is a time-consuming operation that gives an impact on performance. To find
all self-intersections use \ref check_self_intersections_page
"Detect Self-intersection tool".
This operation can be performed using a <b>TUI Command:</b>
<em>geompy.MakeSection(s1, s2, checkSelfInte)</em>

View File

@ -2,9 +2,24 @@
\page sewing_operation_page Sewing
\b Sewing operation allows uniting several faces (possibly contained
in a shell, solid or compound) into one shell while geometrically
coincident (within a specified tolerance) edges (or parts of edges) of
different faces are replaced by one edge thus producing a shell of
faces with shared boundaries.<p>
This operation is similar to <b>New Entity - > Build - > Shell</b>
operation, the difference is that with \b Sewing you can specify the
tolerance and can get a non-manifold result. <p>
Possibility to create a non-manifold shell can be used e.g. to create a
shell forming several closed domains and then to create several solids
with shared boundaries from this shell.
\note Geometrically coincident faces (or part of faces) won't be
replaced by one face during \b Sewing.
To produce a \b Sewing operation in the <b>Main Menu</b> select <b>Repair - > Sewing</b>.
The \b Result will be a \b GEOM_Object.
The \b Result will be a \b GEOM_Object (shell).
\image html repair6.png

View File

@ -51,11 +51,27 @@ spots and strips.</li>
possible face size.</li>
</ul>
<li><b>Drop Small Edges</b> (DropSmallEdges) - removes edges, which
merge with neighbouring edges.</li>
merge with neighboring edges.</li>
<ul>
<li><b>3D Tolerance</b> (DropSmallEdges.Tolerance3d) - defines minimum
possible distance between two parallel edges.</li>
</ul>
<li><b>Drop Small Solids</b> (DropSmallSolids) - either removes small
solids or merges them with neighboring ones.</li>
<ul>
<li><b>Width factor tol.</b> (DropSmallSolids.WidthFactorThreshold) -
defines maximum value of <em>2V/S</em> of a solid which is
considered small, where \a V is volume and \a S is surface area of
the solid.</li>
<li><b>Volume tol.</b> (DropSmallSolids.VolumeThreshold) - defines
maximum volume of a solid which is considered small.</li>
<li><b>To merge solids</b> (DropSmallSolids.MergeSolids) - if
activated, small solids are removed, else small solids are merged to
adjacent non-small solids or left untouched if cannot be merged.
</li>
</ul>
If the both tolerances are activated a solid is considered small if
it meets the both criteria.
<li><b>Split Angle</b> (SplitAngle) - splits faces based on conical
surfaces, surfaces of revolution and cylindrical surfaces in segments
using a certain angle.</li>

View File

@ -4,27 +4,37 @@
This operation is a special case of <b>Explode</b> operation. It
produces sub-shapes of the exploded shape (the first shape in the list
of argument shapes), which are shared with all other shapes in the
arguments.
of argument shapes), which are shared with other shapes in the
arguments. The argument shapes can also be contained in a compound or
group.
To use this operation, select in the Main Menu <b>Operations -> Get
Shared Shapes.</b> The following dialog box will appear.
\image html shared_shapes.png
<ul>
<li> <b>Name</b> is the base name of the resulting shapes; </li>
<li> <b>Shapes</b> are the shapes to fing shared sub-shapes of; </li>
<li> <b>Sub-shapes Type</b> is the type of required sub-shapes; </li>
</ul>
In this dialog:
- <b>Name</b> is the base name of the resulting shapes.
- <b>Shapes</b> are the shapes to fing shared sub-shapes of.
- <b>Sub-shapes Type</b> is the type of required sub-shapes.
- <b>Shared by all</b> option specifies what type of shared sub-shapes should be checked:
- \b On: causes to search sub-shapes from the first input shape shared with all other input shapes;
- \b Off: causes to search sub-shapes shared between couples of input shapes.
\n <b>Advanced options</b> \ref preview_anchor "Preview"
\note For the case when "Shared by all" option is switched off - if an input list of shapes
contains single compound, the sub-shapes shared between all possible couples of its top-level shapes
are searched; otherwise, only sub-shapes that are shared between first input shape and all rest input
shapes are searched.
\n <b>TUI Command:</b> <em> geompy.GetSharedShapesMulti(Shapes,
Type),</em> where \em Shapes is a list of shapes to fing shared sub-
<b>Advanced options:</b> \ref preview_anchor "Preview"
<b>TUI Command:</b> <em> geompy.GetSharedShapesMulti( Shapes, Type ),</em>
<br> where \em Shapes is a list or compound of shapes to fing shared sub-
shapes of and \em Type is the type of required sub-shapes.
Our <b>TUI Scripts</b> provide you with useful examples of the use of
\ref swig_GetSharedShapes "Get Shared Shapes" functionality.
Get Shared Shapes functionality:
- \ref tui_shared_shapes "Example 1"
- \ref swig_GetSharedShapes "Example 2"
*/

View File

@ -9,7 +9,15 @@ geometrical object.
The table displays \b Min and \b Max tolerance values for \b Face, \b Edge and \b Vertex tolerance.
\n <b>TUI Command:</b> <em>geompy.Tolerance(Shape),</em> where \em Shape
\note This dialog supports navigation through the selectable objects (in OCC 3D viewer only):
- Scroll mouse wheel with pressed \em Ctrl key or press \em "S", \em "P" keys when input focus is
in the viewer to navigate between selectable objects.
- Press left mouse button to select an appropriate object to the dialog box.
.
For more details, please refer to the \em "Functionality common for OCC and VTK viewers" chapter
of the GUI module's documentation.
<b>TUI Command:</b> <em>geompy.Tolerance(Shape),</em> where \em Shape
is a shape for which minimal and maximal tolerances are returned.
See also a \ref tui_tolerance_page "TUI example".

View File

@ -0,0 +1,53 @@
/*!
\page transfer_data_page Transfer Data
This operation performs copying of non-topological data
from one shape to another. The topology of the destination object
will not change, only non-topological data will be transferred
(if it is present in the source object). It is possible to transfer
the following data with this operation:
<ul>
<li> <b>Names</b></li>
<li> <b>Materials</b></li>
</ul>
To use this operation, select in the Main Menu <b>Operations -> Transfer Data</b>.
The following dialog box will appear.
\image html transfer_data1.png "Transfer Data Dialog"
In this dialog:
<ul>
<li> <b>Source Shape</b> is an object that is a source of non-topological data.</li>
<li> <b>Destination Shape</b> is a data destination object. </li>
<li> <b>Type of detection operation</b> is the method to search sub-shapes of
<b>Source Shape</b> in <b>Destination Shape</b>. Data are transferred
from these corresponding sub-shapes. This is a combo-box with the following
possible values:
<ul>
<li><b>Get In Place</b> - current implementation of Get In Place algorithm
(default value).</li>
<li><b>Get In Place (old)</b> - old implementation of Get In Place
algorithm.</li>
<li><b>Get In Place By History</b> - Get In Place By History algorithm.</li>
</ul>
</li>
</ul>
To copy data click on \b Apply or <b>Apply and Close</b> button. As the result
it is possible to see how many names and materials are copied as well as
maximum number of names and materials available for copying. This information is
provided on the following message box:
\image html transfer_data2.png "Transfer Data Information"
<b>TUI Command:</b> <em>geompy.TransferData(ObjectFrom, ObjectTo, FindMethod),</em>
<br> where \em ObjectFrom is a data source object, \em ObjectTo is a
destination object and \em FindMethod is a same shape detection method with
default value \em GEOM.FSM_GetInPlace.
Our <b>TUI Scripts</b> provide you with useful example of the use of
\ref swig_TransferData "Transfer Data" functionality.
*/

View File

@ -16,6 +16,7 @@ which allow to:
<li>\subpage scale_operation_page "Scale" an object by one or several scale factors.</li>
<li>Create an \subpage offset_operation_page "Offset" of an object.</li>
<li>Create a \subpage projection_operation_page "Projection" of an object on a face.</li>
<li>Create an \subpage extension_operation_page "Extension" of an edge or a face.</li>
<li>Create a simultaneous \subpage multi_translation_operation_page "Translation in several directions".</li>
<li>Create a simultaneous \subpage multi_rotation_operation_page</li> "Rotation in several directions".</li>
</ul>

View File

@ -25,6 +25,8 @@ into water.</li>
special case of \b Explode operation. </li>
<li>\subpage shared_shapes_page "Get shared shapes" operation, a
special case of \b Explode operation. </li>
<li>\subpage transfer_data_page "Transfer Data" operation, which copies
non-topological data from one shape to another. </li>
<li>\subpage restore_presentation_parameters_page "Restore presentation parameters".

View File

@ -38,6 +38,10 @@
<br><h2>Creation of a Local Coordinate System</h2>
\tui_script{basic_geom_objs_ex09.py}
\anchor tui_creation_surface
<br><h2>Creation of a Surface From Face</h2>
\tui_script{basic_geom_objs_ex10.py}
\anchor tui_creation_polyline
<br><h2>Creation of 2D Polyline</h2>
\tui_script{polyline.py}

View File

@ -14,4 +14,8 @@
<br><h2>Restore presentation parameters and sub-shapes</h2>
\tui_script{basic_operations_ex03.py}
\anchor tui_shared_shapes
<br><h2>Get shared shapes</h2>
\tui_script{basic_operations_ex04.py}
*/

View File

@ -15,7 +15,7 @@
\tui_script{boolean_operations_ex03.py}
\anchor tui_section
<br><h2>Section</h2>
<br><h2>Intersection</h2>
\tui_script{boolean_operations_ex04.py}
*/

View File

@ -0,0 +1,6 @@
/*!
\page tui_fast_intersection_page Fast intersection
\tui_script{fast_intersection.py}
*/

View File

@ -19,6 +19,7 @@
<li>\subpage tui_check_compound_of_blocks_page</li>
<li>\subpage tui_get_non_blocks_page</li>
<li>\subpage tui_check_self_intersections_page</li>
<li>\subpage tui_fast_intersection_page</li>
</ul>
*/

View File

@ -66,6 +66,12 @@
\anchor swig_ChangeOrientation
\until ChangeOrientation
\anchor swig_ExtendFaceEdge
\until ExtendFace
\anchor swig_SurfaceFromFace
\until MakeSurfaceFromFace
\anchor swig_ExtractShapes
\until prism_edges

View File

@ -14,9 +14,12 @@
\until CheckShape
\anchor swig_CheckShape
\until MakeCompound
\until Detect Self-intersections
\anchor swig_CheckSelfIntersections
\until Detect Fast intersection
\anchor swig_FastIntersection
\until WhatIs
\anchor swig_WhatIs

View File

@ -96,6 +96,9 @@
\anchor swig_GetSharedShapes
\until "sharedEdge_"
\anchor swig_TransferData
\until subBlackWhite[1]
\anchor swig_CheckAndImprove
\until "blocksComp"

View File

@ -22,6 +22,10 @@
<br><h2>Creation of a Solid</h2>
\tui_script{topological_geom_objs_ex05.py}
\anchor tui_creation_solid_from_faces
<br><h2>Creation of a Solid from the set of connected faces</h2>
\tui_script{topological_geom_objs_ex07.py}
\anchor tui_creation_compound
<br><h2>Creation of a Compound</h2>
\tui_script{topological_geom_objs_ex06.py}

View File

@ -54,4 +54,8 @@
<br><h2>Chamfer</h2>
\tui_script{transformation_operations_ex13.py}
\anchor tui_extend
<br><h2>Extend Edge and Face</h2>
\tui_script{transformation_operations_ex14.py}
*/

View File

@ -17,7 +17,7 @@ complex geometrical objects (2D & 3D elements):
of a list of objects into an independent object.</li>
<li>\subpage cut_operation_page "Cut" - cuts one shape with
a list of others. </li>
<li>\subpage section_opeartion_page "Section" - creates a section between two shapes.</li>
<li>\subpage section_opeartion_page "Intersection" - performs an intersection between two shapes.</li>
</ul>
You can use advanced TUI commands performing these operations
@ -34,7 +34,7 @@ theMainShape is the object of the operation and \em theShapesList is
the list of tools for Cut operation;
\par
<em>geompy.MakeSection(Shape1, Shape2, checkSelfInte)</em>, where \em Shape1 is the first
argument and \em Shape2 is the second argument of Section operation;
argument and \em Shape2 is the second argument of Intersection operation;
There are several TUI commands that can be used to perform boolean operations
@ -45,7 +45,7 @@ operation.
<em>geompy.MakeBoolean(Shape1, Shape2, Operation, checkSelfInte),</em> where \em
Shape1 is the first argument and \em Shape2 is the second argument of
a Boolean operation, \em Operation is the type of a Boolean operation (1
&mdash; Common, 2 &mdash; Cut, 3 &mdash; Fuse, 4 &mdash; Section).
&mdash; Common, 2 &mdash; Cut, 3 &mdash; Fuse, 4 &mdash; Intersection).
Besides, you can use advanced TUI commands performing these operations

Some files were not shown because too many files have changed in this diff Show More