Металл2024 Реклама
Метобр2024 Реклама

Для сотрудников компании Picaso 3D - мой способ получения контура пути сопла/фрезы для генерации G-кода.

accurate_random
Идет загрузка
Загрузка
05.02.2018
2112
37
Личные дневники

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

1
Что зачем и как (эта запись для сотрудников компании, которые вышли со мной на некоторое общение на этом портале, но я к сожалению не могу перейти к активному сотрудничеству с ними - ибо у меня своих проблем по горло, но поделиться мыслями всегда буду рад и что-то подсказать, если придумаю что-то):

Это длинная история, поэтому я её максимально сокращу. Писал я свой генератор G-кода для фрезы, но потом что-то увлёкся другой программой и потом появились новые дела и я бросил генератор.

В ходе его написания была серьъёзная проблема - получение контура пути фрезы, дело в том, что одно дело - контур самой детали, а фреза должна идти совсем по другой траектории по смещению наружу, она-же саму деталь 'грызть' не должна. Тогда я обратился с вопросом на cyberforum.ru, там я в общем и консультируюсь по среде разработки в которой пишу коды и разные нужные мне программулинки, бывает надо, и очень часто, надо просто позарез.

Я долго ждал ответа, дня три наверное, в итоге появился человечек, который занимался данной проблемой и не один, и расписал мне все проблемы, которые возникают при решении данного ТЗ. В общем они 'заюзали' для решения ТЗ нелинейную математику, он мне выложил все проблемы на эскизах - это был какой-то ужос, я сразу понял, что если я пойду этим путём, то можно сразу делать отмашку пересечения финишной прямой, причём без решения ТЗ, короче говоря - можно забыть об этом ТЗ и его решении.

Но есть у меня такое качество - что нибудь придумать этакое, чтобы максимально облегчить себе задачу. Начал думать, причём я сразу перешёл к линейной математике - начал искать способы адаптации ТЗ к ней, а в этом у меня опыт уже был небольшой, так например я придумал как игру в шахматы свести к решению обычных линейных уравнений, ну и естесственно я начал рыть в этом направлении, в котором у меня уже что-то получалось когда-то.

И вот к чему я пришёл, я не великий кодер, не великий математик, но способы я придумаю очень быстро - это у меня получается хорошо, особенно когда задача сводится к уменьшению объёма и сложности поставленных задач и работ.

Так как я не доделал свой генератор - нету времени, просто его катастрофически нету, несмотря на то даже, что я временно БР (ещё недели две точно), и даже не имея средств на настоящий момент на приобретение каких-то штуцеров там на компрессор, ещё какой-то там мелочёвки, работы к меня всё равно валом - опять пишу код, но другой, у меня там получается программа недоCAD, очень подойдёт всяким самодельщикам, которым надо рассчитывать всякие движки, муфты, в общем всё что они делаю самостоятельно, но и в итоге там и аппарат весь можно будет рассчитать. Там мне не так много работы - к тому-же я и там придумал очень хорошую 'удобняшку', коей нет ни в одной CAD системе или научном калькуляторе программируемом - для самодельщиков эта прога будет просто цаца.

Итак поехали долго уже короче, сами посмотрите насколько удобен этот путь обхода нелинейной математики, я не знаю - потому что не доделал.
Для сотрудников компании Picaso 3D - мой способ получения контура пути сопла/фрезы для генерации G-кода.
Я не люблю паинтовские ущербные схемы, и предпочитаю визуализацию 3D.

1-это сама модель, она зелёная, здесь рассматриваются срезы, цифрой 1 обозначен контур модели (понятно что я взял простую модель, она не допустит самопересечени, но об этом позже, мне просто так быстрее сделать пояснение по способу). Нам нужно получить контур движения или сопла или фрезы, чтобы уйти от нелинейной математики, которая в последствии обработки самопересечений повлечёт за собой сложный анализ булевых операций (а я не люблю проверок условий, люблю использовать безусловные кострукции с использованием массивов процедур, в современном FPC такое можно, правда об этом мало кто знает (со мною даже спорили какие-то студенты, но эксперт помог поставить их на место, они даже не думали и не пытались в данном направлении, а там уже давно всё готово - бери и юзай функционал), но я знаю - потому как иногда мне удается иногда сформулировать правильно мысль и задать эксперту по среде разработки нужный вопрос-'можно или нельзя так делать?';).

Итак как я это делаю. Всё просто: представьте себе, что Вы вырезали из бумаги контур модели, нужно получить контур для фрезы или для сопла. Для этого Вы берёте контур (допустим он жёсткий) и помещаете его на поверхность из песка, или просто красящим веществом его обмазываете и на бумагу помещаете. А потом вы делаете поступательно-вращетельным движением оборот диаметр которого равен радиусу сопла или фрезы, оставляя отпечаток. В идеале результатом сей 'булевой' операции получится два контура с заполнением между ними - контур красного среза и контур синего среза. Контур синего среза (3) - это контур движения фрезы, а контур красного среза (2) - это контур движения сопла принтера. Одну петлю мы уже нарезали для сопла, потом берём эту петлю и делаем с ней то-же самое - получим внутри контур насколько пластик петли снаружи заходит внутрь детали, потом берём этот контур контур и делаем снова оборот вращательно-поступательного - получаем контур движения сопла для второй снаружи петли , и далее по циклу.

Тут никакой нелинейной математики нет. Целесообразность данного решения оценить не могу - я забросил это дело и времени у меня на него нет. Но мне кажется, что при 'механическом' вычислении (мой способ этот) я ухожу от ненужного вычисления вещественных переменных и последующего преобразования их в целочисленные, мне это уже получается не нужно, да ещё и в нейлинейной математике. Я могу сразу инвертировать данные в целочисленные и оперировать ими (правда радиус сопла - нецелочеслинен, но это всего-лишь вопрос масштаба). Во ворых - опыть-же на сугубо мой взгляд, я получаю больше удобства по вычислению, ибо у меня чётче вырисовываются нормали линий на двумерном срезе, но это лишь догадка - я до этой части вообще не доходил.

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

А Вы уже как специалисты смотрите сами что и как. Успехов. Если пойдёт на пользу-буду рад, я не вижу криминала в том, что сотрудники общаются с пользователями - это им только плюс и плюс к общему развитию.

Подпишитесь на автора

Подпишитесь на автора, если вам нравятся его публикации. Тогда вы будете получать уведомления о его новых статьях.

Отписаться от уведомлений вы всегда сможете в профиле автора.

1
Комментарии к статье
Кремень КБ Реклама
Кремень КМ Реклама