Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 29 май 2020 15:17

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 1069 ]  На страницу Пред.  1 ... 65, 66, 67, 68, 69, 70, 71, 72  След.
Автор Сообщение
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 23 авг 2019 08:42 
Участник
Участник

Зарегистрирован:
28 фев 2008 11:27
Сообщения: 2
Rostyslav писал(а):
agrotexnika писал(а):
Подскажите функцию для использования в скриптах для вызова или активации "подбора масштаба карты..." добавленную:

01.08.18 Подбор масштаба карты под размер бумаги (Карта|Свойства..., кнопка Подогнать под страницу)

Или единственный вариант добраться: <Tab><CR>?

масштаб можна встановити через @Map.SetProperties Scale Name|FrameX[1] FrameY[1]|...


Как задать масштаб, это не секрет:
@Map.Layers.SetState -3 0
@Map.SetProperties 10000 NNaammee
@Map.FrameSelected 145 145 10000

Вопрос: Можно попросить добавить в язык скриптов "автоподбор" масштаба, который реализован в кнопке: "Подогнать под страницу"
Добавлено в Digitals. 01.08.18 Подбор масштаба карты под размер бумаги (Карта|Свойства..., кнопка Подогнать под страницу)
Использование данной реализации не "видоизменяет/крутит" координаты участка, при использовании функции: OBJECTSCALE


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 22 окт 2019 18:09 
Эксперт
Эксперт

Зарегистрирован:
30 июн 2017 20:52
Сообщения: 50
Откуда: Херсон
Підкажіть як реалізувати скриптово або через DMT шаблон підтягування довжин ліній до данної таблички?


Вложения:
.jpg
.jpg [ 92.83 Кб | Просмотров: 1912 ]
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 23 окт 2019 15:47 
Эксперт
Эксперт

Зарегистрирован:
29 окт 2012 12:15
Сообщения: 82
Откуда: Запорізька область, м. Кам'янка-Дніпровська
Допоможіть зробити скрипт який би контролював довжини ліній на земельній ділянці. Лінії не повинні перевищувати 200 м. бо я не можу таке осилити
%Events.OnFileSave
@Map.SelectLayer ID70005
$F=@Map.Selected.GetParameter -10
;$F1=@StringPart |$F
@if $F1=<200 then @Break Додати точку


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 23 окт 2019 18:25 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2146
Откуда: Vinnitsa
@Map.SelectLayer ID70005
$SO=@Map.SelectedObject
$PC=@Map.Object[$SO].Count
$CurrentLine=$PC-1
%Loop
$L=@Map.Object[$SO].LineLength[$CurrentLine]
@if $L>200 then @Goto %MarkLineAndStop
@Goto %Exit
%NextLine
$CurrentLine=$CurrentLine-1
@if $CurrentLine>0 then @Goto %Loop
%MarkLineAndStop
$CL2=$CurrentLine+1
@Map.Selected.MarkPoints $CurrentLine
@Map.Selected.MarkPoints $CL2
@Dialog.Message Довжина відрізку №$CurrentLine - $L > 200м


P.S. меню Правка-Добавить точки... (Шаг - 200 м, несквозное добавление)

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 23 окт 2019 21:36 
Эксперт
Эксперт

Зарегистрирован:
29 окт 2012 12:15
Сообщения: 82
Откуда: Запорізька область, м. Кам'янка-Дніпровська
Дуже Вам вдячний за допомогу. Дякую!!!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 06 ноя 2019 21:00 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 683
Откуда: Львівська область
Відкрив для себе, що якщо у властивостях карти шаблону (меню Карта - Властивості) в полі з іменем написати $NM, та якщо скриптом перемінній $NM присвоєно відповідне значення (ПІБ) з файлу XML, то карта при збереженні автоматично буде називатися по імені. Але не можу зрозуміти, як це працює. В одних шаблонах воно працює, в інших ні.

В посібнику (автор Д.Золотар) це описано так:
Созданный документ получает имя, состоящее из имени шаблона и автоматического суффикса,
который задается в поле Имя карты в окне Свойств карты используемого шаблона. В данном
случае в шаблоне задана формула -P[34], что приводит к извлечению номера квартала и участка
из параметра с соответствующим номером и добавлению их к имени документа. Часто в качестве
суффикса используется формула -P[NM], возвращающая имя землевладельца.


Якщо просто виділити ділянку і запустити скрипт:

