Аналитика

Цифровая фотограмметрия, картография и землеустройство
Текущее время: 19 апр 2024 16:01

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




Начать новую тему Ответить на тему  [ Сообщений: 74 ]  На страницу Пред.  1, 2, 3, 4, 5  След.
Автор Сообщение
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 24 сен 2009 17:58 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
Sergey Oleynik писал(а):
Вместо двойного щелчка на левой стороне удобнее использовать сочетание клавиш <Ctrl><Enter> прямо не выходя из правого окна со скриптом.


Вот за это моё большое Вам - Данке Шон. :roll:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 20 окт 2009 12:38 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
Sergey Oleynik писал(а):
Использовать метки, например:

@If NOT условие then @Goto %Next
Команда1
Команда2
@Goto %NextBlock
%Next:
Команда 3
Команда 4
%NextBlock
(при выполнении условия выполнятся команды 1 и 2, а иначе команды 3 и 4)

а как задать вот такую цепочку событий?

@if $BID1=$BID11 then @if $BID2=$BID12 then @if $BID3=$BID13 then
@Map.SelectObject $J
@Map.SelectObject $I
@Map.Selected.AddToGroup Дубликаты


Просто тут идёт цепочка условий и нужно после неё выполнить цепочку команд. :shock:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 20 окт 2009 14:00 
Администратор
Администратор

Зарегистрирован:
28 авг 2004 17:19
Сообщения: 1009
pippa писал(а):
Sergey Oleynik писал(а):
Использовать метки, например:

@If NOT условие then @Goto %Next
Команда1
Команда2
@Goto %NextBlock
%Next:
Команда 3
Команда 4
%NextBlock
(при выполнении условия выполнятся команды 1 и 2, а иначе команды 3 и 4)

а как задать вот такую цепочку событий?

@if $BID1=$BID11 then @if $BID2=$BID12 then @if $BID3=$BID13 then
@Map.SelectObject $J
@Map.SelectObject $I
@Map.Selected.AddToGroup Дубликаты


Просто тут идёт цепочка условий и нужно после неё выполнить цепочку команд. :shock:

Как-то так:

@if $BID1<>$BID11 then @Goto %Skip
@if $BID2<>$BID12 then @Goto %Skip
@if $BID3<>$BID13 then @Goto %Skip

@Map.SelectObject $J
@Map.SelectObject $I
@Map.Selected.AddToGroup Дубликаты

%Skip:

Цепочка команд будет выполнена только при соблюдении всех трех условий. Если хоть одно из условий не выполняется, то исполнение перескочит на метку Skip и обойдет команды.

А еще можно заранее просуммировать для обоих объектов все три параметра и тогда понадобится всего одно сравнение:

$S1=$BID1$BID2$BID3
$S2=$BID11$BID12$BID13
@if $S1<>$S2 then @Goto %Skip

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 20 окт 2009 14:19 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
Sergey Oleynik писал(а):
Sergey Oleynik писал(а):
А еще можно заранее просуммировать для обоих объектов все три параметра и тогда понадобится всего одно сравнение:

$S1=$BID1$BID2$BID3
$S2=$BID11$BID12$BID13
@if $S1<>$S2 then @Goto %Skip

Спасибо :!: Работает :idea:

А это как это $S1=$BID1$BID2$BID3 работает :shock:
Какого типа эти параметры должны быть? :shock:

Если у меня они и числовые и строковые?

Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 20 окт 2009 14:26 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
pippa писал(а):
Sergey Oleynik писал(а):
Sergey Oleynik писал(а):
А еще можно заранее просуммировать для обоих объектов все три параметра и тогда понадобится всего одно сравнение:

$S1=$BID1$BID2$BID3
$S2=$BID11$BID12$BID13
@if $S1<>$S2 then @Goto %Skip

Спасибо :!: Работает :idea:

А это как это $S1=$BID1$BID2$BID3 работает :shock:
Какого типа эти параметры должны быть? :shock:

Если у меня они и числовые и строковые?


Здесь параметры суммируются как строки (слияние строк), независимо от типа параметра.

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 20 окт 2009 15:30 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
Спасибо. Ясно.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 21 окт 2009 10:00 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
Доброе утро.

Есть ещё один вопросик. :roll:

Нужно определять растояние между точками - можно ли реализовать такого рода функцию?
Я написала програмулинку, которая проверяет двойные точки и вертикальные вектора - а теперь нужно отыскивать находящиеся близко точки (в т.ч. числе вертикальные вектора имеющие небольшой наклон :wink: ) - функция генерализации в данном случае не очень помогает - есть точки, которые нужны - и их генерализация удаляет, а я - маркирую точки, которые "подозреваются" в очень близком месторасположении.

И ещё...

Как можно удалять ненужные точки из объекта - можно ли реализовать функцию удаления, вставки точек / в объект.

Спасибо. :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 21 окт 2009 14:01 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
pippa писал(а):
Sergey Oleynik писал(а):
$S1=$BID1$BID2$BID3
$S2=$BID11$BID12$BID13
@if $S1<>$S2 then @Goto %Skip


При таком сравнении выдёт следующий результат:
Вложение:
2009_10_21_001.JPG
2009_10_21_001.JPG [ 36.39 Кб | Просмотров: 10820 ]


Что делать? :?:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 21 окт 2009 15:04 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Цитата:
Как можно удалять ненужные точки из объекта - можно ли реализовать функцию удаления, вставки точек / в объект.


Для удаления ненужных точек как нельзя лучше подходит генерализация. Насчет добавления точек, непонятно, что должна делать функция? Имеется функция для вставки точек с заданным шагом в контур объекта (Правка>Добавить точки). Есть команда вставки точек в виде отдельных объектов (закладка Правка кнопка Добавить узлы).

Цитата:
Нужно определять растояние между точками - можно ли реализовать такого рода функцию?
Я написала програмулинку, которая проверяет двойные точки и вертикальные вектора - а теперь нужно отыскивать находящиеся близко точки (в т.ч. числе вертикальные вектора имеющие небольшой наклон :wink: )


Сложный анализ, если требуется проверка всех объектов карты и всех точек объектов лучше не выполнять в скрипте. Во-первых, такой скрипт будет тяжело написать, во-вторых работать он будет очень медленно.

Используйте внешнее приложение, получающее данные от Digitals через набор TCP команд. И функции геометрического анализа лучше используйте свои. Подобное уже создавали наши пользователи Volod написал GedTools viewtopic.php?f=1&t=280&p=3053#3053. А это набор классов от Ивана Шубина, инкапсулирующих объекты Digitals viewtopic.php?f=1&t=908&p=5297#5297.

А функцию нахождения расстояния между двумя точками на Делфи я вам дам :) Хотя идею с вертикальными векторами, честно говоря, не понял.

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 21 окт 2009 15:16 
Гуру
Гуру

Зарегистрирован:
11 сен 2008 16:45
Сообщения: 337
Bondarets Alexander писал(а):
Хотя идею с вертикальными векторами, честно говоря, не понял.

идея, видимо, в том чтобы проверять те точки, которые вошли в окрестность недопустимой близости на плоскости OXY еще и на расхождение по высоте.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 21 окт 2009 15:35 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
Bondarets Alexander писал(а):
Цитата:
Как можно удалять ненужные точки из объекта - можно ли реализовать функцию удаления, вставки точек / в объект.


Для удаления ненужных точек как нельзя лучше подходит генерализация. Насчет добавления точек, непонятно, что должна делать функция? Имеется функция для вставки точек с заданным шагом в контур объекта (Правка>Добавить точки). Есть команда вставки точек в виде отдельных объектов (закладка Правка кнопка Добавить узлы).

@Map.Object[$I].Point[$J].Add Point
@Map.Object[$I].Point[$J].Add Number

