Аналитика

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

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




Начать новую тему Ответить на тему  [ Сообщений: 15 ] 
Автор Сообщение
 Заголовок сообщения: Delphi + Digitals
СообщениеДобавлено: 18 ноя 2008 19:00 
Эксперт
Эксперт
Аватара пользователя

Зарегистрирован:
16 авг 2007 18:32
Сообщения: 50
Откуда: Donetsk
Однажды возникла проблема связи своего приложения, написанного на Delphi 7, с Digitals. Решил её с использованием TCP/IP сервера. После проблема возникла снова и снова… Решил облегчить себе жизнь и немного упростить взаимодействие с сервером команд. Для этого создал набор классов, в члены которого поместил задачи связанные с формированием команд и анализом ответов… Подробнее читайте во вложении.

дорабатывайте и исправляйте…


Вложения:
Novator.zip [125.94 Кб]
Скачиваний: 648
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 19 ноя 2008 08:57 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Отличная задумка! В каких реальных приложениях этот модуль использовался? Какие задачи с его помощью решались?

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 19 ноя 2008 13:07 
Эксперт
Эксперт
Аватара пользователя

Зарегистрирован:
16 авг 2007 18:32
Сообщения: 50
Откуда: Donetsk
С его помощью осуществляется поиск ошибок в индексных кадастровых картах. Но идей много…


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 22 ноя 2008 01:23 
Гуру
Гуру

Зарегистрирован:
11 сен 2008 16:45
Сообщения: 337
Проверила на поиске ошибок в ИКК. Очень даже удобно :)


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 27 ноя 2008 12:33 
Эксперт
Эксперт
Аватара пользователя

Зарегистрирован:
16 авг 2007 18:32
Сообщения: 50
Откуда: Donetsk
Уважаемые любители всякого рода автоматизации, оставляйте свои предложения и вопросы по поводу разработанного модуля здесь. Кто скачал и опробовал, пишите что доработать, исправить а лучше сделайте это сами и выложите с исправлениями.

К слову добавлена функция ObjectsNumber() классу TNLayer возвращающая уникальные идентификаторы (Number) объектов расположенных на слое.


Вложения:
Комментарий к файлу: модуль
Novator.zip [7.67 Кб]
Скачиваний: 579
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 04 дек 2008 12:37 
Эксперт
Эксперт
Аватара пользователя

Зарегистрирован:
16 авг 2007 18:32
Сообщения: 50
Откуда: Donetsk
Добавлена функция Abutment() в класс TNObject, которая возвращает номера примыкающих объектов

Добавлена функция Neighbor () в класс TNObject, которая возвращает номера смежных объектов


Вложения:
Novator.zip [7.86 Кб]
Скачиваний: 549
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Доработка
СообщениеДобавлено: 06 авг 2009 11:00 
Эксперт
Эксперт
Аватара пользователя

Зарегистрирован:
16 авг 2007 18:32
Сообщения: 50
Откуда: Donetsk
Добавлен конструктор TNObject.Create(PCon:ParamConnect; Layer:ShortString) создающий новый объект на слое Layer(намер слоя)


Вложения:
Novator.zip [8.9 Кб]
Скачиваний: 564
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Delphi + Digitals
СообщениеДобавлено: 07 авг 2009 11:59 
Эксперт
Эксперт
Аватара пользователя

Зарегистрирован:
16 авг 2007 18:32
Сообщения: 50
Откуда: Donetsk
Вот пример использования разработанных классов.

Задача:есть данные измерений тахеометром, необходимо построить продольный профиль с поперечниками.
Программа далает следующее:
1. Выпрямляем полилинию по которой будет строится профиль;
2. Координаты Y заменяет приращениями высоты относительно первой точки;
3. Со всеми поперечниками делает действия аналогичные в пунктах 1 и 2

Исходные данные представлены в виде полилиний (см. пример). Правда оформление приходится делать в ручную, зато есть возможность изменять вертикальные масштабы :).


Вложения:
profil.zip [252.72 Кб]
Скачиваний: 624
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 07 авг 2009 14:50 
Гуру
Гуру

Зарегистрирован:
26 фев 2007 12:04
Сообщения: 1751
Откуда: Vinnitsa
Супер! Автору респект и уважуха :) Всем, кто долгое время просил реализацию продольных профилей в Digitals, срочно скачивать и разбираться.

Не мешало бы еще подробнее описать порядок действий. У меня, к примеру, profile.exe завис ничего не выполнив и не выдав сообщений об ошибке (поключение к 1024 порту). Исходники не смотрел.

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


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 07 авг 2009 17:56 
Гуру
Гуру

Зарегистрирован:
04 дек 2004 19:41
Сообщения: 1035
Откуда: г. Харьков
Восторгаться рановато. Похоже, программа только в начале своего пути. ;)
Но идея развития библиотеки для упрощения работы с TCP, полагаю, верная.
Работает на порту 1067.


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Delphi + Digitals
СообщениеДобавлено: 10 авг 2009 14:02 
Эксперт
Эксперт
Аватара пользователя

Зарегистрирован:
16 авг 2007 18:32
Сообщения: 50
Откуда: Donetsk
Добавлена функция AddPoint(X,Y,Z:Double):Integer в класс TNCoords. Функция позволяет добавлять точки к созданным или сушествующим объектам.

