Пример #1
0
 def test_face(self):
     face = Vertex(flags=192)
     face[0] = 1
     face[1] = 2
     face[2] = 3
     face[3] = 4
     expected = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n" \
              " 70\n192\n 71\n1\n 72\n2\n 73\n3\n 74\n4\n"
     self.assertEqual(dxfstr(face), expected)
 def test_face(self):
     face = Vertex(flags=192)
     face[0] = 1
     face[1] = 2
     face[2] = 3
     face[3] = 4
     expected = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n" \
              " 70\n192\n 71\n1\n 72\n2\n 73\n3\n 74\n4\n"
     self.assertEqual(dxfstr(face), expected)
 def test_full_vertex(self):
     vertex = Vertex(startwidth=0.1,
                     endwidth=0.2,
                     bulge=0.3,
                     flags=0,
                     curve_fit_tangent_direction=30.0)
     expected = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n" \
              " 40\n0.1\n 41\n0.2\n 42\n0.3\n 70\n0\n 50\n30.0\n"
     self.assertEqual(dxfstr(vertex), expected)
Пример #4
0
 def test_polyline(self):
     polyline = Polyline()
     polyline.add_vertex( (0, 0) )
     vt1 = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n"
     polyline.add_vertex( (1, 1) )
     vt2 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n1.0\n 30\n0.0\n"
     expected = "  0\nPOLYLINE\n  8\n0\n 66\n1\n 10\n0.0\n 20\n0.0\n 30\n0.0\n" \
              " 70\n8\n" + vt1 + vt2 + "  0\nSEQEND\n"
     self.assertEqual(dxfstr(polyline), expected)
Пример #5
0
 def test_full_vertex(self):
     vertex = Vertex(
         startwidth=0.1,
         endwidth=0.2,
         bulge=0.3,
         flags=0,
         curve_fit_tangent_direction=30.0
     )
     expected = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n" \
              " 40\n0.1\n 41\n0.2\n 42\n0.3\n 70\n0\n 50\n30.0\n"
     self.assertEqual(dxfstr(vertex), expected)
Пример #6
0
 def test_stable_order(self):
     pface = Polyface()
     pface.add_face([(0,0), (1,1), (1,0)])
     vt1 = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n192\n"
     vt2 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n1.0\n 30\n0.0\n 70\n192\n"
     vt3 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n0.0\n 30\n0.0\n 70\n192\n"
     vtface = "  0\nVERTEX\n 62\n0\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n128\n" \
            " 71\n1\n 72\n2\n 73\n3\n"
     expected = "  0\nPOLYLINE\n  8\n0\n 66\n1\n" \
              " 70\n64\n 71\n3\n 72\n1\n" + vt1 + vt2 + vt3 + vtface + "  0\nSEQEND\n"
     self.assertEqual(dxfstr(pface), expected)
Пример #7
0
 def test_optimize_simple_4points_polyface(self):
     pface = Polyface()
     pface.add_face([(0,0), (1,0), (1,1), (0,0)]) # 1 == 4 -> use vt1 instead of vt4
     vt1 = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n192\n"
     vt2 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n0.0\n 30\n0.0\n 70\n192\n"
     vt3 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n1.0\n 30\n0.0\n 70\n192\n"
     vtface = "  0\nVERTEX\n 62\n0\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n128\n" \
            " 71\n1\n 72\n2\n 73\n3\n 74\n1\n"
     expected = "  0\nPOLYLINE\n  8\n0\n 66\n1\n" \
              " 70\n64\n 71\n3\n 72\n1\n" + vt1 + vt2 + vt3 + vtface + "  0\nSEQEND\n"
     self.assertEqual(dxfstr(pface), expected)
Пример #8
0
 def test_optimize_simple_4points_polyface(self):
     pface = Polyface()
     pface.add_face([(0,0), (1,0), (1,1), (0,0)]) # 1 == 4 -> use vt1 instead of vt4
     vt1 = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n192\n"
     vt2 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n0.0\n 30\n0.0\n 70\n192\n"
     vt3 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n1.0\n 30\n0.0\n 70\n192\n"
     vtface = "  0\nVERTEX\n 62\n0\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n128\n" \
            " 71\n1\n 72\n2\n 73\n3\n 74\n1\n"
     expected = "  0\nPOLYLINE\n  8\n0\n 66\n1\n" \
              " 70\n64\n 71\n3\n 72\n1\n" + vt1 + vt2 + vt3 + vtface + "  0\nSEQEND\n"
     self.assertEqual(dxfstr(pface), expected)
