KiCad PCB EDA Suite
Loading...
Searching...
No Matches
autotrax_model.h
Go to the documentation of this file.
1
/*
2
* This program source code file is part of KiCad, a free EDA CAD application.
3
*
4
* Format interpretation derived from pcb-rnd src_plugins/io_autotrax:
5
* Copyright (C) 2016, 2017, 2018, 2020 Tibor 'Igor2' Palinkas
6
* Copyright (C) 2016, 2017 Erich S. Heinzle
7
* Used under GPL v2-or-later.
8
*
9
* Copyright (C) 2026 KiCad Developers, see AUTHORS.txt for contributors.
10
*
11
* This program is free software; you can redistribute it and/or
12
* modify it under the terms of the GNU General Public License
13
* as published by the Free Software Foundation; either version 2
14
* of the License, or (at your option) any later version.
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU General Public License for more details.
20
*
21
* You should have received a copy of the GNU General Public License
22
* along with this program; if not, you may find one here:
23
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
24
* or you may search the http://www.gnu.org website for the version 2 license,
25
* or you may write to the Free Software Foundation, Inc.,
26
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
27
*/
28
29
#ifndef AUTOTRAX_MODEL_H_
30
#define AUTOTRAX_MODEL_H_
31
32
#include <vector>
33
34
#include <wx/string.h>
35
36
namespace
AUTOTRAX
37
{
38
44
enum
LAYER
45
{
46
LAYER_TOP_COPPER
= 1,
47
LAYER_MID1
= 2,
48
LAYER_MID2
= 3,
49
LAYER_MID3
= 4,
50
LAYER_MID4
= 5,
51
LAYER_BOTTOM_COPPER
= 6,
52
LAYER_TOP_SILK
= 7,
53
LAYER_BOTTOM_SILK
= 8,
54
LAYER_GND_PLANE
= 9,
55
LAYER_POWER_PLANE
= 10,
56
LAYER_BOARD
= 11,
57
LAYER_KEEPOUT
= 12,
58
LAYER_MULTI
= 13
59
};
60
61
63
struct
TRACK
64
{
65
double
x1
= 0;
66
double
y1
= 0;
67
double
x2
= 0;
68
double
y2
= 0;
69
double
width
= 0;
70
int
layer
= 0;
71
};
72
73
76
struct
ARC
77
{
78
double
centerX
= 0;
79
double
centerY
= 0;
80
double
radius
= 0;
81
int
segments
= 15;
82
double
width
= 0;
83
int
layer
= 0;
84
};
85
86
88
struct
VIA
89
{
90
double
x
= 0;
91
double
y
= 0;
92
double
diameter
= 0;
93
double
drill
= 0;
94
};
95
96
98
struct
PAD
99
{
100
double
x
= 0;
101
double
y
= 0;
102
double
xSize
= 0;
103
double
ySize
= 0;
104
int
shape
= 0;
105
double
drill
= 0;
106
int
planeFlags
= 0;
107
int
layer
= 0;
108
wxString
name
;
109
};
110
111
113
struct
FILL
114
{
115
double
x1
= 0;
116
double
y1
= 0;
117
double
x2
= 0;
118
double
y2
= 0;
119
int
layer
= 0;
120
};
121
122
124
struct
TEXT
125
{
126
double
x
= 0;
127
double
y
= 0;
128
double
height
= 0;
129
int
direction
= 0;
130
double
width
= 0;
131
int
layer
= 0;
132
wxString
text
;
133
};
134
135
137
struct
COMPONENT
138
{
139
wxString
refdes
;
140
wxString
name
;
141
wxString
value
;
142
double
x
= 0;
143
double
y
= 0;
144
145
std::vector<TRACK>
tracks
;
146
std::vector<ARC>
arcs
;
147
std::vector<VIA>
vias
;
148
std::vector<PAD>
pads
;
149
std::vector<FILL>
fills
;
150
std::vector<TEXT>
texts
;
151
};
152
153
155
struct
NET_NODE
156
{
157
wxString
netName
;
158
wxString
node
;
159
};
160
161
166
struct
BOARD_DATA
167
{
168
int
version
= 4;
169
170
std::vector<TRACK>
tracks
;
171
std::vector<ARC>
arcs
;
172
std::vector<VIA>
vias
;
173
std::vector<PAD>
pads
;
174
std::vector<FILL>
fills
;
175
std::vector<TEXT>
texts
;
176
std::vector<COMPONENT>
components
;
177
std::vector<NET_NODE>
netNodes
;
178
};
179
180
}
// namespace AUTOTRAX
181
182
#endif
// AUTOTRAX_MODEL_H_
AUTOTRAX
Definition
autotrax_model.h:37
AUTOTRAX::LAYER
LAYER
Autotrax/Easytrax layer numbers as stored in the file.
Definition
autotrax_model.h:45
AUTOTRAX::LAYER_MID2
@ LAYER_MID2
Definition
autotrax_model.h:48
AUTOTRAX::LAYER_BOARD
@ LAYER_BOARD
Definition
autotrax_model.h:56
AUTOTRAX::LAYER_POWER_PLANE
@ LAYER_POWER_PLANE
Definition
autotrax_model.h:55
AUTOTRAX::LAYER_GND_PLANE
@ LAYER_GND_PLANE
Definition
autotrax_model.h:54
AUTOTRAX::LAYER_TOP_COPPER
@ LAYER_TOP_COPPER
Definition
autotrax_model.h:46
AUTOTRAX::LAYER_KEEPOUT
@ LAYER_KEEPOUT
Definition
autotrax_model.h:57
AUTOTRAX::LAYER_BOTTOM_SILK
@ LAYER_BOTTOM_SILK
Definition
autotrax_model.h:53
AUTOTRAX::LAYER_MID3
@ LAYER_MID3
Definition
autotrax_model.h:49
AUTOTRAX::LAYER_TOP_SILK
@ LAYER_TOP_SILK
Definition
autotrax_model.h:52
AUTOTRAX::LAYER_MID4
@ LAYER_MID4
Definition
autotrax_model.h:50
AUTOTRAX::LAYER_BOTTOM_COPPER
@ LAYER_BOTTOM_COPPER
Definition
autotrax_model.h:51
AUTOTRAX::LAYER_MULTI
@ LAYER_MULTI
Definition
autotrax_model.h:58
AUTOTRAX::LAYER_MID1
@ LAYER_MID1
Definition
autotrax_model.h:47
AUTOTRAX::ARC
Free or component arc (FA / CA).
Definition
autotrax_model.h:77
AUTOTRAX::ARC::radius
double radius
Definition
autotrax_model.h:80
AUTOTRAX::ARC::segments
int segments
quadrant bitmask; 15 = full circle
Definition
autotrax_model.h:81
AUTOTRAX::ARC::centerY
double centerY
Definition
autotrax_model.h:79
AUTOTRAX::ARC::centerX
double centerX
Definition
autotrax_model.h:78
AUTOTRAX::ARC::layer
int layer
Definition
autotrax_model.h:83
AUTOTRAX::ARC::width
double width
Definition
autotrax_model.h:82
AUTOTRAX::BOARD_DATA
Everything parsed out of an Autotrax/Easytrax file, before any KiCad object is created.
Definition
autotrax_model.h:167
AUTOTRAX::BOARD_DATA::components
std::vector< COMPONENT > components
Definition
autotrax_model.h:176
AUTOTRAX::BOARD_DATA::vias
std::vector< VIA > vias
Definition
autotrax_model.h:172
AUTOTRAX::BOARD_DATA::netNodes
std::vector< NET_NODE > netNodes
Definition
autotrax_model.h:177
AUTOTRAX::BOARD_DATA::pads
std::vector< PAD > pads
Definition
autotrax_model.h:173
AUTOTRAX::BOARD_DATA::tracks
std::vector< TRACK > tracks
Definition
autotrax_model.h:170
AUTOTRAX::BOARD_DATA::version
int version
4 = Autotrax, 5 = Easytrax
Definition
autotrax_model.h:168
AUTOTRAX::BOARD_DATA::texts
std::vector< TEXT > texts
Definition
autotrax_model.h:175
AUTOTRAX::BOARD_DATA::arcs
std::vector< ARC > arcs
Definition
autotrax_model.h:171
AUTOTRAX::BOARD_DATA::fills
std::vector< FILL > fills
Definition
autotrax_model.h:174
AUTOTRAX::COMPONENT
A placed component (COMP .. ENDCOMP) holding its own primitives.
Definition
autotrax_model.h:138
AUTOTRAX::COMPONENT::name
wxString name
Definition
autotrax_model.h:140
AUTOTRAX::COMPONENT::arcs
std::vector< ARC > arcs
Definition
autotrax_model.h:146
AUTOTRAX::COMPONENT::refdes
wxString refdes
Definition
autotrax_model.h:139
AUTOTRAX::COMPONENT::tracks
std::vector< TRACK > tracks
Definition
autotrax_model.h:145
AUTOTRAX::COMPONENT::y
double y
Definition
autotrax_model.h:143
AUTOTRAX::COMPONENT::vias
std::vector< VIA > vias
Definition
autotrax_model.h:147
AUTOTRAX::COMPONENT::pads
std::vector< PAD > pads
Definition
autotrax_model.h:148
AUTOTRAX::COMPONENT::fills
std::vector< FILL > fills
Definition
autotrax_model.h:149
AUTOTRAX::COMPONENT::value
wxString value
Definition
autotrax_model.h:141
AUTOTRAX::COMPONENT::x
double x
Definition
autotrax_model.h:142
AUTOTRAX::COMPONENT::texts
std::vector< TEXT > texts
Definition
autotrax_model.h:150
AUTOTRAX::FILL
Free or component rectangular fill (FF / CF), Autotrax's only pour.
Definition
autotrax_model.h:114
AUTOTRAX::FILL::layer
int layer
Definition
autotrax_model.h:119
AUTOTRAX::FILL::y2
double y2
Definition
autotrax_model.h:118
AUTOTRAX::FILL::x2
double x2
Definition
autotrax_model.h:117
AUTOTRAX::FILL::x1
double x1
Definition
autotrax_model.h:115
AUTOTRAX::FILL::y1
double y1
Definition
autotrax_model.h:116
AUTOTRAX::NET_NODE
One refdes -> net membership row collected from the NETDEF section.
Definition
autotrax_model.h:156
AUTOTRAX::NET_NODE::node
wxString node
"refdes-pad" connection token
Definition
autotrax_model.h:158
AUTOTRAX::NET_NODE::netName
wxString netName
Definition
autotrax_model.h:157
AUTOTRAX::PAD
Free or component pad/pin (FP / CP).
Definition
autotrax_model.h:99
AUTOTRAX::PAD::y
double y
Definition
autotrax_model.h:101
AUTOTRAX::PAD::xSize
double xSize
Definition
autotrax_model.h:102
AUTOTRAX::PAD::x
double x
Definition
autotrax_model.h:100
AUTOTRAX::PAD::ySize
double ySize
Definition
autotrax_model.h:103
AUTOTRAX::PAD::drill
double drill
Definition
autotrax_model.h:105
AUTOTRAX::PAD::name
wxString name
Definition
autotrax_model.h:108
AUTOTRAX::PAD::layer
int layer
Definition
autotrax_model.h:107
AUTOTRAX::PAD::planeFlags
int planeFlags
Definition
autotrax_model.h:106
AUTOTRAX::PAD::shape
int shape
1 round, 2 rect, 3 octagon, 4 round-rect
Definition
autotrax_model.h:104
AUTOTRAX::TEXT
Free or component string (FS / CS).
Definition
autotrax_model.h:125
AUTOTRAX::TEXT::layer
int layer
Definition
autotrax_model.h:131
AUTOTRAX::TEXT::x
double x
Definition
autotrax_model.h:126
AUTOTRAX::TEXT::text
wxString text
Definition
autotrax_model.h:132
AUTOTRAX::TEXT::height
double height
Definition
autotrax_model.h:128
AUTOTRAX::TEXT::width
double width
Definition
autotrax_model.h:130
AUTOTRAX::TEXT::direction
int direction
0..3, multiplied by 90 degrees
Definition
autotrax_model.h:129
AUTOTRAX::TEXT::y
double y
Definition
autotrax_model.h:127
AUTOTRAX::TRACK
Free or component track segment (FT / CT). All coordinates are in mils.
Definition
autotrax_model.h:64
AUTOTRAX::TRACK::x2
double x2
Definition
autotrax_model.h:67
AUTOTRAX::TRACK::y1
double y1
Definition
autotrax_model.h:66
AUTOTRAX::TRACK::width
double width
Definition
autotrax_model.h:69
AUTOTRAX::TRACK::layer
int layer
Definition
autotrax_model.h:70
AUTOTRAX::TRACK::y2
double y2
Definition
autotrax_model.h:68
AUTOTRAX::TRACK::x1
double x1
Definition
autotrax_model.h:65
AUTOTRAX::VIA
Free or component via (FV / CV).
Definition
autotrax_model.h:89
AUTOTRAX::VIA::diameter
double diameter
Definition
autotrax_model.h:92
AUTOTRAX::VIA::drill
double drill
Definition
autotrax_model.h:93
AUTOTRAX::VIA::y
double y
Definition
autotrax_model.h:91
AUTOTRAX::VIA::x
double x
Definition
autotrax_model.h:90
src
pcbnew
pcb_io
autotrax
autotrax_model.h
Generated on Sat Jun 6 2026 00:06:38 for KiCad PCB EDA Suite by
1.13.2