예제 #1
0
def test_is_updated():
    with CATIADocHandler(cat_part) as handler:
        part = handler.document.part()

        assert part.is_upated(part.part)

    with CATIADocHandler(cat_part_not_updated) as handler:
        part = handler.document.part()

        assert not part.is_upated(part.part)
예제 #2
0
def test_has_children():
    with CATIADocHandler(cat_product) as handler:
        product = handler.document.product()

        assert product.has_children()

    with CATIADocHandler(cat_part) as handler:
        part_product = handler.document.product()

        assert not part_product.has_children()
예제 #3
0
def test_has_children():
    with CATIADocHandler(cat_product) as caa:
        product = caa.document.product()

        assert product.has_children()

    with CATIADocHandler(cat_part_measurable) as caa:
        part_product = caa.document.product()

        assert not part_product.has_children()
예제 #4
0
def test_is_catproduct_is_catpart():
    with CATIADocHandler(cat_product) as handler:
        product = handler.document.product()

        assert product.is_catproduct()
        assert not product.is_catpart()

    with CATIADocHandler(cat_part) as handler:
        part = handler.document.product()

        assert part.is_catpart()
        assert not part.is_catproduct()
예제 #5
0
def test_is_catproduct_is_catpart():
    with CATIADocHandler(cat_product) as caa:
        product = caa.document.product()

        assert product.is_catproduct()
        assert not product.is_catpart()

    with CATIADocHandler(cat_part_measurable) as caa:
        part = caa.document.product()

        assert part.is_catpart()
        assert not part.is_catproduct()
예제 #6
0
def test_paper_size():
    with CATIADocHandler(cat_drawing) as handler:
        catia = handler.catia
        drawing = DrawingRoot(catia)
        sheet_1 = drawing.sheets[0]
        assert sheet_1.paper_size == 2
        sheet_1.paper_size = 5
        assert sheet_1.paper_size == 5

    with pytest.raises(CATIAApplicationException):
        with CATIADocHandler(cat_drawing) as handler:
            catia = handler.catia
            drawing = DrawingRoot(catia)
            sheet_1 = drawing.sheets[0]
            sheet_1.paper_size = 10
예제 #7
0
파일: test_part.py 프로젝트: LJ1937/pycatia
def test_is_up_to_date():
    with CATIADocHandler(cat_part_measurable) as caa:
        part = caa.document.part()

        assert part.is_up_to_date(part)

    with CATIADocHandler(new_document="Part") as caa:
        part = caa.document.part()
        hsf = part.hybrid_shape_factory
        hbs = part.hybrid_bodies
        hb = hbs.add()
        point = hsf.add_new_point_coord(0, 0, 0)
        hb.append_hybrid_shape(point)

        assert not part.is_up_to_date(part)
예제 #8
0
def test_part():
    with CATIADocHandler(cat_part) as handler:
        document = handler.document
        part = document.part()
        assert part.name in cat_part
        assert document.is_part
        assert not document.is_product
예제 #9
0
def test_add_documents():
    with CATIADocHandler(new_document='Part') as handler:
        document = handler.document
        assert 'CATPart' in document.name

    with CATIADocHandler(new_document='Part') as handler:
        document = handler.document
        assert 'CATPart' in document.name

    with CATIADocHandler(new_document='Part') as handler:
        document = handler.document
        assert 'CATPart' in document.name

    with pytest.raises(ValueError):
        with CATIADocHandler(new_document='lala') as handler:
            document = handler.document
예제 #10
0
def test_get_products():
    with CATIADocHandler(cat_product) as handler:
        product = handler.document.product()
        products = product.get_products()

        assert '(Product) part_number: CF_SubProduct1, file_name: CF_SubProduct1.CATProduct' == products[
            0].__repr__()
예제 #11
0
def test_get_points_on_curve():
    with CATIADocHandler(cat_part_measurable) as caa:
        document = caa.document
        spa_workbench = document.spa_workbench()

        part = document.part()
        hybrid_bodies = part.hybrid_bodies
        hybrid_body = hybrid_bodies.get_item_by_name(geom_set_lines)
        line1 = hybrid_body.hybrid_shapes.item(1)
        line1_reference = part.create_reference_from_object(line1)
        line1_measurable = spa_workbench.get_measurable(line1_reference)

        points_on_curve = (
            0.0,
            0.0,
            0.0,
            50.0,
            50.0,
            0,
            100.0,
            100.0,
            0,
        )
        catia_points_on_curve = line1_measurable.get_points_on_curve()
        catia_points_on_curve = round_tuple(catia_points_on_curve, 6)

        assert points_on_curve == catia_points_on_curve
예제 #12
0
def test_point_center():
    length = 100
    co_ord_1 = (0, 0, 0)
    co_ord_2 = (length, 0, 0)
    center = (length / 2, 0, 0)

    with CATIADocHandler(new_document='Part') as caa:
        document = caa.document
        part = document.part()
        hsf = part.hybrid_shape_factory

        hybrid_bodies = part.hybrid_bodies
        gs_new = hybrid_bodies.add()

        point = hsf.add_new_point_coord(co_ord_1[0], co_ord_1[1], co_ord_1[2])

        gs_new.append_hybrid_shape(point)

        xy_plane = part.origin_elements.plane_xy

        circle = hsf.add_new_circle_ctr_rad(point, xy_plane, True, 50)

        gs_new.append_hybrid_shape(circle)

        point_center = hsf.add_new_point_center(circle)
        gs_new.append_hybrid_shape(point_center)

        part.update()

        assert point_center.get_coordinates() == point.get_coordinates()
예제 #13
0
def test_relations_count():
    with CATIADocHandler(cat_part_measurable) as caa:
        document = caa.document
        part = document.part()
        relations = part.relations

        assert relations.count == 4
예제 #14
0
def test_centre_of_gravity():
    with CATIADocHandler(measurable_part) as handler:
        catia = handler.catia
        document = handler.document

        spa_workbench = create_spa_workbench(document.document)
        part = document.part()

        bodies = part.get_bodies()
        body = bodies[0]

        reference = part.create_reference(body)
        measurable = create_measurable(spa_workbench, reference)
        catia_measurable = CATIAMeasurable(measurable)

        gx = 86.065202
        gy = 81.364587
        gz = 10.000000

        centre_of_gravity = catia_measurable.get_cog(catia)

        assert (gx, gy, gz) == (
            round(centre_of_gravity[0], 6),
            round(centre_of_gravity[1], 6),
            round(centre_of_gravity[2], 6))
예제 #15
0
def test_center():
    """

    :return:
    """

    with CATIADocHandler(measurable_part) as handler:
        catia = handler.catia
        document = handler.document

        center = (-47.039, 83.488, 0.0)

        spa_workbench = create_spa_workbench(document.document)
        part = document.part()

        hybrid_body = part.get_hybrid_body_by_name('Arcs')
        arc = hybrid_body.HybridShapes.Item(1)

        arc_reference = part.create_reference(arc)
        arc_measurable = create_measurable(spa_workbench, arc_reference)

        catia_measurable_arc = CATIAMeasurable(arc_measurable)
        catia_center = catia_measurable_arc.get_center(catia)

        assert center == catia_center
예제 #16
0
def test_get_points_on_axis():
    with CATIADocHandler(measurable_part) as handler:
        catia = handler.catia
        document = handler.document

        part = document.part()
        spa_workbench = create_spa_workbench(document.document)

        hybrid_body = part.get_hybrid_body_by_name('Cylinders')
        cylinder = hybrid_body.HybridShapes.Item(1)
        cylinder_reference = part.create_reference(cylinder)
        cylinder_measurable = create_measurable(spa_workbench, cylinder_reference)
        catia_measurable_cylinder = CATIAMeasurable(cylinder_measurable)

        cylinder = (
            -92.049,
            142.675,
            10.000,
            -92.049,
            142.675,
            20.000,
            -92.049,
            142.675,
            0.000,
        )
        catia_cylinder = catia_measurable_cylinder.get_points_on_axis(catia)
        catia_cylinder = round_tuple(catia_cylinder, 6)

        assert cylinder == catia_cylinder