Пример #9
0
 def test_stable_order(self):
     pface = Polyface()
     pface.add_face([(0, 0), (1, 1), (1, 0)])
     vt1 = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n192\n"
     vt2 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n1.0\n 30\n0.0\n 70\n192\n"
     vt3 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n0.0\n 30\n0.0\n 70\n192\n"
     vtface = "  0\nVERTEX\n 62\n0\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n128\n" \
            " 71\n1\n 72\n2\n 73\n3\n"
     expected = "  0\nPOLYLINE\n  8\n0\n 66\n1\n" \
              " 70\n64\n 71\n3\n 72\n1\n" + vt1 + vt2 + vt3 + vtface + "  0\nSEQEND\n"
     self.assertEqual(dxfstr(pface), expected)
Пример #10
0
    def test_polymesh(self):
        mesh = Polymesh(2, 2)
        mesh.set_vertex(0, 0, (1, 1, 0))
        vt1 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n1.0\n 30\n0.0\n 70\n64\n"
        mesh.set_vertex(0, 1, (2, 1, 0))
        vt2 = "  0\nVERTEX\n  8\n0\n 10\n2.0\n 20\n1.0\n 30\n0.0\n 70\n64\n"
        mesh.set_vertex(1, 0, (1, 2, 0))
        vt3 = "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n2.0\n 30\n0.0\n 70\n64\n"
        mesh.set_vertex(1, 1, (2, 2, 0))
        vt4 = "  0\nVERTEX\n  8\n0\n 10\n2.0\n 20\n2.0\n 30\n0.0\n 70\n64\n"

        expected = "  0\nPOLYLINE\n  8\n0\n 66\n1\n" \
                 " 70\n16\n 71\n2\n 72\n2\n" + vt1 + vt2 + vt3 + vt4 + "  0\nSEQEND\n"
        self.assertEqual(dxfstr(mesh), expected)
Пример #11
0
    def test_cube_of_polyfaces(self):
        pface = Polyface()
        # cube corner points
        p1 = pface.add_vertex((0, 0, 0))
        p2 = pface.add_vertex((0, 0, 1))
        p3 = pface.add_vertex((0, 1, 0))
        p4 = pface.add_vertex((0, 1, 1))
        p5 = pface.add_vertex((1, 0, 0))
        p6 = pface.add_vertex((1, 0, 1))
        p7 = pface.add_vertex((1, 1, 0))
        p8 = pface.add_vertex((1, 1, 1))

        # define the 6 cube faces
        # look into -x direction
        pface.add_face_by_indices([p1, p5, p7, p3])  # base
        pface.add_face_by_indices([p1, p5, p6, p2])  # left
        pface.add_face_by_indices([p5, p7, p8, p6])  # front
        pface.add_face_by_indices([p7, p8, p4, p3])  # right
        pface.add_face_by_indices([p1, p3, p4, p2])  # back
        pface.add_face_by_indices([p2, p6, p8, p4])  # top

        vt = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n1.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n1.0\n 30\n0.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n1.0\n 30\n1.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n0.0\n 30\n0.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n0.0\n 30\n1.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n1.0\n 30\n0.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n1.0\n 30\n1.0\n 70\n192\n"

        vtf_prefix = "  0\nVERTEX\n 62\n0\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n128\n"
        vtf =  vtf_prefix + " 71\n1\n 72\n5\n 73\n7\n 74\n3\n" + \
               vtf_prefix + " 71\n1\n 72\n5\n 73\n6\n 74\n2\n" + \
               vtf_prefix + " 71\n5\n 72\n7\n 73\n8\n 74\n6\n" + \
               vtf_prefix + " 71\n7\n 72\n8\n 73\n4\n 74\n3\n" + \
               vtf_prefix + " 71\n1\n 72\n3\n 73\n4\n 74\n2\n" + \
               vtf_prefix + " 71\n2\n 72\n6\n 73\n8\n 74\n4\n"

        expected = "  0\nPOLYLINE\n  8\n0\n 66\n1\n" \
                   " 70\n64\n 71\n8\n 72\n6\n" + vt + vtf + "  0\nSEQEND\n"
        self.assertEqual(dxfstr(pface), expected)
