如何在ParaView中更改单元格属性?

时间:2017-06-22 06:15:53

标签: vtk paraview

以下示例模型显示了左侧具有一些单元属性的圆柱体。 “ModelFaceID”是定义模型的不同面的属性。面部在3D视图中以不同颜色突出显示(右):

enter image description here

在电子表格中,我可以看到每个单元格都有一个特定的“ModelFaceID”,它将单元格分配给其中一个面:

enter image description here 现在,我想在一个只有一个面孔的新模型中更改“ModelFaceID”。我想在3D视图中手动选择单元格并分别更改“ModelFaceID”,以便为模型获得不同的面。不幸的是,我无法更改电子表格中的属性。 这是我的新模特的照片。我在3D视图(左)和电子表格(右)中选择了单元格:

enter image description here

如何更改属性?我可以在ParaView中实现吗?您对我可以使用的其他工具有什么想法吗?

您可以在此处找到圆柱示例(cylinder.vtp):Cylinder Example

1 个答案:

答案 0 :(得分:2)

在Paraview中,我将创建一个可编程过滤器并创建一个新的Cell Data Array:

polydata = output
ids = [31,32]
array = vtk.vtkIntArray()
array.SetNumberOfComponents(0)
array.SetName("NewModelFaceID")
for i in range(polydata.GetNumberOfCells()):
    if i in ids:
        array.InsertNextValue(2)
    else:
        array.InsertNextValue(1)
polydata.GetCellData().AddArray(array)

根据this post,没有简单的方法可以从可编程滤波器中的选择中获取单元ID。你可以做的是使用ExtractSelection过滤器并手动将单元格id复制到ids-list。我承认,不是很优雅。