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

Спасибо
Можете еще подсказать как при помощи @Map.Parameters.SaveToFile вытащить системные параметры (Периметр,Площа,ШарID,Довжини ліній?)

@Map.Parameters.SaveToFile зберігає в текстовий файл перелік параметрів карти. А значення вказаних “системних” параметрів треба, мабуть, вичитувати:$SelCount=@Map.SelCount @If $SelCount<>1 then @Break Позначте один об'єкт $SelObj=@Map.SelectedObject ;Периметр $P=@Map.Object[$SelObj].Parameter[-1] ;площа $S=@Map.Object[$SelObj].Parameter[0] ;ID шару $IDLay=@Map.Object[$SelObj].LayerID ;Довжини ліній $L=@Map.Object[$SelObj].Parameter[-10] @Text[1].Text=$L @Dialog.Message Периметр - $P|Площа - $S|ID шару - $IDLay||Довжини ліній|$L

Н
Не я имею в виду чтобы функцией @Map.Parameters.SaveToFile вытащить текстовый файл с параметрами и ихними значениями(Шрифт,размер шрифта и т.д.) и потом при помощи @Map.Parameters.LoadFromFile вставить эти параметры в другую карту.
Сейчас получается так как в Файле Parameters.txt а нужно чтобы там были (площади , довжини ліній,)
Parameters.txt (6.53 KB)

Розділіть, для себе, два різних поняття - параметр і значення параметра. Добре, тобто Ви хочете мати можливість зробити наступні кроки:

  1. “функцией @Map.Parameters.SaveToFile вытащить текстовый файл с параметрами”;
    2) @Map.Selected.SaveParameters TemplateName - Зберігає значення параметрів позначених об’єктів в шаблон
  2. @Map.Parameters.LoadFromFile FileName - “Загружает список параметров карты с текстового файла”
  3. @Map.Selected.LoadParameters TemplateName - “Заполняет параметры помеченных объектов из шаблона”

Якщо виконати всі чотири кроки, це те саме, якби з карти зкопіювали об’єкти й в іншу карту вставили :smiley: . А так, функці в другому кроці (курсивом), оберненої за дією @Map.Selected.LoadParameters TemplateName, просто немає!
Але якщо вже так треба записати в текстовий файл значення параметрів, можна використати наведений скрипт, лише у циклі.

Спасибо я понял :smiley:
Но суть проблемы в том что у нас несколько исполнителей делают планы и всегда у всех выходят разные Шрифты Цвет шрифта и т.д. и врезультате при печати вылазят в одном проекте на планах разные подписи одних и техже параметров что не есть хорошо. И как всегда вылазит ето все при печати когда в сжатые сроки все нужно срочно напечатать и нужно в 20-30 планах срочно менять (шрифты, размеры в шрифтах и т.д.) и как всегда в спешке чтото забудеш или пропустиш и все беда :blush:
Поетому ищу способ чтобы автоматизировать ето и исключить человеческий фактор :smiley:

Є в мене скрипт “приведення карти до шаблону Normal”. Досить складний, заплутаний. Э з ним один нюанс - приведення скриптом до плановості шарів (який на задньому плані, який - на передньому плані) згідно переліку в текстовому файлі. Скинути в приватне повідомлення - розберетесь?
Є ще функція @Map.ReplaceTemplate Filename - приєднання шаблону з усім оформленням. Але це приєднання, а не заміна. Заміна - кажем, коли маєм на увазі приведення до шаблону, приєднання - кажем, коли відбудеться заміна оформлення при співпаданні ID шарів чи ID параметрів.

Если сбросите скрипт буду очень благодарен.Думаю разберусь :slight_smile:
сейчас пробую при помощи етой функции сделать @Map.Parameters.SetAttributes id20030 вроде получается

Я эту проблему решил так:

@Text[1].Clear
$is=@Map.Layers.Count
$psi=1
%1
$q=@Map.Layers.GetAttributes $psi
@Text[1].Add $q
$psi=$psi+1
@If $psi>$is then @Goto %v
@Goto %1
%v
;включаем все слои
$psi=1
%2
@Map.Layers.SetState $psi 0
$psi=$psi+1
@If $psi>$is then @Goto %v2
@Goto %2
%v2
;загружаем шабон печать
$vib=@Dialog.Select Выбери шаблон|Normal|Монохром
@If $vib=Монохром then @Goto %s1
@Map.ReplaceTemplate d:\Digitals\Normal.dmf
@Goto %s2
%s1
@Map.ReplaceTemplate d:\Digitals\Монохром\Шаблон.dmf
%s2
;возвращаем статус
$psi=1
%3
$t=@Text[1].Line[$psi]
$stat=@StringPart 7 $t
@Map.Layers.SetState $psi $stat
$psi=$psi+1
@If $psi>$is then @Goto %v3
@Goto %3
%v3
@Window.Refresh

Шаблон для печати:d:\Digitals\Монохром\Шаблон.dmf
Рабочий шаблон у каждого свой: d:\Digitals\Normal.dmf

В Шаблоне для печати сохраняем настройки цвет, тип линии, шрифты и тд

[quote=“BAM”]
Я эту проблему решил так:

Спасибо попробую

