Здравствуйте.
Есть потребность в предпросмотре G-кода, что там в последствии станок фрезеровать будет.
Как это сделать прямыми линиями, я более менее понял, но как дело дошло до дуг, что то не пойму как это сделать...
Прикреплю несколько файлов в архиве, то как должно выглядеть на самом деле, краткое пояснение g-кода, мою программку недоделанную, пример g-кода... ну а также пробник где можно порисовать дуги и ее область.
Если кто то сталкивался, подскажите пожалуйста......
(упс, не допер как залить архив...)
Залил на яндекс диск https://yadi.sk/d/ri4UOL5GRd_NAA
Редактировалось 2 раз(а), последний 2020-06-22 14:27:30
Этот топик читают: Гость
Ответов: 106
Рейтинг: 0
|
|||
карма: 0 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Gitarist, окружности (дуги) рисуются проще через синусы/косинусы
SIN
|
|||
карма: 19 |
|
Ответов: 2236
Рейтинг: 676
|
|||
Gitarist писал(а): ну а также пробник где можно порисовать дуги и ее область.Попробуйте измененный элемент Img_Arc. При включении свойства UseAngle = True. Point3 будет задавать начало дуги, а Point4 конец дуги в градусах. Зайдите в эту тему: Доработка элементов ГрафикаРисование Скачайте архив с элементами в первом посте (testelements.zip). Замените файл hiImg_Arc.pas в папке \Elements\delphi\code\ и файл Img_Arc.ini в папке \Elements\delphi\conf\. Оригинальные файлы скопируйте для последующего восстановления. Перезапустите HiAsm. Схема для тестирования
flood Вот казалось бы открыть Paint (или какой другой редактор) и наглядно показать как рисуется дуга в этом g-коде. |
|||
карма: 11 |
| ||
Голосовали: | Gitarist |
Ответов: 106
Рейтинг: 0
|
|||
sla8a писал(а): Скачайте архив с элементами в первом посте (testelements.zip).Замените файл hiImg_Arc.pas в папке \Elements\delphi\code\ и файл Img_Arc.ini в папке \Elements\delphi\conf\. Сделал все, как вы написали, теперь программа не собирается... Видимо что то еще надо... лог C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(26) Error: Undeclared identifier: 'PGeometricPen' C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(40) Error: Undeclared identifier: '_prop_UseOffsetFill' C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(43) Error: Undeclared identifier: '_data_OffsetFill' C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(70) Error: Undeclared identifier: '_prop_Outline' C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(72) Error: Undeclared identifier: '_data_Pen' C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(72) Error: Undeclared identifier: 'GEOMETRICPEN_GUID' C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(73) Error: Operator not applicable to this operand type C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(94) Error: Undeclared identifier: '_prop_UseAngle' C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(113) Error: Operator not applicable to this operand type C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(113) Error: Type of expression must be BOOLEAN C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiImg_Arc.pas(113) Error: Missing operator or semicolon C:\Users\USER\AppData\Roaming\HiAsm_AltBuild\Elements\delphi\code\hiMainForm_19D6610.pas(8) Fatal: Could not compile used unit 'hiImg_Arc.pas' Леонид писал(а): Gitarist, окружности (дуги) рисуются проще через синусы/косинусы Спасибо за совет Леонид, не первый раз выручаете! Подумаю чуть позже (после того как разберусь с Img_Arc.ini\ini) как прикрутить вашу схемку к отрисовке дуг SIN Редактировалось 3 раз(а), последний 2020-06-23 14:24:48 |
|||
карма: 0 |
|
Ответов: 2236
Рейтинг: 676
|
|||
Gitarist писал(а): программа не собираетсяАрхив с элементом и примером |
|||
карма: 11 |
|
Ответов: 106
Рейтинг: 0
|
|||
Леонид писал(а): Gitarist, окружности (дуги) рисуются проще через синусы/косинусы SIN Этот пример маленько не то что нужно. В нем можно задать центр дуги и получить к примеру массив координат точек для отрисовки. А мне известно только 4 значения для постороения дуги: дуга по часовой или против (G02 или G03), координата начала дуги, координата конца дуги, и радиус. Как используя эти 4 переменные отрисовать дугу? например, такой текст как отрисовать: G00X100Y100 - начало дуги G03X200Y100A50 - "G03"- по часовой, "X200Y100"- конец дуги, "A50" - радиус. Редактировалось 2 раз(а), последний 2020-06-23 16:51:21 |
|||
карма: 0 |
|
Ответов: 494
Рейтинг: 163
|
|||
Gitarist писал(а): "G03"- по часовойа разве G03 по часовой, вроде G03 - круговая интерполяция против часовой стрелки. пояснение с рисунком https://www.intuwiz.ru/articles/g02-g03.html Редактировалось 1 раз(а), последний 2020-06-23 19:52:05 |
|||
карма: 4 |
|
Ответов: 2236
Рейтинг: 676
|
|||
tig-rrr, правильно понимаю что координаты это диаметр (как в примере ТС) или хорда окружности от которой и рисуется дуга?
|
|||
карма: 11 |
|
Ответов: 494
Рейтинг: 163
|
|||
карма: 4 |
|
Ответов: 2236
Рейтинг: 676
|
|||
Тогда достаточно стандартного элемента.
|
|||
карма: 11 |
|
Ответов: 494
Рейтинг: 163
|
|||
Или как предложил
Леонид писал(а): окружности (дуги) рисуются проще через синусы/косинусы рисовать самому
Редактировалось 5 раз(а), последний 2020-06-25 18:49:26 |
|||
карма: 4 |
| ||
Голосовали: | Gitarist |
Ответов: 106
Рейтинг: 0
|
|||
tig-rrr писал(а): Gitarist писал(а):"G03"- по часовой а разве G03 по часовой, вроде G03 - круговая интерполяция против часовой стрелки. пояснение с рисунком https://www.intuwiz.ru/articles/g02-g03.html Редактировалось 1 раз(а), последний 2020-06-23 19:52:05 Конечно же против... Очепятался, звинити пзязя... tig-rrr писал(а): рисовать самомуПрикольная схемка! Точно, отрисовывать можно же линиями, не обязательно дуги... Спасибо большое! Попробуем прикрутить... --- Добавлено в 2020-06-25 08:40:57 sla8a писал(а): tig-rrr, правильно понимаю что координаты это диаметр (как в примере ТС) или хорда окружности от которой и рисуется дуга?но ведь дуга может быть иметь еще вот такой вид: Редактировалось 4 раз(а), последний 2020-06-25 08:44:40 |
|||
карма: 0 |
|
Ответов: 106
Рейтинг: 0
|
|||
tig-rrr писал(а): Или как предложилЛеонид писал(а): окружности (дуги) рисуются проще через синусы/косинусы рисовать самому Но нет таких вводных как в вашем примере... угол, центр итд... Нипанимаю чот --- Добавлено в 2020-06-25 14:19:42 Кстати, если отрисовывать что то подобное как на картинке выше, G-Код выглядит примерно так: G00X20.000Y20.000 G02X85.000Y160.000A85.089 G02X150.000Y20.000A85.089 Редактировалось 2 раз(а), последний 2020-06-25 14:20:06 |
|||
карма: 0 |
|
Ответов: 8921
Рейтинг: 823
|
|||
Ну, коллеги, создаётся впечатление, что вы или прогуливали арифметику в школе, или являетесь жертвами ЕГ или одно из двух
Gitarist, нарисованная вами "балда" целиком и полностью задаётся значением радиуса Для решения поставленной ТС задачи в первую очередь надо вычислить положение ДВУХ центров искомой окружности! Тут несколько путей -- решить систему из двух окружностей по двум точкам пересечения, или найти линию перпендикулярную нашей хорде и на ней искать точки на расстоянии радиуса опять через систему из двух уравнений, или повернуть координаты до параллельности одной из осей хорде, по Пифагору посчитать эти центры окружностей и повернуть координаты в исходное положение. Когда центры найдены, то нарисовать кусочек окружности не составит труда с любой точностью. К тому же ТС не рисует, но "фрезерует" и поэтому нужна равномерность, т. е. расчёт точек по углу с выходом на таблицу. Придётся заняться самому |
|||
карма: 19 |
|
Ответов: 106
Рейтинг: 0
|
|||
Леонид писал(а): Тут несколько путей -- решить систему из двух окружностей по двум точкам пересечения, или найти линию перпендикулярную нашей хорде и на ней искать точки на расстоянии радиуса опять через систему из двух уравнений, или повернуть координаты до параллельности одной из осей хорде, по Пифагору посчитать эти центры окружностей и повернуть координаты в исходное положение.Пожалуй, пойду лучше выйду в окно... |
|||
карма: 0 |
|