|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Алгоритм оптимального гильотинного двумерного раскроя
Регистрация: 19.04.2011
Сообщений: 9
|
||
Просмотров: 12330
|
|
||||
Регистрация: 19.04.2011
Сообщений: 9
|
Извольте. Допустим мне нужно сделать металлический ящик, ну можно сказать что то типа сейфа. Задаются Параметры ящика: длина, ширина, выоста, сиречь a,b,c
Итак, в самом просто варианте без у чета всяких наворотов сие выглядит так у ящика 6 стенок - передняя, задняя (a*c), дно/верх (a*b), боковые (b*c). Есть лист металла с поределенными параметрами l -длина, h- ширина. Мне нужно написать прогу расчета оптимального раскроя данного листа, и посчитать сколько металла уйдет на 1 ящик. Резка гильотинная |
|||
![]() |
|
||||
|
||||
![]() |
|
||||
странный у вас вопрос.
Что значит, вам нужен алгоритм? По сути, задача решается любым из алгоритмов, применимых для любых задач. например: 1. жадный алгоритм берем самую большую деталь и кладем на лист, потом лист тех же размеров или меньший и так же размещаем на листе... Само собой, размещение возможно только с учетом гильотинной резки. 2. генетический алгоритм раскладываем все детали на заготовку, как придется, но с учетом правил резки, потом запускаем серию программ, улучшающих раскрой, каждый раз проверяя, есть ли улучшение или нет. 3. абсолютный раскрой - создаем квадратную матрицу, с размерностью равной удвоенному количеству всех деталей и решаем, если нет решений, убираем из матрицы одну деталь и решаем заново. Данный путь, я бы не рекомендовал для большого количества деталей... ps. а чем не подходят готовые решения?
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
Регистрация: 19.04.2011
Сообщений: 9
|
1. жадный алгоритм
берем самую большую деталь и кладем на лист, потом лист тех же размеров или меньший и так же размещаем на листе... Само собой, размещение возможно только с учетом гильотинной резки. Вот это мне и надо реализовать. Готовые решения не подходят за невозможностью расковырять сам алгоритм |
|||
![]() |
|
||||
Тема называется:
Цитата:
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
На самом деле, если я не ошибаюсь, все программы раскроя платные, т.е. я сильно сомневаюсь, что тебе удастся получит реальный пример боевого кода...
__________________
Чем гениальнее ваш план, тем меньше людей с ним будут согласны. /Сунь Цзы/ |
||||
![]() |
|
||||
А вариантов листов/ящичков много? Если пару десятков, то может их побыстрому вручную оформить, сохранить и потом из списка выбирать готовые варианты?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 19.04.2011
Сообщений: 9
|
Вариантов? Ну -.. Надо блин еще предусмотреть возможность добавления новых ,но это не проблема.. Так весь прикол в том, что прога высчитывать должна сколько на энное кол во ящиков уйдет листов металла, и наоборот сколько из энного колва металла получится ящиков. За этим и нужен оптимальный раскрой
|
|||
![]() |
|
||||
стенки ящика все прямоугольные? или возможны ящики в виде "сердечка", "цилиндра"?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Покажешь, чего уже "напарил"?
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
![]() |
|
||||
Регистрация: 19.04.2011
Сообщений: 9
|
Только голую математику. Как ее применить в программном виде не приложу ума. Итак, как я понимаю.
n- кол во деталей всего ищем деталей с максимальной длиной max:=l[1]; For i:=2 to n do begin if l[i]> max then max:=l[i]; end; Нашли детальку с максимальной длиной.. потом надо как то ее разместить сиречь сразу показать границу обреза ну тут тоже ничего сложного //LL-длина железного листа целого lobr - длина обрезанного НН - ширина целого листа lobr:= LL-max; И тут встает первая проблема Если фигура расположена неудачно ее надо повернуть, в таком случае шиина с длиной меняются местами Даже если это отбросить в результате обрезки у нас получаются прямоугольника с параметрами: max*HH Lobr*HH что тут делать дальше я и застрял. Я знаю что тут надо писать процесс генерации оптимальных карт раскроя. Вот я и не врублюсь как это делается. Но если плясать от изложенного выше то в -м прямоуголнике с размерностью max*HH, Сходу надо отчечь ширину уже готовой детали пусть это будет h Итого в нашем расоряжении прямоугольник max*HH-h И опять перебирать детали, какая из них сюда поместится так чтобы остался минимум свободного места |
|||
![]() |
|
||||
пенсионер-конструктор Регистрация: 11.02.2011
Калуга
Сообщений: 68
|
http://lee-mac.com/boundingboxreactor.html Посмотри здесь - могут возникнуть интересные идеи - хотя все наоборот тут - лист вокруг заготовок .......
|
|||
![]() |
|
||||
Регистрация: 15.12.2011
Сообщений: 1
|
Цитата:
|
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ищу программы для линейного оптимального раскроя и фигурного оптимального раскроя листа под AutoCAD | mazik | Прочее. Программное обеспечение | 24 | 23.06.2012 08:01 |
Программа оптимального раскроя металла | Конфигуратор | Прочее. Программное обеспечение | 4 | 10.04.2008 10:39 |
программа для оптимального раскроя материала на криволинейные детали | Евгений Cахаров | AutoCAD | 2 | 06.02.2008 15:07 |