##// END OF EJS Templates
Sync
jeandet -
r5:c48b43d9c7fb default
parent child
Show More
@@ -1,67 +1,212
1 1 /*------------------------------------------------------------------------------
2 2 -- This file is a part of the Kicad Tools Software
3 3 -- Copyright (C) 2014, Plasma Physics Laboratory - CNRS
4 4 --
5 5 -- This program is free software; you can redistribute it and/or modify
6 6 -- it under the terms of the GNU General Public License as published by
7 7 -- the Free Software Foundation; either version 2 of the License, or
8 8 -- (at your option) any later version.
9 9 --
10 10 -- This program is distributed in the hope that it will be useful,
11 11 -- but WITHOUT ANY WARRANTY; without even the implied warranty of
12 12 -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 13 -- GNU General Public License for more details.
14 14 --
15 15 -- You should have received a copy of the GNU General Public License
16 16 -- along with this program; if not, write to the Free Software
17 17 -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18 18 -------------------------------------------------------------------------------*/
19 19 /*-- Author : Alexis Jeandet
20 20 -- Mail : alexis.jeandet@member.fsf.org
21 21 ----------------------------------------------------------------------------*/
22 22 #ifndef QICADPCB_H
23 23 #define QICADPCB_H
24 24 #include <QString>
25 25 #include <QStringList>
26 26 #include <QList>
27 27 #include <QFile>
28 28 #include <parsers/lispLike_driver.h>
29 29 #include <qicadlisplikelexique.h>
30 30
31 31 namespace QIlib{
32 32
33 class QIcadPcbPlotParams : public QIcadAbstractNodeWrapper
34 {
35 public:
36 QIcadPcbPlotParams(QIlib::AbstractNode* node);
37 QIcadAbstractNodeWrapper layerselection;
38 QIcadAbstractNodeWrapper usegerberextensions;
39 QIcadAbstractNodeWrapper excludeedgelayer;
40 QIcadAbstractNodeWrapper linewidth;
41 QIcadAbstractNodeWrapper plotframeref;
42 QIcadAbstractNodeWrapper viasonmask;
43 QIcadAbstractNodeWrapper mode;
44 QIcadAbstractNodeWrapper useauxorigin;
45 QIcadAbstractNodeWrapper hpglpennumber;
46 QIcadAbstractNodeWrapper hpglpenspeed;
47 QIcadAbstractNodeWrapper hpglpendiameter;
48 QIcadAbstractNodeWrapper hpglpenoverlay;
49 QIcadAbstractNodeWrapper psnegative;
50 QIcadAbstractNodeWrapper psa4output;
51 QIcadAbstractNodeWrapper plotreference;
52 QIcadAbstractNodeWrapper plotvalue;
53 QIcadAbstractNodeWrapper layerselection;
54 QIcadAbstractNodeWrapper plotothertext;
55 QIcadAbstractNodeWrapper plotinvisibletext;
56 QIcadAbstractNodeWrapper padsonsilk;
57 QIcadAbstractNodeWrapper subtractmaskfromsilk;
58 QIcadAbstractNodeWrapper outputformat;
59 QIcadAbstractNodeWrapper mirror;
60 QIcadAbstractNodeWrapper drillshape;
61 QIcadAbstractNodeWrapper scaleselection;
62 QIcadAbstractNodeWrapper outputdirectory;
63 void setNode(QIlib::AbstractNode* node);
64 };
65
66 class QIcadPcbSetup : public QIcadAbstractNodeWrapper
67 {
68 public:
69 QIcadPcbSetup(QIlib::AbstractNode* node);
70 QIcadAbstractNodeWrapper last_trace_width;
71 QIcadAbstractNodeWrapper trace_clearance;
72 QIcadAbstractNodeWrapper zone_clearance;
73 QIcadAbstractNodeWrapper zone_45_only;
74 QIcadAbstractNodeWrapper trace_min;
75 QIcadAbstractNodeWrapper segment_width;
76 QIcadAbstractNodeWrapper edge_width;
77 QIcadAbstractNodeWrapper via_size;
78 QIcadAbstractNodeWrapper via_dril;
79 QIcadAbstractNodeWrapper via_min_size;
80 QIcadAbstractNodeWrapper via_min_drill;
81 QIcadAbstractNodeWrapper uvia_size;
82 QIcadAbstractNodeWrapper uvia_drill;
83 QIcadAbstractNodeWrapper uvias_allowed;
84 QIcadAbstractNodeWrapper uvia_min_size;
85 QIcadAbstractNodeWrapper uvia_min_drill;
86 QIcadAbstractNodeWrapper pcb_text_width;
87 QIcadAbstractNodeWrapper pcb_text_size;
88 QIcadAbstractNodeWrapper mod_edge_width;
89 QIcadAbstractNodeWrapper mod_text_size;
90 QIcadAbstractNodeWrapper mod_text_width;
91 QIcadAbstractNodeWrapper pad_size;
92 QIcadAbstractNodeWrapper pad_drill;
93 QIcadAbstractNodeWrapper pad_to_mask_clearance;
94 QIcadAbstractNodeWrapper aux_axis_origin;
95 QIcadAbstractNodeWrapper visible_elements;
96 QIcadPcbPlotParams plotParams;
97 void setNode(QIlib::AbstractNode* node);
98 };
99
100
101 class QIcadPcbNetClass : public QIcadAbstractNodeWrapper
102 {
103 public:
104 QIcadPcbNetClass(QIlib::AbstractNode* node);
105 QIcadAbstractNodeWrapper clearance;
106 QIcadAbstractNodeWrapper trace_width;
107 QIcadAbstractNodeWrapper via_dia;
108 QIcadAbstractNodeWrapper via_drill;
109 QIcadAbstractNodeWrapper uvia_dia;
110 QIcadAbstractNodeWrapper uvia_drill;
111 QList<QIcadAbstractNodeWrapper> nets;
112 void setNode(QIlib::AbstractNode* node);
113 };
114
115 class QIcadPcbFpTextEffectsFont : public QIcadAbstractNodeWrapper
116 {
117 public:
118 QIcadPcbFpTextEffectsFont(QIlib::AbstractNode* node);
119 QIcadAbstractNodeWrapper size;
120 void setNode(QIlib::AbstractNode* node);
121 };
122
123 class QIcadPcbFpTextEffects : public QIcadAbstractNodeWrapper
124 {
125 public:
126 QIcadPcbFpTextEffects(QIlib::AbstractNode* node);
127 QIcadAbstractNodeWrapper font;
128 QIcadAbstractNodeWrapper thickness;
129 void setNode(QIlib::AbstractNode* node);
130 };
131
132 class QIcadPcbFpText : public QIcadAbstractNodeWrapper
133 {
134 public:
135 QIcadPcbFpText(QIlib::AbstractNode* node);
136 QIcadAbstractNodeWrapper at;
137 QIcadAbstractNodeWrapper layer;
138 void setNode(QIlib::AbstractNode* node);
139 };
140
141
142 class QIcadPcbModule : public QIcadAbstractNodeWrapper
143 {
144 public:
145 QIcadPcbModule(QIlib::AbstractNode* node);
146 QIcadAbstractNodeWrapper layer;
147 QIcadAbstractNodeWrapper tedit;
148 QIcadAbstractNodeWrapper tstamp;
149 QIcadAbstractNodeWrapper at;
150 QIcadAbstractNodeWrapper descr;
151 QIcadAbstractNodeWrapper tags;
152 QIcadAbstractNodeWrapper path;
153 QIcadAbstractNodeWrapper attr;
154 QList<QIcadAbstractNodeWrapper> fp_texts;
155 QList<QIcadAbstractNodeWrapper> fp_lines;
156 QList<QIcadAbstractNodeWrapper> pads;
157 void setNode(QIlib::AbstractNode* node);
158 };
159
160 class QIcadPcbLayers : public QIcadAbstractNodeWrapper
161 {
162 public:
163 QIcadPcbLayers(QIlib::AbstractNode* node);
164 QList<QIcadAbstractNodeWrapper> layers;
165 void setNode(QIlib::AbstractNode* node);
166 };
33 167
34 168 class QIcadPcbGeneralInfo : public QIcadAbstractNodeWrapper
35 169 {
36 170 public:
37 171 QIcadPcbGeneralInfo(QIlib::AbstractNode* node);
38 QIcadAbstractNodeWrapper version;
39 QIcadAbstractNodeWrapper host;
172 QIcadAbstractNodeWrapper links;
173 QIcadAbstractNodeWrapper no_connections;
174 QIcadAbstractNodeWrapper area;
175 QIcadAbstractNodeWrapper thickness;
176 QIcadAbstractNodeWrapper drawings;
177 QIcadAbstractNodeWrapper tracks;
178 QIcadAbstractNodeWrapper zones;
179 QIcadAbstractNodeWrapper modules;
180 QIcadAbstractNodeWrapper nets;
40 181 void setNode(QIlib::AbstractNode* node);
41 182 };
42 183
43 184 class QIcadPcbRoot : public QIcadAbstractNodeWrapper
44 185 {
45 186 public:
46 187 QIcadPcbRoot(QIlib::AbstractNode* node);
47 188 QIcadAbstractNodeWrapper version;
48 189 QIcadAbstractNodeWrapper host;
49 190 QIcadAbstractNodeWrapper page;
191 QIcadPcbGeneralInfo general;
192 QIcadPcbLayers layers;
193 QIcadPcbSetup setup;
194 QList<QIcadAbstractNodeWrapper> nets;
50 195 void setNode(QIlib::AbstractNode* node);
51 196 };
52 197
53 198 class QIcadPcb : private lispLike_Driver
54 199 {
55 200 public:
56 201 QIcadPcb();
57 202 bool parsePcb(const QString& pcb);
58 203 QString toString();
59 204 QString fileName;
60 205 QString print();
61 206 private:
62 207 void updateConcreteTree();
63 208 };
64 209
65 210
66 211 }
67 212 #endif // QICADPCB_H
General Comments 0
You need to be logged in to leave comments. Login now