![]()  | 
	
 
  | 
		
			
  | 	
	
	
		
		|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны | 
![]()  | 
	
	
| 
		 | 
	Опции темы | Поиск в этой теме | Опции просмотра | 
| 
		 
			 
			#1  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Хотел бы купить готовый код программы 
		
	
		
		
		
		
		
		
			( 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  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Событие мышки у тебя конечно запрещены как потенциально опасные? 
		
	
		
		
		
		
			
		
		
		
		
		
			![]() Я бы не стал пытаться точно отслеживать попадание по линни, а в друг на пиксел промажешь. Надёжнее отслеживать нажатие на расстоянии нескольких пиксел в обе стороны от линии. Последний раз редактировалось angvelem, 26.10.2011 в 21:38.  | 
| 
		 
			 
			#8  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 А вот с этого места по подробнее пожалуйста  
		
	
		
		
		
		
		
		
			 .А то я всю голову себе сломал, как отследить на какой именно линии щелчек мышью был? Допустим я получаю координаты щелчка (собственно, они как я помню идут параметрами события), фиг с ним, пересчитаю в систему координат чертежа (если масштабировался), а какую линию я пытаюсь выбрать? Последний раз редактировалось Mifody, 26.10.2011 в 22:24.  | 
| 
		 
			 
			#9  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Я бы, как вариант, хранил координаты точек линии в буфере. И уже от них отталкиваться попал/не попал. Проблема будет, когла линии пересекаются или расположены достаточно близко. Но даже если мы их сделаем объектами от этого не избавиться. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#10  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 ну для линий, это в принципе еще ничего, а дуги и окружности? 
		
	
		
		
		
		
		
		
			А если учитывать, что средний чертеж может насчитывать от 50 000 сегментов (и поверьте, это еще не предел) З.Ы. уж поверьте, я не упираюсь ультимативно в OpenGL/DirectX, просто пока не могу придумать как реализовать выбор. Вот наоборот, подсветить линию привязанной к определенной строке кода - не вопрос, а наоборот... Последний раз редактировалось Mifody, 26.10.2011 в 22:37.  | 
| 
		 
			 
			#11  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Количество 50 000 немного, а для сплайнов нужен другой подход. Можно попытаться замутить структуру, где описывается тип линии, радиус изгиба и т.д., а можно всё-таки сделать их объектами - это упростит задачу. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#12  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 Цитата: 
	
  .На самом деле может и я вернусь к GDI, если не получится победить одну проблемку. Пока планирую переписать код под "чистый" OpenGL, если с памятью проблемы останутся - прийдется еще "медитировать"  | 
| 
		 
			 
			#13  
			
			
			
			
		 
		
		
	 | 
||||
		
		
  | 
||||
| 
	
	
		
			
			 Переход на OpenGL, не поможет упростить решение - что под курсором. 
		
	
		
		
		
		
			
		
		
		
		
	
		
		
	
	
	 | 
| 
		 
			 
			#14  
			
			
			
			
		 
		
		
	 | 
|||
		
		
  | 
|||
| 
	
	
		
			
			 с "чистым" серьезно пока не разбирался, на вскидку собираюсь использовать примерно такой принцип http://libray.narod.ru/Program/DOpenGL/book/1_4.htm 
		
	
		
		
		
		
		
	
		
		
	
	
	сейчас реализовано на GLScene но писал в #4 посте, что проблемы с памятью. На самом деле там слишком много напихано в объекты  |