$MON=@Map.SelectedObject
$PP=@Map.Object[$MON].Parameter[ID7000520]
$PC=@XML.NodeCount /Proprietors ProprietorInfo $Proprietors
$I=0
$NM=
%Loop
$I=$I+1
$IsLE=@XML.NodeCount ProprietorInfo[$I]/Authentication LegalEntity $PP
@if $IsLE=1 then @Goto %LegalEntity
$LN=@XML.XPath ProprietorInfo[$I]/Authentication/NaturalPerson/FullName/LastName $PP
$FN=@XML.XPath ProprietorInfo[$I]/Authentication/NaturalPerson/FullName/FirstName $PP
$MN=@XML.XPath ProprietorInfo[$I]/Authentication/NaturalPerson/FullName/MiddleName $PP
@if $LN= then @Goto %Continue
@if $NM<> then $NM=$NM,
$NM=$NMгр.$LN $FN $MN
@Goto %Continue
%LegalEntity
$N=@XML.XPath ProprietorInfo[$I]/Authentication/LegalEntity/Name $PP
@if $N= then @Goto %Continue
@if $NM<> then $NM=$NM,
$NM=$NM$N
%Continue
@if $I<$PC then @Goto %Loop
@Dialog.Message $NM

присвоївши перемінній $NM з файлу XML ПІБ землевласника, а потім сформувати шаблон через Сервіс-Документи - то це не спрацює. Не спрацьовує це і при простому збереженні карти, у властивостях якої є $NM. Як же воно працює? Бо в деяких шаблонах, які формуються складними скриптами воно працює! В результаті сформований по шаблону звіт зерігається як Схема Іванов Іван Іванович

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 10 ноя 2019 09:22 
Эксперт
Эксперт

Зарегистрирован:
26 янв 2015 15:38
Сообщения: 52
Откуда: Полтава
Доброго здоров'я колеги. Чи є у когось скрипт, що витягує прізвища власників, коли їх 2 та більше, Бо звичайні команди через dmt шаблони бачать лише першого власника.
Це якщо отак:
XPT(P[ID7000520],"ProprietorInfo/Authentication/LegalEntity/Name") XPT(P[ID7000520],"ProprietorInfo/Authentication/NaturalPerson/FullName/LastName")_XPT(P[ID7000520],"ProprietorInfo/Authentication/NaturalPerson/FullName/FirstName")_XPT(P[ID7000520],"ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName")
Бачить лиш першого власника і все.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 10 ноя 2019 17:39 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 683
Откуда: Львівська область
Poltavan писал(а):
Чи є у когось скрипт, що витягує прізвища власників, коли їх 2 та більше

дивіться на одно повідомлення вище, там якраз такий скрипт.

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 11 ноя 2019 20:00 
Специалист
Специалист

Зарегистрирован:
01 дек 2011 14:14
Сообщения: 13
Доброго времени суток! Подскажите как реализовать в скрипте манипуляции с надписью: прав. кнопка мышки - развернуть вдоль контура ?


Вложения:
.jpg
.jpg [ 54.01 Кб | Просмотров: 1721 ]
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 12 ноя 2019 21:09 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 683
Откуда: Львівська область
Для маніпуляцій з підписами є спеціальні скриптові функції.
Спочатку треба видалити старий підпис. Потім створити новий уздовж контура.

@Map.Selected.RemoveCaptions idпараметра
@Map.Selected.CreateCaptions idпараметра 1 1 1 1 0 0

більш детально можете прочитати ТУТ

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 14 ноя 2019 19:32 
Специалист
Специалист

Зарегистрирован:
01 дек 2011 14:14
Сообщения: 13
fendak писал(а):
Для маніпуляцій з підписами є спеціальні скриптові функції.
Спочатку треба видалити старий підпис. Потім створити новий уздовж контура.

@Map.Selected.RemoveCaptions idпараметра
@Map.Selected.CreateCaptions idпараметра 1 1 1 1 0 0

більш детально можете прочитати ТУТ

