powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Хранение изменяемой формы фигуры в бд
25 сообщений из 75, страница 3 из 3
Хранение изменяемой формы фигуры в бд
    #38222578
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,
maytonПо сабжу я так
и не понял тебе надо автоматизировтаь авто-раскрой или человек будет мышкой
ставить лекалы?

В данном случае - задача, чтобы было либо первое, либо второе. Либо человек, либо машина, но чтобы геометрия резки учитывалась в системе и раскрой (или резка) материалов была с максимальной экономичностью (естессно на уровне дипломной работы, а не уровня реал предприятия). Вот в чем задача. Научный руководитель хочет, чтобы именно геометрия как-то учитывалась, и в идеале, чтоб машина сама искала подходящую геометрию и совершала резку. Но если не получится, то хотя б, чтобы человек вводил нужную длину-ширину и выбирал из представленных ему кусков сам (хотя вводить длину-ширину ему в любом случае придется самому). Но кто осуществит этот поиск и выбор нужного куска? Be or not to be, вот в чем вопрос :)
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38222896
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то типа во этого. Для каждой формы есть набор точек с порядком, чтобы потом понять что с чем соединять.
Что думаете?
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38222906
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cryptic,

Ещё раз. Вы храните _фигуру_. Всю. Целиком. В одном поле. В виде WKT или WKB (в зависимости от того, что вам нужнее --- удобство отладки или производительность). Вы работаете с фигурами средствами GIS-расширения, благо координатная система для простого Декарта есть у всех. Вы _не_ изобретаете г-велосипед, потому что вы понятия не имеете, каких офигительный усилий требует создание даже г-велосипеда.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224218
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

авторОдин из путей я вам приводил - сделайте таблицу "примитивов" раскроя (как можно порезать такой-то кусок на такие-то части), пусть эта таблица будет "справочником", пусть большим (БД стерпит), но позволяющим не заниматься математикой, а оперировать в OLAP

Пытаюсь осмыслить эту фразу...А как эти самые примитивы раскроя будут выглядеть? Например квадрат? Мне нужно хранить его различные размеры? Но как мне это может помочь? Все равно придется путем алгоритма находить и вычитать фигуры. Поясните на примере, пжлст.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224230
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ru,

приведите пример wkt создания и помещения в таблицу полигона Г-формы, пжлст. А то что-то не могу найти простого и понятного примера...
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224386
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CrypticAndreTMОдин из путей я вам приводил - сделайте таблицу "примитивов" раскроя (как можно порезать такой-то кусок на такие-то части)...Пытаюсь осмыслить эту фразу...А как эти самые примитивы раскроя будут выглядеть? Например квадрат? Мне нужно хранить его различные размеры? Но как мне это может помочь? Все равно придется путем алгоритма находить и вычитать фигуры.Например...
Для простоты картины - будем считать, что пока круги не учитываем (хотя и можем). Мы имеем куски материала с известными параметрами, который можно порезать на заготовки различными путями. Естественно, сначала это "целые" куски, например, прямоугольной формы, в процессе использования они изменяются...
Пусть кусок материала описывается "квадратиками" известного размера (1 кв.см или 1 кв.дм или т.п.).
Пусть заготовки, которые требуются, будут только прямоугольниками.
Пусть мы имеем в поставках кусок квадратной формы 2*2, описываемый как {1,2,3,4}. Рассчитаем единоджы и заранее , что же мы можем из него получить:
- одну заготовку формы {1,2,3,4}
- одну заготовку 1*1 и 1 кусок формы {2,3,4}. Таких вариантов 4 (отрезаем квадратик с каждого из углов), но в силу симметрии - они эквивалентны, поэтому такой вариант раскроя считается за один
- две заготовки 1*1 и 1 кусок формы {3,4}. Аналогично, один вариант раскроя
- три заготовки 1*1 и 1 кусок формы {4}
- четыре заготовки 1*1
- одну заготовку 2*1 и 1 кусок {3,4}
- две заготовки 2*1
В процессе расчета мы, на самом деле, должны были рассчитать раскрой остающихся предыдущих кусков, если они не заготовки, рекурсивно:
(2) -- {2,3,4} (режем, у нас не предполагается заготовок такой формы):
-- одна заготовка 1*1 и 1 кусок {3,4}
--- {3,4} = одна заготовка 2*1
--- 1 заготовка 1*1 и 1 кусок {4}
---- {4} = заготовка 1*1
(3) -- {3,4} = одна заготовка 2*1
-- 1 заготовка 1*1 и 1 кусок {4}
--- {4} = заготовка 1*1
(4) -- {4} = заготовка 1*1
(6) -- {3,4} = одна заготовка 2*1
-- 1 заготовка 1*1 и 1 кусок {4}
--- {4} = заготовка 1*1
На самом деле, это всё общие рассуждения, при использовании матметодов и динамического программирования - задачи такого раскроя решаются быстро, но, повторюсь, один раз при изменении номенклатуры материалов или заготовок , а не каждый раз в процессе подбора.
Итак, создадим таблицы (куски, заготовки, раскрой) и заполним их
Куски
IdРазмерФорма14{1;2;3;4}23{2;3;4}32{3;4}41{4}
Заготовки
IdРазмер12*222*131*1 Раскрой
Id_КускаId_ЗаготовкиКоличествоЗаготовокId_КускаОстатка43103314332032102313232423302214131213231334134012131220И так для каждого исходного куска материала. Оптимальные раскрои видны - при подборе (имеем в наличии столько то таких-то кусков -> получить такое количество таких-то заготовок) мы просто будем пытаться минимизировать размеры кусков-остатков в соответствии с Раскрой и Куски.Размер .
Да, таблица с раскроями будет большой, но ведь можно её и оптимизировать, исключив заведомо ненужные варианты (например, разрез куска 100*100 на 10000 заготовок 1*1 и т.п.). Ещё, мы можем исключить из таблицы Раскрой строки с количеством>1 (и затем вообще отказаться от поля КоличествоЗаготовок ), тогда расчеты можно проводить, "отделяя по одной заготовке" и затем рекурсивно обращаясь к Раскрою снова.
В целом, вы тогда можете сосредоточить логику именно на получении оптимального плана по изготовлению заготовок, не отвлекаясь при этом каждый раз на расчеты по раскроям исходных кусков материала.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224413
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

