|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Симуляция программы для ЧПУ 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
|
|||
|
|||
ыыы, уважаемый. Тут два варианта
1. искать прогу в интернете (но только скорее всего дез исходников) 2. завалить меня исходными данными и ждать, правда я пока пишу не на чистом OpenGL, но похоже прийдется переходить. Кстати, что за код такой?, спецификация отличается от стандартной. |
#3
|
|||
|
|||
Готовая программа без исходника не подходит,так как симуляцию хочу присоеденить к своей программе. Если буду делать сам уйдет много времени ,так как я новичок в программировании.
Этот код подходит к программе Mach 3( программа управляющая станком ЧПУ ). Если Вы согласны мне помочь сообщите пожалуйсто сколько это будет стоить. |
#4
|
|||
|
|||
вопрос следующий, надо работать с чистым OpenGL или с какой его оберткой? Я пытаюсь сделать через GLScene, но он загнулся на большом количестве линий. Сейчас жду - человек должен выложить классы, вроде как спасут ситуацию. Но у меня чуть другая ситуация - мне надо по выбору линии показывать строчку кода, отвечающую за рисование.
А вообще что именно не получается сделать? |
#5
|
|||
|
|||
А зачем вам OpenGL чтобы в 2D рисовать? Уверяю, GDI справится на ура, если умеючи. А неумеючи - так и OpenGL и DirecDraw не спасут.
Просто рисуйте сначала на TBitmap, а на экран выводите TBitmap в событии OnPaint. |
#6
|
|||
|
|||
Lucky192 - не знаю, какую имено задачу решает ТС, но у меня требовалось отслеживание по какой именно линии клик мышкой был. Как такое в GDI сделать?
|
#7
|
||||
|
||||
Событие мышки у тебя конечно запрещены как потенциально опасные?
Я бы не стал пытаться точно отслеживать попадание по линни, а в друг на пиксел промажешь. Надёжнее отслеживать нажатие на расстоянии нескольких пиксел в обе стороны от линии. Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. Последний раз редактировалось angvelem, 26.10.2011 в 21:38. |
#8
|
|||
|
|||
А вот с этого места по подробнее пожалуйста .
А то я всю голову себе сломал, как отследить на какой именно линии щелчек мышью был? Допустим я получаю координаты щелчка (собственно, они как я помню идут параметрами события), фиг с ним, пересчитаю в систему координат чертежа (если масштабировался), а какую линию я пытаюсь выбрать? Последний раз редактировалось Mifody, 26.10.2011 в 22:24. |
#9
|
||||
|
||||
Я бы, как вариант, хранил координаты точек линии в буфере. И уже от них отталкиваться попал/не попал. Проблема будет, когла линии пересекаются или расположены достаточно близко. Но даже если мы их сделаем объектами от этого не избавиться.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#10
|
|||
|
|||
ну для линий, это в принципе еще ничего, а дуги и окружности?
А если учитывать, что средний чертеж может насчитывать от 50 000 сегментов (и поверьте, это еще не предел) З.Ы. уж поверьте, я не упираюсь ультимативно в OpenGL/DirectX, просто пока не могу придумать как реализовать выбор. Вот наоборот, подсветить линию привязанной к определенной строке кода - не вопрос, а наоборот... Последний раз редактировалось Mifody, 26.10.2011 в 22:37. |
#11
|
||||
|
||||
Количество 50 000 немного, а для сплайнов нужен другой подход. Можно попытаться замутить структуру, где описывается тип линии, радиус изгиба и т.д., а можно всё-таки сделать их объектами - это упростит задачу.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#12
|
|||
|
|||
Цитата:
На самом деле может и я вернусь к GDI, если не получится победить одну проблемку. Пока планирую переписать код под "чистый" OpenGL, если с памятью проблемы останутся - прийдется еще "медитировать" |
#13
|
||||
|
||||
Переход на OpenGL, не поможет упростить решение - что под курсором.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
#14
|
|||
|
|||
с "чистым" серьезно пока не разбирался, на вскидку собираюсь использовать примерно такой принцип http://libray.narod.ru/Program/DOpenGL/book/1_4.htm
сейчас реализовано на GLScene но писал в #4 посте, что проблемы с памятью. На самом деле там слишком много напихано в объекты |