예제 #17
0
def test_get_points_on_curve():
    with CATIADocHandler(measurable_part) as handler:
        catia = handler.catia
        document = handler.document

        part = document.part()
        spa_workbench = create_spa_workbench(document.document)

        hybrid_body = part.get_hybrid_body_by_name('Lines')
        line1 = hybrid_body.HybridShapes.Item(1)
        line1_reference = part.create_reference(line1)
        line1_measurable = create_measurable(spa_workbench, line1_reference)
        catia_measurable_line1 = CATIAMeasurable(line1_measurable)

        points_on_curve = (
            0.0,
            8.0,
            -4,
            43.0,
            17.5,
            -16.5,
            86.0,
            27,
            -29,
        )
        catia_points_on_curve = catia_measurable_line1.get_points_on_curve(catia)
        catia_points_on_curve = round_tuple(catia_points_on_curve, 6)

        assert points_on_curve == catia_points_on_curve
예제 #18
0
def test_get_minimum_distance_points():
    with CATIADocHandler(measurable_part) as handler:
        catia = handler.catia
        document = handler.document

        part = document.part()
        spa_workbench = create_spa_workbench(document.document)

        hybrid_body = part.get_hybrid_body_by_name('Points')
        point1 = hybrid_body.HybridShapes.Item(1)
        point1_reference = part.create_reference(point1)
        point1_measurable = create_measurable(spa_workbench, point1_reference)
        catia_measurable_point1 = CATIAMeasurable(point1_measurable)

        point2 = hybrid_body.HybridShapes.Item(2)
        point2_reference = part.create_reference(point2)

        minimum_distance_points = (
            0.000000,
            8.000000,
            -4.000000,
            86.000000,
            27.000000,
            -29.000000,
            None,
            None,
            None
        )
        catia_minimum_distance_points = catia_measurable_point1.get_minimum_distance_points(catia, point2_reference)

        assert minimum_distance_points == round_tuple(catia_minimum_distance_points, 6)
예제 #19
0
def test_get_points_on_axis():
    with CATIADocHandler(cat_part_measurable) as caa:
        document = caa.document
        spa_workbench = document.spa_workbench()

        part = document.part()
        hybrid_bodies = part.hybrid_bodies
        hybrid_body = hybrid_bodies.get_item_by_name(geom_set_cylinders)
        cylinder = hybrid_body.hybrid_shapes.item(1)
        cylinder_reference = part.create_reference_from_object(cylinder)
        cylinder_measurable = spa_workbench.get_measurable(cylinder_reference)

        cylinder = (
            100,
            100,
            50,
            100,
            100,
            100,
            100,
            100,
            0,
        )
        catia_cylinder = cylinder_measurable.get_points_on_axis()
        catia_cylinder = round_tuple(catia_cylinder, 6)

        assert cylinder == catia_cylinder
예제 #20
0
def test_find_object_by_name():
    with CATIADocHandler(cat_part) as handler:
        part = handler.document.part()

        item = part.find_object_by_name('Extrude.1')

        assert item.name == 'Extrude.1'
예제 #21
0
def test_point_between():
    co_ord_1 = (0, 0, 0)
    co_ord_2 = (100, 0, 0)
    r = (50, 0, 0)

    with CATIADocHandler(new_document='Part') as caa:
        document = caa.document
        part = document.part()
        hsf = part.hybrid_shape_factory

        hybrid_bodies = part.hybrid_bodies
        cg_points = hybrid_bodies.add()

        point_1 = hsf.add_new_point_coord(co_ord_1[0], co_ord_1[1],
                                          co_ord_1[2])
        point_2 = hsf.add_new_point_coord(co_ord_2[0], co_ord_2[1],
                                          co_ord_2[2])

        cg_points.append_hybrid_shape(point_1)
        cg_points.append_hybrid_shape(point_2)

        point_between = hsf.add_new_point_between(point_1, point_2, 0.5, 0)

        cg_points.append_hybrid_shape(point_between)

        part.update()

        assert point_between.get_coordinates() == r
예제 #22
0
def test_point_on_plane_reference():
    co_ord_1 = (250, 100, 0)
    co_ord_2 = (100, 200)
    r = (co_ord_1[0] + co_ord_2[0], co_ord_1[1] + co_ord_2[1], co_ord_1[2])
    with CATIADocHandler(new_document='Part') as caa:
        document = caa.document
        part = document.part()
        hsf = part.hybrid_shape_factory

        hybrid_bodies = part.hybrid_bodies
        gs_new = hybrid_bodies.add()

        xy_plane = part.origin_elements.plane_xy
        org_point = hsf.add_new_point_coord(co_ord_1[0], co_ord_1[1],
                                            co_ord_1[2])

        gs_new.append_hybrid_shape(org_point)

        point = hsf.add_new_point_on_plane_with_reference(
            xy_plane, org_point, co_ord_2[0], co_ord_2[1])

        gs_new.append_hybrid_shape(point)

        part.update()

        assert point.get_coordinates() == r
예제 #23
0
def test_path():
    with CATIADocHandler(cat_part_measurable) as caa:
        part_product = caa.document.product()

        product_path = Path(os.getcwd(), cat_part_measurable)

        assert product_path == part_product.path()
예제 #24
0
def test_get_axis_system():
    """
    :return:
    """
    with CATIADocHandler(cat_part_measurable) as caa:
        document = caa.document

        part = document.part()
        spa_workbench = document.spa_workbench()

        axis_systems = part.axis_systems
        axis = axis_systems.item(1)
        axis_reference = part.create_reference_from_object(axis)
        axis_measurable = spa_workbench.get_measurable(axis_reference)

        axis_system = (0.000, 0.000, 0.000, 1.000, 0.000, 0.000, 0.000, 1.000,
                       0.000000, 0.000000, 0.000000, 1.000000)
        catia_axis = axis_measurable.get_axis_system()

        assert axis_system == (
            round(catia_axis[0], 6),
            round(catia_axis[1], 6),
            round(catia_axis[2], 6),
            round(catia_axis[3], 6),
            round(catia_axis[4], 6),
            round(catia_axis[5], 6),
            round(catia_axis[6], 6),
            round(catia_axis[7], 6),
            round(catia_axis[8], 6),
            round(catia_axis[9], 6),
            round(catia_axis[10], 6),
            round(catia_axis[11], 6),
        )
예제 #25
0
def test_count_parameters():
    with CATIADocHandler(new_document='Part') as caa:
        document = caa.document
        part = document.part()
        parameters = part.parameters

        assert parameters.count == 5
예제 #26
0
def test_get_plane():
    with CATIADocHandler(measurable_part) as handler:
        catia = handler.catia
        document = handler.document

        spa_workbench = create_spa_workbench(document.document)
        part = document.part()

        hybrid_body = part.get_hybrid_body_by_name('Planes')
        plane = hybrid_body.HybridShapes.Item(1)
        plane_reference = part.create_reference(plane)
        plane_measurable = create_measurable(spa_workbench, plane_reference)
        catia_measurable_plane = CATIAMeasurable(plane_measurable)

        plane = (
            86.0,
            27.0,
            -29.0,
            0.342977,
            -0.568381,
            0.747870,
            0.0,
            -0.796162,
            -0.605083
        )
        catia_plane = catia_measurable_plane.get_plane(catia)
        catia_plane = round_tuple(catia_plane, 6)

        assert plane == catia_plane
예제 #27
0
def test_circle3_points():
    cord_1 = (40, 40, 0)
    cord_2 = (130, 70, 0)
    cord_3 = (210, 50, 0)

    with CATIADocHandler(new_document='Part') as caa:
        document = caa.document
        part = document.part()
        hsf = part.hybrid_shape_factory

        hbs = part.hybrid_bodies
        gs_new = hbs.add()

        points = hsf.add_new_point_coords([cord_1, cord_2, cord_3])
        gs_new.append_hybrid_shapes(points)

        circle = hsf.add_new_circle3_points(points[0], points[1], points[2])
        gs_new.append_hybrid_shape(circle)

        part.update()

        spa = document.spa_workbench()
        measurable = spa.get_measurable(circle)

        assert 158.597 == round(measurable.radius, 3)
예제 #28
0
def test_relations_item():
    with CATIADocHandler(cat_part_measurable) as caa:
        document = caa.document
        part = document.part()

        relations = part.relations
        relation = relations.item(1)
        assert relation.name == 'formula_1'
예제 #29
0
파일: test_part.py 프로젝트: LJ1937/pycatia
def test_bodies():
    with CATIADocHandler(cat_part_measurable) as caa:
        document = caa.document
        part = document.part()

        bodies = part.bodies

        assert bodies.com_object.Item(1).Name == 'PartBody'
예제 #30
0
def test_relations_create_set_of_relations():
    with CATIADocHandler(new_document='Part') as caa:
        document = caa.document
        part = document.part()
        relations = part.relations
        relations.create_set_of_relations(part)

        assert relations.name == 'Relations'