Доброго дня. Некоректно працює функцiя @If … and … then з мiнусовими значеннями
[code]$P1=-5
$P2=-5
@if ($P1=-5) and ($P2=-5) then @goto %Ok
@Dialog.Message False
@Goto %End
%Ok
@Dialog.Message Ok
%End
[/code]FALSE
[code]$P1=5
$P2=5
@if ($P1=5) and ($P2=5) then @goto %Ok
@Dialog.Message False
@Goto %End
%Ok
@Dialog.Message Ok
%End
[/code]TRUE
$P1=-5
$P2=-5
@if ("$P1"="-5") and ("$P2"="-5") then @goto %Ok
@Dialog.Message False
@Goto %End
%Ok
@Dialog.Message Ok
%End
А так? Потрiбна робота з числами, а не текстом.
Хоча бачу, що i з плюсовими так само. Дякую.
$P1=-5.00
$P2=-5.00
@if (“$P1”=“-5”) and (“$P2”=“-5”) then @goto %Ok
@Dialog.Message False
@Goto %End
%Ok
@Dialog.Message Ok
%End
У Вас на сайтi в роздiлi Системнi функцiї значення змiнних i значень не заключенi в лапки. Як правильно?
P.S. працює таким чином:
$P1=-5.00
$P2=-5.00
$P1=@RoundTo $P1 4
$P2=@RoundTo $P2 4
@if ($P1=“-5.0000”) and ($P2=“-5.0000”) then @goto %Ok
@Dialog.Message False
@Goto %End
%Ok
@Dialog.Message Ok
%End
я дотримуюся принципу - “максимального спрощення”, тобто, якщо працює без лапок, то пишу без лапок, якщо не працює, як у прикладі вище, тоді вказую лапки. Тут нема строгих правил. Є різні варіанти.
@Calc Insert з пробілом дійсно не працює. Перевірив і в себе.
Формування стрiчки:
$A=10.01
$B=Приклад
$Res=$A $B
Результат 10.01 (коли $B=Example, тодi Результат ‘10.01 Example’).
P.S. Варiант $A=“10.01: $B=Приклад” тодi отримуємо потрiбний результат.
Після вчорашнього оновлення перестала працювати скриптова функція @Text[N].FolderList, якщо не задавати конкретне розширення файлу, а формувати список зразу по усіх файлах, поставивши просто *
Наприклад, ось так:
@Text[5].FolderList * D:\Digitals\TD\Doc
$F=@Text[5].Text
@Dialog.Message $F
Раніше функція повертала список усіх файлів у папці, а тепер не бачить жодного файлу.
Виправте, будь-ласка, бо дана функція використовується у скриптах:
Скрипт-модуль “Документація” та Панель інструментів для теодоліта.
Відтак два дані скрипти після оновлення програми просто перестають працювати. Пише, що не знайдено шаблонів.
Повернулись до старого варіанту, спробуйте у новій версії.
Прошу розробників: дайте, будь-ласка, роз’яснення як працює скриптова функція @Map.ParentObject Number [ParentLayer]. Адже вона повинна повертати номер батьківського об’єкта (найменшого полігону - того, що містить об’єкт з номером Number).
Насправді незрозуміло як ця функція працює. Застосована без параметра ParentLayer, вона повертає номер батьківського об’єкта лише тоді, коли об’єкт Number було створено в тому ж шарі, що і батьківський. Інакше, повертається номер не найменшого полігона, що містить об’єкт Number.
Демонстрація проблеми у відео [attachment=0]Map_ParentObject.exe[/attachment]
Доброго дня. При виконанні скрипта з немодальним вікном @Dialog.WaitBox при виклику іншого скрипта зникають змінні (які співпадають, міняються на поточні, інші - витираються). Чи є варіант вирішення, дякую.
Приклад додаю.
Кнопка-1
$X=100
$Y=200
@Dialog.WaitBox X=$X|Y=$Y|Запустіть інший скрипт
@Dialog.Message Результат після виконання|X=$X|Y=$Y
Кнопка-2
$X=5000
@While $X>2000 %Loop
$X=$X-100
;... якась функція
%Loop
@Dialog.Message Скрипт завершено з результатом $X
P.S. Як вихід - використав @Map.TempString для збереження змінних до запуску @Dialog.WaitBox а потім відновив значення цих змінних.