Пусть у нас всего 9 типов деталей (простейшая тумбочка с ящиками одинаковых размеров, фанерные донца не в счёт). Пусть на лист влезает примерно до 8 деталей корпуса или до 32 деталей ящиков. Тогда в базу придётся залить порядка (1 + 4^4) ^ 8 = 2x10^19 вариантов кроя. Многовато.

Лучше всё же кроить on denamd. Без вариантов.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224431
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ru,

Симметрию учли? Последнее примечание (про незабивание всех вариантов, а "пошаговую" работу) учли? Оптимизацию с той точки зрения, что при массовом раскрое (1000 исходников -> 500 запчастей тумбочек) можно для 95% набора сначала использовать уже когда-то ранее найденные "оптимальные" шаблоны (с нулевыми остатками) учли?
И к тому же, я не предлагаю полностью отказаться от "модуля произвольного раскроя", если он требуется постановкой задачи, я предлагаю упростить и ускорить типовые разложения... Квадратные уравнения всяко проще решать по теореме Виета, нежели методом Ньютона (это не по теме топика, если чо)
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224472
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

Не решается эта задача "пошагово". Во-первых, не факт, что для кроя листа на 3 детали X и 2 детали Y надо отрезать сначала все X а потом все Y или наоборот. Во-вторых, для какого-то набора крой может быть отрисован вручную, и его надо быстро найти. Или даже подсказать, что вот такой набор можно сделать из стольки-то таких кроев, столько-то эдаких, дорезать вон ту детальку так-то из того-то отхода, а остаток сложить на склад, Или выдать оператору кучу вариантов, по одной полосе на вариант, пусть он сам голову греет.
А то, что получится в результате кроя, вовсе не обязательно совпадёт с вашими ожиданиями, и надо предусматривать сценарий, в котором получается брак и не те отходы, которые ожидались.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224476
Фотография Малыхин Сергей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторзадачи такого раскроя решаются быстро Не верно. =)
Задачи рюкзака в подновляющем большинстве невозможно решить в лоб поэтому используют приближенные решения этим они и интересны.
имхо: Автор даже для себя не может точно сформулировать задачу

- Прежде всего меня интересует что подразумевается под фигурой(прямоугольник, треугольник, выпуклый или не выпуклый многоугольник) и оптимальным раскроем (например минимальные отходы или остатки правильной формы или максимальное использование остатков) необходима четкая формулировка без этого вперед двигацо глупо.
Пока не очень понятно что такое оптимальный раскрой без четкого определения сложно написать оценочную функцию которая будет решать оптимальный ли раскрой или нет.

