Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 28 мар 2024 15:57

Часовой пояс: UTC + 2 часа




Начать новую тему Ответить на тему  [ Сообщений: 1235 ]  На страницу Пред.  1 ... 71, 72, 73, 74, 75, 76, 77 ... 83  След.
Автор Сообщение
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 24 ноя 2020 19:20 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
fendak писал(а):
і уже знову працює функція @Map.GetPublicMapParcelInfo

Знову не працює. Взагалі вже нема можливості читати кадастрові номери ділянок. Що там сталося на ПКК? Знову щось змінили?

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 25 ноя 2020 11:44 
Гуру
Гуру

Зарегистрирован:
18 апр 2007 11:55
Сообщения: 2298
Откуда: Vinnytsia
Функція @Map.GetPublicMapParcelInfo працює, але ще не в усіх кварталах. За допомогою меню Реєстри-Земельна ділянка отримайте інформацію про одну з ділянок в кварталі, тоді за декілька хвилин можна буде отримати інформацію по кожній ділянці у цьому кварталі.
Функція @CheckPublicMapParcel працює за умови працездатності ПКК/е.-кабінету, останнім часом з цим часто виникали пролеми.

_________________
Команда разработчиков Digitals
(наш e-mail и ICQ находятся в меню Помощь|О программе)
Новичкам сюда | Новые возможности программы | Купить Digitals


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 27 ноя 2020 09:07 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Доброго дня розробникам.
Маю до Вас невеличке питання: який збіг обставин впливає на роботу скриптової функції @Map.CalculateZ X Y [ParamIndex], що повертає результат інтерполяції висоти в точці X Y рівний 0?
Трапляється таке не часто - приблизно в одному з 20-ти запусків скрипта, в якому циклічно перебираються планові координати для визначення висот вказаною функцією. Тобто: раз на 20 запусків такого циклу, @Map.CalculateZ X Y [ParamIndex] повертає 0 в усіх ітераціях :!:
Лог-файл каже наступне
Код:
23:20:00.838   $Z2=MAP.CALCULATEZ 5347241,50128287 1349438,23848208
23:20:00.838   0
Не втямки мені - у чому причина? В карті всім об'єктам призначені висоти (крім растрових зображень, статус яких - лише відображення). Не хотілося би переписувати скрипт на ЦМР | Перепризначити висоти, то ж питання довіри до результатів функції або просто: я чогось не враховую :?

P.S. Я розумію, що питання "розмите", але може би Ви протестували.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 27 ноя 2020 20:59 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Dmitry_Zolotar писал(а):
Функція @Map.GetPublicMapParcelInfo працює, але ще не в усіх кварталах. За допомогою меню Реєстри-Земельна ділянка отримайте інформацію про одну з ділянок в кварталі, тоді за декілька хвилин можна буде отримати інформацію по кожній ділянці у цьому кварталі.

Дякую, але щось воно не працює так. Ввів в меню Реєстри пошук ділянки з кадастровим номером 4621288200:01:004:0328. А функція @Map.GetPublicMapParcelInfo і дальше не читає кадастровий номер даної, чи інших ділянок в цьому кварталі навіть через годину.
Але в деяких кварталах функція справді працює.

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 05 дек 2020 19:45 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Доброї пори доби розробникам.
Воюю далі з обробкою події зміни об'єктів - власне у скрипті треба виконати перепризначення висот точок змінених об'єктів.
Код:
%Events.OnChange
;Зняти маркування точок редагованого активного об'єкта
$N=@EventObject
$CountMark=@Map.Object[$N].GetMarkedPointsCount
@If $CountMark<>0 then @Map.Selected.MarkPoints CLEAR
;Позначити всі редаговані об'єкти
$ListChange=@EventObjectsList
$CntEventObj=@Text.Text $ListChange
@If $CntEventObj=1 then @Goto %EndSelect
$i=1
@While $i<=$CntEventObj %Loop
$NumObj=@Text.Line[$i]
@Map.SelectObject $NumObj
$i=$i+1
%Loop
;Перепризначити висоти позначеним об'єктам
%EndSelect
;Правка | Інвертувати
@ExecuteMenu EditInvert
;ЦМР | Перепризначити висоти
@ExecuteMenu AssignHeight1
;@Dialog.Message Виконано перепризначення висот
@ExecuteMenu EditInvert
Якщо перетягнути точку активного об'єкта, наведений скрипт обробки події відпрацьовує коректно, однак точка опиняється там, де був вказівник миші на момент завершення скрипта.

