понедельник, 18 февраля 2013 г.

Подумаем над доводчиком

Каким должен быть доводчик? Точнее, что он должен делать?
Составим список:

  1. Находить отверстия или потенциальные опасности для режущего инструмента. Для этого потребуется видоизменить существующую в моем скрипте функцию: findListOfNesting(listofCircuitCoords). Каким образом?
    1. Чтобы она отображала, не только индекс вложенности но и серию вложенности. Что я подразумеваю под понятием серия вложенности?
      Под этим я подразумеваю, скажем так всю матрешку. То есть все контуры, которые, как бы то ни было друг в дружку вложены.
  2. Далее нужно в зависимости от Индекса вложенности, вновь составить маршрут фрезы и проверить полученный маршрут на наличие узких мест.
  3. В случае если таковые имеются, разбить контур, в котором найдено узкое место, на подконтуры.
***
В итоге раздумывая над доводчиком. Написал еще один анализатор, который поможет с доводчиком.
findBottlenecksInCircuit(listOfMillCoords)
Но во всей своей писанине я не продумал одного момента, когда останавливаться?
Как доводчик, должен узнать, что все, доводить больше нечего. При том, что каждое звено по своему до ума доводится. Что может быть финалом?
К сожалению пока я не в силах данной вещи придумать :(
Но надеюсь, рано или поздно меня осенит гениальная идея!

суббота, 2 февраля 2013 г.

Результаты медленной работы


Написан анализатор. Правда, меня удивляет, что он берет запас. Видать из-за численных вычислений машины. О размерах запаса пока судить сложно. Если не ошибаюсь всего 0,05 единиц измерения. По крайней мере такой запас. взяла программа при радиусе фрезы 0,05 единиц измерения.
Осталось написать доводчик, ну и саму перегонку в G/M коды. Доводчик, прост по сравнению с написанным анализатором. Суть его в том, чтобы не сломать фрезу если тонкой фрезой мы фрезеруем большое отверстие. Просто когда выпиленную деталь начнет колбасить, она может запросто сломать инструмент при соответствующей глубине фрезерования.
Перегонщик в G/M-коды тоже штука простая. Координаты есть, просто запуск фрезерования по координатам. на этапе перехода от контура к контуру. Включаем холостой ход, для повышения производительности (на максимальной скорости подачи движется инструмент, ибо без нагрузки). В моем скрипте реализована только линейная интерполяция. Также до сих пор требуется, расстановка пробелов и табуляций, дабы blender не матерился.
Список целей:
  1. Доводчик
  2. Перегон в G/M-коды
  3. Графический интерфейс (это уже по желанию и настроению)
Ну а сейчас баиньки. Время 9 утра :)

***
Чуть позднее обнаружил мелкую неурядицу. У меня есть проверка на наличие пересечений контуров, но нету проверки если пересечение вдруг окажется внутри контура!