BAM писал(а):
Построение по дир. углам или румбам
1. Нужно пометить первую точку и запустить скрипт
2. Выбераем дир. углы или румбы
3. Для румбов вводим четверть (1 2 3 4) и угол через "," (град,мин,сек)
4. Вводим дистанцию
На экране появится точка. Она атоматом становится первой. Повторяем действие 3,4 скольк нужно.
$V=@Dialog.Select Выбери|Дир. углы|Румб
%next
$n=@Map.NextSelected
@If $n=0 then @Break Пометь первую точку
$nn=@Map.Object[$n].Parameter[4]
$x=@Map.Object[$n].Parameter[-4]
$x=@Calc Replace("$x",",",".")
$x=@DequoteText $x
$x=@DequoteText $x
$y=@Map.Object[$n].Parameter[-3]
$y=@Calc Replace("$y",",",".")
$y=@DequoteText $y
$y=@DequoteText $y
@Map.DeselectAll
@If $V=Румб then @Goto %end1
$a=@Dialog.Ask Угол 90,30,30
@If $a= then @Goto %end
$d=@Dialog.Ask дистанция
@If $d= then @Goto %end
$a=@Calc Replace("$a",".",",")
$a=@DequoteText $a
$a=@DequoteText $a
$d=@Calc Replace("$d",".",",")
$d=@DequoteText $d
$d=@DequoteText $d
$a1=@StringPart 1,$a
$a2=@StringPart 2,$a
@If $a2= then $a2=0
$a3=@StringPart 3,$a
@If $a3= then $a3=0
$a=(($a3/60+$a2)/60+$a1)*3.1415926535897932384626433832795028841971/180
%next1
$ac=@Calc Cos($a)
;@Break $ac
$dx=$x+$ac*$d
$dx=@Calc Replace("$dx",".",",")
$dx=@DequoteText $dx
$dx=@DequoteText $dx
$as=@Calc sin($a)
$dy=$y+$as*$d
$dy=@Calc Replace("$dy",".",",")
$dy=@DequoteText $dy
$dy=@DequoteText $dy
$nn=$nn+1
$N=@Map.AddObject 0|1|ID11340000|1|0 $dx $dy 0|1|ID11340000|1|4 $nn
;
@Map.SelectByParameters 1|4>=$nn
@Map.Selected.CreateCaptions ID93 0 0 1 0 0,1 1
Вид | Показать все
@Map.SelectLayer $nn
@Goto %next
@Goto %end
%end1
$a=@Dialog.Ask Четверть (3,90,30,30)
$a=@Calc Replace("$a",".",",")
$a=@DequoteText $a
$a=@DequoteText $a
$a1=@StringPart 1,$a
$a2=@StringPart 2,$a
$a3=@StringPart 3,$a
@If $a3= then $a3=0
$a4=@StringPart 4,$a
@If $a4= then $a4=0
$a=($a4/60+$a3)/60+$a2
@If $a1=2 then $a=180-$a
@If $a1=3 then $a=180+$a
@If $a1=4 then $a=360-$a
$a=$a*3.1415926535897932384626433832795028841971/180
$d=@Dialog.Ask дистанция
@If $d= then @Goto %end
$d=@Calc Replace("$d",".",",")
$d=@DequoteText $d
$d=@DequoteText $d
@Goto %next1
%end
Допоможіть знайти помилку, можливо у мене - при введенні довжини любого не цілого числа (наприклад: 22,33) видає помилку
Вложение:
.jpg [ 23.56 Кб | Просмотров: 60392 ]