1 /* test read_dxf */
2 #include"read_dxf.h"
3 #include"entities.h"
4 #include"blocks.h"
5 #include"tables.h"
6 #include<iostream>
7 #include"entities2elements.h"
9 using namespace std;
11 int main(){
12 std::vector< std::vector< dxfpair > > output, entities_info, blocks_info, tables_info;
13 //output = dxf_get_sections("circ_sqr.dxf");
14 //output = dxf_get_sections("Labjack.dxf");
15 //output = dxf_get_sections("mini_post.dxf");
16 //output = dxf_get_sections("../8599-E0W.dxf");
17 //output = dxf_get_sections("../bulged_lwpoly.dxf");
18 //output = dxf_get_sections("../aspheric_lens.dxf");
19 output = dxf_get_sections("../layers_colors.dxf");
20 /*std::vector< dxfpair > header;
21 std::vector< dxfpair > classes;
22 std::vector< dxfpair > tables;
23 std::vector< dxfpair > blocks;
24 std::vector< dxfpair > entities;
25 std::vector< dxfpair > objects;
26 std::vector< dxfpair > thumbnailimage;
27 */
30 //dxf_get_sections("circ_sqr.dxf",header,classes,tables,blocks,entities,objects,thumbnailimage);
31 //dxf_get_sections("mini_post.dxf",header,classes,tables,blocks,entities,objects,thumbnailimage);
33 //cout << entities.size() << endl;
34 for (int i=0;i<output.size();i++) cout << "output[i].size()" << i << " = " << output[i].size() << endl;
35 //cout << endl;
36 //for (int i=0;i<output[0].size();i++) cout << output[0][i].group_code << "\t" << output[0][i].value << endl;
37 //cout << endl;
38 //for (int i=0;i<output[4].size();i++) cout << output[4][i].group_code << "\t" << output[4][i].value << endl;
40 // Now display the different parts of the entities section
41 //cout << endl;
42 for (int i=0;i < output[4].size();i++){
43 //cout << output[4][i].group_code << " " << output[4][i].value[0] << output[4][i].value[1] << endl;
44 }
45 cout << endl;
46 entities_info = separate_parts(output[4]);
47 cout << "entities_info.size() = " << entities_info.size() << endl;
49 for (int i=0;i < entities_info.size();i++){
50 //for (int j=0;j < entities_info[i].size();j++) cout << entities_info[i][j].group_code << " " << entities_info[i][j].value[0] << entities_info[i][j].value[1] << entities_info[i][j].value[2] << entities_info[i][j].value[3] << entities_info[i][j].value[4] << "\n";
51 //cout << endl << endl << endl;
52 }
54 cout << "blocks separate parts" << endl;
55 blocks_info = separate_parts(output[3]); // Tables is the 4th part of a dxf file.
56 cout << "sort separated parts" << endl;
57 blocks blks(blocks_info); // Sort the information in the tables
58 cout << "blocks_info.size() = " << blocks_info.size() << endl;
60 for (int i=0;i < blocks_info.size();i++){
61 //for (int j=0;j < blocks_info[i].size();j++) cout << blocks_info[i][j].group_code << " " << blocks_info[i][j].value[0] << blocks_info[i][j].value[1] << blocks_info[i][j].value[2] << blocks_info[i][j].value[3] << blocks_info[i][j].value[4] << "\n";
62 //cout << endl << endl << endl;
63 }
66 tables_info = separate_parts(output[2]); // Tables is the 3rd part of a dxf file.
67 cout << "tables_info.size() = " << tables_info.size() << endl;
68 for (int i=0;i < tables_info.size();i++){
69 //for (int j=0;j < tables_info[i].size();j++) cout << tables_info[i][j].group_code << " " << tables_info[i][j].value[0] << tables_info[i][j].value[1] << tables_info[i][j].value[2] << tables_info[i][j].value[3] << tables_info[i][j].value[4] << "\n";
70 //cout << "i = " << i << endl << endl;
71 }
72 tables tbls(tables_info); // Sort the information in the tables
76 cout << "This should change \n";
78 cout << "\n\nNow display all parsed info \n";
79 entities ents(entities_info);
80 ents.display_all();
82 //char units[5] = "in";
83 char units[5] = "";
85 cout << "\nNow for the begining of the SVG...\n\n";
87 cout << "Polyline conversion\n";
88 //std::vector< polyline > pl_tmp= ents.ret_plines();
89 //cout << "pline2pline\n" << pline2pline(pl_tmp[0], units ) << endl;
90 //cout << "pline2pline\n" << pline2pline(ents.ret_plines()[0], units ) << endl;
91 //cout << "pline2path\n" << pline2path(ents.ret_plines()[0], units );
93 char tmp_char[10000];
95 cout << "\nCircle conversion\n";
96 //cout << "circle2circle\n" << circle2circle(ents.ret_circles()[0], 3, units, tmp_char) << endl;
98 return 0;
99 }