Иду ва-банк :)
Вот он скрипт:
theView = av.FindDoc("2D") ' av.FindDoc("view1")
srcTin = SrcName.Make(projDir + "shapes\newtin2")
s = Surface.Make (srcTin)
srcMainPoint = SrcName.Make(projDir + "shapes\main_point.shp")
MainPointFTab = FTab.Make(srcMainPoint)
p1 = MainPointFTab.ReturnValue(MainPointFTab.findField("Shape"),0)
'вот тут была оперрация проецирования, я её уже убил...
xfirst = p1.GetX
yfirst = p1.GetY
p2 = theView.GetDisplay.ReturnUserPoint
xlast = p2.GetX
ylast = p2.GetY
l = PolyLine.Make({{p1,xlast@ylast}})
' этот фрагмент нужен для определения параметров профиля
dx = xlast-xfirst
dy = ylast-yfirst
r = ((dx*dx)+(dy*dy)).Sqrt
if (dy = 0) then
if (dx > 0) then azimut = 90
else azimut = 270
end 'if
else
ugol = (dx/dy).ATan.AsDegrees
if ((dy >= 0) and (dx >= 0)) then azimut = ugol end 'if
if ((dy <= 0) and (dx >= 0)) then azimut = 180 + ugol end 'if
if ((dy <= 0) and (dx <= 0)) then azimut = 180 + ugol end 'if
if ((dy >= 0) and (dx <= 0)) then azimut = 360 + ugol end 'if
end 'if
section = s.InterpolateZ(l)
'изменения в main_line
MLsrc = SrcName.Make (projDir + "shapes\main_line.shp")
MainLineFTab = FTab.Make(MLsrc)
'l_old = MainLineFTab.ReturnValue(MainLineFTab.findField("Shape"), 0)
if (MainLineFTab.IsEditable.Not) then
MainLineFTab.SetEditable(TRUE)
MainLineFTab.StartEditingWithRecovery
MainLineFTab.SetValue(MainLineFTab.findField("Shape"), 0, l)
MainLineFTab.StopEditingWithRecovery(TRUE)
MainLineFTab.SetEditable(FALSE)
end
theView.Invalidate
Ну и где тут можно напутать?