Требуется разработка 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%)

Результат:

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

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

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

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

24 дня назад
Андрей
24 дня в сервисе
Был
18 дней назад

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

Владислав
 
24 года
3 года в сервисе
Был
14 дней назад
19 дней назад
Іван
 
27 лет
23 дня в сервисе
Был
17 дней назад
23 дня назад
Саша
 
29 лет
23 дня в сервисе
Был
22 дня назад
23 дня назад
Джавид
 
25 лет
8 месяцев в сервисе
Был
4 дня назад
4 отзыва
23 дня назад
Лучший веб-программист мая
Алексей
 
51 год
8 лет в сервисе
Был
14 часов назад
110 отзывов(-1)
24 дня назад
ТОП-10
Веб-программирование
Максим
 
35 лет
год в сервисе
Был
17 часов назад
1 отзыв
24 дня назад
Ярослав
 
20 лет
2 месяца в сервисе
Был
5 дней назад
1 отзыв
24 дня назад
Маркиян
 
26 лет
2 года в сервисе
Был
6 дней назад
3 отзыва
24 дня назад
Назар
 
33 года
3 года в сервисе
Был
5 часов назад
4 отзыва(-1)
24 дня назад
Лучший веб-программист мая
Вадим
 
18 лет
2 года в сервисе
Был
6 часов назад
6 отзывов(-2)
24 дня назад