Make Symmetry
There are three differents ways to make the symmetry of an element:
Symmetry by point
Symmetry by line
Symmetry by plane
Symmetry by point
To make the symmetry of an element by point, you need to define:
the element
the symmetry center
elts = doc.makeSymmetryPoint (grid, orig)
Operations on elts: Elements
Here is an example where we make the symmetry of a grid:
Example
1# -*- coding: latin-1 -*-
2# Copyright (C) 2009-2026 CEA, EDF
3#
4# This library is free software; you can redistribute it and/or
5# modify it under the terms of the GNU Lesser General Public
6# License as published by the Free Software Foundation; either
7# version 2.1 of the License, or (at your option) any later version.
8#
9# This library is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12# Lesser General Public License for more details.
13#
14# You should have received a copy of the GNU Lesser General Public
15# License along with this library; if not, write to the Free Software
16# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17#
18# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19#
20
21######## Make Symmetry Point ########
22
23import hexablock
24
25
26# ======================================================= make_grid
27def make_grid (doc) :
28
29 ori = doc.addVertex ( 0, 0, 0)
30 vz = doc.addVector ( 0, 0, 1)
31 vx = doc.addVector ( 1 ,0, 0)
32
33 dr = 1
34 da = 360
35 dl = 1
36
37 nr = 1
38 na = 6
39 nl = 1
40 grid = doc.makeCylindrical (ori, vx,vz, dr,da,dl, nr,na,nl, False)
41 ##### doc .saveVtk ("cyl_grid.vtk")
42 return grid
43
44
45# ======================================================= test_sym_point
46def test_sym_point () :
47
48 doc = hexablock.addDocument ("default")
49 grid = make_grid (doc)
50
51 orig = grid.getVertex(3)
52 grid2 = doc.makeSymmetryPoint (grid, orig)
53
54 ##### doc .saveVtk ("sym_point.vtk")
55 return doc
56
57
58# ================================================================= Begin
59doc = test_sym_point ()
60
Result
Initial
Symmetry of a grid by point
Symmetry by line
To make the symmetry of an element by line, you need to define:
the element
a point and a direction to define the line of symmetry
elts = doc.makeSymmetryLine (grid, orig, dir)
Operations on elts: Elements
Example
Code
1# -*- coding: latin-1 -*-
2# Copyright (C) 2009-2026 CEA, EDF
3#
4# This library is free software; you can redistribute it and/or
5# modify it under the terms of the GNU Lesser General Public
6# License as published by the Free Software Foundation; either
7# version 2.1 of the License, or (at your option) any later version.
8#
9# This library is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12# Lesser General Public License for more details.
13#
14# You should have received a copy of the GNU Lesser General Public
15# License along with this library; if not, write to the Free Software
16# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17#
18# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19#
20
21######## Make Symmetry Line ########
22
23import hexablock
24
25
26# ======================================================= make_grid
27def make_grid (doc) :
28
29 ori = doc.addVertex ( 0, 0, 0)
30 vz = doc.addVector ( 0, 0, 1)
31 vx = doc.addVector ( 1 ,0, 0)
32
33 dr = 1
34 da = 360
35 dl = 1
36
37 nr = 1
38 na = 6
39 nl = 1
40 grid = doc.makeCylindrical (ori, vx,vz, dr,da,dl, nr,na,nl, False)
41 ##### doc .saveVtk ("cyl_grid.vtk")
42 return grid
43
44
45# ======================================================= test_sym_line
46def test_sym_line () :
47
48 doc = hexablock.addDocument ("default")
49 grid = make_grid (doc)
50
51 orig = grid.getVertex(3)
52 dir = doc.addVector (0, 0, 1);
53 grid2 = doc.makeSymmetryLine (grid, orig, dir)
54
55 ##### doc .saveVtk ("sym_line.vtk")
56 return doc
57
58
59# ================================================================= Begin
60doc = test_sym_line ()
Result
Symmetry of a grid by line
Symmetry by plane
To make the symmetry of an element by plane, you need to define:
the element
a point and a direction to define the plane of symmetry
elts = doc.makeSymmetryPlane (grid, orig, dir)
Operations on elts: Elements
Example
Code
1# -*- coding: latin-1 -*-
2# Copyright (C) 2009-2026 CEA, EDF
3#
4# This library is free software; you can redistribute it and/or
5# modify it under the terms of the GNU Lesser General Public
6# License as published by the Free Software Foundation; either
7# version 2.1 of the License, or (at your option) any later version.
8#
9# This library is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12# Lesser General Public License for more details.
13#
14# You should have received a copy of the GNU Lesser General Public
15# License along with this library; if not, write to the Free Software
16# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17#
18# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
19#
20
21######## Make Symmetry Plane ########
22
23import hexablock
24
25
26# ======================================================= make_grid
27def make_grid (doc) :
28
29 ori = doc.addVertex ( 0, 0, 0)
30 vz = doc.addVector ( 0, 0, 1)
31 vx = doc.addVector ( 1 ,0, 0)
32
33 dr = 1
34 da = 360
35 dl = 1
36
37 nr = 1
38 na = 6
39 nl = 1
40 grid = doc.makeCylindrical (ori, vx,vz, dr,da,dl, nr,na,nl, False)
41 ##### doc .saveVtk ("cyl_grid.vtk")
42 return grid
43
44
45# ======================================================= test_sym_plane
46def test_sym_plane () :
47
48 doc = hexablock.addDocument ("default")
49 grid = make_grid (doc)
50
51 orig = grid.getVertex(3)
52 dir = doc.addVector (0, 1, 0);
53 grid2 = doc.makeSymmetryPlane (grid, orig, dir)
54
55 ##### doc .saveVtk ("sym_plane.vtk")
56 return doc
57
58# ================================================================= Begin
59doc = test_sym_plane ()
Result
Symmetry of a grid by plane
GUI command: Make elements by symmetry