Попробую предположить что при производстве мебели в основном будут использоваться прямоугольные части, чуть реже прямоугольники будут иметь треугольные спилы, потом не выпуклые многоугольники затем выпуклые многоугольники (окружности можно описать как многоугольники погрешности будут небольшими) на основании этого уже можно ввести квалификацию остатков и деталей
Прямоугольные треугольные многоугольники также для фикции подбора раскроя не будет лишней информация о площади (остатка/детали)минимальный и максимальный прямоугольник(радиус) в который вписывается фигура это поможет отфильтровать заведомо неверные решения
После того как более или менее определимся с фигурами можно строить раскрой
для начала отсортировать материалы запчасти остатки по размерам площади прямоугольники к прямоугольникам треугольники к треугольникам большое к большому маленькое к маленькому выпуклое к впуклому
после этого уложить все это каким нить простым алгоритмом типа оценить оценочной функцией результат
Попробывать изменить(мутировать) результат на основе оценки
изменить -> оценить -> изменить -> оценить .... и так N число раз
Результат получится заведомо не идеален но весьма близок к этому (генетический алгоритм) процентов на 5% не попадет в идеальное решение
можно использовать скрещивание удачных изменений но имхо это осложнит решение и весьма слабо улучшит результат простого перебора при небольшом числе итераций если же задача стоит в максимальной оптимизации то скрещивание обязательно.

Основной упор можно сделать на прямоугольники их даже можно оптимизировать отдельно т.к. они очень легко считаются и подбираются
если бы я решал такую задачу то:
1. Выбрал бы все неправильные фигуры и попытался их уместить в минимальный прямоугольник не превышающий размером исходный матерьял ( умолчу про множество нюансов ... =) )
т.к. Все оставшиеся детали будут прямоугольными то и оптимизировать их как прямоугольники

имхо2: задача весьма и весь мутная следовательно и ответы весьма мутные
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224477
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ru,

Хотите бесплатный продарок --- идею действительно полезной софтины? Пусть камера делает снимок стола с лежащими на нём отходами, определяет их размеры и заносит в базу.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224498
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruНе решается эта задача "пошагово". Во-первых, не факт, что для кроя листа на 3 детали X и 2 детали Y надо отрезать сначала все X а потом все Y или наоборот. Во-вторых, для какого-то набора крой может быть отрисован вручную, и его надо быстро найти. Или даже подсказать, что вот такой набор можно сделать из стольки-то таких кроевПочему отрезАть надо по порядку? Предложено: " отрЕзать одну из{X,Y,Z,..}, от оставшегося отрЕзать ещё одну из {X,Y,Z,..},.. ", просто все результаты этих "отрезаний" уже рассчитаны и занесены в базу. Ну и "быстрый поиск", "такое-то из такого-то" - это тоже предложено, запоминать заранее уже находившиеся оптимальные раскрои, по типу "Из трёх листов этого и пяти листов того мы получаем шашнацать наборов тумбочек без отходов/с минимумом отходов" - и мы можем просто минусовать исходный материал и плюсовать продукцию...
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224503
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, вы замечаете, что если и не на теорию диплома, то на курсовик мы уже тут настрадали
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224504
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iv_an_ruiv_an_ru,

Хотите бесплатный продарок --- идею действительно полезной софтины? Пусть камера делает снимок стола с лежащими на нём отходами, определяет их размеры и заносит в базу.

Ахахаха! Рассмешили. С чувством юмора у вас ништяк. Мне на мейл.ру посоветовали фотографировать на смартфон листы и клеить на них штрихкоды (их считывать тоже смартфоном) ))))

авторАвтор даже для себя не может точно сформулировать задачу Обижаете...

автор- Прежде всего меня интересует что подразумевается под фигурой(прямоугольник, треугольник, выпуклый или не выпуклый многоугольник) и оптимальным раскроем (например минимальные отходы или остатки правильной формы или максимальное использование остатков) необходима четкая формулировка без этого вперед двигацо глупо.
Пока не очень понятно что такое оптимальный раскрой без четкого определения сложно написать оценочную функцию которая будет решать оптимальный ли раскрой или нет.

1) Фигуры - это прямоугольники. Из этих прямоугольников будут в дальнейшем вырезаться нужные формы, но это уже не наша задача. Наша задача - именно прямоугольные области.
2) Оптимизация - максимальная экономичность. То есть отрезает прямоугольную область от листа не с середины, а с краю, чтобы из этого куска потом еще можно было оттяпать кусок.
3) Кто ищет и режет листы, терминатор или Джон Коннор? Это вопрос кого быстрее заставить :) т. е. что быстрее и легче реализовать. Предполагаю, что легче запрограммировать авто раскрой, пусть примитивный, ну и ладно.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224557
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTMНарод, вы замечаете, что если и не на теорию диплома, то на курсовик мы уже тут настрадали

