Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 17 окт 2019 15:10

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




Начать новую тему Ответить на тему  [ Сообщений: 491 ]  На страницу Пред.  1 ... 19, 20, 21, 22, 23, 24, 25 ... 33  След.
Автор Сообщение
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 26 мар 2018 13:41 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 294
Откуда: м.Львiв
Виталий писал(а):
Как записать выражение?
@If "параметр ID3757577 слоя ID7575001 "четный"

Написати функцiю (бiблiотеку), яка повертає значення 1-парне, 0-не парне
Код:
$A=$PARAMETERS
$IsEven=1
$C=@Calc Frac("$A"/2)
@If "$C"="0" Then @Goto %End
$IsEven=0
%End
$RESULT=$IsEven

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 26 мар 2018 14:06 
Гуру
Гуру

Зарегистрирован:
05 апр 2012 10:20
Сообщения: 637
або так (якраз паралельно з Русланом набрав):
$Value=@Map.Object[N].Parameter[N]
$Parnyi=$Value/2
$Parnyi=@StringPartCount . $Parnyi
$Parnyi=ні
@if $Parnyi=1 then $Parnyi=так

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 26 мар 2018 15:34 
Эксперт
Эксперт

Зарегистрирован:
11 сен 2012 09:11
Сообщения: 78
fendak писал(а):
або так (якраз паралельно з Русланом набрав):
$Value=@Map.Object[N].Parameter[N]
$Parnyi=$Value/2
$Parnyi=@StringPartCount . $Parnyi
$Parnyi=ні
@if $Parnyi=1 then $Parnyi=так


Видає помилку
:cry:


Вложения:
.jpg
.jpg [ 19.13 Кб | Просмотров: 2300 ]
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 26 мар 2018 18:20 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 294
Откуда: м.Львiв
Виталий писал(а):
fendak писал(а):
або так (якраз паралельно з Русланом набрав):
$Value=@Map.Object[N].Parameter[N]
$Parnyi=$Value/2
$Parnyi=@StringPartCount . $Parnyi
$Parnyi=ні
@if $Parnyi=1 then $Parnyi=так


Видає помилку
:cry:

