Все про скрипти

@Map.XMLCadastralNumber работает с XML в котором 1 участок. Попробуйте @Map.GetObjectCadastralNumber ObjectIndex, здесь можно задавать номер объекта. Ну и организуйте цикл, перебирающий все объекты карты. Примеры таких циклов ищите в библиотеке полезных скриптов.

А можно поподробнее об этом? Полчаса “попарился” не могу разобраться. То ошибка в скрипте, то не найден датум…

Так вже ж було детальніше [size=130]тут[/size]. А в скрипті один рядок:
@Map.RecalculateToNewDatum [OldDatumName] NewDatumName
“Пересчитывает координаты всех объектов карты в другую систему координат, например @Map.RecalculateToNewDatum SK42(5) SK63(3)”

Якщо в поточній карті не встановлено датум, то необов’язковий параметр OldDatumName має бути вказаний, інакше ніякого перерахунку координат не відбудеться. Параметр NewDatumName - назва датума, який був створений Вами у файлі Datums.ini.
В принципі, можна й потренуватись в написанні такого скрипта (не знаю - для чого велосипед). Скрипт не пропустить карту на перерахунок, якщо не вказано датум карти:$ProgPath=@ProgramPath ;Вичитуєм датум вхідної карти $DatumOld=@Map.Datum @If $DatumOld<> then @Goto %EndDatumOld ;Вичитуєм список датумів @Text[1].Load $ProgPath\Datums.ini $DatumsINITextCount=@Text[1].Count $N=0 %StartDatumsINI $N=$N+1 @If $N>$DatumsINITextCount @Goto %DatumsINITextEnd $StrDatumsINIRow=@Text[1].Line[$N] $FirstLatter=@Calc Pos(";","$StrDatumsINIRow") @If $FirstLatter=1 @Goto %StartDatumsINI $FirstLatter=@Calc Pos("[","$StrDatumsINIRow") @If $FirstLatter=1 @Text[2].Add $StrDatumsINIRow @Goto %StartDatumsINI %DatumsINITextEnd $ListDatumsINI=@Text[2].Text $StrDatumInput=@Dialog.ListSelect Карті не присвоєно датум. Обов'язково виберіть зі списку датум карти.|$ListDatumsINI $StrDatumInput=@Calc Replace("$StrDatumInput","[","",1) $StrDatumInput=@DequoteText $StrDatumInput $StrDatumInput=@Calc Replace("$StrDatumInput","]","",1) $StrDatumInput=@DequoteText $StrDatumInput @If $StrDatumInput= then @Break Визначіть датум карти. @Map.Datum $StrDatumInput %EndDatum ;Визначаєм новий датум карти $NewDatum=@Dialog.ListSelect Виберіть зі списку датум карти, в який перерахувати координати карти.|$ListDatumsINI $NewDatum=@Calc Replace("$NewDatum","[","",1) $NewDatum=@DequoteText $NewDatum $NewDatum=@Calc Replace("$NewDatum","]","",1) $NewDatum=@DequoteText $NewDatum @If $NewDatum= then @Break Визначіть датум карти. @Map.RecalculateToNewDatum $NewDatum @Map.SelectAll @Window.ShowSelected @Map.DeselectAll

Заработало! Спасибо, voha. Работает и функция и Ваш скрипт. Проблема была в том, что я работаю в многопользовательском режиме. А Дига датум ищет не в папке Мои документы\Digitals, а в C:\Program Files\Digitals. Поэтому и выдавало мне такую ошибку. Скопировал Datums.ini в Program Files и все пошло как по маслу.

Хочу просити розробників, якщо це не займе багато часу, написати для прикладу формочку в DLL, звівши в неї поля введення кута і відстані. Цю б DLL-ку в некомпільованому варіанті “з руками й ногами” забрав би. То був би хороший старт використання функції @DLLExec DLLPath.DLLFunction [Parameters] і полегшення написання своїх діалогів в подальшому:)

Расширил сообщение Новые возможности программы - #152 від Bondarets_Alexander, добавил пример использования форм, созданных в Delphi в скриптах Digitals. Это не форма для ввода угла и расстояния, там только одно поле ввода. Берите ее за основу и можете создавать формы любого уровня сложности.

.Дуже дякую, будем пробувати.

Всем доброго времени суток!!! Тут по ходу дела возник вопрос как отличить в смежниках IN4 юридическое лицо от физического (нужно для переноса оных в XML).
Если считать что в физ. лица есть три слова и все начинаются с заглавных букв, то как отличить заглавную букву от прописной?
Подскажите варианты решения данной проблемы плс.

Добавлены функции:

IsUpperCase Text, возвращающая 1, если весь TEXT заглавными буквами и

IsUpCase Text
, возвращающая 1, если как минимум первая буква Text заглавная

Обновите Ged.exe через несколько часов.

Міцного здоров’я всім!

Спробував використати скрипт Библиотека полезных скриптов - #32 від Bondarets_Alexander (щодо нумерації точок об’єктів), та виникла наступна проблема, чомусь при створенні підпису з’являється довкола номеру точки коло (на скріншоті видно), котре й виводиться на друк. Підкажіть, яким чином позбавитись від цих зачарованих кіл!


Дякую.

А это не условный знак слоя точек, которые добавляются в узлы полигона? Приложите свой DMF и скажите какой слой используете для вставляемых точек.

Кто подскажет? Нужно переместить объект, а лучше объекты, синхронно в нужную точку и плюс еще отмасштабировать (как Карта - Система координат). Просто я хочу создать шаблон, вернее его доработать, который на даный момент умеет выбирать ближайший пункт и рисовать от него “РТК вектора” к участку. Осталось его научить подтягивать эти вектора из исходного файла (хмл) в сгенерированный шаблон, учитывая ObjectScale.
С масштабом вроде все понятно: Map.Object[N].Scale и ReScale. А вот как быть с перемещением?

Добавлены функции:

@Map.Object[$N].Move X Y [Z] - перемещение объекта на заданный вектор
@Map.Object[$N].MoveTo X Y [Z] - перемещение объекта в указанную точку (после перемещения центр объекта совпадет с заданной точкой)

Вот пример скрипта для перемещения выделенного объекта на заданный вектор

$Obj=@Map.SelectedObject @if $Obj=0 then @Break Выделите объект для перемещения $Vec=@Dialog.Ask Вектор перемещения X Y [Z] Default=100 100 @Map.Object[$Obj].Move $Vec @Window.RefreshЭти функции можно также использовать для изменения высоты объектов, например, для установки всем объектам нулевой высоты или перемещения объектов вдоль оси Z.

Спасибо! :slight_smile:
Может я перегибаю палку ? :laughing: Отлично было бы, когда не центр объекта совпадал с заданной точкой, а точка с точкой (аналог вкладка Сбор - перемещение). А уж если не задана точка перемещаемого объекта, тогда - после перемещения центр объекта совпадет с заданной точкой.

Здраствуйте. Как программно(скриптами) сделать "Сервис → Отчет (простой список с заданными параметрами и выкинуть данные в буфер обмена)? Возможно такое? Или сохранить в текстовый файл.

UPD: Или как вариант выдать в буфер (по аналогии РепортГенератор) данные заданных параметров.

ДОброго дня! А можна зробити теж саме тільки щоб не закривалося а була можливість редагувати назву?
Файл :arrow_right: Сохранить в ХМЛ :arrow_right: ввести імя і самому сохранити. Буду дуже вдячний!

p.s просто роблю велику кількість файлів і нажимати постійно файл/сохранить в хмл надоїдає. Ще раз ДЯКУЮ!

Файл | Сохранить в XML…

це я зрозумів))) ну а вивести цю функція на панель якось можна?

Вот тут написано как работать со скриптами Библиотека полезных скриптов

ОЙ!!! Аж якось соромно стало за таке нерозумне запитання задане мною :blush:. Дякую нарешті дойшло до голови те що ви писали (треба було просто вникнути і прочитати). Ще раз подякував!