Пример #12
0
    def test_cube_of_polyfaces(self):
        pface = Polyface()
        # cube corner points
        p1 = pface.add_vertex( (0,0,0) )
        p2 = pface.add_vertex( (0,0,1) )
        p3 = pface.add_vertex( (0,1,0) )
        p4 = pface.add_vertex( (0,1,1) )
        p5 = pface.add_vertex( (1,0,0) )
        p6 = pface.add_vertex( (1,0,1) )
        p7 = pface.add_vertex( (1,1,0) )
        p8 = pface.add_vertex( (1,1,1) )

        # define the 6 cube faces
        # look into -x direction
        pface.add_face_by_indices([p1, p5, p7, p3]) # base
        pface.add_face_by_indices([p1, p5, p6, p2]) # left
        pface.add_face_by_indices([p5, p7, p8, p6]) # front
        pface.add_face_by_indices([p7, p8, p4, p3]) # right
        pface.add_face_by_indices([p1, p3, p4, p2]) # back
        pface.add_face_by_indices([p2, p6, p8, p4]) # top

        vt = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n1.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n1.0\n 30\n0.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n1.0\n 30\n1.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n0.0\n 30\n0.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n0.0\n 30\n1.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n1.0\n 30\n0.0\n 70\n192\n" + \
             "  0\nVERTEX\n  8\n0\n 10\n1.0\n 20\n1.0\n 30\n1.0\n 70\n192\n"

        vtf_prefix = "  0\nVERTEX\n 62\n0\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n 70\n128\n"
        vtf =  vtf_prefix + " 71\n1\n 72\n5\n 73\n7\n 74\n3\n" + \
               vtf_prefix + " 71\n1\n 72\n5\n 73\n6\n 74\n2\n" + \
               vtf_prefix + " 71\n5\n 72\n7\n 73\n8\n 74\n6\n" + \
               vtf_prefix + " 71\n7\n 72\n8\n 73\n4\n 74\n3\n" + \
               vtf_prefix + " 71\n1\n 72\n3\n 73\n4\n 74\n2\n" + \
               vtf_prefix + " 71\n2\n 72\n6\n 73\n8\n 74\n4\n"

        expected = "  0\nPOLYLINE\n  8\n0\n 66\n1\n" \
                   " 70\n64\n 71\n8\n 72\n6\n" + vt + vtf + "  0\nSEQEND\n"
        self.assertEqual(dxfstr(pface), expected)
Пример #13
0
class TestLinetypeTableEntry(unittest.TestCase):
    pattern = Linetype.make_line_pattern_definition([0.6, 0.5, -0.1])
    expected = "  0\nLTYPE\n  2\nDASHED\n 70\n0\n  3\nstrichliert\n%s" % dxfstr(
        pattern)

    def test_linepattern(self):
        expected = " 72\n65\n 73\n2\n 40\n0.6\n" \
                   " 49\n0.5\n 49\n-0.1\n"
        self.assertEqual(dxfstr(self.pattern), expected)

    def test_create_table_entry(self):
        ltype = Linetype('DASHED',
                         description="strichliert",
                         pattern=self.pattern)

        self.assertEqual(dxfstr(ltype), self.expected)

    def test_create_table_entry_by_factory(self):
        ltype = DXFEngine.linetype('DASHED',
                                   description="strichliert",
                                   pattern=self.pattern)

        self.assertEqual(dxfstr(ltype), self.expected)
Пример #14
0
    def test_create_table_entry_by_factory(self):
        ltype = DXFEngine.linetype('DASHED',
                         description="strichliert",
                         pattern=self.pattern)

        self.assertEqual(dxfstr(ltype), self.expected)
Пример #15
0
 def test_empty_ucs_table(self):
     table = create_table('UCS')
     dxf = dxfstr(table)
     self.assertEqual(dxf, "  0\nTABLE\n  2\nUCS\n 70\n0\n  0\nENDTAB\n")
