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

Лишним точно не будет :smiley:
Уважаемые разработчики если вам не сложно напишите пример как из скрипта создать такую таблицу с помощью html
.jpg

Создайте постоянную часть таблицы, как в примере, используя в качестве переменных значений какие-нибудь параметры, на которые ссылайтесь через <formula>=P[ID_підрозділ]</formula>
а эти параметры заполняйте из скрипта.

Вот написал так =Get[1,=P[15]]
в P[15] текст - Секция А, Земли жилой застройки, …
и в итоге GET не срабатывает. в чем может быть дело?

Теги не надо вкладывать друг в друга. И скобки у вас не везде те что нужно.

=Get(1,P[2])

A.dmf (727 Bytes)

Нужно переименовать параметр (не его значение, а его имя). Решение?

@Map.Parameters.Set Number Code Type Name

Вельми дякую

Створено деякий список порядкових номерів об’єктів.
Всі об’єкти одного шару.
Є деякий числовий параметр, в якому вписано користувачем вписано числа за порядком, що не співпадає з порядковим номером об’єкта.
Як відсортувати список за цим параметром, щоб порядкові номери були відсортовані за числовим параметром?
Або як змінити порядковий номер об’єкта?

Точек 198, ID 7, No 12
Слой: “Контур кімнати”, ID 40000, No 2
Центр: (X:4 999 981.831, Y:1 200 115.935, Z:-3.000)
Размах (DX:2.462, DY:5.074, DZ:0.000)
Полный размах (DX:2.542, DY:5.154)

І звідки береться цей No 12?
Серед параметрів його немає.

Вже знайшов. Дякую
@Map.SortByParameter 2 +

Доброго дня!
Дайте будь-ласка відповідь на моє питаннячко:
чи можна через скрипт міняти, наприклад “Точность координат” з меню “Карта|Свойства…”, без діалогового вікна?

Можна, поки не має відповідної функції, завдячуючи тому, що діалог “Властивості карти” не зберігає активним елемент керування, який був активований при попередньому виклику вікна:$Accuracy=@Dialog.Ask Точність карти Default=2 @SendChars <TAB><TAB><TAB><TAB><TAB><TAB><TAB>$Accuracy<CR> @ExecuteMenu MapProperties

Дозвольте ще раз підняти питання: чи можна “підправити” скриптову функцію @SetConstant Constant=NewValue, адже функція встановлює значення константи Digitals тільки на одну сесію роботи Digitals?

Дуже велике дякую! :smiley:
Якщо не важко, тоді дайте відповідь ще на два питання:

  • як там посавити <Макс> ?
  • як в “Орто | Нарезать по листам…” перейти на закладку “Номенклатурная” ?

Так, важко :confused: . Мабуть SendChar приймає тільки символи з кодами до 32, тому не вдається послати код клавіші HOME, PGUP, UP, F4. Орто|Нарізати на аркуші… зберігає в діалозі активовану при попередньому виклику вкладку. Навіть якщо вам вдасться послати вікну рядок Ctrl+Tab, немає гарантії, що на момент відкриття вікна активна перша вкладка.
Треба просити розробників, добавити скриптові функції. Дійсно, з властивостями карти є: Map.GetProperties > Scale Name|FrameX[1] FrameY[1]|…, є @Map.Datum, лишається - точність координат.

Подскажите как работает @Window.Position CenterX CenterY ScreenScale ? :blush:

Думаю, розміщує карту в робочому полі вікна Digitals так, щоб точка з координатами XY була в центрі робочого поля, при чому встановлює масштаб відображення карти - ScreenScale (знаменник масштабу).

Добавлены скриптовые функции

@Map.GetCoordinateAccuracy

для получения текущего значения точности координат карты (число десятичных знаков в координатах)

@Map.SetCoordinateAccuracy Decimals

для установки точности координат карты (-1 - максимальная точность).

Команды соответствуют выпадающему списку Точность координат в окне Карта>Свойства

Міцного здоров’я всім!
Серед властивостей об’єкту є координати його центру, яким чином можна їх дістати для обробки в скрипті?
Дякую.

Готовой функции нет, но можно использовать следующий скрипт

$SelObj=@Map.NextSelected 0 $Range=@Map.Object[$SelObj].GetMinMax $MinX=@StringPart 1 $Range $MaxX=@StringPart 4 $Range $CntrX=($MinX+$MaxX)/2 $MinY=@StringPart 2 $Range $MaxY=@StringPart 5 $Range $CntrY=($MinY+$MaxY)/2 @Dialog.Message Цетра помеченного объекта X=$CntrX Y=$CntrY

Величезне дякую, цілком підходить. Шукав готову функцію, не зосередився на альтернативних варіантах. “А ларчик просто открывался”.

$S=
$S=@Concat $S,+,$V
$S=$S

Виводить результат 52+ , так як останнє додавання в рядок пусте.
Замість $S= ставити $S=0 не проходить.
Як зробити, щоб + не писало?
Дякую.

І ще. Як задати маску, щоб замість 94 виводило 94.0
Дякую.