Є необхідність підняти питання №3 стосовно функції @Dialog.Select Title|Text1|Text2|….

Вважаю цю функцію “мертвою”. Неможливо застосувати діалог, який викликається в скрипті й не повертає результат від кнопки “Скасувати” або від кнопки “Закрити” :frowning: . Ну не можна так: якщо користувач вибрав один з варіантів на вибір - скрипт працює далі з вибраним варіантом; а якщо користувач вирішив “Скасувати” вибір, або закрити вікно вибору - скрипт просто припиняє роботу, без ніяких :exclamation: . Наче команда @Break.

Друге діло - функція @Dialog.ListSelect Title|Text1|Text2|…. Повертає порожній рядок, якщо діалог був закритий або якщо було вибрано “Скасувати”. Так, цей діалог корисний, якщо список об’ємний, тому й містить елемент керування “Пошук”. А якщо варіантів вибору всього декілька - найкращий варіант @Dialog.Select Title|Text1|Text2|…. Прошу розробників “оживити” діалог вибору.

Дорый день ктото может посказать как реалиовать такую последовательность действий при помощи скрипта?

Сервис-Отчет-Выбрать шаблон №1-Создать отчет-Скопировать в Ексель

Просьба к разработчикам:

  1. Добавьте, пожалуйста новый вариант окантовки подписей - линия с заданной шириной, которая описывает каждую букву (цифру) шрифта. Уже существует вариант заливки фона, но выглядит грубо.
  2. Если возможно, в меню ввода длины линии (Ctrl+D), добавить поле ввода длины на бумаге (мм).

Спасибо!

  1. В менеджере параметров существует стиль Канва в Атрибутах линии.
  2. В строке статуса отображается размер текущего сегмента собираемой полилинии в метрах и мм в плане. Можно ориентироваться на эти цифры.

Прохання до розробників найкращої програми по геодезії

Добавте, будь-ласка, функцію, яка визначає сторону світу, в якій знаходиться точка об’єкта відносно центру об’єкта. Наприклад, точка 1 на півночі, точка 2 на північному заході, точка 5 на півдні.

Здравствуйте уважаемые разработчики!!
Никак не могу понять в чем измеряется толщина линии в миллиметрах??? и еще в программе линия утолщается как показано на рис 1, а нельзя ли сделать так как показано на рис 2.
А то в ряде случаев нужно указать две линии разного цвета и толщины которые проходят вместе и тогда они друг друга перекрывают
[attachment=0]line.jpg[/attachment]

Користуйся умовними знаками. Файл з прикладом прикріпляю.

:slight_smile: Пройденый этап. В некоторых случаях при острых углах, и мелких масштабах выдает очень некрасивую картинку

Мушу підняти наступне питання щодо скриптових функцій:

  1. край як треба додати до функції @Map.SetProperties Scale Name|FrameX[1] FrameY[1]|… параметр KeepSizeSignatures - зберегти розмір підписів (0 - не зберігати розмір підписів при зміні масштабу карти; 1 - зберігати розмір підписів при зміні масштабу карти) Обгрунтування необхідності приводив тут;

  2. прошу додати обробку події “З’єднати” (%Events.OnJoin) та обробку події “Об’єднати” (%Events.OnMerge), при чому значення @EventObject - номер новоствореного в результаті з’єднання чи об’єднання об’єкта.

Дякую розробникам за вдосконалення функціоналу.

В мене виникла проблема в роботі з програмою Digitals.

Реєстратор вимагає, щоб код форми власності залишати пустим. Тобто, замість цього

<OwnershipInfo> <Code>100</Code>

має бути це

<OwnershipInfo> <Code></Code>

Але в програмі Digitals не передбачена можливість залишати рядок з кодом форми власності пустим, тому доводиться весь час відкривати обмінний файл XML в текстовому редакторі і видялати це вручну вже після формування XML

Пробував міняти маску параметру, замінивши 100 Приватна власність|200 Комунальна власність|300 Державна власність на |100 Приватна власність|200 Комунальна власність|300 Державна власність (в тому числі і у файлі Normal), але при збереженні XML все одно повертається значення 100 Приватна власність. Прохання це виправити.

Також пробував видаляти форму власності за допомогою скрипту:

@Text[1].Load D:\тест скриптів\4621283300020010137.xml $XML=@Text[1].Text $XML=@Calc Replace("$XML","<Code>100</Code>","<Code></Code>",1,0) $XML=@DequoteText $XML @Text[1].Clear @Text[1].Add $XML @Text[1].Save D:\тест скриптів\4621283300020010137.xml

але очевидно текст надто довгий і скрипт не справляється

Та ні, не так. А ось так:@Text.Load D:\тест скриптів\4621283300020010137.xml $Space=@Calc Char(32) $Space=@DequoteText $Space $StrFind=<Code>100</Code> $Spaces= %Start $NumLin=@Text.IndexOf $StrFind @If $NumLin<>0 then @Goto %End $StrFind=@Concat $Space,$StrFind $Spaces=@Concat $Spaces,$Space @Goto %Start %End $ReplaceString=$Spaces<Code></Code> @Text.Line[$NumLin]=$ReplaceString @Text.Save D:\тест скриптів\4621283300020010137.xml @Dialog.Message Виконано