Пример #16
0
 def test_empty_styles_table(self):
     table = create_table('STYLE')
     dxf = dxfstr(table)
     self.assertEqual(dxf, "  0\nTABLE\n  2\nSTYLE\n 70\n0\n  0\nENDTAB\n")
Пример #17
0
 def test_empty_linetypes_table(self):
     table = create_table('LTYPE')
     dxf = dxfstr(table)
     self.assertEqual(dxf, "  0\nTABLE\n  2\nLTYPE\n 70\n0\n  0\nENDTAB\n")
 def test_create_table_entry(self):
     ucs = UCS('Test')
     self.assertEqual(dxfstr(ucs), self.expected)
Пример #19
0
 def test_style_by_factory(self):
     style = DXFEngine.style("ARIAL", font='Arial.ttf')
     self.set_params(style)
     self.assertEqual(dxfstr(style), self.expected)
Пример #20
0
 def test_empty_ucs_table(self):
     table = create_table('UCS')
     dxf = dxfstr(table)
     self.assertEqual(dxf, "  0\nTABLE\n  2\nUCS\n 70\n0\n  0\nENDTAB\n")
Пример #21
0
 def test_empty_viewports_table(self):
     table = create_table('VPORT')
     dxf = dxfstr(table)
     self.assertEqual(dxf, "  0\nTABLE\n  2\nVPORT\n 70\n0\n  0\nENDTAB\n")
Пример #22
0
 def test_empty_styles_table(self):
     table = create_table('STYLE')
     dxf = dxfstr(table)
     self.assertEqual(dxf, "  0\nTABLE\n  2\nSTYLE\n 70\n0\n  0\nENDTAB\n")
Пример #23
0
 def test_empty_layers_table(self):
     table = create_table('LAYER')
     dxf = dxfstr(table)
     self.assertEqual(dxf, "  0\nTABLE\n  2\nLAYER\n 70\n0\n  0\nENDTAB\n")
Пример #24
0
 def test_empty_linetypes_table(self):
     table = create_table('LTYPE')
     dxf = dxfstr(table)
     self.assertEqual(dxf, "  0\nTABLE\n  2\nLTYPE\n 70\n0\n  0\nENDTAB\n")
Пример #25
0
 def test_layer_by_factory(self):
     layer = DXFEngine.layer('Standard', linetype='CONTINUOUS')
     self.assertEqual(dxfstr(layer), self.expected)
Пример #26
0
 def test_vport_by_factory(self):
     viewport = DXFEngine.vport('Test')
     self.assertEqual(dxfstr(viewport), self.expected)
Пример #27
0
 def test_create_viewport_entity(self):
     viewport = Viewport((0, 0, 0), 3, 2, id=1)
     self.assertEqual(dxfstr(viewport), self.expected)
Пример #28
0
 def test_create_table_entry(self):
     view = View('Test')
     self.assertEqual(dxfstr(view), self.expected)
Пример #29
0
 def test_create_table_entry(self):
     viewport = VPort('Test')
     self.assertEqual(dxfstr(viewport), self.expected)
Пример #30
0
 def test_view_by_factory(self):
     view = DXFEngine.view('Test')
     self.assertEqual(dxfstr(view), self.expected)
Пример #31
0
    def test_create_table_entry_by_factory(self):
        ltype = DXFEngine.linetype('DASHED',
                                   description="strichliert",
                                   pattern=self.pattern)

        self.assertEqual(dxfstr(ltype), self.expected)
 def test_create_table_entry(self):
     layer = Layer('Standard', linetype='CONTINUOUS')
     self.assertEqual(dxfstr(layer), self.expected)
Пример #33
0
 def test_viewport_by_factory(self):
     viewport = DXFEngine.viewport((0,0,0), 3, 2, id=1)
     self.assertEqual(dxfstr(viewport), self.expected)
 def test_layer_by_factory(self):
     layer = DXFEngine.layer('Standard', linetype='CONTINUOUS')
     self.assertEqual(dxfstr(layer), self.expected)
Пример #35
0
 def test_empty_layers_table(self):
     table = create_table('LAYER')
     dxf = dxfstr(table)
     self.assertEqual(dxf, "  0\nTABLE\n  2\nLAYER\n 70\n0\n  0\nENDTAB\n")
