Требуется разработка Python-скрипта для автоматизации упаковки геометрических фигур с интеграцией их в DXF файл

Описание проекта:

Необходимо создать скрипт, который:

1. Генерирует фигуры (прямоугольники, квадраты, круги) на основе входных данных:

   - Формат входных данных: [длина×ширина] или [радиус] + текстовая метка с номером заказа.

   - Каждая фигура должна содержать номер заказа, отцентрированный шрифтом simplex.shx.

   - Точное соответствие геометрии: углы прямоугольников – 90°, окружности – без искажений многополигональные.

2. Оптимизирует размещение фигур на листе:

   - Реализация алгоритма 2D bin packing с поддержкой поворотов фигур (90°, 45 °).

   - Минимизация свободного пространства: целевой коэффициент заполнения ≥85%.

   - Учет зазоров между фигурами (настраивается через конфиг).

3. Экспортирует результат в формат .dxf (AutoCAD 2018+ совместимость):

   - Отдельные слои для контуров фигур и текста.

Конфигурационный файл:

- Формат: YAML/JSON.

- Параметры:

  ```yaml

  sheet:

    width: 9999999    # мм

    height: 1420     # мм

  gaps:

    default: 3.5     # мм

    circle: 4    # мм (специфичный зазор для кругов)

  colors:

    rectangle: "#FF0000"

    circle: "#00FF00"

text: “#……”

  metadata_masks:

    - pattern: "круг*"  # шаблон для фильтрации

      params: {color: "#0000FF", gap: 15}

  ```

Требования к качеству:

- Точность позиционирования: ±0.01 мм.

- Обработка краевых случаев: пересечения фигур (недопустимо), выход за границы листа (недопустимо).

- Валидация входных данных (ошибки формата, дубликаты номеров заказов).

Ожидания от исполнителя:

- Портфолио с примерами проектов по 2D-оптимизации или CAD-автоматизации.

- Понимание алгоритмов упаковки (Guillotine, Maximal Rectangles, Skyline).

- Опыт работы с библиотеками ezdxf, trimesh, rectpack.  (Не принципиально использование rectpack если не получается достичь целевого коэффициента заполнения. Напомню что целевой показатель более 85%)

Результат:

- Рабочий скрипт с документацией.

- Примеры тестовых данных и конфигов.

- Инструкция по настройке.

Детализация требований будет предоставлена после согласования.

день назад
Андрей
день в сервисе
Был
день назад

Заявки фрилансеров

Алексей
 
51 год
8 лет в сервисе
Был
6 часов назад
110 отзывов(-1)
день назад
Максим
 
35 лет
год в сервисе
Был
день назад
1 отзыв
день назад
Ярослав
 
20 лет
24 дня в сервисе
Был
4 часа назад
день назад
Маркиян
 
26 лет
2 года в сервисе
Был
8 часов назад
3 отзыва
день назад
Назар
 
33 года
3 года в сервисе
Был
10 часов назад
4 отзыва(-1)
день назад
Лучший веб-программист апреля
Вадим
 
18 лет
2 года в сервисе
Был
4 часа назад
день назад