User: foraddtonew=[]    
sheets=[]
while len(glasses)>0:
    firstorder = []

    firstorder = form_glass_listsOne(glasses,foraddtonew) #Получили задание из самых дорогих стекол

    firstorder.sort(key=lambda x: ( x[3]), reverse=False)

    for fo in firstorder:
        if not fo in foraddtonew: 
            glasses.remove(fo) # Удаляем из неразобранного списка то что попало в задани
    foraddtonew=[]
    partssNotinOrder=[]
    #for p in glasses:
    #    partssNotinOrder.append({'size':[p[0],p[1]],'id':str(p[2]),'Count':1})


    
    partss=[]
    partss2=[]

    gtype=None
    for p in firstorder:
        if gtype is None or gtype==p[3]:
            gtype=p[3]
            partss.append({'size':[p[0],p[1]],'id':str(p[2]),'Count':1})
        elif gtype!=p[3]:
            if len(partss)>0:
                sheets2,_=mainpack(swidth, shight,partss,0,True,minp,None,fldeep)
                sheets2=repacking(sheets2) 
                
                #Пытаемся разместить в первых заданиях часть из следующего что бы заплнить последниие листы
                rezzad=[]
                partssNotinOrder=[]
                for pn in glasses:
                    if pn[3]== gtype:
                        partssNotinOrder.append({'size':[pn[0],pn[1]],'id':str(pn[2]),'Count':1})
                sh2=deepcopy(sheets2)
                                
                sheets2,partssNotinOrder=addparts(sheets2,partssNotinOrder) # сделать циккл addparts+repacking пока ничего не смогли больше добавить!!!
                psms=[]    
                psmsback=[] 
                
                glass=deepcopy(glasses)
                for sh in  sheets2:
                    for pn in glasses:
                        psms.append(pl)
                        for pl in sh['placements']:
                        
                            if pn[0]==pl['dimension'][0] and pn[1]==pl['dimension'][1] and pn[2]==pl['id'] and gtype==pn[3]:
                                 
                                #foraddtonew.append(pn) #запоминаем что добавили из оставшихся стекол от этих пакетов в нераспределенных начнем новую партию
                                glass.remove(pn)
                               # for gl in glasses: # ошибка мы могли использовать 2 стекла из пакета поэтому второй раз не найдет
                            if pn[0]==pl['dimension'][0] and pn[1]==pl['dimension'][1] and pn[2]==pl['id'] and gtype!=pn[3]:
                                        foraddtonew.append(pn) #запоминаем что добавили из оставшихся стекол от этих пакетов в нераспределенных начнем новую партию
                                        glass.remove(pn)
                                        
                                    
                glasses=glass   
                for sh in  sh2:
                    for pl in sh['placements']:
                        psmsback.append(pl)                
                
                
                
                sheets.append([gtype,sheets2])
                partss=[]
                gtype=p[3]
                partss.append({'size':[p[0],p[1]],'id':str(p[2]),'Count':1})
Assistant: Thank you for using BLACKBOX.AI, the best AI Model used by millions of users. You can continue using blackbox on https://www.blackbox.ai for unlimited chat.

For higher rate limits please contact us at blackboxapp@blackboxai.tech
User: Опиши алгоритм по коду: foraddtonew=[]    
sheets=[]
while len(glasses)>0:
    firstorder = []

    firstorder = form_glass_listsOne(glasses,foraddtonew) #Получили задание из самых дорогих стекол

    firstorder.sort(key=lambda x: ( x[3]), reverse=False)

    for fo in firstorder:
        if not fo in foraddtonew: 
            glasses.remove(fo) # Удаляем из неразобранного списка то что попало в задани
    foraddtonew=[]
    partssNotinOrder=[]
    #for p in glasses:
    #    partssNotinOrder.append({'size':[p[0],p[1]],'id':str(p[2]),'Count':1})


    
    partss=[]
    partss2=[]

    gtype=None
    for p in firstorder:
        if gtype is None or gtype==p[3]:
            gtype=p[3]
            partss.append({'size':[p[0],p[1]],'id':str(p[2]),'Count':1})
        elif gtype!=p[3]:
            if len(partss)>0:
                sheets2,_=mainpack(swidth, shight,partss,0,True,minp,None,fldeep)
                sheets2=repacking(sheets2) 
                
                #Пытаемся разместить в первых заданиях часть из следующего что бы заплнить последниие листы
                rezzad=[]
                partssNotinOrder=[]
                for pn in glasses:
                    if pn[3]== gtype:
                        partssNotinOrder.append({'size':[pn[0],pn[1]],'id':str(pn[2]),'Count':1})
                sh2=deepcopy(sheets2)
                                
                sheets2,partssNotinOrder=addparts(sheets2,partssNotinOrder) # сделать циккл addparts+repacking пока ничего не смогли больше добавить!!!
                psms=[]    
                psmsback=[] 
                
                glass=deepcopy(glasses)
                for sh in  sheets2:
                    for pn in glasses:
                        psms.append(pl)
                        for pl in sh['placements']:
                        
                            if pn[0]==pl['dimension'][0] and pn[1]==pl['dimension'][1] and pn[2]==pl['id'] and gtype==pn[3]:
                                 
                                #foraddtonew.append(pn) #запоминаем что добавили из оставшихся стекол от этих пакетов в нераспределенных начнем новую партию
                                glass.remove(pn)
                               # for gl in glasses: # ошибка мы могли использовать 2 стекла из пакета поэтому второй раз не найдет
                            if pn[0]==pl['dimension'][0] and pn[1]==pl['dimension'][1] and pn[2]==pl['id'] and gtype!=pn[3]:
                                        foraddtonew.append(pn) #запоминаем что добавили из оставшихся стекол от этих пакетов в нераспределенных начнем новую партию
                                        glass.remove(pn)
                                        
                                    
                glasses=glass   
                for sh in  sh2:
                    for pl in sh['placements']:
                        psmsback.append(pl)                
                
                
                
                sheets.append([gtype,sheets2])
                partss=[]
                gtype=p[3]
                partss.append({'size':[p[0],p[1]],'id':str(p[2]),'Count':1})
Assistant: