делалось на коленке, для себя,,,,, подправь себе
aView = av.GetActiveDoc
aThem = aView.GetActiveThemes.Get(0)
aTabl = aThem.GetFTab
aShap = aTabl.FindField("Shape")
aEval = aTabl.FindField("<Elevation>")
fName = FileDialog.Put( "output".AsFileName, "*.txt", "Write XYZ-dat (line to point)")
if (nil = fName) then return nil end
step = MsgBox.Input("Задайте шаг по линии:", "Parameters", "10")
if (nil = step) then return nil end
if (step.IsNumber.Not) then
MsgBox.Info("Введено нечисловое значение","ERROR")
return nil
end
step = step.AsNumber
aBitMap = aTabl.GetSelection
if (aBitMap.Count < 1) then
aTabl.GetSelection.SetAll
aTabl.UpdateSelection
aBitMap = aTabl.GetSelection
end
outf = LineFile.Make (fName, #FILE_PERM_WRITE)
outf.WriteElt("X,Y,Z")
for each rec in aBitMap
aZet = aTabl.ReturnValue(aEval, rec)
aLin = aTabl.ReturnValue(aShap, rec)
pntList = aLin.ReturnDensified(step).AsList.Get(0)
for each pn in 0..(pntList.Count - 1)
p = pntList.Get(pn)
outf.WriteElt(p.GetX.AsString + ","+ p.GetY.AsString + "," + aZet.AsString)
end
end
aThem.ClearSelection
outf.Close