Конечно замечаем :)

А если присовокупить к этому топику еще и вот http://www.sql.ru/forum/actualthread.aspx?tid=1014585 , http://www.sql.ru/forum/actualthread.aspx?tid=1016894 и вот http://www.sql.ru/forum/actualthread.aspx?tid=1016933 , то получается есть над чем поразмыслить.

З.Ы. Стоит отметить конкретно именно ваши сообщения, как одни из самых смыслонагруженных и полезных, на мой взгляд.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224608
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Господа мы уклоняемся и лезем в дебри. Еще раз по автоматизации

1) Ссылка на вики http://en.wikipedia.org/wiki/Cutting_stock_problem
2) Фундаментальные работы математиков. Канторович Л.В., Залгаллер В.А. Рациональный раскрой промышленных материалов
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224612
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще пару книжек для автора.

3) Э. А. Мухачева "Рациональный раскрой промышленных материалов"
4) Ф.В. Бабаев "Оптимальный раскрой материалов с помощью электронно-вычислительных машин".
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224619
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTMiv_an_ruНе решается эта задача "пошагово". Во-первых, не факт, что для кроя листа на 3 детали X и 2 детали Y надо отрезать сначала все X а потом все Y или наоборот. Во-вторых, для какого-то набора крой может быть отрисован вручную, и его надо быстро найти. Или даже подсказать, что вот такой набор можно сделать из стольки-то таких кроевПочему отрезАть надо по порядку?Потому что порядок резки на практике важен. Если резать напроход, то обычно все равно (если нет слишком узких деталей). Если не напроход, то пила проходит длину детали плюс ещё чуть-чуть, оставляет засечку. Если вы хотели положить туда деталь, то при этом порядке реза вам придётся чуть-чуть отступить и потом срезать подпорченную засечкой сторону, а это лишние время и отходы. На практике часто надо сначала из листа резами напроход сделать несколько заготовок, а уже их (по возможности опять-таки напроход) порезать на детали.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224726
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ru,

Я, как бы, не только теорию изучал... И такие вещи понимаю.
И предложенный мной подход к проектированию раскроя отнюдь не является чем-то новым, всё это уже было.
И, кстати, вполне (да что там, - именно) позволительно реализовать то, что вы рассказываете, ведь никто не запрещает в модели предусмотреть "промежуточные заготовки", вот в чём дело-то...
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224745
Фотография iv_an_ru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndreTM,

Ну а я наоборот даже теории этого самого кроя не изучал, и ничего в той области не писал. Зато у нас среди прочих был и мебельный цех, и я стал продвинуто-матерящимся юзером программ для всей этой беды.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224751
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iv_an_ruя стал продвинуто-матерящимся юзером программ для всей этой беды.
Это я от сочувствия...

Ну не могу удержаться... ...

Сам в таких ситуациях бывал. Тут только одно помогает (сугубое ИМХО) - если только сразу взять и переписАть. Я один раз сумел хорошо. И ещё один раз сумел достаточно хорошо. Не мебельное производство, конечно.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224878
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

Спасибо за книги! Очень полезно.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38224880
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, как считаете, подойдет хранить фигуры в postgreSQL с расширением PostGIS? Есть ли там готовые функции вычитания и проверки вхождения полигонов один в другой? Или может кто знает СУБД с готовым набором функций для работы с типом polygon.
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38225829
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

авторописываемый как {1,2,3,4}

Что значит эта запись? Это номера вершин?
...
Рейтинг: 0 / 0
Хранение изменяемой формы фигуры в бд
    #38238391
Cryptic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо. Общими усилиями участников форума, я нашел решение своих задач.
Итак:

1) Создал бд с таблицей Shape и полями id, geometry и dateOfChange. Поле geometry обычное текстовое поле. Но в нем я храню запись фигур в wkt формате. Например:
Код: sql
1.
POLYGON((0 0, 0 200, 200 200, 200 0, 0 0))



2) Дальше я нашел opensource библиотеку NET Topology Suite (портированная для .NET библиотека JTS, Java) для работы с геометрическими формами и геоданными.

3) Немного дописал под свои нужды некоторые функции (конвертация wkt в набор точек Point и обратно и т.д.)

И все! Теперь можно производить резку материалов любой формы и легко сохранять изменения в одном поле таблицы. То, что собственно и хотел в рамках топика :)

Еще раз всем спасибо!
...
Рейтинг: 0 / 0
25 сообщений из 75, страница 3 из 3
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Хранение изменяемой формы фигуры в бд
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]