ВОПРОС реализован ли средствами CANDLE поиск центра отверстия

Статус
В этой теме нельзя размещать новые ответы.
Тогда вопрос вообще не понял. Сорри - вечер после работы, день был тяжелый, туплю.

Если модель - изолятор, то оцифровать с помощью 3018 можно только с помощью цифрового датчика (микрометр, датчик касания). Микрометром проще, т.к. нет надобности мееедленно красться, чтобы получть точку касания (как в z щупе).

Если обработка происходит в несколько этапов и со сменой инструмента или несколькими переустановами - надо (если нужна точность) находить реперные точки и базовую поверхность обязательно.

Я, впрочем, со своей колокольни. У мну 16к20 и только недавно 675й продал. Буду 6р12 брать. Поэтому мне морально сложновато без микрометров и спиртометров на станках работать. Извиняйте, коллеги, ежели чего не так.
 
tync, да нет всё нормально просто вы в своих (вопрос - ответ) периодически кидаетесь из крайности в крайность, да микрометр ето очень гут, но не для 3018.... а так модно фиксационную модель вырезать на станке и ваши кругляши туда помещать, засверленное отверстие ето вам нули по XY, а заготовка ето ноль при помощи щупа по Z, так просто проще, вы потом могёте её просто убрать, или перенести в другое место, а по засверлу выставить держатель заготовки точно под фрезой
 
  • Последнее редактирование:
Последнее редактирование:
Это как раз понятно. По сути - Вы предлагаете оправку. Но меня смущает несколько вещей.

во первых - погрешности станка. Очень, очень большие. Т.е. Делаете оправку для посадочного диаметра например 20мм = +.1 мм погрешность, потом надеваете на нее деталь с вырезанным отверстием = еще+.1мм. Я думаю - в итоге погрешность до ,5мм в итоге будет. А это очень дохрена даже для игрушки. (хотя для сверленых отверстий - точность будет приемлемая. например позиционирование печатных плат по отверстиям)

Ну, и на всякий чих не наздравствуешься. (в смысле - каждой детальке оправку делать) При той скорости, что есть у 3018 изготовление сначала оправки, потом детали - надо иметь железные яйца.

В принципе - я нисколько не настаиваю. Мне удобнее применить кромкоискатель - Вам оправки и
и щупы.

Технологий изготовления не так уж и много. Выбор - за исполнителем.

Получится у меня кромкоискатель через grbl - покажу как им пользоваться, не получится - будем искать с перломутровыми пуговицами.
 
tync, ну тут я поспорю, я делал поддержку для процессоров (реболинг) там погрешность чтоб микруха помещалась в оправу 0.1 максимум, иначе не совместится с трафаретом в котором отверстия 0.31мм 800 штук
 
tync, ну тут я поспорю, я делал поддержку для процессоров (реболинг) там погрешность чтоб микруха помещалась в оправу 0.1 максимум, иначе не совместится с трафаретом в котором отверстия 0.31мм 800 штук
При изготовлении оправки не требуется искать виртуальный центр модели.
В моем случае внешний размер разный, внутренний тоже, приемлемую точность получаю в два этапа, вставляя внутрь кусок тонкой плоской пружины от старинных часов толшиной 0.1 мм. и собственно поиск центра используя мультиметр в режиме прозвонки и калькулятор.
и второй этап, это холостой проход кольца по траектории нарисованной в аспирине меньше нужного на 0.1. Это на всякий случай, для проверки..
 
В GRBL Есть команда выполнения подпрограммы - 38.2. Для Z щупа используется 38.2z. Если 38.2x или 38.2y рабочая - значит всё ОК и центроискатель/кромкоискатель получится "на пальцах". Ежели нет - придется подождать, пока я разберусь, где в grbl кусок кода, отвечающий за команду 38.2.

И придется перепрошивать дятла новой версией grbl.
 
bCNC позволяет искать центр отверстий , сам этим пользуюсь.
 
О. здорово. А центроискатель там как построен? Перемещениями по осям X-Y или тупо Z-probe?
 
по XY но щупом Z, ничего переключать не надо просто ставите примерно в центр , указываете примерный диаметр и всё.
bcnc.png
 
Проверил. Grbl 1.1 отрабатывает команды 38.2x и 38.2y - т.е. пойск касания по осям x/y. Т.е - вполне свободно можно либо через свечку (Candle) вручную G код ввести, либо забулькать программульку для нахождения центров. bCNC удобнее, но для простых пользователей Windows установка сложновата.

Поэтому ответ на вопрос ТС - ДА можно!
 
Мне 3018 нужен для "потренироваться на кошках". И как всегда - функционала мало. Нужен центроискатель, кромкоискатель, оцифровщик поверхности и многое еще. Мне проще забулькать..
 
  • Последнее редактирование:
Последнее редактирование:
Спасибо автору Candle, подсмотрел код его кнопок.
Написал код и вставил в кнопку. У меня два штырька (болты ) закреплены на столе. Я ставлю в шпиндель длинный алмазный гравер режущей частью в цангу(так как ровный, круглый и угол большой. близко к идеальному цилиндру и цанга у меня 3.175), подключаю датчик "probe" один зажим к валу шпинделя, другой к столу(чтобы был электрический контакт с штырьками). Подвожу щуп (гравер) к левому штырьку и жму кнопку. Программа подводит щуп к штырьку, отводит и запоминает положение Х.
Поднимает щуп, проводит над штырьком опускает щуп
Подводит щуп справа штырька, отводит, в момент разрыва контакта запоминает положение Х, предыдущее значение Х суммирует с полученным, делит пополам, получает центр левого штырька по Х. Поднимает зонд, встает на середину штырька по Х. Аналогино ищет центр штырька по Y и повторяет поиск по Х так как в первом случае не исключено смещение из-за неровности резьбы болта. Вычислят середину между штырьками по X и Y и перемещает щуп туда. Код для отверстия будет короче, без подьемов и опусканий по Z

( f- скорость подхода к штырьку

(f1-скорость отхода от штырька

( ff-скорость перемещения к другому штырьку

( r- расстояние, на которое нужно переместится с запасом, чтобы

( перепрыгнуть через штырек

(d- расстояние возникновения ошибки.Расстояние, на которое отойдет (шпиндель и возникнет ошибка, в случае если датчик probe не перейдет в (состояние "открыто"

( L - расстояние, на которое нужно переместиться, чтобы встать справа от (правого штырька



G21G91;

{var f = 100; var ff = 500; var f1=10; var r = 15; var d = 2; var L=215};

G38.2X{-r}F{f};

G38.4X{d}F{f1};

{var q = vars.PRBx};

g0Z{r}F100;

g0X{-r};

g0Z{-r};

G38.2X{r};

G38.4X{-d}F{f1};

{var qx1 = (q + vars.PRBx) / 2};

g0Z{r}F{f};

G90;

G1X{qx1};



G91;

G0Y{r};

G0Z{-r};

G38.2Y{-r}F{f};

G38.4Y{d}F{f1};

{var q = vars.PRBy};

g0Z{r}F100;

g0Y{-r};

g0Z{-r};

G38.2Y{r};

G38.4Y{-d}F{f1};

{var qy1 = (q + vars.PRBy) / 2};

g0Z{r}F{f};

G90;

G1Y{qy1};



G91;

G0X{r};

G0Z{-r};

G38.2X{-r}F{f};

G38.4X{d}F{f1};

{var q = vars.PRBx};

g0Z{r}F100;

g0X{-r};

g0Z{-r};

G38.2X{r};

G38.4X{-d}F{f1};

{var qx1 = (q + vars.PRBx) / 2};

g0Z{r}F{f};

G90;

G1X{qx1};



G91G0X{L};

G0Z{-r};

G38.2X{-r}F{f};

G38.4X{d}F{f1};

{var q = vars.PRBx};

G0Z{r}F100;

G0X{-r};

g0Z{-r};

G38.2X{r};

G38.4X{-d}F{f1};

{var qx2 = (q + vars.PRBx) / 2};

g0Z{r}F{f};

G90G1X{qx2};



G91G0Y{r};

G0Z{-r};

G38.2Y{-r}F{f};

G38.4Y{d}F{f1};

{var q = vars.PRBy};

g0Z{r}F100;

g0Y{-r};

g0Z{-r};

G38.2Y{r};

G38.4Y{-d}F{f1};

{var qy2 = (q + vars.PRBy) / 2};

g0Z{r}F{f};

G90G1Y{qy2};



G91G0X{r};

G0Z{-r};

G38.2X{-r}F{f};

G38.4X{d}F{f1};

{var q = vars.PRBx};

g0Z{r}F100;

g0X{-r};

g0Z{-r};

G38.2X{r};

G38.4X{-d}F{f1};

{var qx2 = (q + vars.PRBx) / 2};

g0Z{r}F{f};

G90G0X{qx2}Y{qy2};

G90G0X{qx1}Y{qy1};

{var qx=(qx1+qx2)/2};

{var qy=(qy1+qy2)/2};

G0X{qx}Y{qy};

G92X0Y0;
В версии Candle 1.2.12, точки с запятой в конце строки нужно убрать
Ваши сообщения автоматически объединены:

Да, еще r- так же расстояние на которое нужно поднять зонд, чтобы проехать над штырьком. По хорошему надо бы их разделить.
 
  • Последнее редактирование:
Последнее редактирование:
Спасибо автору Candle, подсмотрел код его кнопок.
Написал код и вставил в кнопку. У меня два штырька (болты ) закреплены на столе. Я ставлю в шпиндель длинный алмазный гравер режущей частью в цангу(так как ровный, круглый и угол большой. близко к идеальному цилиндру и цанга у меня 3.175), подключаю датчик "probe" один зажим к валу шпинделя, другой к столу(чтобы был электрический контакт с штырьками). Подвожу щуп (гравер) к левому штырьку и жму кнопку. Программа подводит щуп к штырьку, отводит и запоминает положение Х.
Поднимает щуп, проводит над штырьком опускает щуп
Подводит щуп справа штырька, отводит, в момент разрыва контакта запоминает положение Х, предыдущее значение Х суммирует с полученным, делит пополам, получает центр левого штырька по Х. Поднимает зонд, встает на середину штырька по Х. Аналогино ищет центр штырька по Y и повторяет поиск по Х так как в первом случае не исключено смещение из-за неровности резьбы болта. Вычислят середину между штырьками по X и Y и перемещает щуп туда. Код для отверстия будет короче, без подьемов и опусканий по Z

( f- скорость подхода к штырьку

(f1-скорость отхода от штырька

( ff-скорость перемещения к другому штырьку

( r- расстояние, на которое нужно переместится с запасом, чтобы

( перепрыгнуть через штырек

(d- расстояние возникновения ошибки.Расстояние, на которое отойдет (шпиндель и возникнет ошибка, в случае если датчик probe не перейдет в (состояние "открыто"

( L - расстояние, на которое нужно переместиться, чтобы встать справа от (правого штырька



G21G91;

{var f = 100; var ff = 500; var f1=10; var r = 15; var d = 2; var L=215};

G38.2X{-r}F{f};

G38.4X{d}F{f1};

{var q = vars.PRBx};

g0Z{r}F100;

g0X{-r};

g0Z{-r};

G38.2X{r};

G38.4X{-d}F{f1};

{var qx1 = (q + vars.PRBx) / 2};

g0Z{r}F{f};

G90;

G1X{qx1};



G91;

G0Y{r};

G0Z{-r};

G38.2Y{-r}F{f};

G38.4Y{d}F{f1};

{var q = vars.PRBy};

g0Z{r}F100;

g0Y{-r};

g0Z{-r};

G38.2Y{r};

G38.4Y{-d}F{f1};

{var qy1 = (q + vars.PRBy) / 2};

g0Z{r}F{f};

G90;

G1Y{qy1};



G91;

G0X{r};

G0Z{-r};

G38.2X{-r}F{f};

G38.4X{d}F{f1};

{var q = vars.PRBx};

g0Z{r}F100;

g0X{-r};

g0Z{-r};

G38.2X{r};

G38.4X{-d}F{f1};

{var qx1 = (q + vars.PRBx) / 2};

g0Z{r}F{f};

G90;

G1X{qx1};



G91G0X{L};

G0Z{-r};

G38.2X{-r}F{f};

G38.4X{d}F{f1};

{var q = vars.PRBx};

G0Z{r}F100;

G0X{-r};

g0Z{-r};

G38.2X{r};

G38.4X{-d}F{f1};

{var qx2 = (q + vars.PRBx) / 2};

g0Z{r}F{f};

G90G1X{qx2};



G91G0Y{r};

G0Z{-r};

G38.2Y{-r}F{f};

G38.4Y{d}F{f1};

{var q = vars.PRBy};

g0Z{r}F100;

g0Y{-r};

g0Z{-r};

G38.2Y{r};

G38.4Y{-d}F{f1};

{var qy2 = (q + vars.PRBy) / 2};

g0Z{r}F{f};

G90G1Y{qy2};



G91G0X{r};

G0Z{-r};

G38.2X{-r}F{f};

G38.4X{d}F{f1};

{var q = vars.PRBx};

g0Z{r}F100;

g0X{-r};

g0Z{-r};

G38.2X{r};

G38.4X{-d}F{f1};

{var qx2 = (q + vars.PRBx) / 2};

g0Z{r}F{f};

G90G0X{qx2}Y{qy2};

G90G0X{qx1}Y{qy1};

{var qx=(qx1+qx2)/2};

{var qy=(qy1+qy2)/2};

G0X{qx}Y{qy};

G92X0Y0;
В версии Candle 1.2.12, точки с запятой в конце строки нужно убрать
Ваши сообщения автоматически объединены:

Да, еще r- так же расстояние на которое нужно поднять зонд, чтобы проехать над штырьком. По хорошему надо бы их разделить.

Для дерева мне подходит следующий метод поиска "стенки": берешь полоску бумаги, помещаешь ее между фрезой и "стенкой" и на маленькой скорости подводишь фрезу к детали. При этом полоску бумаги постоянно шевелишь. Как только бумагу зажало, смотришь координаты. Если отверстие достаточно большое, можно найти координаты двух противоположных стенок, найти среднее арифметическое, что и будет центром.
Если деталь нужно обрабатывать с двух сторон, то тут я ставлю два не высоких болтика, нахожу центр между болтиками и устанавливаю центр системы координат, запоминаю координаты центра. Заготовку помещаю рядом, примерно ставлю центр относительно заготовки, в заготовке сверлю углубления соответствующие болтикам. Переворачиваю заготовку и устанавливаю углубления на болтики, закрепляю, устанавливаю центр системы координат - запомненный относительно болтиков. Сверлю углубления (Обратить внимание чтобы фреза не опустилась до болтиков). Потом можно обрабатывать заготовку с двух сторон.
 
  • Последнее редактирование:
Последнее редактирование:
Подвожу щуп (гравер) к левому штырьку и жму кнопку. Программа подводит щуп к штырьку, отводит и запоминает положение Х.
Поднимает щуп, проводит над штырьком опускает щуп
Подводит щуп справа штырька, отводит, в момент разрыва контакта запоминает положение Х, предыдущее значение Х суммирует с полученным, делит пополам, получает центр левого штырька по Х. Поднимает зонд, встает на середину штырька по Х. Аналогино ищет центр штырька по Y и повторяет поиск по Х так как в первом случае не исключено смещение из-за неровности резьбы болта. Вычислят середину между штырьками по X и Y и перемещает щуп туда. Код для отверстия будет короче, без подьемов и опусканий по Z
Зачем делать лишние вычисления, если в конце присваивать X и Y нули? При левом подводе обнулять X, при правом, делить результат, присваивать значение и ехать к нулю X, аналогично и для Y.
Я и вручную так делаю.
Вот как программно взять данные касания и поделить пополам, без макроса, это уже проблема, т. к. сижу пока в 1.1.7., че-то 1.2.12 не вкатила...
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

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

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать