Exemple #1
0
    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
Exemple #2
0
    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)
Exemple #3
0
    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
Exemple #4
0
    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
Exemple #6
0
    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