Якщо маркувати фрагмент і перетягнути одну з маркованих ліній, схопивши мишою центр лінії - треба щоб рука без тремору, інакше виникає помилка звертання програми до пам'яті як тільки вказівник змінить своє розташування до закінчення роботи скрипта. А якщо з цього ж таки скрипта запустити процедуру VBA (застосовую самописну функцію dll, яка поверне управління скрипту лише після її виконання), перетягнути маркований фрагмент без виникнення помилки звертання до пам'яті взагалі неможливо.

Переписав би замість ЦМР | Перепризначити висоти на @Map.CalculateZ X Y [ParamIndex], так у неї своя глюка. Здається - край як треба блокувати мишу на час виконання скрипта :oops: .

Порадьте, будь-ласка, який вихід? Чи варто дивитися в сторону SetWindowsHookEx?

P.S. Почекайте! А чому це подія %Events.OnChange обробляється до завершення редагування, а не після? Кнопку миші відпустили - значить закінчили редагування. Однаково ж, координати точки до редагування немає як у скрипті отримати (хіба відмінити редагування).

P.S. Знайшов тимчасове (ресурсно-залежне) рішення. Думаю що помилка звертання до пам'яті таки буде виникати на "повільних" комп'ютерах при перетягуванні точок об'єктів з великою кількістю точок:
Код:
%Events.OnChange
@Map.BeginUpdate
;Зняти маркування точок редагованого активного об'єкта
$N=@EventObject
$IDEventObj=@Map.Object[$N].ID
$CountMark=@Map.Object[$N].GetMarkedPointsCount
@If $CountMark<>0 then @Map.Selected.MarkPoints CLEAR
;Позначити всі редаговані об'єкти
$ListChange=@EventObjectsList
$CntEventObj=@Text.Text $ListChange
@If $CntEventObj=1 then @Goto %EndSelect
$i=1
@While $i<=$CntEventObj %Loop
$Obj=@Text.Line[$i]
@Map.SelectObject $Obj
$i=$i+1
%Loop
;Перепризначити висоти позначеним об'єктам
%EndSelect
;;Правка | Інвертувати
;@ExecuteMenu EditInvert
;;ЦМР | Перепризначити висоти
;@ExecuteMenu AssignHeight1
;;@Dialog.Message Виконано перепризначення висот
;@ExecuteMenu EditInvert
;
;Запис позначених об'єктів (не більше 63-ох) в Get-масиви
;;для кожного редагованого об'єкта
$i=1
@While $i<=$CntEventObj %LoopObjReed
$NumObj=@Text.Line[$i]
$Obj=@Map.GetObject $NumObj
@Text[$i].Text $Obj
$i=$i+1
%LoopObjReed
;
;Видалення позначених об'єктів для визначення висоти за їхніми плановими координатами
@Map.Selected.Delete
;
;Визначення висоти і створення об'єктів
;;для кожного Get-масиву
$i=1
@While $i<=$CntEventObj %LoopObjCreate
$CntPt=@Text[$i].Line[3]
$NumLinMax=$CntPt+4
;;;для кожної точки об'єкта
$j=4
@While $j<=$NumLinMax %LoopPoint
$Str=@Text[$i].Line[$j]
;;;;пропуск розриву комплексного об'єкта
@If "$Str"="" then @Goto %NextPoint
$Mask=@StringPart 1 $Str
$X=@StringPart 2 $Str
$Y=@StringPart 3 $Str
$Z=@Map.CalculateZ $X $Y
$Str=$Mask $X $Y $Z
@Text[$i].Line[$j]=$Str
;;;;наступна точка об'єкта
%NextPoint
$j=$j+1
%LoopPoint
;;;створення об'єкта з Get-масиву
$Obj=@Text[$i].Text
@Map.AddObject 0|$Obj
;;;наступний об'єкт
$i=$i+1
%LoopObjCreate
@Map.SelectByParameters 1|-6=$IDEventObj
@Map.EndUpdate RefreshAlways
Скрипт перепризначить висоти не більше як 63-ох об'єктів, що мають точку у перетягнутому вузлі, оскільки "В пределах одного скрипта можно, при необходимости, использовать до 63 разных списков адресуемых как Text[1], Text[2] … Text[63]".

Таке рішення задачі - не вирішення проблеми виникнення помилки звертання до пам'яті, якщо користувач не чекаючи "везяє мишою по екрану" :!: Шлях, як на мене, один: виправити обробку події %Events.OnChange таким чином, щоб після відпускання кнопки об'єкт не тягнувся далі за мишою. (Див. відео).

З нетерпінням чекатиму на відповідь. Наперед - велике дякую за розширення можливостей автоматизації в програмі.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 08 дек 2020 16:40 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
voha писал(а):
виправити обробку події %Events.OnChange таким чином, щоб після відпускання кнопки об'єкт не тягнувся далі за мишою
Виправлено. Чемно дякую.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 09 дек 2020 11:45 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
Час від часу переглядаю скриптові функції - розробники додали нові, за що їм велике дякую:
@Map.GPSLocation - повертає координати позиції GPS (build 44173), додана 8.12.20;
@TabletMode [1/0] - включає/виключає режим планшета - приховує/відображає панель інструментів, панель закладок, головне меню програми. Застосована без аргумента - повертає 1 або 0 (build 44169), додана 4.12.20.
Кнопка на панелі інструментів може містити скрипт для переключення режимів
Код:
;%Events.OnActivateMap
$TM=@TabletMode
@Goto $TM
%0
@TabletMode 1
@Break
%1
@TabletMode 0
@Text[N].Clip Char - видаляє в кожному елементі (рядку) текстового блоку Text[N] всі символи зліва (починаючи з першого) до останнього входження символу Char включно (build 44169), додана 4.12.20.
Залишає рядок без змін, якщо Char в рядку не знайдено.

Щодо функцій @Text[N].Delimiter та @Text[N].DelimitedText роз'яснення вже були, тому лишається одне питання:
@SingleClickDialogs [1/0] - включає/виключає режим відображення якого діалогового вікна? Такого, що містить атрибутику об'єкта, вибраного в режимі планшета?


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 09 дек 2020 12:30 
Эксперт
Эксперт

Зарегистрирован:
09 дек 2015 12:30
Сообщения: 97
Откуда: Закарпатська область
Доброго дня.
Чи є можливість перевірити Буфер обміну (чи є в буфері значення) скриптовою функцією?
Суть питання наступна:
Є скрипт, в якому є функція @Run (відкрити зовнішню програму, яка в свою чергу відкриває Exsel-файл). Зовнішня програма копіює значення файлу в Буфер обміну.
Але після запуску зовнішньої програми, скрипт продовжує працювати далі, не чекаючи завершення відпрацювання зовнішньої програми.
Мені потрібно призупинити виконання скрипта, до того моменту поки зовнішня програма не скопіює дані в буфер (а це може бути від 1 рядка до 10 000 рядків в Exsel)
От як перевірити що зовнішня програма вже завершила свою роботу, і я можу продовжити виконання скрипту (тому що для подальшої роботи скрипту потрібні дані з Буфера)
Дякую!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 09 дек 2020 13:01 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
petrogeo писал(а):
...От як перевірити що зовнішня програма вже завершила свою роботу, і я можу продовжити виконання скрипту (тому що для подальшої роботи скрипту потрібні дані з Буфера)
А що, зовнішня програма лише для того, щоб відкрити файл Excel? Його ж можна відкрити функцією @Run, вказавши замість файла зовнішньої програми, файл Excel.
Інша справа - очікування скрипта, поки запуститься Excel! Можна застосувати функцію dll, яка чекає (максимум - протягом часу Param3 в мілісекундах) поки вікно з класом Param1 та/або назвою Param2 відобразиться на екрані. Повертає 1 - якщо форма відобразилася на екрані протягом Param3 мілісекунд, або 0 - якщо час закінчився а форми на екрані так і не було. Якщо Param1 або Param2 відсутній, то символ "/" повинний вказуватись, при цьому або Param1 або Param2 повинний вказуватись обов'язково.
Перед застосуванням функцій, файл Functions.dll (від 12.12.20) треба закинути в теку Digitals і перезапустити програму.
Код:
@DLLExec Functions.WaitFormForClassAndCaptionActivated [Param1]/[Param2]/Param3
(клас головного вікна Excel - XLMAIN).

Далі - функція, яка під'єднується до активної відкритої книги Excel і запускає процедуру VBA, записану в книзі. Вона чекає, поки виконається процедура.
Код:
@DLLExec Functions.ExecutProcVBA NameProc/Param
де NameProc - назва процедури VBA, записаної в активній відкритій книзі Excel; Param - аргумент процедури VBA. Якщо аргумента процедури немає, символ "/" однаково вказується.

Значення з нерозривного діапазону клітинок активного аркуша активної книги Excel, після виконання процедури VBA, можна в скрипті отримати як результат функції GetValueRangeExcel Row,Coll,ShiftRow,ShiftColl,StrSepar[[,LastRow][,LastCol]] в якій квадратні дужки означають необов'язковість аргументу; Row і Coll - номер рядка і номер стовпчика лівої верхньої комірки діапазону аркуша; ShiftRow і ShiftCol - зміщення рядка донизу і зміщення стовпчика вправо до правої нижньої комірки діапазону; StrSepar - один або декілька символів для розділення значень в рядку отримуваного масиву; LastRow (Const) - ознака звузити діапазон до останнього заповненого рядка в першому стовпчику діапазону; LastCol (Const) - ознака звузити діапазон до останнього заповненого стовпчика у першому рядку діапазону.
Приклад виклику зі скрипта:
Код:
$Str=@DLLExec Functions.GetValueRangeExcel 12,169,19,50, ,LastRow,LastCol
$CntText=@Text.Text $Str


petrogeo писал(а):
...Мені потрібно призупинити виконання скрипта, до того моменту поки зовнішня програма не скопіює дані в буфер (а це може бути від 1 рядка до 10 000 рядків в Exsel)
Інший варіант: знаючи клас форми вікна зовнішньої програми, після її виклику в скрипті застосувати функцію @Wait 0 ClassName - очікування скрипта, поки вікно з класом форми ClassName відображається на екрані. Клас форми вікна можна подивитись цією програмою.
petrogeo писал(а):
Чи є можливість перевірити Буфер обміну (чи є в буфері значення) скриптовою функцією?
@Text.Paste з аналізом вмісту текстового блоку.

12.12.20 Додано функцію OpenFileWithAsocProcAsinhron FullFileName, яка дозволяє відкрити зі скрипта файл в програмі, асоційованій з розширенням файлу (FullFileName - повна назва файла, включаючи шлях та розширення). Скрипт Digitals буде очікувати, поки запущена програма виконується. Функція повертає рядок: "1" - якщо програма для розширення файлу знайдена і мала би запуститися; "0" - якщо відповідної програми, в асоціації з роширенням файлу, не знайдено. Приклад виклику зі скрипта
Код:
$ProgFold=@ProgramFolder
;Повна назва файла, який необхідно відкрити
$Str=$ProgFold\Favorites\Площа за координатами.xls
$Rez=@DLLExec Functions.OpenFileWithAsocProcAsinhron $Str
@If $Rez=0 then @Break Не вдається запустити $Str||Відсутня асоціація програми з розширенням файлу.
@Dialog.Message Виконано $Str


Последний раз редактировалось voha 12 дек 2020 15:31, всего редактировалось 4 раз(а).

Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 10 дек 2020 22:39 
Эксперт
Эксперт

Зарегистрирован:
09 дек 2015 12:30
Сообщения: 97
Откуда: Закарпатська область
voha писал(а):
Інший варіант: знаючи клас форми вікна зовнішньої програми, після її виклику в скрипті застосувати функцію @Wait 0 ClassName - очікування скрипта, поки вікно з класом форми ClassName відображається на екрані. Клас форми вікна можна подивитись цією програмою.

Пробував цей варіант, не пішло.
Працюю так, запускаю код написаний на Python:
Код:
;передаю назву Excel файла в зовнішню програму
@Text.Add $SR
@Text.Copy
$FC=@Text.Count
;запуск зовнішньої програми
@Run "D:\Експорт\ExcelToClipboard.py"

Чекаю щоб відпрацював код, і скопіював дані з Excel в буфер
Код:
$FC=@Text.Count
;@While $FC<2 %stop
%Loop
;чекаю 8 секунд
@Wait 8000
;-----------------------------------------------------------------
@Text[1].Clear
@Text[1].Paste
$FC=@Text[1].Count
@if FC=0 then @Goto %Loop

