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

Результат:

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

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

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

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

2 месяца назад
guest_1748025246128
2 месяца в сервисе
Был
месяц назад

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

Владислав
 
24 года
3 года в сервисе
Был
месяц назад
месяц назад
Іван
 
28 лет
месяц в сервисе
Был
месяц назад
месяц назад
Саша
 
30 лет
месяц в сервисе
Был
месяц назад
месяц назад
Джавид
 
25 лет
8 месяцев в сервисе
Был
12 часов назад
4 отзыва
2 месяца назад
Алексей
 
51 год
8 лет в сервисе
Был
18 часов назад
110 отзывов(-1)
2 месяца назад
Максим
 
35 лет
год в сервисе
Был
21 час назад
1 отзыв
2 месяца назад
Ярослав
 
20 лет
2 месяца в сервисе
Был
4 дня назад
1 отзыв
2 месяца назад
Маркиян
 
26 лет
2 года в сервисе
Был
15 часов назад
3 отзыва
2 месяца назад
Назар
 
33 года
3 года в сервисе
Был
час назад
4 отзыва(-1)
2 месяца назад
Вадим
 
18 лет
2 года в сервисе
Был
14 часов назад
8 отзывов(-2)
2 месяца назад