]> SALOME platform Git repositories - tools/medcoupling.git/blob - doc/user/images/extractSlice3D.py
Salome HOME
Further fix for CaseReader Py3 ...
[tools/medcoupling.git] / doc / user / images / extractSlice3D.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
12 import iparameters
13 ipar = iparameters.IParameters(salome.myStudy.GetCommonParameters("Interface Applicative", 1), True)
14
15 #Set up visual properties:
16 ipar.setProperty("AP_ACTIVE_VIEW", "ParaView_0_0")
17 ipar.setProperty("AP_WORKSTACK_INFO", "0000000100000000000000020100000001000003b5000000040000000100000001000000080000001800500061007200610056006900650077005f0030005f00300000000102")
18 ipar.setProperty("AP_ACTIVE_MODULE", "ParaViS")
19 ipar.setProperty("AP_SAVEPOINT_NAME", "GUI state: 1")
20 #Set up lists:
21 # fill list AP_VIEWERS_LIST
22 ipar.append("AP_VIEWERS_LIST", "ParaView_1")
23 # fill list ParaView_1
24 ipar.append("ParaView_1", "ParaView scene:2 - viewer:1")
25 ipar.append("ParaView_1", "empty")
26 # fill list AP_MODULES_LIST
27 ipar.append("AP_MODULES_LIST", "ParaViS")
28
29 import sys
30 if sys.platform == "win32":
31     from MEDCouplingCompat import *
32 else:
33     from MEDCoupling import *
34
35 from MEDLoader import WriteMesh, WriteFieldUsingAlreadyWrittenMesh
36
37 medfile1="mesh1.med"
38 medfile2="mesh2.med"
39
40 m4=MEDCouplingCMesh("box")
41 coo=DataArrayDouble(range(7))
42 m4.setCoords(coo[:5],coo[:5],coo)
43 m4=m4.buildUnstructured()
44 valsArr1=m4.computeCellCenterOfMass()
45 valsArr1.applyFunc(1,"sqrt(X*X+Y*Y+Z*Z)")
46 field4 = MEDCouplingFieldDouble(ON_CELLS)
47 field4.setArray(valsArr1)
48 field4.setMesh(m4)
49 field4.setName("field4")
50
51 WriteMesh(medfile1,m4,True)
52 WriteFieldUsingAlreadyWrittenMesh(medfile1,field4)
53
54 origin=[0,0,2]
55 normvec=[-4,-4,6]
56 slice4=field4.extractSlice3D(origin,normvec,1e-10)
57 slice4.getMesh().translate([6,0,0])
58
59 WriteMesh(medfile2,slice4.getMesh(),True)
60 WriteFieldUsingAlreadyWrittenMesh(medfile2,slice4)
61
62
63
64 ###
65 ### PARAVIS component
66 ###
67
68 import pvsimple
69 pvsimple.ShowParaviewView()
70 #### import the simple module from the paraview
71 from pvsimple import *
72 #### disable automatic camera reset on 'Show'
73 pvsimple._DisableFirstRenderCameraReset()
74
75 # create a new 'MED Reader'
76 mesh1med = MEDReader(FileName=medfile1)
77
78 # Properties modified on mesh1med
79 mesh1med.AllArrays = ['TS0/box/ComSup0/box@@][@@P0', 'TS0/box/ComSup0/field4@@][@@P0']
80
81 # get active view
82 renderView1 = GetActiveViewOrCreate('RenderView')
83 # uncomment following to set a specific view size
84 # renderView1.ViewSize = [935, 531]
85
86 # show data in view
87 mesh1medDisplay = Show(mesh1med, renderView1)
88
89 # trace defaults for the display properties.
90 mesh1medDisplay.Representation = 'Surface'
91
92 # reset view to fit data
93 renderView1.ResetCamera()
94
95 # update the view to ensure updated data information
96 renderView1.Update()
97
98 # set scalar coloring
99 ColorBy(mesh1medDisplay, ('CELLS', 'field4', 'Magnitude'))
100
101 # rescale color and/or opacity maps used to include current data range
102 mesh1medDisplay.RescaleTransferFunctionToDataRange(True, False)
103
104 # show color bar/color legend
105 mesh1medDisplay.SetScalarBarVisibility(renderView1, True)
106
107 # get color transfer function/color map for 'field4'
108 field4LUT = GetColorTransferFunction('field4')
109
110 # create a new 'MED Reader'
111 mesh2med = MEDReader(FileName=medfile2)
112
113 # Properties modified on mesh2med
114 mesh2med.AllArrays = ['TS0/Slice3D/ComSup0/Slice3D@@][@@P0', 'TS0/Slice3D/ComSup0/field4@@][@@P0']
115
116 # show data in view
117 mesh2medDisplay = Show(mesh2med, renderView1)
118
119 # trace defaults for the display properties.
120 mesh2medDisplay.Representation = 'Surface'
121
122 # update the view to ensure updated data information
123 renderView1.Update()
124
125 # set scalar coloring
126 ColorBy(mesh2medDisplay, ('CELLS', 'field4', 'Magnitude'))
127
128 # rescale color and/or opacity maps used to include current data range
129 mesh2medDisplay.RescaleTransferFunctionToDataRange(True, False)
130
131 # show color bar/color legend
132 mesh2medDisplay.SetScalarBarVisibility(renderView1, True)
133
134 #### saving camera placements for all active views
135
136 # current camera placement for renderView1
137 renderView1.CameraPosition = [13.435468781360525, -42.4334252478128, 12.397177265244004]
138 renderView1.CameraFocalPoint = [11.468912675367923, -26.954985015354552, 9.183145534397903]
139 renderView1.CameraViewUp = [-0.0347897943004739, 0.19894659037092524, 0.9793926303542998]
140 renderView1.CameraParallelScale = 4.123105625617661
141
142
143 if salome.sg.hasDesktop():
144   salome.sg.updateObjBrowser(True)
145   iparameters.getSession().restoreVisualState(1)