Аналитика http://www.geosystema.net/forum/ |
|
Скрипти Допоможіть будь ласка.) http://www.geosystema.net/forum/viewtopic.php?f=1&t=19814 |
Страница 1 из 2 |
Автор: | matskows [ 16 ноя 2020 09:24 ] |
Заголовок сообщения: | Скрипти Допоможіть будь ласка.) |
Доброго дня! Хто може допомогти або підказати що потрібно ще дописати щоб вставляло проміри без нажимання кнопки ок та без діалогового вікна Вставка проміри схема! @Map.DeselectAll @Map.SelectLayer ID11330000 @Map.SelectLayer ID20000 Вставка | Промеры и схема... |
Автор: | Руслан Пархуць [ 16 ноя 2020 10:18 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
matskows писал(а): Доброго дня! Хто може допомогти або підказати що потрібно ще дописати щоб вставляло проміри без нажимання кнопки ок та без діалогового вікна Вставка проміри схема! @Map.DeselectAll @Map.SelectLayer ID11330000 @Map.SelectLayer ID20000 Вставка | Промеры и схема... Використайте команду @SendChars у своєму скриптi |
Автор: | VictorR [ 17 ноя 2020 13:15 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
@Map.DeselectAll @Map.SelectLayer ID11330000 @Map.SelectLayer ID20000 @SendChars <CR> Вставка | Промеры и схема... @Map.DeselectAll |
Автор: | Dmitry_Zolotar [ 17 ноя 2020 16:53 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
Важливо щоб усі потрібні "галочки" вже були обрані в цьому діалозі до виклику скрипта |
Автор: | Руслан Пархуць [ 18 ноя 2020 00:59 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
Скрипт для виставлення потрiбних параметрiв вiкна "Промiри та схема" перед викликом вiкна $CBMode=[Режим (0 - промiри, 1 - схема)] $CBVisible=[Промiри тiльки до видимих (1 - так, 0 - нi)] $CBRight=[Круг право (для Режиму $CBMode=1) 1 - так, 0 - нi] Код: ; Режим (0 - промiри, 1 - схема)
$CBMode=0 ; Промiри тiльки до видимих (1 - так, 0 - нi) $CBVisible=0 ; Круг право (для Режиму $CBMode=1) $CBRight=0 ; $PPath=@ProgramPath $IniFile=$PPath\Ged.ini $Ex=@FileExists $IniFile @If $Ex=0 Then @Break Помилка читання файлу налаштувань! @Text[1].Load $IniFile ; ------------------------------------------------------------------------- ; замiна FormID.grbMode ; ------------------------------------------------------------------------- $Pos=@Text[1].IndexOf [FormID.grbMode] @If $Pos=0 Then @Break Помилка читання файлу налаштувань!|Вiдсутнiй тег [FormID.grbMode] $Pos=$Pos+1 $Line=@Text[1].Line[$Pos] $Param=@StringPart 1=$Line @If "$Param"<>"ItemIndex" Then @Break Помилка читання файлу налаштувань!|Помилковий параметр тегу [FormID.grbMode]|Очiкується "ItemIndex", отримано "$Param" ; ставимо значення 0 ('Промiри') $Line=$Param=$CBMode @Text[1].Line[$Pos]=$Line ; ------------------------------------------------------------------------- ; замiна FormID.chbVisible ; ------------------------------------------------------------------------- $Pos=@Text[1].IndexOf [FormID.chbVisible] @If $Pos=0 Then @Break Помилка читання файлу налаштувань!|Вiдсутнiй тег [FormID.chbVisible] $Pos=$Pos+1 $Line=@Text[1].Line[$Pos] $Param=@StringPart 1=$Line @If "$Param"<>"Checked" Then @Break Помилка читання файлу налаштувань!|Помилковий параметр тегу [FormID.chbVisible]|Очiкується "Checked", отримано "$Param" ; ставимо значення 0 (вiдключаємо) $Line=$Param=$CBVisible @Text[1].Line[$Pos]=$Line ; ------------------------------------------------------------------------- ; замiна FormID.chbRight ; ------------------------------------------------------------------------- $Pos=@Text[1].IndexOf [FormID.chbRight] @If $Pos=0 Then @Break Помилка читання файлу налаштувань!|Вiдсутнiй тег [FormID.chbRight] $Pos=$Pos+1 $Line=@Text[1].Line[$Pos] $Param=@StringPart 1=$Line @If "$Param"<>"Checked" Then @Break Помилка читання файлу налаштувань!|Помилковий параметр тегу [FormID.chbRight]|Очiкується "Checked", отримано "$Param" ; ставимо значення 0 (вiдключаємо) $Line=$Param=$CBRight @Text[1].Line[$Pos]=$Line ; ------------------------------------------------------------------------- ; записуємо змiнений файл @Text[1].Save $IniFile ;@SendChars <CR> @ExecuteMenu InsertDistances ; |
Автор: | voha [ 18 ноя 2020 11:57 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
Руслан Пархуць писал(а): Скрипт для виставлення потрiбних параметрiв вiкна "Промiри та схема" перед викликом вiкна... Доброго дня.Руслан гарно виклав - розписав детально . Можна ще скористатися функцією dll, тоді перевіряти наявність ключів та секцій не треба: якщо таких немає - будуть створені. Код: ; Режим (0 - промiри, 1 - схема) $CBMode=0 ; Промiри тiльки до видимих (1 - так, 0 - нi) $CBVisible=0 ; Круг право (для Режиму $CBMode=1) $CBRight=0 ; $PPath=@ProgramPath $IniFile=$PPath\Ged.ini $Ex=@FileExists $IniFile @If $Ex=0 Then @Break Відсутній файл $PPath\Ged.ini! ; ;Параметр - рядок, в якому 4 значення, розділених символом "/": повний ; шлях до ini-файла; назва секції; назва ключа; нове значення ключа. @DLLExec Functions.ChangeValueIniFile $IniFile/FormID.grbMode/ItemIndex/$CBMode @DLLExec Functions.ChangeValueIniFile $IniFile/FormID.chbVisible/Checked/$CBVisible @DLLExec Functions.ChangeValueIniFile $IniFile/FormID.chbRight/Checked/$CBRight ; ;@SendChars <CR> @ExecuteMenu InsertDistances Тут-же в мене виникло питання. А що, тепер усі форми, по аналогії з вікном "Промiри та схема", при ініціалізації отримують значення з файла Ged.ini Раніше ж, вроді - лише при старті Digitals? |
Автор: | fendak [ 18 ноя 2020 17:37 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
voha писал(а): А що, тепер усі форми, по аналогії з вікном "Промiри та схема", при ініціалізації отримують значення з файла Ged.ini Одна точно не працює ще так - це кнопка "Лінію в смугу", галочка "Створити буферну зону" |
Автор: | Руслан Пархуць [ 19 ноя 2020 10:26 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
fendak писал(а): voha писал(а): А що, тепер усі форми, по аналогії з вікном "Промiри та схема", при ініціалізації отримують значення з файла Ged.ini Одна точно не працює ще так - це кнопка "Лінію в смугу", галочка "Створити буферну зону" Код: ; ширина смуги
$CMWidth=1 ; створити буферну зону (1 - так, 0 - нi) $CMBuffer=0 ; ------------------------------------------- $CMLine=@Assign $CMWidth<TAB><$CMBuffer><CR> @SendChars $CMLine @ExecuteMenu spbStrip ; |
Автор: | voha [ 19 ноя 2020 10:43 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
Руслан Пархуць писал(а): Код: $CMLine=@Concat $CMWidth<TAB><$CMBuffer><CR> @SendChars $CMLine |
Автор: | Руслан Пархуць [ 19 ноя 2020 11:45 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
voha писал(а): Руслан Пархуць писал(а): Код: $CMLine=@Concat $CMWidth<TAB><$CMBuffer><CR> @SendChars $CMLine Але все це є в скриптовiй ф-цiї @Map.Selected.ToStrip, тобто можна все робити i без виклику вiкна Код: ; ширина смуги
$CMWidth=6 ; створити буферну зону (1 - так, 0 - нi) $CMBuffer=1 @Map.Selected.ToStrip $CMWidth $CMBuffer |
Автор: | fendak [ 21 ноя 2020 00:22 ] | ||
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) | ||
Ще б якось була можливість відновлювати початкову позицію табуляції у вікні. Бо коли користувач перед тим натисне не ОК, а Відмінити - то при запуску скрипту потім не працює. Наприклад, щоб запустити команту Вставка - Сітка із рамкою 5000х5000, включеною галочкою Додати підписи і знятою галочкою Малий масштаб виставив ось так: Код: $CMLine=@Assign <TAB><TAB><TAB><TAB><TAB><TAB>5000<TAB>5000<TAB><TAB><TAB><1><TAB><0><TAB><TAB><CR> @SendChars $CMLine Вставка | Сітка... Але якщо перед тим в ручному режимі поставити курсор на будь-який інший блок, крім ОК, то не працює потім, бо починає рахувати знаки табуляції від активного блоку в попередньому сеансі запуску. Доповнено: В принципі, оптимальним варіантом є $CMLine=@Assign 5000<TAB>5000<TAB><TAB><TAB><1><TAB><0><TAB><TAB><TAB><TAB><TAB><TAB><TAB><TAB><CR> Тому, що після перезапуску програми дане вікно відновлює своє значення за замовчуванням, а саме: активним стає поле, де вводиться розмір рамки.
|
Автор: | Dmitry_Zolotar [ 26 ноя 2020 15:49 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
В нову версію програми додали скриптову функцію для вставки сітки, аналогічну меню Вставка-Сітка @Map.InsertGrid Layer X0 Y0 DX DY ObjIndex CreateCaption SmallScale Solid Аргументи функції: Layer - шар для об'єктів сітки X0 Y0 - початкові координати DX DY - кроки сітки по двом координатам ObjIndex - номер об'єкта, в який вставляється сітка, якщо 0, то в рамку карти. CreateCaption - додавати підписи, 0 - ні, інше значення - так SmallScale - малий масштаб, 0 - ні, інше значення - так Solid - 0 - хрести, інше значення - суцільна сітка виклик @Map.InsertGrid 1 5000000 1000000 5000 5000 0 1 0 1 аналогічний такому Вложение: InsertGrid.png [ 7.3 Кб | Просмотров: 6319 ] |
Автор: | voha [ 26 ноя 2020 16:23 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
Dmitry_Zolotar писал(а): В нову версію програми додали скриптову функцію для вставки сітки, аналогічну меню Вставка-Сітка Доброго дня розробникам. Дякую за вдосконалення. Користуючись нагодою - питання: чи можна додати по аналогії InsertSheetLayout Бо наче пропустили, якось ненароком.
@Map.InsertGrid Layer X0 Y0 DX DY ObjIndex CreateCaption SmallScale Solid... |
Автор: | Dmitry_Zolotar [ 27 ноя 2020 11:34 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
Додано скриптову функцію @Map.InsertSheetLayout Layer X0 Y0 DX DY Overlap ObjIndex Layer - шар розбивки аркушів X0 Y0 - початкові координати DX DY - розміри аркуша в мм Overlap - розмір в мм перетину аркушів ObjIndex - номер об'єкта, в який вставляється розбивка, 0 - рамка карти До ged.lng додати строки: Код: Insert grid into object or map frame Додає сітку у об'єкт чи рамку карти Insert sheet layout intoobject or map frame Додає розбивку на аркуші у об'єкт чи рамку карти Цитата: Бо наче пропустили, якось ненароком. Саме так |
Автор: | ТОВ Аспект [ 02 дек 2020 16:51 ] |
Заголовок сообщения: | Re: Скрипти Допоможіть будь ласка.) |
Як викликати скриптом вікно властивості лінії, таке як через Ctrl+D? Або підкажіть як маркованому відрізку змінити довжину. |
Страница 1 из 2 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |