Чемно дякую за приклад управляючого скрипта. Треба пробувати, як на мене це - чудова можливість в рази прискорити роботу засобів автоматизації
Однак приєднаюся до питання Миколи Фендак: мабуть у зв’язку з багатопоточністю, відтепер необхідно ініціалізувати всі змінні? Це робиться лише одним способом - присвоєнням порожнього значення?
Не запускається скрипт AutoIt з двома параметрами.
Рядок з лог-файла:
21:57:48.898 RUN D:\Digitals\Favorites\SignatureValidMap.exe “C:\Users\voha-\Desktop\04-Катеринівське.dmf” “2021/03/01 21:57:40”
P.S. Я зрозумів, що справа в лапках. Якщо лапки одинарні, запуск виконується. Але тоді параметри скрипта читаються не коректно. В принципі вихід є: переписати скрипт на функцію DLL. Це єдиний вихід?
При конвертації в ХМЛ через діджитал, файли конвертуються за різний проміжок часу, інколи зовсім не конвертуються. Необхідно продовжити виконання скрипту після повної конвертації файлу. Допоможіть це зробити:
цей рядок працює зовсім не корректно:
$6661=@Map.ClearFilename
Файл | Конвертировать In4 в XML @Wait 10000 @Map.DeselectAll @FileOpen $6661.xml
…
Скриптова функція @Wait тут не допомагає, а лише шкодить (поки скрипт “Wait”, XMLChecker не в змозі коректно відпрацювати). Саме із-за @Wait “інколи зовсім не конвертуються”. Трохи більше варто почитати про конвертацію In4 в XML.
Без забезпечення роботи скрипта ConvertIn4ToXML.pas в асинхронному режимі толку виконання FileConvertIn4ToXML зі скрипта не буде.
Поки єдиний варіант вирішення:$6661=@Map.ClearFilename
@ExecuteMenu FileConvertIn4ToXML
$Asc=@Dialog.WaitBox Після створення файла XML натисніть <Продовжити>.
@If $Asc=0 then @Break Припинено виконання скрипта
@Map.DeselectAll
;@FileOpen $6661.xmlі тут я не бачу причини відкривати файл $6661.xml. Він повинний відкритися XMLChecker-ом.
P.S. Доречі:
Але ж лапки тепер не можна застосувати в аргументі скриптової функції @Run
Дякую за відповідь. Також тимчасово обходився функцією @Dialog.Message Text. Але думав що цьому є якесь вирішення. Доречі новостворенний ХМЛ також не завжди відкривається в программі, залежності цьому ще не помітив.
Братцы помогите.
нужно в замкнутом полигоне найти самую длинную сторону и по этой стороне создать отрезок.
Самому пока ума не хватает такое реализовать. Поэтому обращаюсь к нашему бомонду с надеждой что это реализуемо.
Поиск самого длинного ребра:
$Obj=@Map.SelectedObject @if $Obj=0 then @Break
;кол-во ребер в полигоне
$LineCount=@Map.Object[$Obj].Count
$LineCount=$LineCount-1
$MaxLength=0
$L=0
%loop
$L=$L+1 @if $L=$LineCount then @Goto %End
$Length=@Map.Object[$Obj].LineLength[$L] @if $MaxLength<$Length then $MaxLength=$Length @if $L<$LineCount then @Goto %loop @Dialog.Message $MaxLength
Что значит построить отрезок по этой стороне? Отрезок будет равен длинной стороне?