<p>Требуется разработка Python-скрипта для автоматизации упаковки геометрических фигур с интеграцией их в DXF файл</p><p>Описание проекта:</p><p>Необходимо создать скрипт, который:</p><p>1. Генерирует фигуры (прямоугольники, квадраты, круги) на основе входных данных:</p><p> - Формат входных данных: или + текстовая метка с номером заказа.</p><p> - Каждая фигура должна содержать номер заказа, отцентрированный шрифтом <code>simplex.shx</code>.</p><p> - Точное соответствие геометрии: углы прямоугольников – 90°, окружности – без искажений многополигональные.</p><p>2. <b>Оптимизирует размещение фигур</b> на листе:</p><p> - Реализация алгоритма <b>2D bin packing</b> с поддержкой поворотов фигур (90°, 45 °).</p><p> - Минимизация свободного пространства: целевой коэффициент заполнения ?85%.</p><p> - Учет зазоров между фигурами (настраивается через конфиг).</p><p>3. <b>Экспортирует результат</b> в формат <code>.dxf</code> (AutoCAD 2018+ совместимость):</p><p> - Отдельные слои для контуров фигур и текста.</p><p><b>Конфигурационный файл:</b></p><p>- Формат: YAML/JSON.</p><p>- Параметры:</p><p> ```yaml</p><p> sheet:</p><p> width: 9999999 # мм</p><p> height: 1420 # мм</p><p> gaps:</p><p> default: 3.5 # мм</p><p> circle: 4 # мм (специфичный зазор для кругов)</p><p> colors:</p><p> rectangle: "#FF0000"</p><p> circle: "#00FF00"</p><p> text: “#……”</p><p> metadata_masks:</p><p> - pattern: "круг*" # шаблон для фильтрации</p><p> params: {color: "#0000FF", gap: 15}</p><p> ```</p><p><b>Требования к качеству:</b></p><p>- Точность позиционирования: ±0.01 мм.</p><p>- Обработка краевых случаев: пересечения фигур (недопустимо), выход за границы листа (недопустимо).</p><p>- Валидация входных данных (ошибки формата, дубликаты номеров заказов).</p><p><b>Ожидания от исполнителя:</b></p><p>- Портфолио с примерами проектов по 2D-оптимизации или CAD-автоматизации.</p><p>- Понимание алгоритмов упаковки (Guillotine, Maximal Rectangles, Skyline).</p><p>- Опыт работы с библиотеками <code>ezdxf</code>, <code>trimesh</code>, <code>rectpack</code>. (Не принципиально использование rectpack если не получается достичь целевого коэффициента заполнения. Напомню что целевой показатель более 85%)</p><p><b>Результат:</b></p><p>- Рабочий скрипт с документацией.</p><p>- Примеры тестовых данных и конфигов.</p><p>- Инструкция по настройке.</p><p>Детализация требований будет предоставлена после согласования.</p>