Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 13.10.2011, 15:08
Werutra Werutra вне форума
Прохожий
 
Регистрация: 13.10.2011
Сообщения: 2
Репутация: 10
По умолчанию Симуляция программы для ЧПУ OpenGL

Хотел бы купить готовый код программы
( Delphi 5, желательно с комитариями.)

Нужно на форме отобразить memo с кодом программы ЧПУ,а справа пути инструмента в виде линий .

Aктивная строка должна рисоваться белым
Фон черный

При этом чтобы изображение можно было вращать и маштабировать (центр мастабирования курсор).

Пример кода:
Код:
%9000
G17 G00 G90 G40
(RT10)
T17 M6 ( R/ SFRA 25 F D25 Z3)
G43 H17 D17
G90 S3150 M3
G54
G00 X0 Y0 Z20 M8         // линия красным
G00 Z2                         
G01 Z-10 F945
G91              // далнейшие перемещения относително точки положения
G01 X-0 F945     // линия синим
G01 X-35.000     
G41
G01 Y50          
G03 X-15 Y-15 R15  // дуга по часовой, радиус15, синим 
G01 Y-70
G02 X15 Y-15 R15
G01 X70
G03 X15 Y15 R15 // дуга против часовой, радиус15, синим
G01 Y70
G03 X-15 Y15 R15
G01 X-70
G40
G90     // отмена относителного перемещения
G00 Z20  
M30 // конец программы


Зарание спасибо!!!

Последний раз редактировалось lmikle, 16.10.2011 в 19:26.
Ответить с цитированием
  #2  
Старый 15.10.2011, 11:06
Mifody Mifody вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 25
Репутация: 10
По умолчанию

ыыы, уважаемый. Тут два варианта
1. искать прогу в интернете (но только скорее всего дез исходников)
2. завалить меня исходными данными и ждать, правда я пока пишу не на чистом OpenGL, но похоже прийдется переходить.
Кстати, что за код такой?, спецификация отличается от стандартной.
Ответить с цитированием
  #3  
Старый 16.10.2011, 18:00
Werutra Werutra вне форума
Прохожий
 
Регистрация: 13.10.2011
Сообщения: 2
Репутация: 10
По умолчанию

Готовая программа без исходника не подходит,так как симуляцию хочу присоеденить к своей программе. Если буду делать сам уйдет много времени ,так как я новичок в программировании.
Этот код подходит к программе Mach 3( программа управляющая станком ЧПУ ).
Если Вы согласны мне помочь сообщите пожалуйсто сколько это будет стоить.
Ответить с цитированием
  #4  
Старый 18.10.2011, 09:27
Mifody Mifody вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 25
Репутация: 10
По умолчанию

вопрос следующий, надо работать с чистым OpenGL или с какой его оберткой? Я пытаюсь сделать через GLScene, но он загнулся на большом количестве линий. Сейчас жду - человек должен выложить классы, вроде как спасут ситуацию. Но у меня чуть другая ситуация - мне надо по выбору линии показывать строчку кода, отвечающую за рисование.
А вообще что именно не получается сделать?
Ответить с цитированием
  #5  
Старый 25.10.2011, 19:01
Lucky192 Lucky192 вне форума
Прохожий
 
Регистрация: 04.10.2011
Сообщения: 28
Репутация: 1351
По умолчанию

А зачем вам OpenGL чтобы в 2D рисовать? Уверяю, GDI справится на ура, если умеючи. А неумеючи - так и OpenGL и DirecDraw не спасут.
Просто рисуйте сначала на TBitmap, а на экран выводите TBitmap в событии OnPaint.
Ответить с цитированием
  #6  
Старый 26.10.2011, 12:25
Mifody Mifody вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 25
Репутация: 10
По умолчанию

Lucky192 - не знаю, какую имено задачу решает ТС, но у меня требовалось отслеживание по какой именно линии клик мышкой был. Как такое в GDI сделать?
Ответить с цитированием
  #7  
Старый 26.10.2011, 21:35
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Событие мышки у тебя конечно запрещены как потенциально опасные?
Я бы не стал пытаться точно отслеживать попадание по линни, а в друг на пиксел промажешь. Надёжнее отслеживать нажатие на расстоянии нескольких пиксел в обе стороны от линии.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.

Последний раз редактировалось angvelem, 26.10.2011 в 21:38.
Ответить с цитированием
  #8  
Старый 26.10.2011, 22:19
Mifody Mifody вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 25
Репутация: 10
По умолчанию

А вот с этого места по подробнее пожалуйста .
А то я всю голову себе сломал, как отследить на какой именно линии щелчек мышью был?
Допустим я получаю координаты щелчка (собственно, они как я помню идут параметрами события), фиг с ним, пересчитаю в систему координат чертежа (если масштабировался), а какую линию я пытаюсь выбрать?

Последний раз редактировалось Mifody, 26.10.2011 в 22:24.
Ответить с цитированием
  #9  
Старый 26.10.2011, 22:30
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Я бы, как вариант, хранил координаты точек линии в буфере. И уже от них отталкиваться попал/не попал. Проблема будет, когла линии пересекаются или расположены достаточно близко. Но даже если мы их сделаем объектами от этого не избавиться.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #10  
Старый 26.10.2011, 22:33
Mifody Mifody вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 25
Репутация: 10
По умолчанию

ну для линий, это в принципе еще ничего, а дуги и окружности?
А если учитывать, что средний чертеж может насчитывать от 50 000 сегментов (и поверьте, это еще не предел)

З.Ы. уж поверьте, я не упираюсь ультимативно в OpenGL/DirectX, просто пока не могу придумать как реализовать выбор. Вот наоборот, подсветить линию привязанной к определенной строке кода - не вопрос, а наоборот...

Последний раз редактировалось Mifody, 26.10.2011 в 22:37.
Ответить с цитированием
  #11  
Старый 26.10.2011, 22:39
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Количество 50 000 немного, а для сплайнов нужен другой подход. Можно попытаться замутить структуру, где описывается тип линии, радиус изгиба и т.д., а можно всё-таки сделать их объектами - это упростит задачу.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #12  
Старый 26.10.2011, 22:55
Mifody Mifody вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 25
Репутация: 10
По умолчанию

Цитата:
а можно всё-таки сделать их объектами - это упростит задачу
Вот вот .
На самом деле может и я вернусь к GDI, если не получится победить одну проблемку. Пока планирую переписать код под "чистый" OpenGL, если с памятью проблемы останутся - прийдется еще "медитировать"
Ответить с цитированием
  #13  
Старый 26.10.2011, 22:57
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Переход на OpenGL, не поможет упростить решение - что под курсором.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
  #14  
Старый 26.10.2011, 23:04
Mifody Mifody вне форума
Прохожий
 
Регистрация: 15.12.2010
Сообщения: 25
Репутация: 10
По умолчанию

с "чистым" серьезно пока не разбирался, на вскидку собираюсь использовать примерно такой принцип http://libray.narod.ru/Program/DOpenGL/book/1_4.htm
сейчас реализовано на GLScene но писал в #4 посте, что проблемы с памятью. На самом деле там слишком много напихано в объекты
Ответить с цитированием
  #15  
Старый 26.10.2011, 23:14
Аватар для angvelem
angvelem angvelem вне форума
.
 
Регистрация: 18.05.2011
Адрес: Омск
Сообщения: 3,970
Версия Delphi: 3,5,7,10,12,XE2
Репутация: выкл
По умолчанию

Загляни сюда.
__________________
Je venus de nulle part
55.026263 с.ш., 73.397636 в.д.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 11:36.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter