Salome HOME
Fix: getCellsContainingPoints() in case of polyhedron with a face containing colinear...
[tools/medcoupling.git] / doc / user / images / extrusion.py
1 # -*- coding: utf-8 -*-
2
3 ###
4 ### This script is intended to be launched in a new SALOME study
5 ###
6
7 import os
8 import salome
9
10 salome.salome_init()
11 theStudy = salome.myStudy
12
13 import iparameters
14 ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1), True)
15
16 #Set up visual properties:
17 ipar.setProperty("AP_ACTIVE_VIEW", "VTKViewer_0_0")
18 ipar.setProperty("AP_WORKSTACK_INFO", "0000000100000000000000020100000001000003a0000000040000000100000001000000080000001a00560054004b005600690065007700650072005f0030005f00300000000102")
19 ipar.setProperty("AP_ACTIVE_MODULE", "Mesh")
20 ipar.setProperty("AP_SAVEPOINT_NAME", "GUI state: 2")
21 #Set up lists:
22 # fill list AP_VIEWERS_LIST
23 ipar.append("AP_VIEWERS_LIST", "VTKViewer_1")
24 # fill list VTKViewer_1
25 ipar.append("VTKViewer_1", "VTK scene:2 - viewer:1")
26 ipar.append("VTKViewer_1", """<?xml version="1.0"?>
27 <ViewState>
28     <Position X="-11.2939" Y="-37.8054" Z="13.0229"/>
29     <FocalPoint X="3.52986" Y="0.901624" Z="2.04364"/>
30     <ViewUp X="0.043222" Y="0.257277" Z="0.965371"/>
31     <ViewScale Parallel="6.42314" X="1" Y="1" Z="1"/>
32     <DisplayCubeAxis Show="0"/>
33     <GraduatedAxis Axis="X">
34         <Title isVisible="1" Text="X" Font="0" Bold="0" Italic="0" Shadow="0">
35             <Color R="1" G="0" B="0"/>
36         </Title>
37         <Labels isVisible="1" Number="3" Offset="2" Font="0" Bold="0" Italic="0" Shadow="0">
38             <Color R="1" G="0" B="0"/>
39         </Labels>
40         <TickMarks isVisible="1" Length="5"/>
41     </GraduatedAxis>
42     <GraduatedAxis Axis="Y">
43         <Title isVisible="1" Text="Y" Font="0" Bold="0" Italic="0" Shadow="0">
44             <Color R="0" G="1" B="0"/>
45         </Title>
46         <Labels isVisible="1" Number="3" Offset="2" Font="0" Bold="0" Italic="0" Shadow="0">
47             <Color R="0" G="1" B="0"/>
48         </Labels>
49         <TickMarks isVisible="1" Length="5"/>
50     </GraduatedAxis>
51     <GraduatedAxis Axis="Z">
52         <Title isVisible="1" Text="Z" Font="0" Bold="0" Italic="0" Shadow="0">
53             <Color R="0" G="0" B="1"/>
54         </Title>
55         <Labels isVisible="1" Number="3" Offset="2" Font="0" Bold="0" Italic="0" Shadow="0">
56             <Color R="0" G="0" B="1"/>
57         </Labels>
58         <TickMarks isVisible="1" Length="5"/>
59     </GraduatedAxis>
60     <Trihedron isShown="0" Size="100"/>
61     <Background Value="bt=1;fn=;tm=0;ts=false;c1=#ffffff;c2=#000000;gt=-1;gr="/>
62 </ViewState>
63 """)
64 # fill list AP_MODULES_LIST
65 ipar.append("AP_MODULES_LIST", "Mesh")
66
67 import sys
68 if sys.platform == "win32":
69     from MEDCouplingCompat import *
70 else:
71     from MEDCoupling import *
72
73 coordsArr=DataArrayDouble(range(3))
74 mesh1=MEDCouplingCMesh("mesh")
75 mesh1.setCoords(coordsArr,coordsArr,coordsArr[:1])
76 mesh1 = mesh1.buildUnstructured()
77
78 from MEDLoader import WriteMesh
79 WriteMesh("mesh1.med",mesh1,True)
80
81 import math
82 r = 3.
83 nb = 10
84 a = 5.
85 coords = []
86 for i in range( nb ):
87   x = r * math.cos( math.radians( i*a )) - r
88   z = r * math.sin( math.radians( i*a ))
89   coords.extend([ x, 0, z ])
90
91 m2=MEDCouplingCurveLinearMesh("myCurveLinearMesh")
92 m2.setNodeGridStructure([1,nb])
93 coo=DataArrayDouble(coords,nb,3)
94 m2.setCoords(coo)
95 m2 = m2.buildUnstructured()
96
97 WriteMesh("part.med",m2,True)
98
99 m3=mesh1.buildExtrudedMesh(m2,0)
100 WriteMesh("mesh2.med",m3,True)
101
102 m3=mesh1.buildExtrudedMesh(m2,1)
103 WriteMesh("mesh3.med",m3,True)
104
105 ###
106 ### SMESH component
107 ###
108
109 import  SMESH, SALOMEDS
110 from salome.smesh import smeshBuilder
111
112 smesh = smeshBuilder.New(salome.myStudy)
113 ([mesh_1], status) = smesh.CreateMeshesFromMED(r'mesh1.med')
114 ([mesh_2], status) = smesh.CreateMeshesFromMED(r'part.med')
115 ([mesh_3], status) = smesh.CreateMeshesFromMED(r'mesh2.med')
116 ([mesh_4], status) = smesh.CreateMeshesFromMED(r'mesh3.med')
117
118 mesh_3.TranslateObject( mesh_3, [2.5,0,0], False )
119 mesh_4.TranslateObject( mesh_4, [5,0,0], False )
120
121 ### Store presentation parameters of displayed objects
122 import iparameters
123 ipar = iparameters.IParameters(theStudy.GetModuleParameters("Interface Applicative", "SMESH", 1))
124
125 #Set up entries:
126 # set up entry SMESH_3 (mesh) parameters
127 ipar.setParameter("SMESH_3", "VTKViewer_0_Visibility", "On")
128 ipar.setParameter("SMESH_3", "VTKViewer_0_Representation", "2")
129 ipar.setParameter("SMESH_3", "VTKViewer_0_IsShrunk", "0")
130 ipar.setParameter("SMESH_3", "VTKViewer_0_Entities", "e:0:f:1:v:0:0d:0:b:0")
131 ipar.setParameter("SMESH_3", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:100:volume:1:0:0.666667:-100:edge:0:0.666667:1:node:1:0:0:outline:0:0.27451:0:elem0d:0:1:0:ball:0:0.333333:1:orientation:1:1:1")
132 ipar.setParameter("SMESH_3", "VTKViewer_0_Sizes", "line:1:outline:1:elem0d:5:ball:10:1:shrink:0.75:orientation:0.1:0")
133 ipar.setParameter("SMESH_3", "VTKViewer_0_PointMarker", "std:1:9")
134 ipar.setParameter("SMESH_3", "VTKViewer_0_Opacity", "1")
135 ipar.setParameter("SMESH_3", "VTKViewer_0_ClippingPlane", "Off")
136 # set up entry SMESH_4 (myCurveLinearMesh) parameters
137 ipar.setParameter("SMESH_4", "VTKViewer_0_Visibility", "On")
138 ipar.setParameter("SMESH_4", "VTKViewer_0_Representation", "1")
139 ipar.setParameter("SMESH_4", "VTKViewer_0_IsShrunk", "0")
140 ipar.setParameter("SMESH_4", "VTKViewer_0_Entities", "e:1:f:0:v:0:0d:0:b:0")
141 ipar.setParameter("SMESH_4", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:100:volume:1:0:0.666667:-100:edge:0:0.666667:1:node:1:0:0:outline:0:0.27451:0:elem0d:0:1:0:ball:0:0.333333:1:orientation:1:1:1")
142 ipar.setParameter("SMESH_4", "VTKViewer_0_Sizes", "line:1:outline:1:elem0d:5:ball:10:1:shrink:0.75:orientation:0.1:0")
143 ipar.setParameter("SMESH_4", "VTKViewer_0_PointMarker", "std:1:9")
144 ipar.setParameter("SMESH_4", "VTKViewer_0_Opacity", "1")
145 ipar.setParameter("SMESH_4", "VTKViewer_0_ClippingPlane", "Off")
146 # set up entry SMESH_5 (Extruded) parameters
147 ipar.setParameter("SMESH_5", "VTKViewer_0_Visibility", "On")
148 ipar.setParameter("SMESH_5", "VTKViewer_0_Representation", "2")
149 ipar.setParameter("SMESH_5", "VTKViewer_0_IsShrunk", "0")
150 ipar.setParameter("SMESH_5", "VTKViewer_0_Entities", "e:0:f:0:v:1:0d:0:b:0")
151 ipar.setParameter("SMESH_5", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:100:volume:1:0:0.666667:-100:edge:0:0.666667:1:node:1:0:0:outline:0:0.27451:0:elem0d:0:1:0:ball:0:0.333333:1:orientation:1:1:1")
152 ipar.setParameter("SMESH_5", "VTKViewer_0_Sizes", "line:1:outline:1:elem0d:5:ball:10:1:shrink:0.75:orientation:0.1:0")
153 ipar.setParameter("SMESH_5", "VTKViewer_0_PointMarker", "std:1:9")
154 ipar.setParameter("SMESH_5", "VTKViewer_0_Opacity", "1")
155 ipar.setParameter("SMESH_5", "VTKViewer_0_ClippingPlane", "Off")
156 # set up entry SMESH_6 (Extruded) parameters
157 ipar.setParameter("SMESH_6", "VTKViewer_0_Visibility", "On")
158 ipar.setParameter("SMESH_6", "VTKViewer_0_Representation", "2")
159 ipar.setParameter("SMESH_6", "VTKViewer_0_IsShrunk", "0")
160 ipar.setParameter("SMESH_6", "VTKViewer_0_Entities", "e:1:f:1:v:1:0d:1:b:1")
161 ipar.setParameter("SMESH_6", "VTKViewer_0_Colors", "surface:0:0.666667:1:backsurface:100:volume:1:0:0.666667:-100:edge:0:0.666667:1:node:1:0:0:outline:0:0.27451:0:elem0d:0:1:0:ball:0:0.333333:1:orientation:1:1:1")
162 ipar.setParameter("SMESH_6", "VTKViewer_0_Sizes", "line:1:outline:1:elem0d:5:ball:10:1:shrink:0.75:orientation:0.1:0")
163 ipar.setParameter("SMESH_6", "VTKViewer_0_PointMarker", "std:1:9")
164 ipar.setParameter("SMESH_6", "VTKViewer_0_Opacity", "1")
165 ipar.setParameter("SMESH_6", "VTKViewer_0_ClippingPlane", "Off")
166
167
168 if salome.sg.hasDesktop():
169   salome.sg.updateObjBrowser(True)
170   iparameters.getSession().restoreVisualState(1)
171
172 import libSALOME_Swig
173 gui = libSALOME_Swig.SALOMEGUI_Swig()
174 gui.AddIObject( salome.ObjectToID( mesh_1.GetMesh() ))
175 gui.AddIObject( salome.ObjectToID( mesh_3.GetMesh() ))
176 gui.AddIObject( salome.ObjectToID( mesh_4.GetMesh() ))