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

Вставка/Таблица/Настраиваемая

При пустых значениях не срабатывает D, если этот столбец следует за Номером

Пример работает нормально, может проблема с исходными данными?

Спасибо, Дмитрий, нашла ошибку в данных. Вопрос исчерпан :slight_smile:

Можно добавить функцию “сумма прописью” с выводом результата на украинском языке в Reports?
для Fast Reports есть множество примеров реализации этой функции, но они все для русского языка и в основном для рублей.

Данный вопрос уже обсуждался:

точно :slight_smile:, я помнил что что-то такое проскакивало… но не нашел, спасибо

Вопрос Дмитрию Федорову (и не только).
Недавно прочел Ваш пост [url]Запрос на функцию - #104 від Dmitriy_Fedorov] и понял, а ведь это описано решение моей проблемы! А нет ли у кого готового скрипта для “Третьего” и вообще возможно ли его создание? Как быть если в карте уже есть n участков с созданными точками в узлах контуров, а нужно добавить новые участки? Как работает кнопка Найти одинаковые? Нужно чтобы проходил поиск одинаковых (удаление) во вновь созданных (вставленных) объектах. Как будет работать Калькулятор? Короче вопросов много…

Готового нет. Просто вариант действий для достижения цели.

Вопросов много, но все они решаются проверенным способом - экспериментом. Включайте дигитал, берите в руку мышку, ставьте чашку чаю (или чего покрепче) и вперед. :wink:
К слову, в более новых версиях программы существуют и другие варианты нумерации, проверьте по Калькулятору.

]

Вот возможное решение:

$N=@ActivateMap @Map.SelectAll @SendChars <CR> [ Операции с объектами.Добавить узлы ] Правка | Вырезать @Map.Selected.Cut @FileNew temp.dmf $T=@ActivateMap Правка | Вставить @SendChars <CR> [ Сервис.Найти одинаковые ] @Map.Selected.Delete @Map.SelectAll @Map.Selected.ClearParameters @SendChars 1<CR> popCalculator | Последовательная нумерация... @Map.SelectAll @Map.Selected.Copy @ActivateMap $N Правка | Вставить @Map.Selected.CreateCaptions 73 0 0 0 0 0 2 @CloseMap $T

Узлы добавляются в слой, который использовался при последнем выполнении Операции с объектами.Добавить узлы
@SendChars
[ Операции с объектами.Добавить узлы ]

Нумерация начинается с 1
@SendChars 1
popCalculator | Последовательная нумерация…

Для созданных объектов создаются подписи (в стандартный normal.dmf добавляется параметр 73 - Пункт)
@Map.Selected.CreateCaptions 73 0 0 0 0 0 2

Узлы создались :slight_smile: , но точки не пронумеровались :frowning: , соответственно подписи не вынеслись… :cry:

Скиньте пример, у меня все работает

Пример ниже. Ничего в скрипт добавлять не нужно?
.dmf (17.7 KB)

Добавьте строку
@SelectTab 3
перед строками
@SendChars 1
popCalculator | Последовательная нумерация…

Важно также чтобы в списке параметров доступных одиночному слою параметр “Пункт” был первым.

Круто. :smiley: Все работает. Спасибо.

Я уже не помню - был ли такой запрос или нет - приношу сразу же извинения - но… :bulb:

Есть ли возможность строить 3D модели на основании полигона здания - а высоту извлекать из одного из параметров - допустим есть этажность и есть высота этажа. Допустим мы добавили новый параметр - которые есть не что иное как произведение высоты этажа на этажность. Определяем высоту всего здания. :unamused: И строим по ней 3 модель данной коробки. :wink: Что думаете :question:

Такая возможность есть. Только в Digitals 3D объекты выдавливаются не из полигонов основания здания, а из полигонов контуров крыш. Здания при этом строятся сверху вниз, начиная с крыши :slight_smile:.

Исходные данные: плоские полигоны крыш на правильной высоте и модель рельефа в виде ЦМР, пикетов, структурных линий и т.п.

Создание 3D зданий методом выдавливания:

  1. Установить тип слоя в Карта>Слои для полигонов крыш 3D модель.
  2. Полигоны, представляющие надстройки на крышах нужно выделить в отдельный слой. Код (ID) этого слоя должен быть в диапазоне 31-50, в то время как код слоя основных крыш 0-30. Об этом сказано в статье vinmap.net/digitals/?act=3dbuild. Изменить код слоя можно в менеджере слоев, кликнув правой кнопкой по слою и выполнив команду Изменить ID.
  3. Пометить все полигоны крыш, в том числе и крыши надстроек, и выполнить команду Сервис>Преобразовать>Полигон в 3D модель. Обратите внимание, сегменты полигона теперь представляют собой вырожденные в линию грани стен. В этом можно убедится, открыв список координат в Правка>Свойства объекта.
  4. Пометить модель рельефа (ЦМР, бреклайны, пикеты) и выполнить команду ЦМР>Переприсвоить высоты. Для 3D объектов это команда работает по особому. И вы должны увидеть, что у ваших зданий появились стены. Стены зданий должны спроецироваться на поверхность земли, стены надстроек на крыши зданий под ними. Однако самих крыш еще нет.
  5. Для построения крыш выполнить команду скрипта @Map.CoverMultiFlatRoofs. При этом в карте не должно быть помеченных объектов. Если у вас нет панели инструментов для вызова скриптов, выполните Окно>Создать панель инструментов, затем правый клик по пустой панели и вызовите команду Добавить кнопку. В списке слева ищите указанную команду для генерации крыш.

Здания построены и их теперь можно текстурировать и экспортировать в Google Earth. Как это делать описано в упоминавшейся статье.

В следующих версиях Digitals появится команда для автоматического объединения 3D объектов (надстроек, пристроек, куполов и т.д.) в единое здание.

Если вместо полигонов крыш у вас контуры основания зданий (footprint’ы) поднять их на нужную высоту можно кнопкой DZ на панели Правка. Либо же при помощи скрипта, изменяя параметр Z на основании значения параметра этажности.

Как вариант, можно обойтись и без скрипта. Создать вещественный параметр, вычисляемый по формуле =P[-2]+P[1]*3. Под P[1] подразумевается параметр со значением этажности, а 3 - высота этажа в метрах. А затем на закладке Инфо перетянуть этот параметр на параметр высоты и выбрать из контекстного меню Скопировать параметр. Заменив, тем самым, значение высоты для всех помеченных объектов.

А каким образом потом сделать 3D модель - т.е. сначала посадить крышу на высоту, а потом ЦМР → Переприсвоить высоты ? При этом установив ID слоя в нужное значение?

Здравствуйте. Делаю онлайн карту на базе Mapserver/PostgreSQL/PostGIS. Столкнулся с проблемой кодировки: все форматы экспортируемые из Delta/Digitals используют кодировку отличимую от UTF8. Сохраняю в SHP из Digitals или отправляю в базу данных вместо подписей - карлюки. В последней версии PostGIS ( да и в QGIS) имеется утилита импорта из SHP в базу. Но вываливается ошибка о кодировке. Стандартный шаблон в PostGIS (template_postgis) не допускает создание базы с кодировкой отменной от UTF8.
Очень нужно добавить возможность сохранения из Delta/Digitals в другие форматы с возможностью выбора кодировки.