Аналитика
https://geosystema.net/forum/

Скрипт для поворота отметок
https://geosystema.net/forum/viewtopic.php?f=1&t=19806
Страница 1 из 1

Автор:  7www7www7 [ 26 сен 2020 14:54 ]
Заголовок сообщения:  Скрипт для поворота отметок

Здравствуйте. Подскажите пожалуйста, есть ли скрипт для поворота отметок не на один определенный угол, а для автоматического разворота подписи отметки относительно направления склона (сторону увеличения отметок). Спасибо

Автор:  fendak [ 27 сен 2020 19:45 ]
Заголовок сообщения:  Re: Скрипт для поворота отметок

можете пробувати цей скрипт - Створення підписів точок вздовж лінії
але направлення склону доведеться перед тим нанести вручну лініями

Автор:  7www7www7 [ 28 сен 2020 07:28 ]
Заголовок сообщения:  Re: Скрипт для поворота отметок

Спасибо, но это чуть не то...представьте горные выработки (или карьер), отметки должны быть ориентрованы по увеличению абсолютной отметки.

Автор:  fendak [ 28 сен 2020 14:37 ]
Заголовок сообщения:  Re: Скрипт для поворота отметок

Не дуже розумію, що саме треба. Тобто, є певна похила поверхність і вам треба, щоб підпис був вздовж (чи впоперек) нахилу? Чи я не вірно розумію?
Тобто, програма має бачити, де нижча/вища по Z сторона і туди орієнтувати підпис?

Є ще варіант автоматичного винесення підписів горизонталей

;параметр для якого виносяться підписи
$Param=-2
;крок підписів вздовж контура об'єкта в метрах
$Step=70
;зміщення підписів по вертикалі
$CaptionShift=0
;шар горизонталей
$layer=21200000
;
$MapCount=@MapCount
@if $MapCount=0 then @Break
$MC=@Map.Count
@if $MC=0 then @Break На карті нема жодного об'єкту
$N1=0
@Map.DeselectAll
%Pochatok
$N1=$N1+1
$LID=@Map.Object[$N1].LayerID
@If $LID<>$layer then @Goto %Next
@Map.SelectObject $N1
$N=@Map.SelCount
@If $N<1 @Break Виділіть об'єкт для створення підпису
$N=@Map.SelectedObject
;периметр об'єкта
$Len=@Map.Object[$N].Parameter[-1]
;виділяємо першу частину, якщо включено "Показывать длины с углами"
$Len=@StringPart 1 $Len
$Pos=0
;початок циклу
%Start
;виносим підпис на відстань $Pos від початку об'єкта
;NoUpsideDown - уникаємо перевернутих підписів
@Map.Object[$N].CreateCaptionAlongContour $Param $Pos $CaptionShift NoUpsideDown
$Pos=$Pos+$Step
@if $Pos<$Len then @Goto %Start
@Map.Parameters.SetAttributes -2 0 5 0 10 0 16777215 0 Arial 60 0 -16777208
@Map.RefreshObject $N
@Window.Refresh
;
%Next
@if $N1<$MC then @Goto %Pochatok

Тобто, вам треба спершу створити ЦМР - горизонталі і потім можна відносно них зробити винесення підписів. А самі горизонталі, якщо вони не потрібні, можна перевести у білий колір.

Автор:  7www7www7 [ 30 сен 2020 22:26 ]
Заголовок сообщения:  Re: Скрипт для поворота отметок

Спасибо, буду пробовать

Страница 1 из 1 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/