def __init__(self, pair): template_path = os.path.join(gearbox.__path__[0], 'export', 'templates') self.env = Environment(loader=FileSystemLoader(template_path)) self.pinion = ExportGear(pair[0]).gear.export_data.gear self.wheel = ExportGear(pair[1]).gear.export_data.gear shaft = [[0, (self.wheel.data['d_s'] / 2)], rotate([[0, self.wheel.data['d_s'] / 2]], 0.5 * ((self.wheel.data['d_s'] / self.wheel.data['z']) * 360 / self.wheel.data['d_s']))[0]] coords = rotate(self.wheel.formcoords, 180) aw = self.__aw() self.wheel.shaftcoords = [[coord[0], coord[1] + aw] for coord in rotate(shaft, 180)] self.wheel.formcoords = [[coord[0], coord[1] + aw] for coord in coords] self.pinion.rotate_x = 0 self.pinion.rotate_y = 0 self.wheel.rotate_x = 0 self.wheel.rotate_y = aw
def ansys(self, output_folder='', model_name='model', type='2D'): """ :param output_folder: :param model_name: :param type: """ if type is '2D': template = self.env.get_template('ansys_pair.template') elif type is '3D': template = self.env.get_template('ansys_pair3D.template') else: raise ValueError( 'type must be \'2D\' or \'3D\' default Value is \'2D\'') pinion = [] for i in self.pinion.formcoords: pinion.append([-i[0], i[1]]) pinion.reverse() self.pinion.formcoords = rotate(self.pinion.formcoords + pinion, self.pinion.rotate_ang) self.pinion.shaftcoords[0] = [ -self.pinion.shaftcoords[1][0], self.pinion.shaftcoords[1][1] ] self.pinion.shaftcoords = rotate(self.pinion.shaftcoords, self.pinion.rotate_ang) wheel = [] for i in self.wheel.formcoords: wheel.append([-i[0], i[1]]) wheel.reverse() self.wheel.formcoords = self.wheel.formcoords + wheel self.wheel.shaftcoords[0] = [ -self.wheel.shaftcoords[1][0], self.wheel.shaftcoords[1][1] ] self.wheel.formcoords = rotate(self.wheel.formcoords, self.wheel.rotate_ang, (0, self.__aw())) self.wheel.shaftcoords = rotate(self.wheel.shaftcoords, self.wheel.rotate_ang, (0, self.__aw())) pair = [self.pinion, self.wheel] model_name = model_name.replace(' ', '_') output_from_parsed_template = template.render(pair=pair, model_name=model_name, model_path=output_folder) with open(output_folder + '/' + model_name + '.js', "wb") as fh: fh.write(output_from_parsed_template)
def __init__(self, pair): template_path = os.path.join(gearbox.__path__[0], 'export', 'templates') self.env = Environment(loader=FileSystemLoader(template_path)) self.pinion = ExportGear(pair[0]).gear.export_data.gear self.wheel = ExportGear(pair[1]).gear.export_data.gear shaft = [[0, (self.wheel.data['d_s'] / 2)], rotate([[0, self.wheel.data['d_s'] / 2]], 0.5 * ( (self.wheel.data['d_s'] / self.wheel.data['z']) * 360 / self.wheel.data['d_s']))[0]] coords = rotate(self.wheel.formcoords, 180) aw = self.__aw() self.wheel.shaftcoords = [[coord[0], coord[1] + aw] for coord in rotate(shaft, 180)] self.wheel.formcoords = [[coord[0], coord[1] + aw] for coord in coords] self.pinion.rotate_x = 0 self.pinion.rotate_y = 0 self.wheel.rotate_x = 0 self.wheel.rotate_y = aw
def ansys(self, output_folder='', model_name='model', type='2D'): """ :param output_folder: :param model_name: :param type: """ if type is '2D': template = self.env.get_template('ansys_pair.template') elif type is '3D': template = self.env.get_template('ansys_pair3D.template') else: raise ValueError('type must be \'2D\' or \'3D\' default Value is \'2D\'') pinion = [] for i in self.pinion.formcoords: pinion.append([-i[0], i[1]]) pinion.reverse() self.pinion.formcoords = rotate(self.pinion.formcoords + pinion, self.pinion.rotate_ang) self.pinion.shaftcoords[0] = [-self.pinion.shaftcoords[1][0], self.pinion.shaftcoords[1][1]] self.pinion.shaftcoords = rotate(self.pinion.shaftcoords, self.pinion.rotate_ang) wheel = [] for i in self.wheel.formcoords: wheel.append([-i[0], i[1]]) wheel.reverse() self.wheel.formcoords = self.wheel.formcoords + wheel self.wheel.shaftcoords[0] = [-self.wheel.shaftcoords[1][0], self.wheel.shaftcoords[1][1]] self.wheel.formcoords = rotate(self.wheel.formcoords, self.wheel.rotate_ang, (0, self.__aw())) self.wheel.shaftcoords = rotate(self.wheel.shaftcoords, self.wheel.rotate_ang, (0, self.__aw())) pair = [self.pinion, self.wheel] model_name = model_name.replace(' ', '_') output_from_parsed_template = template.render(pair=pair, model_name=model_name, model_path=output_folder) with open(output_folder + '/' + model_name + '.js', "wb") as fh: fh.write(output_from_parsed_template)
def __set_gear(geardata): """ Set pinion attribute :rtype : object INPUT parameter: gear : pinion ((Gear Pair data)) """ gear = CylindricalGearWheel(geardata) pd_s = gear.data['d'] * pi ang = gear.data['s_p'] * 360 / pd_s shaft = [[0, gear.data['d_s'] / 2], rotate([[0, gear.data['d_s'] / 2]], 0.5 * ( (gear.data['d_s'] / gear.data['z']) * 360 / gear.data['d_s']))[0]] gear.shaftcoords = shaft gear.formcoords = list(gear.formcoords.values()) gear.rotate_ang = -ang / 2 return gear
def __set_gear(geardata): """ Set pinion attribute :rtype : object INPUT parameter: gear : pinion ((Gear Pair data)) """ gear = CylindricalGearWheel(geardata) pd_s = gear.data['d'] * pi ang = gear.data['s_p'] * 360 / pd_s shaft = [[0, gear.data['d_s'] / 2], rotate([[0, gear.data['d_s'] / 2]], 0.5 * ((gear.data['d_s'] / gear.data['z']) * 360 / gear.data['d_s']))[0]] gear.shaftcoords = shaft gear.formcoords = gear.formcoords.values() gear.rotate_ang = -ang / 2 return gear