Exemplo n.º 1
0
    def output_simple(self, code, type_element, typ_sec, gost, num_sect, stl, inp):
        """ Возвращает список выходных данных простого расчета,
            исходные данные:
            code - текстом (QString) имя норм (СНиП II-23-81*)
            type_element - текстом (QString) название типа элемента (Ферма)
            typ_sec - текстом (QString) название сечения (Уголки в тавр (длинные стор. - вверх))
            gost - текстом (QString) названия ГОСТа соратмента (ГОСТ 8509-93 Уголки равнополочные)
            num_sect - текстом (QString) номер сечения (L20x20x3)
            stl - текстом (QString) сталь (C235)
            inp - список дополнительных данных"""
#ищем файл
        flag_sostav=False
#        print 'basa', num_sect
        for  x in self.dict_sort:
            if QtCore.QString(x)==typ_sec:
                y=self.dict_sort[x]
                typ_sec=x #меняем текст на номер
                break
#        print y, 'y'
        
        if y in self.dict_sostav_sort:
            y=self.dict_sostav_sort[y] #меняем y на номер госта
            flag_sostav=True
        
        for i in self.__list4sortament[1+y]:
            if QtCore.QString(i[0])==gost:
                path=i[1]
                break
#Грузим свойства прлфиля
                
        table=tables.tables_csv(path, 'float')
        table_data=table.get_table()
    #определяем кол-во профилей в файле

        input_data=self.input_data4sortament(self.dict_sort[typ_sec])
        len_input_data=len(input_data)
        
#        print table_data
#        print table_data[1:]

        for x in table_data[1:]:
            if num_sect==QtCore.QString(x[0]):
                if flag_sostav==False:
                    pr=self.output_data(typ_sec, x[1:-3])
                else:
                    add_ln=len_input_data-len(x[1:-3])
                    lst=x[1:-3]+inp[0:0+add_ln]
                    pr=self.output_data(typ_sec, lst)
                break
        
        if code==QtCore.QString(self.__list_code[0]):
            s=steel.steel_snip1987(str(stl), pr,dim=1, typ_steel='prokat')
        elif code==QtCore.QString(self.__list_code[1]):
            s=steel.steel_snip20107n(str(stl), pr,dim=1)
        
        if s.ry()!=0:
#        print s.ry()
            forc=codes.force()
            
            if type_element== QtCore.QString(self.__list_elements[0][0]    ):
                el=codes.elements(s, pr, mux=inp[-2], muy=inp[-1], lfact=inp[-3]) 
    #            print inp[-1],inp[-2]
                sol=codes.ferma(el,forc,[inp[-5],inp[-4]])
    
                if code==QtCore.QString(self.__list_code[0]):
                    out=sol.output_data_all_snip_old()
                elif code==QtCore.QString(self.__list_code[1]):
                    out=sol.output_data_all_snip_n()
    
    
            elif  type_element== QtCore.QString(self.__list_elements[1][0]    ):
                el=codes.elements(s, pr, mub=inp[-5], lfact=inp[-6]) 
    #            print inp[-1],inp[-2]
                sol=codes.beam(el,forc,yc=[inp[-8]],ycb=inp[-7])
    
                if code==QtCore.QString(self.__list_code[0]):
                    out=sol.output_data_all_snip_old(inp[-4],inp[-3],inp[-2],inp[-1])
                elif code==QtCore.QString(self.__list_code[1]):
                    out=sol.output_data_all_snip_n(inp[-4],inp[-3],inp[-2],inp[-1])
        
            
            
            return out
        else:
            out=0
            return out
Exemplo n.º 2
0
    def checkPP(self, code, element, typeSection,formSection,sortament,numberSection,stl,lstAddData, lstInputData, lstForce):
        '''Проверка сечений - для начала загружаем все даные и отправляем их в codes, 
        Исходные данные - отправляем в QString
        code -  имя норм (СНиП II-23-81*)
        element - название типа элемента (Ферма), 
        typeSection- название типа сечения (пока только ПРОКАТ)
        formSection - название сечения (Уголки в тавр (длинные стор. - вверх))
        sortament - текстом (QString) названия ГОСТа соратмента (ГОСТ 8509-93 Уголки равнополочные)
        numberSection - номер сечения (L20x20x3)
        steel - текстом (QString) сталь (C235)
        lstAddData - для сечения
        lstInputData - для расчета
        lstForce - усилия'''
#        print lstInputData
        #Ставим флаг в фальш
        flag_sostav=False
        
        #записываем в typ_sec - название формы сечения, в y записываем номер сечения 
        for x in self.dict_sort:
            if QtCore.QString(x)==formSection:
                y=self.dict_sort[x]
                typ_sec=x #меняем текст на номер
                break
        
        #если номер в списке - меняем флаг
        if y in self.dict_sostav_sort:
            y=self.dict_sostav_sort[y]
            flag_sostav=True

        #ищем путь к искомому сортаменту
        for i in self.__list4sortament[1+y]:
            if QtCore.QString(i[0])==sortament:
                path=i[1]
                break

        #загружаем в табл дата данные сортаментов
        table=tables.tables_csv(path, 'float')
        table_data=table.get_table()


        #загружаем список исходных данных для ПРОФИЛЯ!!! - т.е. h, b, s, t, и т.д.
        
        input_data=self.input_data4sortament(self.dict_sort[typ_sec])
        len_input_data=len(input_data)
        

        for x in table_data[1:]:
            if numberSection==QtCore.QString(x[0]):
                if flag_sostav==False:
                    pr=self.output_data(typ_sec, x[1:-3])
                else:
                    add_ln=len_input_data-len(x[1:-3])
                    lst=x[1:-3]+lstAddData
                    pr=self.output_data(typ_sec, lst)
                break
        
        #загружаем сталь
        if code==QtCore.QString(self.__list_code[0]):
            s=steel.steel_snip1987(str(stl), pr,dim=1, typ_steel='prokat')
        elif code==QtCore.QString(self.__list_code[1]):
            s=steel.steel_snip20107n(str(stl), pr,dim=1)
        
        if s.ry()!=0:
#        print s.ry()
        
            #НЕ раскидываем услия и передаем как список
            forc=codes.force(lstForce=lstForce)
            
            #создаем элемент ферма 
            if element== QtCore.QString(self.__list_elements[0][0]    ):
                el=codes.elements(s, pr, mux=lstInputData[-5], muy=lstInputData[-4], lfact=lstInputData[-6]) 
    #            print inp[-1],inp[-2]
                sol=codes.FermaPP()
                sol.reinit(el,forc,yc=[lstInputData[-8],lstInputData[-7]])
    
                if code==QtCore.QString(self.__list_code[0]):
                    out=sol.outDataOld(lstInputData[-3],lstInputData[-2],lstInputData[-1])
                elif code==QtCore.QString(self.__list_code[1]):
                    out=sol.outDataN(lstInputData[-3],lstInputData[-2],lstInputData[-1])
    
            #создаем элемент балка
            elif  element== QtCore.QString(self.__list_elements[1][0]    ):
                el=codes.elements(s, pr, mub=lstInputData[-5], lfact=lstInputData[-6]) 
    #            print inp[-1],inp[-2]
                sol=codes.BeamPP()
                sol.reinit(el,forc,yc=[lstInputData[-8]],ycb=lstInputData[-7])
    
                if code==QtCore.QString(self.__list_code[0]):
                    out=sol.outDataOld(lstInputData[-4],lstInputData[-3],lstInputData[-2],lstInputData[-1])
                elif code==QtCore.QString(self.__list_code[1]):
                    out=sol.outDataN(lstInputData[-4],lstInputData[-3],lstInputData[-2],lstInputData[-1])
        
            elif  element== QtCore.QString(self.__list_elements[2][0]    ):
                el=codes.elements(s, pr, mux=lstInputData[3], muy=lstInputData[4], mub=lstInputData[5], lfact=lstInputData[2]) 
    #            print inp[-1],inp[-2]
                sol=codes.ColumnPP()
                sol.reinit(el,forc,yc=[lstInputData[0]],ycb=lstInputData[1])
    
                if code==QtCore.QString(self.__list_code[0]):
                    out=sol.outDataOld(lstInputData[-3],lstInputData[-2],lstInputData[-1])
                elif code==QtCore.QString(self.__list_code[1]):
                    out=sol.outDataN(lstInputData[-3],lstInputData[-2],lstInputData[-1])
            
            
            return out
        else:
            out=0
            return out