Оптимизация на разкрой
11 отговора
455 прегледа
Оптимизация на разкрой
Здравейте, опитвам се да направя приложение което да оптимизира разкроя на материали с цел намаляване на технологичния отпадък.
За да ме разберете ще дам пример:
Имам материал на пръти по 6 метра
от тях трябва да отрежа:
2 броя по 1.68 метра
2 броя по 2.34 метра
4 броя по 0.76 метра
4 броя по 0.48 метра
и т.н.
идеята е да се получи минимален отпадък, явно ще се използва някакъв оптимизационен модел, но не се сещам как точно ще го реализирам с ексел функции и макроси.
не знам как е ама и така не е...
За да ме разберете ще дам пример:
Имам материал на пръти по 6 метра
от тях трябва да отрежа:
2 броя по 1.68 метра
2 броя по 2.34 метра
4 броя по 0.76 метра
4 броя по 0.48 метра
и т.н.
идеята е да се получи минимален отпадък, явно ще се използва някакъв оптимизационен модел, но не се сещам как точно ще го реализирам с ексел функции и макроси.
не знам как е ама и така не е...
Re: Оптимизация на разкрой
правил съм такава оптимизация за разкрой на ПВЦ прозорци ,но в момента не е в мене. Ще ти пиша след празниците
Re: Оптимизация на разкрой
Ако си намерил разрешение на този проблем, би ли го споделил в клуба. Аз също съм мислил по въпроса, но така и не стигнах до задоволителен отговор.
Въртеше ми се из главата нещо за кръстосана заявка под Access, но не можах да го направя.
Въртеше ми се из главата нещо за кръстосана заявка под Access, но не можах да го направя.
Re: Оптимизация на разкрой
тия неща с оптимизацийте се решават много добре със Solver аз съм смятал оптимизация на материали. Това което трябваше да направя е да определя количеството което трябва да се произведе от продект А и продукт Б, като за всеки продукт отива някакъв материал който струва някакви пари и труд който също струва някакви пари, имам и определена продажна цена за всеки продукт. Най лесния начин с който успях да реша тази задача беше със Solver иначе трябваше да се използват матрици и детерминанти.
Go Install Analysis Toolpack!
Go Install Analysis Toolpack!
Re: Оптимизация на разкрой
Предполагам, че имаш в предвид това: [линк]
Благодаря за инфото като ми остане малко свободно време ще се пробвам да го разгадая :)
Благодаря за инфото като ми остане малко свободно време ще се пробвам да го разгадая :)
Re: Оптимизация на разкрой
Това което бях направил леко го коригирах, за да се визуализира по лесно
В моя случай използвах масиви сега го представям като в клетки от таблицата
В sheet1 колона 1 трябва да ти е размера, колона 2 бройките
правиш си един бутон със следния макрос:
Dim br As Integer
Dim nm As Single
Sub Button2_Click()
Sheet2.Activate
p = 0
For i = 1 To 6000
If Sheet1.Cells(i, 1) = "" Then Exit For
For i1 = 1 To Sheet1.Cells(i, 2)
p = p + 1
Cells(p, 1) = Sheet1.Cells(i, 1)
Next
Next
For i = 1 To 6000
If Cells(i, 1) = "" Then Exit For
br = i
Next
5 r = 6
nm = r
For i = 1 To br
j = 0
20 n = r
l = i + j
If Cells(i, 1) > r Then Stop
Cells(i, 2) = Cells(i, 1)
n = n - Cells(i, 2)
If nm > n Then nm = n: Call iz
10 l = l + 1
If n - Cells(l, 1) >= 0 Then
Cells(l, 2) = Cells(l, 1): n = n - Cells(l, 1)
If nm > n Then nm = n: Call iz
If l < br Then GoTo 10
End If
b = "b" & br
Range("B1", b).ClearContents
j = j + 1
If j + i < br Then Cells(l - 1, 2) = "": GoTo 20
Next
red = red + 1
br1 = 7
For i = 1 To br
If Cells(i, 5) <> "" Then
br1 = br1 + 1
Cells(i, 1) = ""
Cells(red, br1) = Cells(i, 5)
End If
Next
For k = 1 To br
If Cells(k, 1) <> "" Then GoTo 5
Next
End Sub
Sub iz()
For i = 1 To br
Cells(i, 5) = Cells(i, 2)
Next
End Sub
там където пише stop си пишеш един текст бокс( по голям размер ) :exit sub
имай в предвид, че това е пробна версия не е тествана много-много и са възможни грешки.
И друго, не се взема в предвид не се взема в предвид размера на диска
Вероятно има и по прост начин , но като насока толкова за сега.
В моя случай използвах масиви сега го представям като в клетки от таблицата
В sheet1 колона 1 трябва да ти е размера, колона 2 бройките
правиш си един бутон със следния макрос:
Dim br As Integer
Dim nm As Single
Sub Button2_Click()
Sheet2.Activate
p = 0
For i = 1 To 6000
If Sheet1.Cells(i, 1) = "" Then Exit For
For i1 = 1 To Sheet1.Cells(i, 2)
p = p + 1
Cells(p, 1) = Sheet1.Cells(i, 1)
Next
Next
For i = 1 To 6000
If Cells(i, 1) = "" Then Exit For
br = i
Next
5 r = 6
nm = r
For i = 1 To br
j = 0
20 n = r
l = i + j
If Cells(i, 1) > r Then Stop
Cells(i, 2) = Cells(i, 1)
n = n - Cells(i, 2)
If nm > n Then nm = n: Call iz
10 l = l + 1
If n - Cells(l, 1) >= 0 Then
Cells(l, 2) = Cells(l, 1): n = n - Cells(l, 1)
If nm > n Then nm = n: Call iz
If l < br Then GoTo 10
End If
b = "b" & br
Range("B1", b).ClearContents
j = j + 1
If j + i < br Then Cells(l - 1, 2) = "": GoTo 20
Next
red = red + 1
br1 = 7
For i = 1 To br
If Cells(i, 5) <> "" Then
br1 = br1 + 1
Cells(i, 1) = ""
Cells(red, br1) = Cells(i, 5)
End If
Next
For k = 1 To br
If Cells(k, 1) <> "" Then GoTo 5
Next
End Sub
Sub iz()
For i = 1 To br
Cells(i, 5) = Cells(i, 2)
Next
End Sub
там където пише stop си пишеш един текст бокс( по голям размер ) :exit sub
имай в предвид, че това е пробна версия не е тествана много-много и са възможни грешки.
И друго, не се взема в предвид не се взема в предвид размера на диска
Вероятно има и по прост начин , но като насока толкова за сега.
Re: Оптимизация на разкрой
Записах макроса и сега ще го изпробвам, аз също се знимавам с дограма, имам една програмка с която се изчислява цена, себест-ст и други глезотийки, ако се интересуваш мога да ти я пратя да я разгледаш.
Ако си правил нещо друго във връзка с дограма би ми било интересно да го видя.
Благодарности.
не знам как е ама и така не е...
Ако си правил нещо друго във връзка с дограма би ми било интересно да го видя.
Благодарности.
не знам как е ама и така не е...
Re: Оптимизация на разкрой
Здравей,
прегледах файла за калкулация на дограма - поздравления за постигнатата визуализация и чертежа, имайки предвид способностите на ексел смятам това за значителен успех.
Като цяло обаче програмата е все още далеч от краен продукт за който си струва да се плати.Слабите места са:
-калкулацията на цената не е прецизна - себест-ст, режийни, труд, печалба, технологочен брак ит.н., 17 лв на л.м. просто не е сериозно
-липса на възможност за вадене на оферта за клиента придружена с чертеж - чертежа е за работницитве в цеха
-липса на база данни с дадените оферти и получените поръчки
-приложението не покрива всички случаи на поръчка за дограма- допълнителните аксесоари няма как да се калкулират в цената, прозорец с три части и хоризонтален делител само на едната не може да се калкулира, еркери, ъглови тераси и т.н.
Независимо от слабостите смятам че си постигнал значителен успех и ако смяташ да подобриш приложението ще ти помогна с каквото мога.
не знам как е ама и така не е...
прегледах файла за калкулация на дограма - поздравления за постигнатата визуализация и чертежа, имайки предвид способностите на ексел смятам това за значителен успех.
Като цяло обаче програмата е все още далеч от краен продукт за който си струва да се плати.Слабите места са:
-калкулацията на цената не е прецизна - себест-ст, режийни, труд, печалба, технологочен брак ит.н., 17 лв на л.м. просто не е сериозно
-липса на възможност за вадене на оферта за клиента придружена с чертеж - чертежа е за работницитве в цеха
-липса на база данни с дадените оферти и получените поръчки
-приложението не покрива всички случаи на поръчка за дограма- допълнителните аксесоари няма как да се калкулират в цената, прозорец с три части и хоризонтален делител само на едната не може да се калкулира, еркери, ъглови тераси и т.н.
Независимо от слабостите смятам че си постигнал значителен успех и ако смяташ да подобриш приложението ще ти помогна с каквото мога.
не знам как е ама и така не е...