Пример:
var Map:TNMap;
i,j:integer;
Obj:TNObject;
begin
Obj := TNObject.Create(Par,'1'); //Создали объект
Obj.Apply;
for i := 1 to 4 do //Нарисовали змейку
for j := 1 to 4 do
Obj.Coords.AddPoint(i,j,0);
Obj.Apply;
end;


Вложения:
Novator.zip [9.14 Кб]
Скачиваний: 571
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 14 авг 2009 13:01 
Участник
Участник

Зарегистрирован:
04 авг 2009 12:01
Сообщения: 5
При загрузке растра через Вставка -> Растровое изображение возникают проблемы при считывании линейных объектов с других слоев, как можно решить эту проблему


Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 25 авг 2009 07:31 
Эксперт
Эксперт
Аватара пользователя

Зарегистрирован:
16 авг 2007 18:32
Сообщения: 50
Откуда: Donetsk
Цитата:
При загрузке растра через Вставка -> Растровое изображение возникают проблемы при считывании линейных объектов с других слоев, как можно решить эту проблему


Пример в студию!


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 25 авг 2009 07:43 
Эксперт
Эксперт
Аватара пользователя

Зарегистрирован:
16 авг 2007 18:32
Сообщения: 50
Откуда: Donetsk
Добавлены новые функции (ВНИМАНИЕ ТЕСТИРОВАНИЕ ФУНКЦИЙ НЕ ЗАВЕРШИНО, О НАЙДЕНЫХ ОШИБКАХ СООБЩАЙТЕ)

//Возвращает расстояние между двумя точками
//FL3D=False - расстояние на плоскости
//FL3D=True - расстояние в пространстве
function Distance(P1,P2:TNCoord; FL3D:Boolean):Double;

//Возвращает диреционный угол направления от Р1 к Р2
function Direction(P1,P2:TNCoord):double;

//Возвращает угол с вершиной в точке Р2 между направлениями Р2-Р1 и Р2-Р3
//OnLeft = TRUE - c вершины Р1 до Р2 угол с левой стороны
//OnLeft = FALSE - c вершины Р1 до Р2 угол с правой стороны
function Angle(P1,P2,P3:TNCoord; OnLeft:Boolean):double;

//Возвращает градусы из угла прерставленного в десятичном формате
function DMSD(Angle:Double):Integer;

//Возвращает минуты из угла представленного в десятичном формате
function DMSM(Angle:Double):Integer;

//Возвращает секунды из угла представленного в десятичном формате
function DMSS(Angle:Double): Integer;


Вложения:
Novator.zip [10.08 Кб]
Скачиваний: 562
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Delphi + Digitals
СообщениеДобавлено: 18 сен 2009 08:06 
Эксперт
Эксперт
Аватара пользователя

Зарегистрирован:
16 авг 2007 18:32
Сообщения: 50
Откуда: Donetsk
Добавлены два класса, позволяющие работать с подписями:
TNCaption
TNCaptions
описание классов смотрите в исходниках. Вот что то на подобии примера использования:

var TL:TNLayer;
TP:TNGParameter;
Map:TNMap;
i:integer;
Obj:TNObject;
TempParObj:TNParameter;
BEGIN
TL := TNLayer.Create(Par,1000,4,'Точки границы'); //Создаём новый слой

Map := TNMap.Create(Par);
Map.AssignLayers;

TP := TNGParameter.Create(Par,1000,5,'Подпись имени точки'); //Добавляем параметр
Map.Layers.Layer(1000).AddParameter(TP); //Добавляем параметр слою

for i := 0 to Meja.Coords.Count - 2 do // Meja – объект TNObject
begin
Obj := TNObject.Create(Par,'2');
Obj.Coords.Clear;
Obj.Coords.Add(Meja.Coords.Coord(i));
Obj.Apply;

Obj.Parameters.Parameter(1).ParamValue := IntToStr(i+1);
TempParObj := Obj.Parameters.Parameter(1);
Obj.Captions.Add(TNCaption.Create(TempParObj,0,0,0,0,CCentre)); //Добавляем подпись
Obj.Apply;
end;
END;

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
ВАЖНО. Созданные подписи не появляются - все вопросы к разработчикам. Нужно переоткрыть карту.
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!


Также добавлены функции:

//Возвращает строку в формате Г М С
DMSString(Angle:double):ShortString;

//Сортируем массив точек в зависимости от расстояния их к точке EndCoord
//FlUp=True - По возрастанию
//FlUp=False - По убыванию
function ArrayCoordSort(CoordArray:TList; EndCoord:TNCoord; FlUp:Boolean):TList;

//Сортируем массив данных
//FlUp=True - По возрастанию
//FlUp=False - По убыванию
function ArraySort(DataArray: DoubleArray;FlUp:Boolean):DoubleArray;

//Проверяет пересекается ли объект с линией P1-P2
function ChInterObjectAndLine(ChObject:TNObject;P1,P2:TNCoord):boolean;


Вложения:
Novator.zip [13.32 Кб]
Скачиваний: 583
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 15 ] 

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


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

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


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

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