Працює, але завжди є ризик, що за 8 секунд зовнішня програма передасть не ввесь вміст Excel.
Або ще варіант, замість копіювання в буфер, приходиться потрібні дані з Excel зберігати в TXT-файл, а в скрипті завантажувати вже дані з TXT.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 11 дек 2020 10:07 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
petrogeo писал(а):
Працюю так, запускаю код написаний на Python:
Код:
;передаю назву Excel файла в зовнішню програму
;запуск зовнішньої програми
@Run "D:\Експорт\ExcelToClipboard.py"
;Чекаю щоб відпрацював код, і скопіював дані з Excel в буфер

Працює, але завжди є ризик, що за 8 секунд зовнішня програма передасть не ввесь вміст Excel.
Зовнішня програма має своє вікно? Зовнішня програма відпрацьовує і закривається? Вікно Excel активне? Excel після відпрацювання скрипта Digitals можна закривати?
Скиньте в ЛС.
petrogeo писал(а):
Або ще варіант, замість копіювання в буфер, приходиться потрібні дані з Excel зберігати в TXT-файл, а в скрипті завантажувати вже дані з TXT.
А що, отримати значення з нерозривного діапазону клітинок активного аркуша активної книги Excel, не підходить?

Наприклад:
Код:
$Char=@Calc Char(9)
$Char=@DequoteText $Char
$ProgFold=@ProgramFolder
@Run $ProgFold\Favorites\Functions.xls
$Rez=@DLLExec Functions.WaitFormForClassAndCaptionActivated XLMAIN//10000
@If $Rez=0 then @Break Книга $ProgFold\Favorites\Functions.xls не відкрилася за 10с.
$Rez=@DLLExec Functions.GetValueRangeExcel 2,1,500,2,$Char,LastRow,LastCol
@DLLExec Functions.CloseWindowWithClasOrAndCaption XLMAIN/
@Dialog.Message $Rez


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 13 дек 2020 22:35 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
Підкажіть, що означає ця опція в коді панелі інструментів? Чому вона не у всіх наявна? І як її відключити?


Вложения:
2020-12-13_222132.jpg
2020-12-13_222132.jpg [ 29.67 Кб | Просмотров: 5227 ]

_________________
додатково про скрипти Digitals на www.digitals.at.ua
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 14 дек 2020 11:29 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
fendak писал(а):
Підкажіть, що означає ця опція в коді панелі інструментів? Чому вона не у всіх наявна? І як її відключити?
Доброго дня.
Як відключити фоновий колір панелі інструментів? Думаю немає необхідності це робити. Просто наявність такого параметра вікна панелі інструментів - можливість його змінювати. Гадаю раніше цей колір змінювати не можна було, а тепер - можна.

Маю кілька питань до розробників:
voha писал(а):
...лишається питання: @SingleClickDialogs [1/0] - включає/виключає відображення якого діалогового вікна :?:

Ще помітив деяку особливість роботи скриптової функції @Map.CalculateZ X Y [ParamIndex]: вона повертає в різних ітераціях циклу різний результат при однакових значеннях аргументів! Прямо містика якась (на відео). Сантиметри - не суттєво, однак буває й пів-метра. В принципі і це - не біда, але сама причина в чому може бути :?:

Наперед дякую за відповідь.

P.S. Ось фрагмент скрипта
Код:
;;;;;;ВНРМ з карти для другої точки горизонтального прокладення, вирахуваного з верткута
%GetZNovWithHor
$Z2Nov=
@Map.CalculateRange
$Z2Nov=@Map.CalculateZ $X2Y2Nov
;$Z2Nov=@Calc Numeric("$Z2Nov")
@Dialog.WaitBox Визначатиметься висота точки $X2Y2Nov
;$Z2Nov=@RoundTo $Z2Nov 2
$A=@Dialog.WaitBox Висота точки $X2Y2Nov рівна $Z2Nov|Повторити?
@If $A=1 then @Goto %GetZNovWithHor


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 14 дек 2020 18:12 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 797
Откуда: Львівська область
voha писал(а):
Як відключити фоновий колір панелі інструментів? Думаю немає необхідності це робити. Просто наявність такого параметра вікна панелі інструментів - можливість його змінювати. Гадаю раніше цей колір змінювати не можна було, а тепер - можна.