Есть точки - которые после работы скрипта обозначены как "лишние". Их нужно удалить. Или наоборот - добавить - но в автоматическом режиме.

Bondarets Alexander писал(а):
Сложный анализ, если требуется проверка всех объектов карты и всех точек объектов лучше не выполнять в скрипте. Во-первых, такой скрипт будет тяжело написать, во-вторых работать он будет очень медленно.

Хотя идею с вертикальными векторами, честно говоря, не понял.


Программка уже напсиана и работает - находит двойные точки и вертикальные вектора - 2 точки, имеющие одинаковые X и Y, но имеющие разные Z идущие подряд в одном линейном / полигональном объекте.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 22 окт 2009 11:57 
Гуру
Гуру

Зарегистрирован:
14 дек 2005 20:20
Сообщения: 274
Откуда: Черновцы
Мне надо послать из своей програмки в Дигиталс команду нажатия/отпускания клавиши.
стандартный KEYUP/KEYDOWN не работают. Немного пошаманив получилость что в Дигиталсе какието свои обработчики клавиатурных событий.
Подскажите пожалуйста что и в каком формате послать чтоб Дигиталс отреагировал на команду из вне.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 22 окт 2009 13:26 
Гуру
Гуру
Аватара пользователя

Зарегистрирован:
10 апр 2009 10:29
Сообщения: 392
Dkrav писал(а):
Мне надо послать из своей програмки в Дигиталс команду нажатия/отпускания клавиши.
стандартный KEYUP/KEYDOWN не работают. Немного пошаманив получилость что в Дигиталсе какие-то свои обработчики клавиатурных событий.
Подскажите пожалуйста что и в каком формате послать чтоб Дигиталс отреагировал на команду из вне.

Посмотрите тут viewtopic.php?p=4996#4996
Я думаю скоро IvanShubin выложит свой новый новатор viewtopic.php?p=3364#3364 - который будет ловить события и мыши, и клавиатуры.

Удачи. :wink:


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 22 окт 2009 17:18 
Гуру
Гуру

Зарегистрирован:
14 дек 2005 20:20
Сообщения: 274
Откуда: Черновцы
Похоже разобрался во всем сам :) скоро покажу результат ;)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Отличные новости для любителей автоматизации и тулбаров!
СообщениеДобавлено: 22 окт 2009 18:06 
Администратор
Администратор

Зарегистрирован:
28 авг 2004 17:19
Сообщения: 1009
pippa писал(а):
@Map.Object[$I].Point[$J].Add Point
@Map.Object[$I].Point[$J].Add Number

Есть точки - которые после работы скрипта обозначены как "лишние". Их нужно удалить. Или наоборот - добавить - но в автоматическом режиме.

Реализованы функции для добавления, вставки и удаления точек объекта:

@Map.Object[N].Delete StartPointIndex StopPointIndex
(при удалении одной точки второй индекс можно опустить)

@Map.Object[N].Add X Y Z
(если высота не указана, то она интерполируется из карты)

@Map.Object[N].Insert PointIndex X Y Z
(если высота не указана, то она интерполируется из карты)

Пример скрипта, демонстриующего манипуляции с точками:
(нужно пометить незамкнутый объект из 3-4 точек)

$S=@Map.NextSelected 0
@if $S=0 then Break Нужно пометить объект
$P1=@Map.Object[$S].Point[1]
$P2=@Map.Object[$S].Point[2]
@Map.Object[$S].Delete 1 2
@Map.Selected.Refresh
@Wait 1000
@Map.Object[$S].Insert 0 $P2
@Map.Object[$S].Insert 0 $P1
@Map.Selected.Refresh
@Wait 1000
@Map.Object[$S].Add $P1
@Map.Selected.Refresh
@Wait 1000
$C=@Map.Object[$S].Count
@Map.Object[$S].Delete $C
@Map.Selected.Refresh

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


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 74 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

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


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

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


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

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