Всем привет! Имеется вопрос. Где и как можно создать программу, связанную с чертежами в AutoCad.
То есть, имеется, допустим, чертеж в 2D паркетного щита (необходимо в паркетную компанию). Каждую деталь этого щита, программа должна разложить на поле из планок и вывести расчет материала с обрезами и т.п. Плюс рассчитывать стоимость реза на ЧПУ (машина, которая режет из материала (планок) криволинейные и прямолинейные детали по программе с высокой точностью), где цена каждого реза может различаться по определенному принципу и т.д.
Полезны будут все советы, в том числе, работа может быть поручена спецу по векторному граф. программированию.
Member
Статус: Не в сети Регистрация: 16.03.2008 Откуда: г. Покров
Оооо, чувствую это на долго работа.
Я, если честно, в АвтоКаде не программировал никогда, но задачи по программированию из геометрии люблю. Буду рад помочь чем смогу.
Можешь показать пример щита и на какие именно составляющие его надо разложить? (выложи в .gif или .jpg)
Вот самый простой рисунок. Каждую деталь необходимо просчитать по отходности (резаться будет из планок определенных размеров, типа 420х70, 50х350, 50х400 мм и т.п.) Далее производится кол-во материала на щит (сумма всего материала, затраченного на детали). И умножается на кол-во щитов.
Member
Статус: Не в сети Регистрация: 16.03.2008 Откуда: г. Покров
Теоретически вроде придумал как разбить на составные части:
1) находим самую левую из самых верхних точек (точка А на рис.1)
2) условно проводим из этой точки прямую вверх и находим отрезок, образующий минимальный угол с ней, отсчитывая ПРОТИВ часовой стрелки (жирный отрезок на рис.2)
3) считаем активным этот отрезок, находим отрезок, образующий минимальный угол с ним, отсчитывая ПО часовой стрелке (ВС на рис.2)
4) считаем активным отрезок ВС, находим отрезок, образующий минимальный угол с ним, отсчитывая ПО часовой стрелке (СD на рис.2)
5) продолжаем пока не вернемся в исходную точку А.
6) из общего списка отрезков (все отрезки образующие весь чертеж) удаляем первый (он всегда принадлежит только одной фигуре - АВ) и дальше удаляем все отрезки одна из точек которого не принадлежит больше никакому другому отрезку (отрезок AE - точка А принадлежит только ему т.к. АВ был удален)
В результате мы имеем выделенную фигуру и уменьшенный набор отрезков с которым мы проделываем всё тоже самое начиная с пункта 1). Так дальше надо будет начать с точки Е (рис. 4), а первый отрезок это отрезок ED.
Это всё безобразие повторяем пока не удалим (пункт 6) все отрезки. Тогда мы будем иметь список отдельных многоугольников с координатами вершин.
#77
Осталось написать макрос для всего этого. По идее я могу попробовать это сделать но я не знаю как получить массив всех отрезков из чертежа, а так-то на VBA думаю сделаю, если сам не справишься.
Есть небольшое дополнение. Кроме расщепления рисунка на детали, программа должна найти среди "стандартных" вариантов планок (то о чем я и говорил 70х420 или 50х350 мм и т.п.) наиболее близкие в каждом случае к отдельной детали, чтобы уменьшить процент отхода (ведь часть та, часть которую отпилят - идет в отход). А дальше подсчитать итоговое кол-во кв. м каждого стандарта (типа 70х420 - 2,356 кв.м; 50х350 - 3,653 кв. м и тд). Сам немного занимался Delphi, VBA знаю не очень.
Member
Статус: Не в сети Регистрация: 16.03.2008 Откуда: г. Покров
Это я понял. Просто сначала в любом случае нужно разбить на части.
Wiskaz писал(а):
найти среди "стандартных" вариантов планок наиболее близкие в каждом случае к отдельной детали
Я надеюсь тут не имеется ввиду что нужно хранить полный перечень кусков, оставшихся от предыдущих отпиливаний и пытаться найти среди этой горы именно ту что надо? Эта задача по сложности помоему уже сопоставима с игрой в шахматы))
Единственное что могу предложить это просто занести стандартные размеры заготовок и дальше брать одну, отрезать сколько нужно, потом еще и так отрезать пока не останется отходная часть меньше чем требуется отрезать, тогда берем вторую и отрезаем от нее уже. Тут конечно можно немного оптимизировать отрезание: сначала отрезать самые длинные, а когда останется маленький кусочек то отрезать максимально длинный из требуемых но не превышающий длинну остатка. (это я бы так отрезал опираясь на свою логику;) Но это не идеальный алгоритм. В идеале надо чтоб подбиралась такая комбинация при которой отходов практически не оставалось бы, но как это сделать не знаю. Ну если только перебором всех вариантов, а это может ох как долго вычисляться.
Я вроде научился разбивать рисунок на отрезки и можно попробовать для начала разбить на отдельные детали. Выложи какой-нибудь не самый сложный чертеж (в формате Auto CAD) и желательно напиши что в итоге должно получится - пока вручную посчитай (какие заготовки имели, как от них отрезали, сколько осталось отходов, какая получилась стоимость и т.д.)
Junior
Статус: Не в сети Регистрация: 28.05.2006 Откуда: Н. Новгород
Подскажите хороший учебник по AutoCAD 2008, хотел купить, да им там полно, что выбрать... час простоял в книжном, топтался из угла в угол, пригляделись несколько здоровенных (> 1000 руб и диски) учебников (не помню авторов, бело-синий особенно).
Изначально хотел купить учебник, авторы Полещук+Савельева, оказался ерундой какой-то. Хотелось бы толково написанный большой учебник с хорошими страницами и рисунками, кто какие знает, подскажите
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения