LibrePCB Developers Documentation
Loading...
Searching...
No Matches
gerberexcellonoutputjob.h
Go to the documentation of this file.
1/*
2 * LibrePCB - Professional EDA for everyone!
3 * Copyright (C) 2013 LibrePCB Developers, see AUTHORS.md for contributors.
4 * https://librepcb.org/
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation, either version 3 of the License, or
9 * (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU General Public License for more details.
15 *
16 * You should have received a copy of the GNU General Public License
17 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 */
19
20#ifndef LIBREPCB_CORE_GERBEREXCELLONOUTPUTJOB_H
21#define LIBREPCB_CORE_GERBEREXCELLONOUTPUTJOB_H
22
23/*******************************************************************************
24 * Includes
25 ******************************************************************************/
26#include "outputjob.h"
27
28#include <QtCore>
29#include <QtGui>
30
31#include <memory>
32#include <optional>
33
34/*******************************************************************************
35 * Namespace / Forward Declarations
36 ******************************************************************************/
37namespace librepcb {
38
39/*******************************************************************************
40 * Class GerberExcellonOutputJob
41 ******************************************************************************/
42
46class GerberExcellonOutputJob final : public OutputJob {
47 Q_DECLARE_TR_FUNCTIONS(GerberExcellonOutputJob)
48
49public:
51
52 // Constructors / Destructor
54 explicit GerberExcellonOutputJob(const SExpression& node);
55 virtual ~GerberExcellonOutputJob() noexcept;
56
57 // Getters
58 virtual QString getTypeTr() const noexcept override;
59 virtual QIcon getTypeIcon() const noexcept override;
60 const QString& getSuffixDrills() const noexcept { return mSuffixDrills; }
61 const QString& getSuffixDrillsNpth() const noexcept {
62 return mSuffixDrillsNpth;
63 }
64 const QString& getSuffixDrillsPth() const noexcept {
65 return mSuffixDrillsPth;
66 }
67 const QString& getSuffixDrillsBlindBuried() const noexcept {
69 }
70 const QString& getSuffixOutlines() const noexcept { return mSuffixOutlines; }
71 const QString& getSuffixCopperTop() const noexcept {
72 return mSuffixCopperTop;
73 }
74 const QString& getSuffixCopperInner() const noexcept {
75 return mSuffixCopperInner;
76 }
77 const QString& getSuffixCopperBot() const noexcept {
78 return mSuffixCopperBot;
79 }
80 const QString& getSuffixSolderMaskTop() const noexcept {
82 }
83 const QString& getSuffixSolderMaskBot() const noexcept {
85 }
86 const QString& getSuffixSilkscreenTop() const noexcept {
88 }
89 const QString& getSuffixSilkscreenBot() const noexcept {
91 }
92 const QString& getSuffixSolderPasteTop() const noexcept {
94 }
95 const QString& getSuffixSolderPasteBot() const noexcept {
97 }
98 bool getMergeDrillFiles() const noexcept { return mMergeDrillFiles; }
99 bool getUseG85SlotCommand() const noexcept { return mUseG85SlotCommand; }
100 bool getEnableSolderPasteTop() const noexcept {
102 }
103 bool getEnableSolderPasteBot() const noexcept {
105 }
106 const BoardSet& getBoards() const noexcept { return mBoards; }
107 const QString& getOutputPath() const noexcept { return mOutputPath; }
108
109 // Setters
110 void setSuffixDrills(const QString& s) noexcept;
111 void setSuffixDrillsNpth(const QString& s) noexcept;
112 void setSuffixDrillsPth(const QString& s) noexcept;
113 void setSuffixDrillsBlindBuried(const QString& s) noexcept;
114 void setSuffixOutlines(const QString& s) noexcept;
115 void setSuffixCopperTop(const QString& s) noexcept;
116 void setSuffixCopperInner(const QString& s) noexcept;
117 void setSuffixCopperBot(const QString& s) noexcept;
118 void setSuffixSolderMaskTop(const QString& s) noexcept;
119 void setSuffixSolderMaskBot(const QString& s) noexcept;
120 void setSuffixSilkscreenTop(const QString& s) noexcept;
121 void setSuffixSilkscreenBot(const QString& s) noexcept;
122 void setSuffixSolderPasteTop(const QString& s) noexcept;
123 void setSuffixSolderPasteBot(const QString& s) noexcept;
124 void setMergeDrillFiles(bool m) noexcept;
125 void setUseG85SlotCommand(bool u) noexcept;
126 void setEnableSolderPasteTop(bool e) noexcept;
127 void setEnableSolderPasteBot(bool e) noexcept;
128 void setBoards(const BoardSet& boards) noexcept;
129 void setOutputPath(const QString& path) noexcept;
130
131 // General Methods
132 static QString getTypeName() noexcept { return "gerber_excellon"; }
133 static QString getTypeTrStatic() noexcept { return tr("Gerber/Excellon"); }
134 virtual std::shared_ptr<OutputJob> cloneShared() const noexcept override;
135
136 // Operator Overloadings
138 delete;
139
140 // Static Methods
141 static std::shared_ptr<GerberExcellonOutputJob> defaultStyle() noexcept;
142 static std::shared_ptr<GerberExcellonOutputJob> protelStyle() noexcept;
143
144private: // Methods
145 GerberExcellonOutputJob() noexcept;
146 virtual void serializeDerived(SExpression& root) const override;
147 virtual bool equals(const OutputJob& rhs) const noexcept override;
148
149private: // Data
150 QString mSuffixDrills; // NPTH and PTH combined
153 QString mSuffixDrillsBlindBuried; // Vias (plated)
169 QString mOutputPath;
170};
171
172/*******************************************************************************
173 * End of File
174 ******************************************************************************/
175
176} // namespace librepcb
177
178#endif
Gerber/Excellon output job.
Definition gerberexcellonoutputjob.h:46
void setEnableSolderPasteBot(bool e) noexcept
Definition gerberexcellonoutputjob.cpp:264
const QString & getSuffixDrillsPth() const noexcept
Definition gerberexcellonoutputjob.h:64
void setSuffixCopperInner(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:181
void setSuffixDrillsPth(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:152
bool mEnableSolderPasteBot
Definition gerberexcellonoutputjob.h:167
QString mSuffixCopperBot
Definition gerberexcellonoutputjob.h:157
void setSuffixSilkscreenTop(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:211
BoardSet mBoards
Definition gerberexcellonoutputjob.h:168
const QString & getSuffixDrills() const noexcept
Definition gerberexcellonoutputjob.h:60
bool getUseG85SlotCommand() const noexcept
Definition gerberexcellonoutputjob.h:99
bool getEnableSolderPasteBot() const noexcept
Definition gerberexcellonoutputjob.h:103
void setUseG85SlotCommand(bool u) noexcept
Definition gerberexcellonoutputjob.cpp:250
virtual QString getTypeTr() const noexcept override
Definition gerberexcellonoutputjob.cpp:126
const QString & getSuffixSolderMaskBot() const noexcept
Definition gerberexcellonoutputjob.h:83
void setOutputPath(const QString &path) noexcept
Definition gerberexcellonoutputjob.cpp:278
static std::shared_ptr< GerberExcellonOutputJob > protelStyle() noexcept
Definition gerberexcellonoutputjob.cpp:305
void setSuffixSolderMaskBot(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:203
static std::shared_ptr< GerberExcellonOutputJob > defaultStyle() noexcept
Definition gerberexcellonoutputjob.cpp:299
const QString & getSuffixDrillsNpth() const noexcept
Definition gerberexcellonoutputjob.h:61
QString mSuffixSolderMaskBot
Definition gerberexcellonoutputjob.h:159
QString mSuffixCopperTop
Definition gerberexcellonoutputjob.h:155
void setSuffixSolderMaskTop(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:195
virtual bool equals(const OutputJob &rhs) const noexcept override
Definition gerberexcellonoutputjob.cpp:378
bool mEnableSolderPasteTop
Definition gerberexcellonoutputjob.h:166
void setSuffixSilkscreenBot(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:219
static QString getTypeName() noexcept
Definition gerberexcellonoutputjob.h:132
void setSuffixDrillsNpth(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:145
QString mSuffixDrills
Definition gerberexcellonoutputjob.h:150
const QString & getSuffixSilkscreenTop() const noexcept
Definition gerberexcellonoutputjob.h:86
void setSuffixDrills(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:138
void setEnableSolderPasteTop(bool e) noexcept
Definition gerberexcellonoutputjob.cpp:257
void setSuffixOutlines(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:167
QString mSuffixSolderPasteBot
Definition gerberexcellonoutputjob.h:163
QString mSuffixSilkscreenBot
Definition gerberexcellonoutputjob.h:161
virtual ~GerberExcellonOutputJob() noexcept
Definition gerberexcellonoutputjob.cpp:119
QString mSuffixSilkscreenTop
Definition gerberexcellonoutputjob.h:160
static QString getTypeTrStatic() noexcept
Definition gerberexcellonoutputjob.h:133
QString mOutputPath
Definition gerberexcellonoutputjob.h:169
void setSuffixDrillsBlindBuried(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:159
void setMergeDrillFiles(bool m) noexcept
Definition gerberexcellonoutputjob.cpp:243
const QString & getSuffixCopperInner() const noexcept
Definition gerberexcellonoutputjob.h:74
const QString & getSuffixCopperTop() const noexcept
Definition gerberexcellonoutputjob.h:71
void setSuffixCopperBot(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:188
QString mSuffixSolderPasteTop
Definition gerberexcellonoutputjob.h:162
QString mSuffixDrillsNpth
Definition gerberexcellonoutputjob.h:151
const BoardSet & getBoards() const noexcept
Definition gerberexcellonoutputjob.h:106
const QString & getSuffixSolderPasteTop() const noexcept
Definition gerberexcellonoutputjob.h:92
QString mSuffixDrillsPth
Definition gerberexcellonoutputjob.h:152
bool getMergeDrillFiles() const noexcept
Definition gerberexcellonoutputjob.h:98
const QString & getSuffixDrillsBlindBuried() const noexcept
Definition gerberexcellonoutputjob.h:67
virtual QIcon getTypeIcon() const noexcept override
Definition gerberexcellonoutputjob.cpp:130
virtual void serializeDerived(SExpression &root) const override
Definition gerberexcellonoutputjob.cpp:329
const QString & getSuffixSolderMaskTop() const noexcept
Definition gerberexcellonoutputjob.h:80
ObjectSet< Uuid > BoardSet
Definition gerberexcellonoutputjob.h:50
QString mSuffixOutlines
Definition gerberexcellonoutputjob.h:154
const QString & getOutputPath() const noexcept
Definition gerberexcellonoutputjob.h:107
QString mSuffixSolderMaskTop
Definition gerberexcellonoutputjob.h:158
bool mUseG85SlotCommand
Definition gerberexcellonoutputjob.h:165
const QString & getSuffixCopperBot() const noexcept
Definition gerberexcellonoutputjob.h:77
void setSuffixSolderPasteBot(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:235
QString mSuffixCopperInner
Definition gerberexcellonoutputjob.h:156
const QString & getSuffixSolderPasteBot() const noexcept
Definition gerberexcellonoutputjob.h:95
virtual std::shared_ptr< OutputJob > cloneShared() const noexcept override
Definition gerberexcellonoutputjob.cpp:289
QString mSuffixDrillsBlindBuried
Definition gerberexcellonoutputjob.h:153
bool getEnableSolderPasteTop() const noexcept
Definition gerberexcellonoutputjob.h:100
bool mMergeDrillFiles
Definition gerberexcellonoutputjob.h:164
const QString & getSuffixOutlines() const noexcept
Definition gerberexcellonoutputjob.h:70
void setSuffixSolderPasteTop(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:227
const QString & getSuffixSilkscreenBot() const noexcept
Definition gerberexcellonoutputjob.h:89
void setSuffixCopperTop(const QString &s) noexcept
Definition gerberexcellonoutputjob.cpp:174
GerberExcellonOutputJob() noexcept
Definition gerberexcellonoutputjob.cpp:38
void setBoards(const BoardSet &boards) noexcept
Definition gerberexcellonoutputjob.cpp:271
Base class for all output job types.
Definition outputjob.h:50
The SExpression class.
Definition sexpression.h:69
Definition occmodel.cpp:76
Definition uuid.h:186
Definition outputjob.h:65