змінити тільки масштаб карти, щоб не змінювались інші значення, можна ось таким скриптом:
$NovyiMashtab=1000
$Vlastyvosti=@Map.GetProperties
$Mashtab=@StringPart 1 $Vlastyvosti
$Reshta=@Calc Replace("$Vlastyvosti","$Mashtab","",0,0)
$Reshta=@DequoteText $Reshta
$Reshta=@Calc TrimLeft("$Reshta")
@Map.SetProperties $NovyiMashtab $ReshtaАле що воно вам дасть? Адже разом із масштабом змінюється і розмір відображення тексту на карті.
Краще використовувати автомасштаб OBJECTSCALE в шаблоні dmt. Проте, він не підходить для планів, на яких після формування ще треба щось домальовувати по заданих довжинах чи площі. Я, наприклад, в таких випадках використовую інший скрипт. Спочатку він формує шаблон в оригінальному масштабі. А потім у відповідності до того, наскільки великий розмах об'єктів карти, вирізає і вставляє всі об'єкти у іншому масштабі. Але цей скрипт в мене великий і включає весь процес, починаючи від відкриття файлу і закінчуючи друком, з послідовним виведенням діалогів. Думаю, у вас вже є нарис коду, який підбирає відповідний масштаб в залежності від розмаху чи від чогось іншого, якщо ви задалися питанням, як змінити масштаб. А для вставки в потрібному масштабі можете використати цей код:
;виділяємо Земельну ділянку, угіддя, суміжники і все інше
@Map.SelectLayer ID70005
Вибрати | Усередині позначеного
Вибрати | Усі що примикають
;вирізаємо і вставляємо в іншому масштабі автоматично
@Map.Cut
@SendChars 1000<CR>
Спеціальна вставка | В іншому масштабі...цифру 1000 можна замінити певною змінною. Скажімо,
якщо площа об'єкта більше 2 га то змінна=2000
$Obj=ID70005
$SDil=@Map.Object[$Obj].Parameter[ID7000516]
@if $SDil>2 then $Mashtab=2000, якщо площа об'єкта більша 0,2 га і менша 2,00 га то змінна=1000 ... і т.д.
@If ("$SDil">"0.2") and ($SDil<2) then $Mashtab=1000Взагалі,
sergykydr, цікаво дізнатися, як ви збираєтеся викликати шаблони з відповідними масштабами, через які умови?
sergykydr писал(а):
А дана функція не підійде @GetMapNumber Filename?
Підійде:
$1000=@GetMapNumber C:\Digitals\Назва папки.dmt\1000.dmf
$2000=@GetMapNumber C:\Digitals\Назва папки.dmt\2000.dmf
$5000=@GetMapNumber C:\Digitals\Назва папки.dmt\5000.dmf
$Shema=@GetMapNumber C:\Digitals\Назва папки.dmt\Схема.dmt