Пример #36
0
def main():
    print("Sizeof DXF string: %d" % len(dxfwrite.dxfstr(drawing)))
    t = Timer("profile_dxfstr()", setup_dxfstr)
    print_result(t.timeit(COUNT), 'using the dxfstr()')
    t = Timer("profile_save_to_fileobj()", setup_write_dxf)
    print_result(t.timeit(COUNT), 'using the save_to_fileobj()')
Пример #37
0
 def test_empty_viewports_table(self):
     table = create_table('VPORT')
     dxf = dxfstr(table)
     self.assertEqual(dxf, "  0\nTABLE\n  2\nVPORT\n 70\n0\n  0\nENDTAB\n")
Пример #38
0
def profile_dxfstr():
    dxf_string = dxfwrite.dxfstr(drawing)
Пример #39
0
 def test_linepattern(self):
     expected = " 72\n65\n 73\n2\n 40\n0.6\n" \
                " 49\n0.5\n 49\n-0.1\n"
     self.assertEqual(dxfstr(self.pattern), expected)
Пример #40
0
def main():
    print("Sizeof DXF string: %d" % len(dxfwrite.dxfstr(drawing)) )
    t = Timer("profile_dxfstr()", setup_dxfstr)
    print_result(t.timeit(COUNT), 'using the dxfstr()')
    t = Timer("profile_save_to_fileobj()", setup_write_dxf)
    print_result(t.timeit(COUNT), 'using the save_to_fileobj()')
Пример #41
0
 def test_create_table_entry(self):
     viewport = VPort('Test')
     self.assertEqual(dxfstr(viewport), self.expected)
Пример #42
0
def profile_dxfstr():
    dxf_string = dxfwrite.dxfstr(drawing)
 def test_simple_vertex(self):
     vertex = Vertex()
     expected = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n"
     self.assertEqual(dxfstr(vertex), expected)
Пример #44
0
 def test_view_by_factory(self):
     view = DXFEngine.view('Test')
     self.assertEqual(dxfstr(view), self.expected)
Пример #45
0
 def __dxf__(self):
     """ Get the dxf string.
     """
     return dxfstr(self.__dxftags__())
Пример #46
0
 def test_style_by_factory(self):
     style = DXFEngine.style("ARIAL",
                           font='Arial.ttf')
     self.set_params(style)
     self.assertEqual(dxfstr(style), self.expected)
Пример #47
0
 def test_vport_by_factory(self):
     viewport = DXFEngine.vport('Test')
     self.assertEqual(dxfstr(viewport), self.expected)
Пример #48
0
 def test_simple_vertex(self):
     vertex = Vertex()
     expected = "  0\nVERTEX\n  8\n0\n 10\n0.0\n 20\n0.0\n 30\n0.0\n"
     self.assertEqual(dxfstr(vertex), expected)
Пример #49
0
 def test_create_table_entry(self):
     layer = Layer('Standard', linetype='CONTINUOUS')
     self.assertEqual(dxfstr(layer), self.expected)
Пример #50
0
 def test_viewport_by_factory(self):
     viewport = DXFEngine.viewport((0, 0, 0), 3, 2, id=1)
     self.assertEqual(dxfstr(viewport), self.expected)
Пример #51
0
 def test_linepattern(self):
     expected = " 72\n65\n 73\n2\n 40\n0.6\n" \
                " 49\n0.5\n 49\n-0.1\n"
     self.assertEqual(dxfstr(self.pattern), expected)
Пример #52
0
 def test_create_viewport_entity(self):
     viewport = Viewport((0,0,0), 3, 2, id=1)
     self.assertEqual(dxfstr(viewport), self.expected)
Пример #53
0
 def test_create_table_entry(self):
     view = View('Test')
     self.assertEqual(dxfstr(view), self.expected)
 def test_ucs_by_factory(self):
     ucs = DXFEngine.ucs('Test')
     self.assertEqual(dxfstr(ucs), self.expected)
Пример #55
0
 def __dxf__(self):
     """ Get the dxf string.
     """
     return dxfstr(self.__dxftags__())
Пример #56
0
 def test_create_table_entry(self):
     style = Style("ARIAL", font='Arial.ttf')
     self.set_params(style)
     self.assertEqual(dxfstr(style), self.expected)