0

我正在阅读一个 ensight 案例。

对于某个切片,我正在使用下一个绘图上划线函数在两点之间绘图:

def plotoverline(Xa,Ya,Xb,Yb,Za,Zb,case,index):

    PlotOverLine1 = PlotOverLine( Source = "High Resolution Line Source" )

    PlotOverLine1.Source.Point1 = [Xa, Ya, Za]
    PlotOverLine1.Source.Point2 = [Xb, Yb, Zb]

    PlotOverLine1.Source.Resolution = nb_pts

    # saving data in CSV File
    filename = "case_" + str(case) + "_"  + str(index) + ".csv"
    writer = CreateWriter(filename)
    writer.FieldAssociation = "Points" # or "Cells"
    writer.UpdatePipeline() 

return filename

我想绘制多行并将每一行的数据导出到一个 csv 文件,但我的代码只写入第一行的数据和其他行的“nan”。

Z = 200 # attitude of my slice
for i in range(le):
    Xb = left[i,0]
    Yb = left[i,1]
    Xa = pt[i,0] 
    Ya = pt[i,1] 
    data = plotoverline(Xa,Ya,Xb,Yb,Z,Z,case,ind_left[i])
4

1 回答 1

0

我只需要指定我正在处理的切片:plotoverline 函数变为:

def plotoverline(Slice, Xa,Ya,Xb,Yb,Za,Zb,case,index):

    SetActiveSource(Slice)
    PlotOverLine1 = PlotOverLine( Source = "High Resolution Line Source" )

    PlotOverLine1.Source.Point1 = [Xa, Ya, Za]
    PlotOverLine1.Source.Point2 = [Xb, Yb, Zb]

    PlotOverLine1.Source.Resolution = nb_pts

    # saving data in CSV File
    filename = "case_" + str(case) + "_"  + str(index) + ".csv"
    writer = CreateWriter(filename)
    writer.FieldAssociation = "Points" # or "Cells"
    writer.UpdatePipeline() 

return filename
于 2014-08-11T12:14:24.477 回答