@Map.Object[N] N-повинне бути цiлим значенням (порядковий номер об'єкту)

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 26 мар 2018 21:16 
Специалист
Специалист

Зарегистрирован:
09 дек 2015 12:30
Сообщения: 34
Руслан Пархуць писал(а):
petrogeo писал(а):
При відкритті обмінного файлу формату IN4, заповнена інформація в ньому відображається не коректно

В параметрах Digitals на вкладцi "Читання" поставте "галочку" "Нова версiя (Windows)"
P.S. Те ж саме i на вкладцi "Зберегти" (коли захочете зберегти якiсь змiни).

В мене так виставлено, всеодно не допомагає, при знятті проблема лишається.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 26 мар 2018 21:26 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 294
Откуда: м.Львiв
petrogeo писал(а):
Руслан Пархуць писал(а):
petrogeo писал(а):
При відкритті обмінного файлу формату IN4, заповнена інформація в ньому відображається не коректно

В параметрах Digitals на вкладцi "Читання" поставте "галочку" "Нова версiя (Windows)"
P.S. Те ж саме i на вкладцi "Зберегти" (коли захочете зберегти якiсь змiни).

В мене так виставлено, всеодно не допомагає, при знятті проблема лишається.

Зрозумiло. У Вас файл з кодуванням тексту UTF-8 (напевно пiсля конвертацiї "Менеджером обмінних файлів"). Для коректного читання тексту вiдкрийте файл блокнотом i перезбережiть, поставивши кодування тексту ANSI.
... або застосувавши функцiю @Map.ConvertUTFParameters, коли вже вiдкритий об'єкт з текстом у виглядi "ділянкР" (в кодовiй сторiнцi UTF-8), що буде самим доречним в даному випадку

P.S. Якщо скриптовими функцiями, тодi так
Код:
$FName=@Dialog.OpenFile *.in4
@If $FName= then @Break
@Text.Load $FName
$Buf=@Text.Text
$Buf=@UTF8ToString $Buf
@Text.Text=$Buf
@Text.Save $FName

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 27 мар 2018 08:33 
Специалист
Специалист

Зарегистрирован:
09 дек 2015 12:30
Сообщения: 34
Руслан Пархуць писал(а):
petrogeo писал(а):
Руслан Пархуць писал(а):
petrogeo писал(а):
При відкритті обмінного файлу формату IN4, заповнена інформація в ньому відображається не коректно

В параметрах Digitals на вкладцi "Читання" поставте "галочку" "Нова версiя (Windows)"
P.S. Те ж саме i на вкладцi "Зберегти" (коли захочете зберегти якiсь змiни).

В мене так виставлено, всеодно не допомагає, при знятті проблема лишається.

Зрозумiло. У Вас файл з кодуванням тексту UTF-8 (напевно пiсля конвертацiї "Менеджером обмінних файлів"). Для коректного читання тексту вiдкрийте файл блокнотом i перезбережiть, поставивши кодування тексту ANSI.
... або застосувавши функцiю @Map.ConvertUTFParameters, коли вже вiдкритий об'єкт з текстом у виглядi "ділянкР" (в кодовiй сторiнцi UTF-8), що буде самим доречним в даному випадку

P.S. Якщо скриптовими функцiями, тодi так
Код:
$FName=@Dialog.OpenFile *.in4
@If $FName= then @Break
@Text.Load $FName
$Buf=@Text.Text
$Buf=@UTF8ToString $Buf
@Text.Text=$Buf
@Text.Save $FName

Дякую. Те що треба, все працює.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 27 мар 2018 09:17 
Эксперт
Эксперт

Зарегистрирован:
11 сен 2012 09:11
Сообщения: 78
Руслан Пархуць писал(а):
Виталий писал(а):
fendak писал(а):
або так (якраз паралельно з Русланом набрав):
$Value=@Map.Object[N].Parameter[N]
$Parnyi=$Value/2
$Parnyi=@StringPartCount . $Parnyi
$Parnyi=ні
@if $Parnyi=1 then $Parnyi=так


Видає помилку
:cry:

@Map.Object[N] N-повинне бути цiлим значенням (порядковий номер об'єкту)


Написал вот так, но условие не віполняеться. Подпись Видна при четном и не четном значении МежЗнака
@Map.DeselectAll
@Map.SelectLayer ID7575001
$MZ=@Map.SelectedObject
@If $MZ=0 @Break На карті немає МезЗнака
$Value=@Map.Object[$MZ].Parameter[ID3757577]
$Parnyi=$Value/2
$Parnyi=@StringPartCount . $Parnyi
$Parnyi=ни
@if $Parnyi=1 then $Parnyi=да
@If $Parnyi=да then @Map.SelectLayer ID555007
@Map.Layers.SetState ID555007 0
@Map.DeselectAll
Прошу исправьте что не так. Очень надо. На объекте много МежЗнаков и сточки экономии бумаги хочу поместить на один лист два крока, но подпись чтоб была одна.
СПАСИБО!!!!!!!


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 27 мар 2018 10:06 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 294
Откуда: м.Львiв
Виталий писал(а):
Подпись Видна при четном и не четном значении МежЗнака

Не зовсiм зрозумiв, що програма мала робити у Вашому випадку, оскiльки перевiряються значення одного шару, а мiняється стиль зовсiм iншого.
Даний скрипт "ховає" пiдписи непарних значень межових знакiв.
Код:
@Map.DeselectAll
@Map.SelectLayer ID7575001
$MZ=@Map.SelCount
@If $MZ=0 @Break На карті немає МезЗнака
$Obj=0
%CyclePoint
$Obj=@Map.NextSelected $Obj
@If $Obj=0 Then @Goto %Exit
$Value=@Map.Object[$Obj].Parameter[ID3757577]
;
$C=@Calc Frac("$Value"/2)
@If "$C"="0" Then $IsEven=1 Else $IsEven=0
;
@If $IsEven=0 Then @Map.Object[$Obj].RemoveCaption ID3757577
@If $Obj>0 Then @Goto %CyclePoint
%Exit
@Break

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 27 мар 2018 10:34 
Эксперт
Эксперт

Зарегистрирован:
11 сен 2012 09:11
Сообщения: 78
Руслан Пархуць писал(а):
Виталий писал(а):
Подпись Видна при четном и не четном значении МежЗнака

Не зовсiм зрозумiв, що програма мала робити у Вашому випадку, оскiльки перевiряються значення одного шару, а мiняється стиль зовсiм iншого.
Даний скрипт "ховає" пiдписи непарних значень межових знакiв.
Код:
@Map.DeselectAll
@Map.SelectLayer ID7575001
$MZ=@Map.SelCount
@If $MZ=0 @Break На карті немає МезЗнака
$Obj=0
%CyclePoint
$Obj=@Map.NextSelected $Obj
@If $Obj=0 Then @Goto %Exit
$Value=@Map.Object[$Obj].Parameter[ID3757577]
;
$C=@Calc Frac("$Value"/2)
@If "$C"="0" Then $IsEven=1 Else $IsEven=0
;
@If $IsEven=0 Then @Map.Object[$Obj].RemoveCaption ID3757577
@If $Obj>0 Then @Goto %CyclePoint
%Exit
@Break


Вложения:
New Document.pdf [256.54 Кб]
Скачиваний: 41
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 27 мар 2018 10:57 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 294
Откуда: м.Львiв
Виталий писал(а):
Подпись Видна при четном и не четном значении МежЗнака

Тодi так :)
Код:
@Map.DeselectAll
@Map.SelectLayer ID7575001
$MZ=@Map.SelCount
@If $MZ=0 @Break На карті немає МезЗнака
$MZ=@Map.NextSelected
$Value=@Map.Object[$MZ].Parameter[ID3757577]
;
$C=@Calc Frac("$Value"/2)
@If "$C"="0" Then $IsEven=1 Else $IsEven=0
;
@If $IsEven=0 Then @Map.Layers.SetState ID555007 3 Else @Map.Layers.SetState ID555007 0
@Map.SelectLayer ID555007
$UZ=@Map.NextSelected
@Map.RefreshObject $UZ
@Break

хоча не думаю, що це спрацює, оскiльки на листi у Вас буде два межових знаки, i пiдписiв два. Вони будуть або видимi обоє, або схованi. Потрiбно щось мiняти в алгоритмi задачi, тобто витирати або переносити на невидимий шар надпис "Склав".

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 27 мар 2018 11:28 
Эксперт
Эксперт

Зарегистрирован:
11 сен 2012 09:11
Сообщения: 78
Руслан Пархуць писал(а):
Виталий писал(а):
Подпись Видна при четном и не четном значении МежЗнака

Тодi так :)
Код:
@Map.DeselectAll
@Map.SelectLayer ID7575001
$MZ=@Map.SelCount
@If $MZ=0 @Break На карті немає МезЗнака
$MZ=@Map.NextSelected
$Value=@Map.Object[$MZ].Parameter[ID3757577]
;
$C=@Calc Frac("$Value"/2)
@If "$C"="0" Then $IsEven=1 Else $IsEven=0
;
@If $IsEven=0 Then @Map.Layers.SetState ID555007 3 Else @Map.Layers.SetState ID555007 0
@Map.SelectLayer ID555007
$UZ=@Map.NextSelected
@Map.RefreshObject $UZ
@Break

хоча не думаю, що це спрацює, оскiльки на листi у Вас буде два межових знаки, i пiдписiв два. Вони будуть або видимi обоє, або схованi. Потрiбно щось мiняти в алгоритмi задачi, тобто витирати або переносити на невидимий шар надпис "Склав".


СПАСИБО!!!!!! ВСЕ ОК.
:lol: :lol: :lol: :lol:


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 27 мар 2018 13:32 
Эксперт
Эксперт

Зарегистрирован:
11 сен 2012 09:11
Сообщения: 78
Подскажите, где ошибка
@Map.DeselectAll
@Map.SelectLayer ID60000
;параметр, значение которого копируется
$SrcParam=ID49084583
;параметр, в исходной карте принимающий значение
$DestParam=ID49084583
$N=@Map.SelCount
;копируем значение параметра внешнего объекта
@Map.SelectLayer ID60000
$ParentObj=@Map.SelectLayer ID60000
$P=@Map.Object[$ParentObj].Parameter[$SrcParam]
;возвращаемся к исходной карте
@Map.DeselectAll
@Map.SelectLayer ID20000
;вставляем скопированный параметр
$ThisObj=@Map.SelectedObject
@Map.Object[$ThisObj].Parameter[$DestParam] $P
@Map.DeselectAll
;обновляем объект
@Map.RefreshObject $ThisObj
@Map.DeselectAll


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 27 мар 2018 22:57 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
22 сен 2007 16:09
Сообщения: 294
Откуда: м.Львiв
Виталий писал(а):
Подскажите, где ошибка
...
$ParentObj=@Map.SelectLayer ID60000
$P=@Map.Object[$ParentObj].Parameter[$SrcParam]
...

@Map.SelectLayer Numbers - виділяє всі об'єкти, що знаходяться в шарі Numbers. Numbers - порядковий номер чи ID шару
якщо потрiбно об'єкт iз списку видiлених, використовуйте @Map.NextSelected ($ParentObj=@Map.NextSelected - перший елемент зi списку) або @Map.SelectedObject (як для змiнної $ThisObj з коду).
Така ж помилка була у Вас у попередньому повiдомленнi.

_________________
Більшість хороших програмістів виконують свою роботу не тому, що очікують оплати або визнання, а тому, що отримують задоволення від програмування.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Нужна помощь
СообщениеДобавлено: 28 мар 2018 09:23 
Эксперт
Эксперт

Зарегистрирован:
11 сен 2012 09:11
Сообщения: 78
Руслан Пархуць писал(а):
Виталий писал(а):
Подскажите, где ошибка
...
$ParentObj=@Map.SelectLayer ID60000
$P=@Map.Object[$ParentObj].Parameter[$SrcParam]
...

@Map.SelectLayer Numbers - виділяє всі об'єкти, що знаходяться в шарі Numbers. Numbers - порядковий номер чи ID шару
якщо потрiбно об'єкт iз списку видiлених, використовуйте @Map.NextSelected ($ParentObj=@Map.NextSelected - перший елемент зi списку) або @Map.SelectedObject (як для змiнної $ThisObj з коду).
Така ж помилка була у Вас у попередньому повiдомленнi.

ок! Спасибо.


Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 491 ]  На страницу Пред.  1 ... 19, 20, 21, 22, 23, 24, 25 ... 33  След.

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


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

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


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

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