Спасибо! Но тут ситуация немного иначе. Надписи принадлежат объекту-пикет, который лежит на другом объекте-полилиния или отрезок. Команда -вдоль контура- разворачивает надпись параллельно линейному объекту


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 18 ноя 2019 19:19 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 683
Откуда: Львівська область
[quote="Anton13]"Спасибо! Но тут ситуация немного иначе. Надписи принадлежат объекту-пикет, который лежит на другом объекте-полилиния или отрезок. Команда -вдоль контура- разворачивает надпись параллельно линейному объекту[/quote]
Тоді можна ось таким скриптом:
$S=@Map.SelCount
@If $S<=0 @Break Треба вибрати об'єкти
$Obj=@Map.SelectedObject
$XY=@Map.Object[$Obj].Point[1]
$Nearest=@Map.NearestObject 5 $Obj $XY
$Angle=@Map.Object[$Nearest].LineAngle[1]
$Angle=@ReplaceChar ,.$Angle
$Angle=-$Angle*10+900
$N=0
$C=@Map.Parameters.Count
%Start:
$N=@Map.NextSelected $N
@If $N<=0 @Goto %Finish
$I=-10
%NextParam
$S=@Map.Object[$N].Caption[$I]
@if $S= @Goto %NextCap
@Map.Object[$N].Caption[$I] * * * $Angle
%NextCap:
$I=$I+1
@If $I<$C @Goto %NextParam
@Goto %Start
%Finish:
@Window.Refresh

При цьому можете виділити зразу усі точкові об'єкти з підписами, які треба розвернути на той самий кут відносно лінійного об'єкту.

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 18 ноя 2019 19:20 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 683
Откуда: Львівська область
Anton13 писал(а):
"Спасибо! Но тут ситуация немного иначе. Надписи принадлежат объекту-пикет, который лежит на другом объекте-полилиния или отрезок. Команда -вдоль контура- разворачивает надпись параллельно линейному объекту

Тоді можна ось таким скриптом:

Код:
$S=@Map.SelCount
@If $S<=0 @Break Треба вибрати об'єкти
$Obj=@Map.SelectedObject
$XY=@Map.Object[$Obj].Point[1]
$Nearest=@Map.NearestObject 5 $Obj $XY
$Angle=@Map.Object[$Nearest].LineAngle[1]
$Angle=@ReplaceChar ,.$Angle
$Angle=-$Angle*10+900
$N=0
$C=@Map.Parameters.Count
%Start:
$N=@Map.NextSelected $N
@If $N<=0 @Goto %Finish
$I=-10
%NextParam
$S=@Map.Object[$N].Caption[$I]
@if $S= @Goto %NextCap
@Map.Object[$N].Caption[$I] * * * $Angle
%NextCap:
$I=$I+1
@If $I<$C @Goto %NextParam
@Goto %Start
%Finish:
@Window.Refresh


При цьому можете виділити зразу усі точкові об'єкти з підписами, які треба розвернути на той самий кут відносно лінійного об'єкту, що поруч (в радіусі 5 метрів(можна змінити в скрипті)

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 19 ноя 2019 20:59 
Специалист
Специалист

Зарегистрирован:
01 дек 2011 14:14
Сообщения: 13
fendak писал(а):
Anton13 писал(а):
"Спасибо! Но тут ситуация немного иначе. Надписи принадлежат объекту-пикет, который лежит на другом объекте-полилиния или отрезок. Команда -вдоль контура- разворачивает надпись параллельно линейному объекту

Тоді можна ось таким скриптом:

Код:
$S=@Map.SelCount
@If $S<=0 @Break Треба вибрати об'єкти
$Obj=@Map.SelectedObject
$XY=@Map.Object[$Obj].Point[1]
$Nearest=@Map.NearestObject 5 $Obj $XY
$Angle=@Map.Object[$Nearest].LineAngle[1]
$Angle=@ReplaceChar ,.$Angle
$Angle=-$Angle*10+900
$N=0
$C=@Map.Parameters.Count
%Start:
$N=@Map.NextSelected $N
@If $N<=0 @Goto %Finish
$I=-10
%NextParam
$S=@Map.Object[$N].Caption[$I]
@if $S= @Goto %NextCap
@Map.Object[$N].Caption[$I] * * * $Angle
%NextCap:
$I=$I+1
@If $I<$C @Goto %NextParam
@Goto %Start
%Finish:
@Window.Refresh


При цьому можете виділити зразу усі точкові об'єкти з підписами, які треба розвернути на той самий кут відносно лінійного об'єкту, що поруч (в радіусі 5 метрів(можна змінити в скрипті)

Дякую!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 30 ноя 2019 18:58 
Эксперт
Эксперт

Зарегистрирован:
30 июн 2017 20:52
Сообщения: 50
Откуда: Херсон
Колись десь бачив скрипт який додає межові знаки через кожні 200 м. Підкажіть де шукати?)


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1069 ]  На страницу Пред.  1 ... 65, 66, 67, 68, 69, 70, 71, 72  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB