Запрос на функцию

по образу и подобию параметра 71
-|Иванов|Иван|Иванович|-|Паспорт громадянина України|1234567|1995-08-30|выдан РВ УМВС Краснознаменного района г. Вашингтон, округ Колумбия|ПВ|804|804|00000|г. Киев|-|-|ул. Освободителей кондитерской|16|-|кв. 75|34|001|2010-12-30|3 сесія 6 скликання №27|NY міська рада-|Петров|Петр|Петрович|-|Паспорт громадянина України|XXXXXX|-|Петров|Петр|Петрович|-|Паспорт громадянина України|XXXXXX|1995-08-30|выдан -|ПВ|804|804|00000|г. Харьков|-|-|ул. Защитников ликероводочного завода|75|-|кв. 16|34|-|001|2010-12-30|3 сесія 6 скликання №27|Чопська міська рада|1995-08-30|выдан -|ПВ|804|804|00000|г. Харьков|-|-|ул. Защитников ликероводочного завода|75|-|кв. 16|34-|001|2010-12-30|3 сесія 6 скликання №27|Чопська міська рада|
возможно чет упустил, правил ручками в блокноте :unamused:

я не прошу заполнение параметра с нуля, поскольку задать такую структуру возможно только для простых парметров (8,48,49), но этим параметрам очень удобно назначить такое отображение, поскольку оно “фиксированное”

Ок. Рассмотрим, что получилось. Это способ представления данных с фиксированной позицией.

Позиции отделяются вертикальными черточками. Иерархии здесь нет. Данные представляют собой одноуровневый список. Однако, программа, которая читает эти данные должна знать:

  1. Соответствие номера позиции атрибуту, значение которого в этой позиции содержится. Позиция 1 - фамилия, позиция 2 - отчество…
  2. Соотношения между атрибутами. Данные о паспорте относятся к его владельцу - Иванову Ивану Ивановичу.

Способ строго ориентирован на порядок следования атрибутов и тип предоставляемой информации. Если вместо физлица потребуется записать юридическое лицо, придется использовать то же кол-во позиций, либо условиться, что для юрлица резервируется другое число позиций, с иным набором атрибутов. А определять физлицо это или юрлицо программа должна по косвенным признакам, например по длине идентификационного кода.

В общем, еще долго можно расписывать недостатки такого представления данных. In4 в этом смысле уступает XML. XML формат самодокументируемый, способный хранить иерархические структуры, с произвольным порядком следования вложенных элементов.

На данный момент в Digitals просто не хватает функций для работы с XML фрагментами: XPath, IsNodeExists, ChildNodesCount. Эти функции будут добавлены в будущем и позволят доставать значения требуемых тегов не хуже чем функции StringPart и Get.

Понял, не буду тогда лишний раз “морщить репу” по этому поводу, придется ждать новых функций.

Меню ‘Сервіс>Розворот’ викликає діалогове вікно ‘Розворот’. Одночасно всі селектовані об’єкти потряпляють в умовну рамку, потягнувши за кут якої, можна повернути об’єкти відносно цента чи відносно маркованої точки. При цьому, кут розвороту відображається в діалоговому вікні.

Оскільки розворот не є подією для скрипта, якою функцією повернути в скрипт кут, на який був здійснений розворот :question:

Чи можуть розробники дати функцію, яка б повертала результат вказаного діалогового вікна (мабуть треба зробити, спочатку, щоб розворот був однією з подій, яка викликала б скрипт обробки події) :question:

Подією %Events.OnChange вважається зміна тільки геометрії об’єкта.

Дуже прошу Розробників, дати можливість обробляти події %Events.OnChangeTurn (поворот), і %Events.OnChangeAccommodation (зміна розміщення).

Адже немає можливості, отримати в скрипті кут вільного повороту, або зміну координат центру об’єкта (після вільного переміщення).

Вкотре піднімаю тему автоматизації. Прошу Розробників добавити обробщик події %Events.OnChangeTurn, який у вхідних параметрах мав би кут вільного повороту.

Дайте звісточку, будь-ласка, чи сподіватись на появу обробщика події %Events.OnChangeTurn - розворот.

Это уже какой-то слишком тщательный подход в скриптах. И названия событий неудачные. Лучше OnRotate и OnMove. Сейчас более насущна тема XML и все, что с ней связано. Так что извините.

Дякую за відповідь. Поясню, для чого мені треба мати кут вільного повороту. Digitals в мене працює в зв’язці з Excel.
В Excel вказуєм румби і міри ліній, в Digitals-і зразу бачимо накладку ліній ходу. Поки працює все ідеально.
Якщо враховувати магнітне схилення при бусольній зйомці, накладку зйомки треба повернути відносно точки прив’язки. Якщо перша лінія прив’язки чітко опізнана - вільний поворот ідеально для цього підходить. Отримати ж кут повороту в Excel можна лише обробкою події, коли відбудеться вільний поворот.
Такий от механізм. Прошу, якщо є якісь думки з приводу цього “велосипеда”, допомогти.

Я розумію, що є першочергові завдання. Але, перепрошую, треба знати чи сподіватись найблищим часом на появу обробщиків подій OnRotate и OnMove:oops:

Що-до функції @Map.CalculateForestArea Number [LayerIDs]. Якщо виділ примикає до квартальної просіки (ID шару 71611000 - зі стильом шару тільки полігон), результат функції не вірний. Воно зрозуміло, адже квартала - полігони. Отже, не можна отримати площу виділа за виключенням половини площі квартальної просіки.
Доведеться заводити в шарі ‘Квартальні просіки’ лінійні об’єкти, реєструючи точки по точкам існуючих полігонів - кварталів.
Здається доречним, мати функцію @Map.AddObjectAlong ID1|ID2|Layer, де: ID1 та ID2 - шари, по об’єктам яких при частковому чи повному співпаданні (накладеності) буде створено лінійний об’єкт в шарі Layer. У разі часткової накладеності об’єктів (в тому числі накладеності лінійного об’єкта на межу полігона), створюватиметься лінійний об’єкт шару Layer лише на протязі накладеності об’єктів з шарів ID1|ID2.
Відповідне застосування такої функції - автоматичне створення об’єктів у шарах 71612100, 71615000, 71616000.

Дещо зміню формулювання запиту функції @Map.AddObjectAlong, стосовно неможливості повноцінного застосування розробленої функції @Map.CalculateForestArea Number [LayerIDs].
@Map.AddObjectAlong ID1 ID2|ListLayer2|Layer, де: ID1 ID2 - шари, по межі об’єктів яких на протязі накладеності (лінійний накладається на межу полігонального, або межа полігонального накладається на межу полігонального) буде створено лінійний об’єкт в шарі Layer, але тільки при умові не накладеності межі об’єктів у списку шарів через пробіл ListLayer2.
Вибачте за складність формулювання, але погляньте, будь-ласка, на лісову карту ліспроект.

Помітив, що з версії 30.05.11, переміщення об’єкта (OnMove) обробляється подією %Events.OnChange.
Дуже дякую за надану можливість обробки події. :smiley: .
Чи можна додати ще й окремий обробщик події розвороту (%Events.OnRotate) :question:
“Без надії” сподіваюсь на функцію @Map.AddObjectAlong ListLayerAlong|ListLayerNotAlong|Layer
Ключик закінчився :frowning: , якщо щось нове - було б добре чути про нього на форумі

Функція @FileNew Name створює нову карту на основі шаблону Normal.dmf з папки Digitals. Якби параметром цієї функції можна було б вказати назву шаблона, на якому треба створити нову карту.

Додано можливість вказувати шаблон нової карти.
@FileNew Name /Template=templatename.dmf

Здраствуйте!! а можно поподробнее описать функцию “XPT()”, а то не всегда получается вытянуть данные с помощью ее. Желательно пример использования на разных данных например как вытянуть ФИО с помощью даной функции.

Фамилия
=XPT(P[ID7000520],“/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/LastName”)
Имя отчество
=XPT(P[ID7000520],“/Proprietors/ProprietorInfo/Authentication/NaturalPerson/FullName/MiddleName”)

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

В программе есть окошко “gps”, которое, как я предполагаю, служит для использования программы в качестве картографической подложки для навигатора.

Не знаю, насколько часто люди пользуются такой функцией, но через комовский порт успешно передаются данные с тахеометра, т.е. передача идет, но куда деваются эти данные - непонятно.

Думаю, что скачивают данные с тахеомера чаще, чем используют ноутбук с gps, поэтому почему не использовать данную возможность программы для скачивания данных с основных типов тахеометров и преобразования в dat формат (при условии, конечно, что работают в координатном режиме), тем боле, в программе все для этого есть.

С GPS программа принимает географические координаты в формате NMEA.
Формат известен и что делать с координатами дальше тоже понятно.

А что и в каком формате передает тахеометр?

Для другого довольно известного вычислительного комплекса (без названия) существуют плагины для основной программы. Т.е. ты выбираешь марку своего устройства, и подсоединяешь нужный модуль. Если есть вопросы - готов выслать программы для своих девайсов. Смысл - принять сырые данные с тахеометра, и конвертировать их в dat, или сразу в dmf, минуя промежуточные звенья скачивания-трансформации.
Думаю, качают с девайсов все. Почему бы не объединить основную программу для работы (Digitals) с основными инструментами для работы (ряд тахеометров, их таки ограниченное количество, меньше, чем форматов, понимаемых программой). Это было бы более, чем логично, потому что часть моих коллег испытывают проблемы с родными программами для скачки (особенно в перегонке сырых данных в dat). Да и привлекательность комплекса Digitals выросла бы на порядок.

Функція @Map.SelectByParameters Count|List є аналогом використання діалогового вікна пошуку в скриптах.
Чи можна, будь ласка, добавити до вказаної функції параметр, що відповідатиме опції Среди помеченных в окне поиска
Використання такого параметра позбавить необхідності виводити діалогове вікно пошуку, якщо параметри об’єктів для пошуку визначено заздалегідь скриптом.