Horizon
Loading...
Searching...
No Matches
excellon_writer.hpp
1#pragma once
2#include "common/common.hpp"
3#include <iostream>
4#include <fstream>
5#include <map>
6#include <deque>
7#include "pool/padstack.hpp"
8#include "util/placement.hpp"
9
10namespace horizon {
11
13public:
14 ExcellonWriter(const std::string &filename);
15 void write_line(const std::string &s);
16 void close();
17 void write_format();
18 void write_header();
19 void write_holes();
20 void draw_hole(const Coordi &pos, uint64_t diameter);
21 void draw_slot(const Coordi &pos, uint64_t diameter, uint64_t length, int angle);
22 const std::string &get_filename();
23
24
25private:
26 std::map<uint64_t, unsigned int> tools;
27 unsigned int tool_n = 1;
28 unsigned int get_tool_for_diameter(uint64_t dia);
29
30 std::deque<std::pair<Coordi, unsigned int>> holes;
31 std::deque<std::tuple<Coordi, Coordi, unsigned int>> slots;
32
33
34 std::ofstream ofs;
35 std::string out_filename;
36 void check_open();
37};
38} // namespace horizon
Definition excellon_writer.hpp:12