def data_solve(self, typ): """Возвращает список доп. исходных данных, реализовано только для ферм""" pr1=profiles.truba_pryam(h=8,b=12,t=0.6, r2=1.2, r1=0.6) s=steel.steel_snip20107n('C345',pr1, 1) el=codes.elements(s, pr1, mux=300, muy=5000, lfact=1) forc=codes.force(n=200*1000/9.81, mx=100*1000/9.81*100, my=000*1000/9.81*100, qx=500*1000/9.81) if typ==self.__list_elements[0][0]: sol=codes.ferma(el,forc,1) elif typ==self.__list_elements[1][0]: sol=codes.beam(el,forc,[1,1]) return sol.add_data()
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
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