<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=us-ascii"><meta name=Generator content="Microsoft Word 14 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:SimSun;
        panose-1:2 1 6 0 3 1 1 1 1 1;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
p.MsoListParagraph, li.MsoListParagraph, div.MsoListParagraph
        {mso-style-priority:34;
        margin-top:0cm;
        margin-right:0cm;
        margin-bottom:0cm;
        margin-left:36.0pt;
        margin-bottom:.0001pt;
        font-size:11.0pt;
        font-family:"Calibri","sans-serif";}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Calibri","sans-serif";
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-family:"Calibri","sans-serif";}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:1651133896;
        mso-list-type:hybrid;
        mso-list-template-ids:-805381762 67698703 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}
@list l0:level1
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level2
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level3
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level4
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level5
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level6
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
@list l0:level7
        {mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level8
        {mso-level-number-format:alpha-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;}
@list l0:level9
        {mso-level-number-format:roman-lower;
        mso-level-tab-stop:none;
        mso-level-number-position:right;
        text-indent:-9.0pt;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]--></head><body lang=EN-US link=blue vlink=purple><div class=WordSection1><p class=MsoNormal>Hi all,<o:p></o:p></p><p class=MsoNormal>I am a beginner of VTK and I want to show several isosurfaces and slices at the same time. The number of isosurfaces and slices depends on the input from users . I want to inquiry<o:p></o:p></p><p class=MsoListParagraph>how to let different isosurfaces and slices have different colors according to their inputted values which are used to the function of SetValue() in vtkContourFilter and vtkCutter.<o:p></o:p></p><p class=MsoNormal>I attach my code in the following:<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>isosurfacenum=int(input("please enter how many isosurfaces you want: "))<o:p></o:p></p><p class=MsoNormal>cuttingsliceindex=list()<o:p></o:p></p><p class=MsoNormal>isosurfacevalue=list()<o:p></o:p></p><p class=MsoNormal>count=0<o:p></o:p></p><p class=MsoNormal>while isosurfacenum>0:<o:p></o:p></p><p class=MsoNormal> count+=1<o:p></o:p></p><p class=MsoNormal> input_isosurfacevalue=int(input("please enter the isosurface value"+str(count)+": "))<o:p></o:p></p><p class=MsoNormal> isosurfacevalue.append(input_isosurfacevalue)<o:p></o:p></p><p class=MsoNormal> if count>=isosurfacenum:<o:p></o:p></p><p class=MsoNormal> break<o:p></o:p></p><p class=MsoNormal>count=0<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>cuttingplanenum=int(input("please enter how many cutting plane you want(up to 4)"))<o:p></o:p></p><p class=MsoNormal>while cuttingplanenum>0:<o:p></o:p></p><p class=MsoNormal> count+=1<o:p></o:p></p><p class=MsoNormal> input_cuttingsliceindex=int(input("please enter the cuttingslice value(up to 90)"+str(count)+": "))<o:p></o:p></p><p class=MsoNormal> if input_cuttingsliceindex>=90:<o:p></o:p></p><p class=MsoNormal> count-=1<o:p></o:p></p><p class=MsoNormal> print("your enter exceed the max value,please enter again")<o:p></o:p></p><p class=MsoNormal> continue<o:p></o:p></p><p class=MsoNormal> cuttingsliceindex.append(input_cuttingsliceindex)<o:p></o:p></p><p class=MsoNormal> if count>=cuttingplanenum:<o:p></o:p></p><p class=MsoNormal> break<o:p></o:p></p><p class=MsoNormal>reader=vtk.vtkStructuredPointsReader()<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>reader.SetFileName(input_data_name)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>print("1")<o:p></o:p></p><p class=MsoNormal># vtk isosurface<o:p></o:p></p><p class=MsoNormal>iso = vtk.vtkContourFilter()<o:p></o:p></p><p class=MsoNormal>iso.SetInputConnection(reader.GetOutputPort())<o:p></o:p></p><p class=MsoNormal>lenght_isosurfacevalue=len(isosurfacevalue)<o:p></o:p></p><p class=MsoNormal>while 1:<o:p></o:p></p><p class=MsoNormal> iso.SetValue(lenght_isosurfacevalue, float(isosurfacevalue[lenght_isosurfacevalue-1]))<o:p></o:p></p><p class=MsoNormal> lenght_isosurfacevalue-=1<o:p></o:p></p><p class=MsoNormal> if lenght_isosurfacevalue==0:<o:p></o:p></p><p class=MsoNormal> break<o:p></o:p></p><p class=MsoNormal>normals = vtk.vtkPolyDataNormals()<o:p></o:p></p><p class=MsoNormal>normals.SetInputConnection(iso.GetOutputPort())<o:p></o:p></p><p class=MsoNormal>normals.SetFeatureAngle(45)<o:p></o:p></p><p class=MsoNormal>isoMapper = vtk.vtkPolyDataMapper()<o:p></o:p></p><p class=MsoNormal>isoMapper.SetInputConnection(normals.GetOutputPort())<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>isoActor = vtk.vtkLODActor()<o:p></o:p></p><p class=MsoNormal>isoActor.SetMapper(isoMapper)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>outline = vtk.vtkStructuredGridOutlineFilter()<o:p></o:p></p><p class=MsoNormal>outline.SetInputConnection(reader.GetOutputPort())<o:p></o:p></p><p class=MsoNormal>outlineMapper = vtk.vtkPolyDataMapper()<o:p></o:p></p><p class=MsoNormal>outlineMapper.SetInputConnection(outline.GetOutputPort())<o:p></o:p></p><p class=MsoNormal>outlineActor = vtk.vtkActor()<o:p></o:p></p><p class=MsoNormal>outlineActor.SetMapper(outlineMapper)<o:p></o:p></p><p class=MsoNormal>print("2")<o:p></o:p></p><p class=MsoNormal>print("3")<o:p></o:p></p><p class=MsoNormal>print("4")<o:p></o:p></p><p class=MsoNormal>#cutting plane<o:p></o:p></p><p class=MsoNormal>print("5")<o:p></o:p></p><p class=MsoNormal>plane = vtk.vtkPlane()<o:p></o:p></p><p class=MsoNormal>plane.SetNormal(-0.287, 0, 0.9579)<o:p></o:p></p><p class=MsoNormal>plane = vtk.vtkPlane()<o:p></o:p></p><p class=MsoNormal>plane.SetNormal(-0.287, 0, 0.9579)<o:p></o:p></p><p class=MsoNormal>planeCut = vtk.vtkCutter()<o:p></o:p></p><p class=MsoNormal>planeCut.SetInputConnection(reader.GetOutputPort())<o:p></o:p></p><p class=MsoNormal>planeCut.SetCutFunction(plane)<o:p></o:p></p><p class=MsoNormal>lenght_cuttingsliceindex=len(cuttingsliceindex)<o:p></o:p></p><p class=MsoNormal>while 1:<o:p></o:p></p><p class=MsoNormal> planeCut.SetValue(lenght_cuttingsliceindex, float(cuttingsliceindex[lenght_cuttingsliceindex-1]))<o:p></o:p></p><p class=MsoNormal> lenght_cuttingsliceindex-=1<o:p></o:p></p><p class=MsoNormal> if lenght_cuttingsliceindex==0:<o:p></o:p></p><p class=MsoNormal> break<o:p></o:p></p><p class=MsoNormal>cutMapper = vtk.vtkPolyDataMapper()<o:p></o:p></p><p class=MsoNormal>cutMapper.SetInputConnection(planeCut.GetOutputPort())<o:p></o:p></p><p class=MsoNormal>cutActor = vtk.vtkActor()<o:p></o:p></p><p class=MsoNormal>cutActor.SetMapper(cutMapper)<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal>thanks!<o:p></o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><o:p> </o:p></p><p class=MsoNormal><b><span style='font-size:12.0pt;font-family:"Times New Roman","serif";color:#595959'>JIE</span></b><o:p></o:p></p></div></body></html>