Проблема в тому, що наявність такої опції (колір фону - хоч насправді там ніякого кольору фону в панелі від цього немає) - це одиничний випадок. У всіх програмах навіть на найновіших версіях таке відсутнє. Підозрюю, що це десь в налаштуваннях програми є якась опція, яку користучач включив колись і вона постійно додає даний ряок. Але знайти таку не можу ніде. Суть проблеми в тому, що через додавання програмою цього рядка перестає працювати скрипт. Додається цей рядок тоді, коли панель інструментів перемістити в інше місце на екрані. Таким чином ця програма вносить свої зміни у файл tlb. Після цього скрипт уже не працює.
Найпростіший вихід тут, мабуть, перевстановити заново програму, адже за замовчуванням у всіх ця опція відключена.

Щодо функції @Map.CalculateZ, спробував в себе - в мене вона завжди видає одне значення. Але дана функція, якщо заповнений параметр Z у вхідних даних - тоді просто читає його значення. Можливо ви перед тим в коді змінній $X2Y2Nov присвоюєте окрім Х і У ще і Z якимось алгоритмом, який щось додає кожного разу до Z?

_________________
додатково про скрипти Digitals на www.digitals.at.ua


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Все про скрипти
СообщениеДобавлено: 14 дек 2020 20:50 
Гуру
Гуру

Зарегистрирован:
06 июн 2010 06:35
Сообщения: 823
Откуда: Ліспроект Володимир Вовчанський
fendak писал(а):
Проблема в тому, що наявність такої опції (колір фону - хоч насправді там ніякого кольору фону в панелі від цього немає) - це одиничний випадок. У всіх програмах навіть на найновіших версіях таке відсутнє.
Насправді там кольори фону в панелі є
Вложение:
Background.png
Background.png [ 20.52 Кб | Просмотров: 5205 ]
fendak писал(а):
Підозрюю, що це десь в налаштуваннях програми є якась опція, яку користучач включив колись і вона постійно додає даний ряок. Але знайти таку не можу ніде.
В константах дивилися? Хоча в константи пишуться в Ged.ini при закриванні програми. Скажу більше: зміна фонового кольору панелі інструментів не фіксується в Ged.ini ніяк. Тому цей атрибут панелі стосується кожної такої - окремо.
fendak писал(а):
Суть проблеми в тому, що через додавання програмою цього рядка перестає працювати скрипт. Додається цей рядок тоді, коли панель інструментів перемістити в інше місце на екрані. Таким чином ця програма вносить свої зміни у файл tlb. Після цього скрипт уже не працює.
Найпростіший вихід тут, мабуть, перевстановити заново програму, адже за замовчуванням у всіх ця опція відключена.
Скрипт у Вас читає текст іншого скрипта з певних рядків файла TLB, і тепер номера рядків не співпадають? Чи пропонуєте прибрати фоновий колір панелі із-за того, що у Вас скрипт перестав працювати?
fendak писал(а):
Щодо функції @Map.CalculateZ, спробував в себе - в мене вона завжди видає одне значення. Але дана функція, якщо заповнений параметр Z у вхідних даних - тоді просто читає його значення. Можливо ви перед тим в коді змінній $X2Y2Nov присвоюєте окрім Х і У ще і Z якимось алгоритмом, який щось додає кожного разу до Z?
Дякую. Ви праві.
Якщо в точці з плановими координатами $X2Y2Nov=5347324,10 1349492,79 вже є точка іншого об'єкта, і вона має висоту Z=1235,50, то @Map.CalculateZ 5347324,10 1349492,79 поверне 1235,50 (це якщо "вхідні дані" - всі об'єкти, висоти точок яких беруть участь в інтерполяції висоти). Якщо ж Ви маєте на увазі необов'язковий аргумент [ParamIndex], то це ж - не висота. До наведеного мною скрипта, треба ще й відео дивитися: там же - повідомлення скрипта. На крайняк можу скинути повний лог-файл, який я розібрав "по-кісточкам" (там всього 1500 рядочків)...

Добро. Переконали. Попробую простенький скриптик написати, і перевірю на тій самій карті.
Ще раз дякую.


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 1235 ]  На страницу Пред.  1 ... 71, 72, 73, 74, 75, 76, 77 ... 83  След.

Часовой пояс: UTC + 2 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 116


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB