@@ -0,0 +1,41 | |||
|
1 | #------------------------------------------------- | |
|
2 | # | |
|
3 | # Project created by QtCreator 2015-06-11T21:37:25 | |
|
4 | # | |
|
5 | #------------------------------------------------- | |
|
6 | ||
|
7 | QT += core gui opengl | |
|
8 | CONFIG += qilib | |
|
9 | ||
|
10 | greaterThan(QT_MAJOR_VERSION, 4): QT += widgets | |
|
11 | ||
|
12 | TARGET = PCBView | |
|
13 | TEMPLATE = app | |
|
14 | ||
|
15 | MOC_DIR = moc | |
|
16 | RCC_DIR = resources | |
|
17 | OBJECTS_DIR = obj | |
|
18 | DESTDIR = ../../bin | |
|
19 | ||
|
20 | INCLUDEPATH += ../../qilib $${DESTDIR}/../qilib/ | |
|
21 | ||
|
22 | LIBS += -L../../bin -lQIlib | |
|
23 | ||
|
24 | SOURCES += main.cpp\ | |
|
25 | mainwindow.cpp \ | |
|
26 | pcbgraphicview.cpp \ | |
|
27 | pcbrectpad.cpp \ | |
|
28 | pcbmodule.cpp \ | |
|
29 | pcbline.cpp \ | |
|
30 | pcbcontext.cpp \ | |
|
31 | pcbvia.cpp | |
|
32 | ||
|
33 | HEADERS += mainwindow.h \ | |
|
34 | pcbgraphicview.h \ | |
|
35 | pcbrectpad.h \ | |
|
36 | pcbmodule.h \ | |
|
37 | pcbline.h \ | |
|
38 | pcbcontext.h \ | |
|
39 | pcbvia.h | |
|
40 | ||
|
41 | FORMS += mainwindow.ui |
@@ -0,0 +1,32 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #include "mainwindow.h" | |
|
23 | #include <QApplication> | |
|
24 | ||
|
25 | int main(int argc, char *argv[]) | |
|
26 | { | |
|
27 | QApplication a(argc, argv); | |
|
28 | MainWindow w; | |
|
29 | w.show(); | |
|
30 | ||
|
31 | return a.exec(); | |
|
32 | } |
@@ -0,0 +1,87 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #include "mainwindow.h" | |
|
23 | #include "ui_mainwindow.h" | |
|
24 | #include "pcbmodule.h" | |
|
25 | #include "pcbline.h" | |
|
26 | #include "pcbvia.h" | |
|
27 | ||
|
28 | ||
|
29 | MainWindow::MainWindow(QWidget *parent) : | |
|
30 | QMainWindow(parent), | |
|
31 | ui(new Ui::MainWindow) | |
|
32 | { | |
|
33 | ui->setupUi(this); | |
|
34 | this->p_scene = new QGraphicsScene(); | |
|
35 | this->p_scene->setSceneRect(0, 0, 500, 200); | |
|
36 | ||
|
37 | this->context = new PCBContext(); | |
|
38 | this->ui->graphicsView->setScene(this->p_scene); | |
|
39 | QIlib::QIcadPcb pcbDriver; | |
|
40 | // pcbDriver.parsePcb("/opt/kicadTools/test/testFiles/pcb2.kicad_pcb"); | |
|
41 | // pcbDriver.parsePcb("/home/jeandet/Documents/PCB/ADC_STAMP/ADC_STAMP.kicad_pcb"); | |
|
42 | pcbDriver.parsePcb("/usr/share/kicad/demos/video/video.kicad_pcb"); | |
|
43 | // pcbDriver.parsePcb("/usr/share/kicad/demos/kit-dev-coldfire-xilinx_5213/kit-dev-coldfire-xilinx_5213.kicad_pcb"); | |
|
44 | for(int i=0;i<pcbDriver.pcbRoot->layers.layers.count();i++) | |
|
45 | { | |
|
46 | this->context->addlayer(pcbDriver.pcbRoot->layers.layers.at(i)->name(),pcbDriver.pcbRoot->layers.layers.at(i)->index()); | |
|
47 | } | |
|
48 | for(int i=0;i<pcbDriver.pcbRoot->modules.count();i++) | |
|
49 | { | |
|
50 | this->p_scene->addItem(new PCBModule(pcbDriver.pcbRoot->modules.at(i),this->context)); | |
|
51 | } | |
|
52 | for(int i=0;i<pcbDriver.pcbRoot->lines.count();i++) | |
|
53 | { | |
|
54 | this->p_scene->addItem(new PCBLine((QIlib::QIcadAbstractPcbLine*)pcbDriver.pcbRoot->lines.at(i),this->context)); | |
|
55 | } | |
|
56 | for(int i=0;i<pcbDriver.pcbRoot->segments.count();i++) | |
|
57 | { | |
|
58 | this->p_scene->addItem(new PCBLine((QIlib::QIcadAbstractPcbLine*)pcbDriver.pcbRoot->segments.at(i),this->context)); | |
|
59 | } | |
|
60 | for(int i=0;i<pcbDriver.pcbRoot->vias.count();i++) | |
|
61 | { | |
|
62 | this->p_scene->addItem(new PCBVia(pcbDriver.pcbRoot->vias.at(i),this->context)); | |
|
63 | } | |
|
64 | connect(this->ui->actionRedraw,SIGNAL(triggered(bool)),this,SLOT(redraw())); | |
|
65 | } | |
|
66 | ||
|
67 | MainWindow::~MainWindow() | |
|
68 | { | |
|
69 | delete ui; | |
|
70 | } | |
|
71 | ||
|
72 | void MainWindow::redraw() | |
|
73 | { | |
|
74 | this->p_scene->update(); | |
|
75 | } | |
|
76 | ||
|
77 | void MainWindow::changeEvent(QEvent *e) | |
|
78 | { | |
|
79 | QMainWindow::changeEvent(e); | |
|
80 | switch (e->type()) { | |
|
81 | case QEvent::LanguageChange: | |
|
82 | ui->retranslateUi(this); | |
|
83 | break; | |
|
84 | default: | |
|
85 | break; | |
|
86 | } | |
|
87 | } |
@@ -0,0 +1,57 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #ifndef MAINWINDOW_H | |
|
23 | #define MAINWINDOW_H | |
|
24 | ||
|
25 | #include <QMainWindow> | |
|
26 | #include <QGraphicsScene> | |
|
27 | #include <qicadnetlist.h> | |
|
28 | #include <qicadpcb.h> | |
|
29 | #include <QMap> | |
|
30 | #include <pcbcontext.h> | |
|
31 | ||
|
32 | ||
|
33 | ||
|
34 | namespace Ui { | |
|
35 | class MainWindow; | |
|
36 | } | |
|
37 | ||
|
38 | class MainWindow : public QMainWindow | |
|
39 | { | |
|
40 | Q_OBJECT | |
|
41 | ||
|
42 | public: | |
|
43 | explicit MainWindow(QWidget *parent = 0); | |
|
44 | ~MainWindow(); | |
|
45 | ||
|
46 | public slots: | |
|
47 | void redraw(); | |
|
48 | protected: | |
|
49 | void changeEvent(QEvent *e); | |
|
50 | ||
|
51 | private: | |
|
52 | Ui::MainWindow *ui; | |
|
53 | QGraphicsScene* p_scene; | |
|
54 | PCBContext* context; | |
|
55 | }; | |
|
56 | ||
|
57 | #endif // MAINWINDOW_H |
@@ -0,0 +1,77 | |||
|
1 | <?xml version="1.0" encoding="UTF-8"?> | |
|
2 | <ui version="4.0"> | |
|
3 | <class>MainWindow</class> | |
|
4 | <widget class="QMainWindow" name="MainWindow"> | |
|
5 | <property name="geometry"> | |
|
6 | <rect> | |
|
7 | <x>0</x> | |
|
8 | <y>0</y> | |
|
9 | <width>547</width> | |
|
10 | <height>393</height> | |
|
11 | </rect> | |
|
12 | </property> | |
|
13 | <property name="windowTitle"> | |
|
14 | <string>MainWindow</string> | |
|
15 | </property> | |
|
16 | <widget class="QWidget" name="centralWidget"> | |
|
17 | <layout class="QGridLayout" name="gridLayout"> | |
|
18 | <item row="0" column="0"> | |
|
19 | <widget class="PCBGraphicView" name="graphicsView"/> | |
|
20 | </item> | |
|
21 | </layout> | |
|
22 | </widget> | |
|
23 | <widget class="QMenuBar" name="menuBar"> | |
|
24 | <property name="geometry"> | |
|
25 | <rect> | |
|
26 | <x>0</x> | |
|
27 | <y>0</y> | |
|
28 | <width>547</width> | |
|
29 | <height>27</height> | |
|
30 | </rect> | |
|
31 | </property> | |
|
32 | <widget class="QMenu" name="menuFile"> | |
|
33 | <property name="title"> | |
|
34 | <string>Fi&le</string> | |
|
35 | </property> | |
|
36 | <addaction name="actionOpen"/> | |
|
37 | </widget> | |
|
38 | <widget class="QMenu" name="menuEdit"> | |
|
39 | <property name="title"> | |
|
40 | <string>edit</string> | |
|
41 | </property> | |
|
42 | <addaction name="actionRedraw"/> | |
|
43 | </widget> | |
|
44 | <addaction name="menuFile"/> | |
|
45 | <addaction name="menuEdit"/> | |
|
46 | </widget> | |
|
47 | <widget class="QToolBar" name="mainToolBar"> | |
|
48 | <attribute name="toolBarArea"> | |
|
49 | <enum>TopToolBarArea</enum> | |
|
50 | </attribute> | |
|
51 | <attribute name="toolBarBreak"> | |
|
52 | <bool>false</bool> | |
|
53 | </attribute> | |
|
54 | </widget> | |
|
55 | <widget class="QStatusBar" name="statusBar"/> | |
|
56 | <action name="actionOpen"> | |
|
57 | <property name="text"> | |
|
58 | <string>&open</string> | |
|
59 | </property> | |
|
60 | </action> | |
|
61 | <action name="actionRedraw"> | |
|
62 | <property name="text"> | |
|
63 | <string>&redraw</string> | |
|
64 | </property> | |
|
65 | </action> | |
|
66 | </widget> | |
|
67 | <layoutdefault spacing="6" margin="11"/> | |
|
68 | <customwidgets> | |
|
69 | <customwidget> | |
|
70 | <class>PCBGraphicView</class> | |
|
71 | <extends>QGraphicsView</extends> | |
|
72 | <header>pcbgraphicview.h</header> | |
|
73 | </customwidget> | |
|
74 | </customwidgets> | |
|
75 | <resources/> | |
|
76 | <connections/> | |
|
77 | </ui> |
@@ -0,0 +1,73 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #include "pcbcontext.h" | |
|
23 | ||
|
24 | Qt::GlobalColor Colours[]= { | |
|
25 | Qt::red, | |
|
26 | Qt::blue, | |
|
27 | Qt::black, | |
|
28 | Qt::green, | |
|
29 | Qt::darkGreen, | |
|
30 | Qt::cyan, | |
|
31 | Qt::darkRed, | |
|
32 | Qt::gray, | |
|
33 | Qt::yellow, | |
|
34 | Qt::darkBlue, | |
|
35 | Qt::darkCyan, | |
|
36 | Qt::magenta, | |
|
37 | Qt::darkMagenta, | |
|
38 | Qt::darkYellow, | |
|
39 | Qt::darkGray, | |
|
40 | Qt::lightGray | |
|
41 | }; | |
|
42 | ||
|
43 | PCBContext::PCBContext(QObject *parent) : QObject(parent) | |
|
44 | { | |
|
45 | ||
|
46 | } | |
|
47 | ||
|
48 | void PCBContext::addlayer(const QString &name, int number) | |
|
49 | { | |
|
50 | this->layers_map[name]=number; | |
|
51 | layers_colors[number] = Colours[number%15]; | |
|
52 | } | |
|
53 | ||
|
54 | int PCBContext::layer(const QString &name) | |
|
55 | { | |
|
56 | return layers_map[name]; | |
|
57 | } | |
|
58 | ||
|
59 | const QColor &PCBContext::layerColor(const QString &name) | |
|
60 | { | |
|
61 | return layers_colors[layers_map[name]]; | |
|
62 | } | |
|
63 | ||
|
64 | const QColor &PCBContext::layerColor(int number) | |
|
65 | { | |
|
66 | return layers_colors[number]; | |
|
67 | } | |
|
68 | ||
|
69 | const QString PCBContext::layer(int number) | |
|
70 | { | |
|
71 | return layers_map.key(number); | |
|
72 | } | |
|
73 |
@@ -0,0 +1,48 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #ifndef PCBCONTEXT_H | |
|
23 | #define PCBCONTEXT_H | |
|
24 | ||
|
25 | #include <QObject> | |
|
26 | #include <QWidget> | |
|
27 | #include <QMap> | |
|
28 | ||
|
29 | class PCBContext : public QObject | |
|
30 | { | |
|
31 | Q_OBJECT | |
|
32 | public: | |
|
33 | explicit PCBContext(QObject *parent = 0); | |
|
34 | void addlayer(const QString& name,int number); | |
|
35 | int layer(const QString& name); | |
|
36 | const QColor& layerColor(const QString& name); | |
|
37 | const QColor& layerColor(int number); | |
|
38 | const QString layer(int number); | |
|
39 | signals: | |
|
40 | ||
|
41 | public slots: | |
|
42 | ||
|
43 | private: | |
|
44 | QMap<int,QColor> layers_colors; | |
|
45 | QMap<QString,int> layers_map; | |
|
46 | }; | |
|
47 | ||
|
48 | #endif // PCBCONTEXT_H |
@@ -0,0 +1,145 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #include "pcbgraphicview.h" | |
|
23 | ||
|
24 | #include <math.h> | |
|
25 | #include <QGLWidget> | |
|
26 | ||
|
27 | PCBGraphicView::PCBGraphicView(QWidget *parent) | |
|
28 | :QGraphicsView(parent) | |
|
29 | { | |
|
30 | ||
|
31 | this->setRenderHint(QPainter::Antialiasing, true); | |
|
32 | this->setDragMode(QGraphicsView::RubberBandDrag); | |
|
33 | this->setOptimizationFlags(QGraphicsView::DontSavePainterState); | |
|
34 | this->setViewportUpdateMode(QGraphicsView::SmartViewportUpdate); | |
|
35 | ||
|
36 | this->setContextMenuPolicy(Qt::ActionsContextMenu); | |
|
37 | this->setTransformationAnchor(AnchorUnderMouse); | |
|
38 | this->scale(qreal(0.8), qreal(0.8)); | |
|
39 | this->setRubberBandSelectionMode(Qt::ContainsItemBoundingRect); | |
|
40 | this->setDragMode(RubberBandDrag); | |
|
41 | this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | |
|
42 | this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); | |
|
43 | ||
|
44 | this->ctrl_pressed = false; | |
|
45 | this->shift_pressed = false; | |
|
46 | } | |
|
47 | ||
|
48 | ||
|
49 | void PCBGraphicView::keyPressEvent(QKeyEvent *event) | |
|
50 | { | |
|
51 | switch (event->key()) { | |
|
52 | case Qt::Key_Plus: | |
|
53 | zoomIn(); | |
|
54 | break; | |
|
55 | case Qt::Key_Minus: | |
|
56 | zoomOut(); | |
|
57 | break; | |
|
58 | case Qt::Key_Shift: | |
|
59 | this->shift_pressed = true; | |
|
60 | break; | |
|
61 | case Qt::Key_Control: | |
|
62 | this->ctrl_pressed = true; | |
|
63 | break; | |
|
64 | default: | |
|
65 | QGraphicsView::keyPressEvent(event); | |
|
66 | } | |
|
67 | } | |
|
68 | ||
|
69 | void PCBGraphicView::keyReleaseEvent(QKeyEvent *event) | |
|
70 | { | |
|
71 | switch (event->key()) { | |
|
72 | case Qt::Key_Shift: | |
|
73 | this->shift_pressed = false; | |
|
74 | break; | |
|
75 | case Qt::Key_Control: | |
|
76 | this->ctrl_pressed = false; | |
|
77 | break; | |
|
78 | default: | |
|
79 | QGraphicsView::keyReleaseEvent(event); | |
|
80 | } | |
|
81 | } | |
|
82 | ||
|
83 | void PCBGraphicView::wheelEvent(QWheelEvent *event) | |
|
84 | { | |
|
85 | ||
|
86 | if (event->modifiers() & Qt::ControlModifier) | |
|
87 | { | |
|
88 | if (event->orientation()== Qt::Vertical) | |
|
89 | scaleView(pow((double)2, event->delta() / 240.0)); | |
|
90 | } | |
|
91 | else | |
|
92 | { | |
|
93 | if (event->modifiers() & Qt::ShiftModifier) | |
|
94 | { | |
|
95 | QWheelEvent* tempevent = new QWheelEvent(event->pos(),(event->delta()/10),event->buttons(),event->modifiers(),Qt::Horizontal); | |
|
96 | QGraphicsView::wheelEvent(tempevent); | |
|
97 | } | |
|
98 | else | |
|
99 | QGraphicsView::wheelEvent(event); | |
|
100 | } | |
|
101 | } | |
|
102 | ||
|
103 | ||
|
104 | ||
|
105 | void PCBGraphicView::drawBackground(QPainter *painter, const QRectF &rect) | |
|
106 | { | |
|
107 | Q_UNUSED(rect); | |
|
108 | ||
|
109 | // Shadow | |
|
110 | QRectF sceneRect = this->sceneRect(); | |
|
111 | QRectF rightShadow(sceneRect.right(), sceneRect.top() + 20, 20, sceneRect.height()); | |
|
112 | QRectF bottomShadow(sceneRect.left() + 20, sceneRect.bottom(), sceneRect.width(), 20); | |
|
113 | if (rightShadow.intersects(rect) || rightShadow.contains(rect)) | |
|
114 | painter->fillRect(rightShadow, Qt::darkGray); | |
|
115 | if (bottomShadow.intersects(rect) || bottomShadow.contains(rect)) | |
|
116 | painter->fillRect(bottomShadow, Qt::darkGray); | |
|
117 | ||
|
118 | // Fill | |
|
119 | QLinearGradient gradient(sceneRect.topLeft(), sceneRect.bottomRight()); | |
|
120 | gradient.setColorAt(0, Qt::white); | |
|
121 | gradient.setColorAt(1, Qt::lightGray); | |
|
122 | painter->fillRect(rect.intersected(sceneRect), gradient); | |
|
123 | painter->setBrush(Qt::NoBrush); | |
|
124 | painter->drawRect(sceneRect); | |
|
125 | } | |
|
126 | ||
|
127 | ||
|
128 | void PCBGraphicView::scaleView(qreal scaleFactor) | |
|
129 | { | |
|
130 | qreal factor = transform().scale(scaleFactor, scaleFactor).mapRect(QRectF(0, 0, 1, 1)).width(); | |
|
131 | if (factor < 0.02 || factor > 1000) | |
|
132 | return; | |
|
133 | scale(scaleFactor, scaleFactor); | |
|
134 | } | |
|
135 | ||
|
136 | ||
|
137 | void PCBGraphicView::zoomIn() | |
|
138 | { | |
|
139 | scaleView(qreal(1.2)); | |
|
140 | } | |
|
141 | ||
|
142 | void PCBGraphicView::zoomOut() | |
|
143 | { | |
|
144 | scaleView(1 / qreal(1.2)); | |
|
145 | } |
@@ -0,0 +1,54 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #ifndef PCBGRAPHICVIEW_H | |
|
23 | #define PCBGRAPHICVIEW_H | |
|
24 | ||
|
25 | #include <QGraphicsView> | |
|
26 | #include <QObject> | |
|
27 | #include <QWidget> | |
|
28 | #include <QKeyEvent> | |
|
29 | #include <QPainter> | |
|
30 | #include <QMap> | |
|
31 | ||
|
32 | class PCBGraphicView : public QGraphicsView | |
|
33 | { | |
|
34 | public: | |
|
35 | PCBGraphicView(QWidget *parent = 0); | |
|
36 | void itemMoved(); | |
|
37 | ||
|
38 | public slots: | |
|
39 | void zoomIn(); | |
|
40 | void zoomOut(); | |
|
41 | ||
|
42 | protected: | |
|
43 | void keyPressEvent(QKeyEvent *event); | |
|
44 | void keyReleaseEvent(QKeyEvent *event); | |
|
45 | void wheelEvent(QWheelEvent *event); | |
|
46 | void drawBackground(QPainter *painter, const QRectF &rect); | |
|
47 | ||
|
48 | void scaleView(qreal scaleFactor); | |
|
49 | private: | |
|
50 | bool ctrl_pressed; | |
|
51 | bool shift_pressed; | |
|
52 | }; | |
|
53 | ||
|
54 | #endif // PCBGRAPHICVIEW_H |
@@ -0,0 +1,52 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #include "pcbline.h" | |
|
23 | #include <QPen> | |
|
24 | ||
|
25 | PCBLine::PCBLine(QIlib::QIcadAbstractPcbLine *lineNode, QPointF offset,PCBContext* context) | |
|
26 | :lineNode(lineNode),context(context) | |
|
27 | { | |
|
28 | init(offset); | |
|
29 | } | |
|
30 | ||
|
31 | PCBLine::PCBLine(QIlib::QIcadAbstractPcbLine *lineNode, PCBContext *context) | |
|
32 | :lineNode(lineNode),context(context) | |
|
33 | { | |
|
34 | init(QPointF(0,0)); | |
|
35 | } | |
|
36 | ||
|
37 | void PCBLine::init(QPointF offset) | |
|
38 | { | |
|
39 | this->setCacheMode(QGraphicsItem::DeviceCoordinateCache); | |
|
40 | this->setFlags(ItemIsMovable|ItemIsSelectable|ItemIsFocusable); | |
|
41 | QPointF startPos=(offset+lineNode->startPos()); | |
|
42 | QPointF stopPos=(offset+lineNode->stopPos()); | |
|
43 | this->setLine(startPos.x(),startPos.y(),stopPos.x(),stopPos.y()); | |
|
44 | QPen pen = this->pen(); | |
|
45 | pen.setWidthF(lineNode->width()); | |
|
46 | pen.setJoinStyle(Qt::RoundJoin); | |
|
47 | pen.setCapStyle(Qt::RoundCap); | |
|
48 | pen.setColor(context->layerColor(lineNode->layers().first())); | |
|
49 | this->setZValue(-context->layer(lineNode->layers().first())); | |
|
50 | this->setPen(pen); | |
|
51 | setOpacity(0.6); | |
|
52 | } |
@@ -0,0 +1,42 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #ifndef PCBLINE_H | |
|
23 | #define PCBLINE_H | |
|
24 | ||
|
25 | #include <QObject> | |
|
26 | #include <QGraphicsItem> | |
|
27 | #include <QGraphicsLineItem> | |
|
28 | #include <qicadpcb.h> | |
|
29 | #include <pcbcontext.h> | |
|
30 | ||
|
31 | class PCBLine: public QGraphicsLineItem | |
|
32 | { | |
|
33 | public: | |
|
34 | PCBLine(QIlib::QIcadAbstractPcbLine* lineNode,QPointF offset,PCBContext* context); | |
|
35 | PCBLine(QIlib::QIcadAbstractPcbLine* lineNode,PCBContext* context); | |
|
36 | private: | |
|
37 | void init(QPointF offset); | |
|
38 | QIlib::QIcadAbstractPcbLine* lineNode; | |
|
39 | PCBContext* context; | |
|
40 | }; | |
|
41 | ||
|
42 | #endif // PCBLINE_H |
@@ -0,0 +1,44 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #include "pcbmodule.h" | |
|
23 | #include "pcbline.h" | |
|
24 | #include "pcbrectpad.h" | |
|
25 | ||
|
26 | PCBModule::PCBModule(QIlib::QIcadPcbModule *moduleNode, PCBContext *context) | |
|
27 | :QGraphicsItemGroup(),context(context) | |
|
28 | { | |
|
29 | this->setCacheMode(QGraphicsItem::DeviceCoordinateCache); | |
|
30 | this->setFlags(ItemIsMovable|ItemIsSelectable|ItemIsFocusable); | |
|
31 | // this->setFlag(QGraphicsItem::ItemSendsGeometryChanges, true); | |
|
32 | // this->addToGroup(new QGraphicsRectItem(0,0,2,2)); | |
|
33 | this->setPos(moduleNode->pos()); | |
|
34 | for(int i=0;i<moduleNode->fp_lines.count();i++) | |
|
35 | { | |
|
36 | this->addToGroup(new PCBLine((QIlib::QIcadAbstractPcbLine*)moduleNode->fp_lines.at(i),moduleNode->pos(),context)); | |
|
37 | } | |
|
38 | for(int i=0;i<moduleNode->pads.count();i++) | |
|
39 | { | |
|
40 | this->addToGroup(new PCBRectPad((QIlib::QIcadPcbPad*)moduleNode->pads.at(i),moduleNode->pos(),context)); | |
|
41 | } | |
|
42 | this->setRotation(moduleNode->angle()); | |
|
43 | } | |
|
44 |
@@ -0,0 +1,40 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #ifndef PCBMODULE_H | |
|
23 | #define PCBMODULE_H | |
|
24 | ||
|
25 | #include <QObject> | |
|
26 | #include <QWidget> | |
|
27 | #include <QGraphicsItemGroup> | |
|
28 | #include <qicadpcb.h> | |
|
29 | #include <pcbcontext.h> | |
|
30 | ||
|
31 | class PCBModule : public QGraphicsItemGroup | |
|
32 | { | |
|
33 | public: | |
|
34 | PCBModule(QIlib::QIcadPcbModule* moduleNode,PCBContext* context); | |
|
35 | private: | |
|
36 | QIlib::QIcadPcbModule* moduleNode; | |
|
37 | PCBContext* context; | |
|
38 | }; | |
|
39 | ||
|
40 | #endif // PCBMODULE_H |
@@ -0,0 +1,80 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #include "pcbrectpad.h" | |
|
23 | #include <QPen> | |
|
24 | ||
|
25 | PCBRectPad::PCBRectPad(QIlib::QIcadPcbPad *padNode, PCBContext *context) | |
|
26 | :QGraphicsItemGroup(),padNode(padNode),context(context) | |
|
27 | { | |
|
28 | this->init(QPointF(0.0,0.0)); | |
|
29 | } | |
|
30 | ||
|
31 | ||
|
32 | ||
|
33 | PCBRectPad::PCBRectPad(QIlib::QIcadPcbPad *padNode, QPointF offset, PCBContext *context) | |
|
34 | :QGraphicsItemGroup(),padNode(padNode),context(context) | |
|
35 | { | |
|
36 | this->init(offset); | |
|
37 | } | |
|
38 | ||
|
39 | void PCBRectPad::init( QPointF offset) | |
|
40 | { | |
|
41 | this->setCacheMode(QGraphicsItem::DeviceCoordinateCache); | |
|
42 | offset-=QPointF(this->padNode->size().width()/2,this->padNode->size().height()/2); | |
|
43 | if(this->padNode->shape()==QIlib::QIcadPcbPad::rectangle) | |
|
44 | { | |
|
45 | for(int i=0;i<this->padNode->layers().count();i++) | |
|
46 | { | |
|
47 | QGraphicsRectItem* rect = new QGraphicsRectItem(); | |
|
48 | QPen pen = rect->pen(); | |
|
49 | pen.setWidthF(0.01); | |
|
50 | rect->setPen(pen); | |
|
51 | QBrush brush = rect->brush(); | |
|
52 | brush.setStyle(Qt::SolidPattern); | |
|
53 | brush.setColor(context->layerColor(this->padNode->layers().at(i))); | |
|
54 | rect->setBrush(brush); | |
|
55 | QRectF rec(this->padNode->pos()+offset,this->padNode->size()); | |
|
56 | rect->setRect(rec); | |
|
57 | rect->setZValue(-context->layer(padNode->layers().at(i))); | |
|
58 | this->addToGroup(rect); | |
|
59 | } | |
|
60 | } | |
|
61 | if(this->padNode->shape()==QIlib::QIcadPcbPad::circle) | |
|
62 | { | |
|
63 | for(int i=0;i<this->padNode->layers().count();i++) | |
|
64 | { | |
|
65 | QGraphicsEllipseItem* ellipse = new QGraphicsEllipseItem(); | |
|
66 | QPen pen = ellipse->pen(); | |
|
67 | pen.setWidthF(0.01); | |
|
68 | ellipse->setPen(pen); | |
|
69 | QBrush brush = ellipse->brush(); | |
|
70 | brush.setStyle(Qt::SolidPattern); | |
|
71 | brush.setColor(context->layerColor(this->padNode->layers().at(i))); | |
|
72 | ellipse->setBrush(brush); | |
|
73 | QRectF rec(this->padNode->pos()+offset,this->padNode->size()); | |
|
74 | ellipse->setRect(rec); | |
|
75 | ellipse->setZValue(-context->layer(padNode->layers().at(i))); | |
|
76 | this->addToGroup(ellipse); | |
|
77 | } | |
|
78 | } | |
|
79 | setOpacity(0.6); | |
|
80 | } |
@@ -0,0 +1,48 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #ifndef PCBRECTPAD_H | |
|
23 | #define PCBRECTPAD_H | |
|
24 | ||
|
25 | #include <QObject> | |
|
26 | #include <QWidget> | |
|
27 | #include <QGraphicsRectItem> | |
|
28 | #include <QGraphicsItemGroup> | |
|
29 | #include <pcbcontext.h> | |
|
30 | #include <qicadpcb.h> | |
|
31 | ||
|
32 | class PCBRectPad : public QGraphicsItemGroup | |
|
33 | { | |
|
34 | public: | |
|
35 | PCBRectPad(QIlib::QIcadPcbPad* padNode,PCBContext* context); | |
|
36 | PCBRectPad(QIlib::QIcadPcbPad* padNode,QPointF offset,PCBContext* context); | |
|
37 | ||
|
38 | private: | |
|
39 | void init(QPointF offset); | |
|
40 | QIlib::QIcadPcbPad* padNode; | |
|
41 | QString name; | |
|
42 | QPointF pos; | |
|
43 | QRectF size; | |
|
44 | QList<int> layers; | |
|
45 | PCBContext* context; | |
|
46 | }; | |
|
47 | ||
|
48 | #endif // PCBRECTPAD_H |
@@ -0,0 +1,60 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #include "pcbvia.h" | |
|
23 | #include <QPen> | |
|
24 | ||
|
25 | ||
|
26 | PCBVia::PCBVia(QIlib::QIcadPcbVia *viaNode, PCBContext *context) | |
|
27 | :QGraphicsItemGroup(),viaNode(viaNode),context(context) | |
|
28 | { | |
|
29 | this->init(QPointF(0.0,0.0)); | |
|
30 | } | |
|
31 | ||
|
32 | PCBVia::PCBVia(QIlib::QIcadPcbVia *viaNode, QPointF offset, PCBContext *context) | |
|
33 | :QGraphicsItemGroup(),viaNode(viaNode),context(context) | |
|
34 | { | |
|
35 | this->init(offset); | |
|
36 | } | |
|
37 | ||
|
38 | void PCBVia::init(QPointF offset) | |
|
39 | { | |
|
40 | this->setCacheMode(QGraphicsItem::DeviceCoordinateCache); | |
|
41 | offset-=QPointF(this->viaNode->size().width()/2,this->viaNode->size().height()/2); | |
|
42 | ||
|
43 | for(int i=0;i<this->viaNode->layers().count();i++) | |
|
44 | { | |
|
45 | QGraphicsEllipseItem* ellipse = new QGraphicsEllipseItem(); | |
|
46 | QPen pen = ellipse->pen(); | |
|
47 | pen.setWidthF(0.01); | |
|
48 | ellipse->setPen(pen); | |
|
49 | QBrush brush = ellipse->brush(); | |
|
50 | brush.setStyle(Qt::SolidPattern); | |
|
51 | brush.setColor(context->layerColor(this->viaNode->layers().at(i))); | |
|
52 | ellipse->setBrush(brush); | |
|
53 | QRectF rec(this->viaNode->pos()+offset,this->viaNode->size()); | |
|
54 | ellipse->setRect(rec); | |
|
55 | ellipse->setZValue(-context->layer(viaNode->layers().at(i))); | |
|
56 | this->addToGroup(ellipse); | |
|
57 | } | |
|
58 | ||
|
59 | setOpacity(0.6); | |
|
60 | } |
@@ -0,0 +1,46 | |||
|
1 | /*------------------------------------------------------------------------------ | |
|
2 | -- This file is a part of the Kicad Tools Software | |
|
3 | -- Copyright (C) 2015, Plasma Physics Laboratory - CNRS | |
|
4 | -- | |
|
5 | -- This program is free software; you can redistribute it and/or modify | |
|
6 | -- it under the terms of the GNU General Public License as published by | |
|
7 | -- the Free Software Foundation; either version 2 of the License, or | |
|
8 | -- (at your option) any later version. | |
|
9 | -- | |
|
10 | -- This program is distributed in the hope that it will be useful, | |
|
11 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of | |
|
12 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
|
13 | -- GNU General Public License for more details. | |
|
14 | -- | |
|
15 | -- You should have received a copy of the GNU General Public License | |
|
16 | -- along with this program; if not, write to the Free Software | |
|
17 | -- Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
|
18 | -------------------------------------------------------------------------------*/ | |
|
19 | /*-- Author : Alexis Jeandet | |
|
20 | -- Mail : alexis.jeandet@member.fsf.org | |
|
21 | ----------------------------------------------------------------------------*/ | |
|
22 | #ifndef PCBVIA_H | |
|
23 | #define PCBVIA_H | |
|
24 | #include <QObject> | |
|
25 | #include <QWidget> | |
|
26 | #include <QGraphicsRectItem> | |
|
27 | #include <QGraphicsItemGroup> | |
|
28 | #include <pcbcontext.h> | |
|
29 | #include <qicadpcb.h> | |
|
30 | ||
|
31 | class PCBVia: public QGraphicsItemGroup | |
|
32 | { | |
|
33 | public: | |
|
34 | PCBVia(QIlib::QIcadPcbVia* viaNode,PCBContext* context); | |
|
35 | PCBVia(QIlib::QIcadPcbVia* viaNode,QPointF offset,PCBContext* context); | |
|
36 | private: | |
|
37 | void init(QPointF offset); | |
|
38 | QIlib::QIcadPcbVia* viaNode; | |
|
39 | QString name; | |
|
40 | QPointF pos; | |
|
41 | QRectF size; | |
|
42 | QList<int> layers; | |
|
43 | PCBContext* context; | |
|
44 | }; | |
|
45 | ||
|
46 | #endif // PCBVIA_H |
This diff has been collapsed as it changes many lines, (776 lines changed) Show them Hide them | |||
@@ -0,0 +1,776 | |||
|
1 | (kicad_pcb (version 4) (host pcbnew "(after 2015-mar-04 BZR unknown)-product") | |
|
2 | ||
|
3 | (general | |
|
4 | (links 5) | |
|
5 | (no_connects 0) | |
|
6 | (area 125.75 89.15 189.850001 130.750001) | |
|
7 | (thickness 1.6) | |
|
8 | (drawings 6) | |
|
9 | (tracks 11) | |
|
10 | (zones 0) | |
|
11 | (modules 6) | |
|
12 | (nets 30) | |
|
13 | ) | |
|
14 | ||
|
15 | (page A4) | |
|
16 | (layers | |
|
17 | (0 F.Cu signal) | |
|
18 | (31 B.Cu signal) | |
|
19 | (32 B.Adhes user) | |
|
20 | (33 F.Adhes user) | |
|
21 | (34 B.Paste user) | |
|
22 | (35 F.Paste user) | |
|
23 | (36 B.SilkS user) | |
|
24 | (37 F.SilkS user) | |
|
25 | (38 B.Mask user) | |
|
26 | (39 F.Mask user) | |
|
27 | (40 Dwgs.User user) | |
|
28 | (41 Cmts.User user) | |
|
29 | (42 Eco1.User user) | |
|
30 | (43 Eco2.User user) | |
|
31 | (44 Edge.Cuts user) | |
|
32 | (45 Margin user) | |
|
33 | (46 B.CrtYd user) | |
|
34 | (47 F.CrtYd user) | |
|
35 | (48 B.Fab user) | |
|
36 | (49 F.Fab user) | |
|
37 | ) | |
|
38 | ||
|
39 | (setup | |
|
40 | (last_trace_width 0.25) | |
|
41 | (trace_clearance 0.2) | |
|
42 | (zone_clearance 0.508) | |
|
43 | (zone_45_only yes) | |
|
44 | (trace_min 0.2) | |
|
45 | (segment_width 0.2) | |
|
46 | (edge_width 0.1) | |
|
47 | (via_size 0.6) | |
|
48 | (via_drill 0.4) | |
|
49 | (via_min_size 0.4) | |
|
50 | (via_min_drill 0.3) | |
|
51 | (uvia_size 0.3) | |
|
52 | (uvia_drill 0.1) | |
|
53 | (uvias_allowed no) | |
|
54 | (uvia_min_size 0.2) | |
|
55 | (uvia_min_drill 0.1) | |
|
56 | (pcb_text_width 0.3) | |
|
57 | (pcb_text_size 1.5 1.5) | |
|
58 | (mod_edge_width 0.15) | |
|
59 | (mod_text_size 1 1) | |
|
60 | (mod_text_width 0.15) | |
|
61 | (pad_size 1.5 1.5) | |
|
62 | (pad_drill 0.6) | |
|
63 | (pad_to_mask_clearance 0) | |
|
64 | (aux_axis_origin 0 0) | |
|
65 | (visible_elements FFFFFF7F) | |
|
66 | (pcbplotparams | |
|
67 | (layerselection 0x00030_80000001) | |
|
68 | (usegerberextensions false) | |
|
69 | (excludeedgelayer true) | |
|
70 | (linewidth 0.100000) | |
|
71 | (plotframeref false) | |
|
72 | (viasonmask false) | |
|
73 | (mode 1) | |
|
74 | (useauxorigin false) | |
|
75 | (hpglpennumber 1) | |
|
76 | (hpglpenspeed 20) | |
|
77 | (hpglpendiameter 15) | |
|
78 | (hpglpenoverlay 2) | |
|
79 | (psnegative false) | |
|
80 | (psa4output false) | |
|
81 | (plotreference true) | |
|
82 | (plotvalue true) | |
|
83 | (plotinvisibletext false) | |
|
84 | (padsonsilk false) | |
|
85 | (subtractmaskfromsilk false) | |
|
86 | (outputformat 1) | |
|
87 | (mirror false) | |
|
88 | (drillshape 1) | |
|
89 | (scaleselection 1) | |
|
90 | (outputdirectory "")) | |
|
91 | ) | |
|
92 | ||
|
93 | (net 0 "") | |
|
94 | (net 1 "Net-(R101-Pad1)") | |
|
95 | (net 2 "Net-(R101-Pad2)") | |
|
96 | (net 3 "Net-(R102-Pad1)") | |
|
97 | (net 4 "Net-(R103-Pad1)") | |
|
98 | (net 5 "Net-(U101-Pad2)") | |
|
99 | (net 6 "Net-(U101-Pad3)") | |
|
100 | (net 7 "Net-(U101-Pad4)") | |
|
101 | (net 8 "Net-(U101-Pad5)") | |
|
102 | (net 9 "Net-(U101-Pad6)") | |
|
103 | (net 10 "Net-(U101-Pad7)") | |
|
104 | (net 11 "Net-(U101-Pad9)") | |
|
105 | (net 12 "Net-(U101-Pad11)") | |
|
106 | (net 13 "Net-(U101-Pad12)") | |
|
107 | (net 14 "Net-(U101-Pad13)") | |
|
108 | (net 15 "Net-(U101-Pad14)") | |
|
109 | (net 16 "Net-(U101-Pad15)") | |
|
110 | (net 17 "Net-(U101-Pad16)") | |
|
111 | (net 18 "Net-(U101-Pad17)") | |
|
112 | (net 19 "Net-(U101-Pad18)") | |
|
113 | (net 20 "Net-(U101-Pad19)") | |
|
114 | (net 21 "Net-(U101-Pad20)") | |
|
115 | (net 22 "Net-(U101-Pad21)") | |
|
116 | (net 23 "Net-(U101-Pad22)") | |
|
117 | (net 24 "Net-(U101-Pad23)") | |
|
118 | (net 25 "Net-(U101-Pad24)") | |
|
119 | (net 26 "Net-(U101-Pad25)") | |
|
120 | (net 27 "Net-(U101-Pad26)") | |
|
121 | (net 28 "Net-(U101-Pad27)") | |
|
122 | (net 29 "Net-(U101-Pad28)") | |
|
123 | ||
|
124 | (net_class Default "Ceci est la Netclass par défaut" | |
|
125 | (clearance 0.2) | |
|
126 | (trace_width 0.25) | |
|
127 | (via_dia 0.6) | |
|
128 | (via_drill 0.4) | |
|
129 | (uvia_dia 0.3) | |
|
130 | (uvia_drill 0.1) | |
|
131 | (add_net "Net-(R101-Pad1)") | |
|
132 | (add_net "Net-(R101-Pad2)") | |
|
133 | (add_net "Net-(R102-Pad1)") | |
|
134 | (add_net "Net-(R103-Pad1)") | |
|
135 | (add_net "Net-(U101-Pad11)") | |
|
136 | (add_net "Net-(U101-Pad12)") | |
|
137 | (add_net "Net-(U101-Pad13)") | |
|
138 | (add_net "Net-(U101-Pad14)") | |
|
139 | (add_net "Net-(U101-Pad15)") | |
|
140 | (add_net "Net-(U101-Pad16)") | |
|
141 | (add_net "Net-(U101-Pad17)") | |
|
142 | (add_net "Net-(U101-Pad18)") | |
|
143 | (add_net "Net-(U101-Pad19)") | |
|
144 | (add_net "Net-(U101-Pad2)") | |
|
145 | (add_net "Net-(U101-Pad20)") | |
|
146 | (add_net "Net-(U101-Pad21)") | |
|
147 | (add_net "Net-(U101-Pad22)") | |
|
148 | (add_net "Net-(U101-Pad23)") | |
|
149 | (add_net "Net-(U101-Pad24)") | |
|
150 | (add_net "Net-(U101-Pad25)") | |
|
151 | (add_net "Net-(U101-Pad26)") | |
|
152 | (add_net "Net-(U101-Pad27)") | |
|
153 | (add_net "Net-(U101-Pad28)") | |
|
154 | (add_net "Net-(U101-Pad3)") | |
|
155 | (add_net "Net-(U101-Pad4)") | |
|
156 | (add_net "Net-(U101-Pad5)") | |
|
157 | (add_net "Net-(U101-Pad6)") | |
|
158 | (add_net "Net-(U101-Pad7)") | |
|
159 | (add_net "Net-(U101-Pad9)") | |
|
160 | ) | |
|
161 | ||
|
162 | (module Resistors_SMD:R_0603 (layer F.Cu) (tedit 5415CC62) (tstamp 5577DFA1) | |
|
163 | (at 157 104.5 180) | |
|
164 | (descr "Resistor SMD 0603, reflow soldering, Vishay (see dcrcw.pdf)") | |
|
165 | (tags "resistor 0603") | |
|
166 | (path /5577DF53) | |
|
167 | (attr smd) | |
|
168 | (fp_text reference R101 (at 0 -1.9 180) (layer F.SilkS) | |
|
169 | (effects (font (size 1 1) (thickness 0.15))) | |
|
170 | ) | |
|
171 | (fp_text value R (at 0 1.9 180) (layer F.Fab) | |
|
172 | (effects (font (size 1 1) (thickness 0.15))) | |
|
173 | ) | |
|
174 | (fp_line (start -1.3 -0.8) (end 1.3 -0.8) (layer F.CrtYd) (width 0.05)) | |
|
175 | (fp_line (start -1.3 0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05)) | |
|
176 | (fp_line (start -1.3 -0.8) (end -1.3 0.8) (layer F.CrtYd) (width 0.05)) | |
|
177 | (fp_line (start 1.3 -0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05)) | |
|
178 | (fp_line (start 0.5 0.675) (end -0.5 0.675) (layer F.SilkS) (width 0.15)) | |
|
179 | (fp_line (start -0.5 -0.675) (end 0.5 -0.675) (layer F.SilkS) (width 0.15)) | |
|
180 | (pad 1 smd rect (at -0.75 0 180) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask) | |
|
181 | (net 1 "Net-(R101-Pad1)")) | |
|
182 | (pad 2 smd rect (at 0.75 0 180) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask) | |
|
183 | (net 2 "Net-(R101-Pad2)")) | |
|
184 | (model Resistors_SMD.3dshapes/R_0603.wrl | |
|
185 | (at (xyz 0 0 0)) | |
|
186 | (scale (xyz 1 1 1)) | |
|
187 | (rotate (xyz 0 0 0)) | |
|
188 | ) | |
|
189 | ) | |
|
190 | ||
|
191 | (module Resistors_SMD:R_0603 (layer F.Cu) (tedit 5415CC62) (tstamp 5577DFA7) | |
|
192 | (at 168 116 270) | |
|
193 | (descr "Resistor SMD 0603, reflow soldering, Vishay (see dcrcw.pdf)") | |
|
194 | (tags "resistor 0603") | |
|
195 | (path /5577E050) | |
|
196 | (attr smd) | |
|
197 | (fp_text reference R102 (at 0 -1.9 270) (layer F.SilkS) | |
|
198 | (effects (font (size 1 1) (thickness 0.15))) | |
|
199 | ) | |
|
200 | (fp_text value R (at 0 1.9 270) (layer F.Fab) | |
|
201 | (effects (font (size 1 1) (thickness 0.15))) | |
|
202 | ) | |
|
203 | (fp_line (start -1.3 -0.8) (end 1.3 -0.8) (layer F.CrtYd) (width 0.05)) | |
|
204 | (fp_line (start -1.3 0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05)) | |
|
205 | (fp_line (start -1.3 -0.8) (end -1.3 0.8) (layer F.CrtYd) (width 0.05)) | |
|
206 | (fp_line (start 1.3 -0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05)) | |
|
207 | (fp_line (start 0.5 0.675) (end -0.5 0.675) (layer F.SilkS) (width 0.15)) | |
|
208 | (fp_line (start -0.5 -0.675) (end 0.5 -0.675) (layer F.SilkS) (width 0.15)) | |
|
209 | (pad 1 smd rect (at -0.75 0 270) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask) | |
|
210 | (net 3 "Net-(R102-Pad1)")) | |
|
211 | (pad 2 smd rect (at 0.75 0 270) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask) | |
|
212 | (net 2 "Net-(R101-Pad2)")) | |
|
213 | (model Resistors_SMD.3dshapes/R_0603.wrl | |
|
214 | (at (xyz 0 0 0)) | |
|
215 | (scale (xyz 1 1 1)) | |
|
216 | (rotate (xyz 0 0 0)) | |
|
217 | ) | |
|
218 | ) | |
|
219 | ||
|
220 | (module Resistors_SMD:R_0603 (layer F.Cu) (tedit 5415CC62) (tstamp 5577DFAD) | |
|
221 | (at 170.5 116 270) | |
|
222 | (descr "Resistor SMD 0603, reflow soldering, Vishay (see dcrcw.pdf)") | |
|
223 | (tags "resistor 0603") | |
|
224 | (path /5577E07A) | |
|
225 | (attr smd) | |
|
226 | (fp_text reference R103 (at 0 -1.9 270) (layer F.SilkS) | |
|
227 | (effects (font (size 1 1) (thickness 0.15))) | |
|
228 | ) | |
|
229 | (fp_text value R (at 0 1.9 270) (layer F.Fab) | |
|
230 | (effects (font (size 1 1) (thickness 0.15))) | |
|
231 | ) | |
|
232 | (fp_line (start -1.3 -0.8) (end 1.3 -0.8) (layer F.CrtYd) (width 0.05)) | |
|
233 | (fp_line (start -1.3 0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05)) | |
|
234 | (fp_line (start -1.3 -0.8) (end -1.3 0.8) (layer F.CrtYd) (width 0.05)) | |
|
235 | (fp_line (start 1.3 -0.8) (end 1.3 0.8) (layer F.CrtYd) (width 0.05)) | |
|
236 | (fp_line (start 0.5 0.675) (end -0.5 0.675) (layer F.SilkS) (width 0.15)) | |
|
237 | (fp_line (start -0.5 -0.675) (end 0.5 -0.675) (layer F.SilkS) (width 0.15)) | |
|
238 | (pad 1 smd rect (at -0.75 0 270) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask) | |
|
239 | (net 4 "Net-(R103-Pad1)")) | |
|
240 | (pad 2 smd rect (at 0.75 0 270) (size 0.5 0.9) (layers F.Cu F.Paste F.Mask) | |
|
241 | (net 2 "Net-(R101-Pad2)")) | |
|
242 | (model Resistors_SMD.3dshapes/R_0603.wrl | |
|
243 | (at (xyz 0 0 0)) | |
|
244 | (scale (xyz 1 1 1)) | |
|
245 | (rotate (xyz 0 0 0)) | |
|
246 | ) | |
|
247 | ) | |
|
248 | ||
|
249 | (module SMD_Packages:PLCC-28 (layer F.Cu) (tedit 0) (tstamp 5577DFCD) | |
|
250 | (at 168 104.5) | |
|
251 | (descr "Support CMS Plcc 28 pins") | |
|
252 | (tags "CMS PLCC") | |
|
253 | (path /5577DF13) | |
|
254 | (attr smd) | |
|
255 | (fp_text reference U101 (at -0.254 -7.874) (layer F.SilkS) | |
|
256 | (effects (font (size 1 1) (thickness 0.15))) | |
|
257 | ) | |
|
258 | (fp_text value AD390JD (at 0 7.62) (layer F.Fab) | |
|
259 | (effects (font (size 1 1) (thickness 0.15))) | |
|
260 | ) | |
|
261 | (fp_line (start -8.89 7.62) (end -7.62 8.89) (layer F.SilkS) (width 0.15)) | |
|
262 | (fp_line (start -7.62 8.89) (end 8.89 8.89) (layer F.SilkS) (width 0.15)) | |
|
263 | (fp_line (start 8.89 8.89) (end 8.89 -8.89) (layer F.SilkS) (width 0.15)) | |
|
264 | (fp_line (start 8.89 -8.89) (end -8.89 -8.89) (layer F.SilkS) (width 0.15)) | |
|
265 | (fp_line (start -8.89 7.62) (end -8.89 -8.89) (layer F.SilkS) (width 0.15)) | |
|
266 | (fp_line (start -3.81 -4.064) (end 3.81 -4.064) (layer F.SilkS) (width 0.15)) | |
|
267 | (fp_line (start 3.81 -4.064) (end 3.81 3.81) (layer F.SilkS) (width 0.15)) | |
|
268 | (fp_line (start 3.81 3.81) (end -2.54 3.81) (layer F.SilkS) (width 0.15)) | |
|
269 | (fp_line (start -3.81 -4.064) (end -3.81 2.54) (layer F.SilkS) (width 0.15)) | |
|
270 | (fp_line (start -3.81 2.54) (end -2.54 3.81) (layer F.SilkS) (width 0.15)) | |
|
271 | (pad 1 smd rect (at -5.715 0) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
272 | (net 1 "Net-(R101-Pad1)")) | |
|
273 | (pad 2 smd rect (at -5.715 1.27) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
274 | (net 5 "Net-(U101-Pad2)")) | |
|
275 | (pad 3 smd rect (at -5.715 2.54) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
276 | (net 6 "Net-(U101-Pad3)")) | |
|
277 | (pad 4 smd rect (at -5.715 3.81) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
278 | (net 7 "Net-(U101-Pad4)")) | |
|
279 | (pad 5 smd rect (at -3.81 5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
280 | (net 8 "Net-(U101-Pad5)")) | |
|
281 | (pad 6 smd rect (at -2.54 5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
282 | (net 9 "Net-(U101-Pad6)")) | |
|
283 | (pad 7 smd rect (at -1.27 5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
284 | (net 10 "Net-(U101-Pad7)")) | |
|
285 | (pad 8 smd rect (at 0 5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
286 | (net 3 "Net-(R102-Pad1)")) | |
|
287 | (pad 9 smd rect (at 1.27 5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
288 | (net 11 "Net-(U101-Pad9)")) | |
|
289 | (pad 10 smd rect (at 2.54 5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
290 | (net 4 "Net-(R103-Pad1)")) | |
|
291 | (pad 11 smd rect (at 3.81 5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
292 | (net 12 "Net-(U101-Pad11)")) | |
|
293 | (pad 12 smd rect (at 5.715 3.81) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
294 | (net 13 "Net-(U101-Pad12)")) | |
|
295 | (pad 13 smd rect (at 5.715 2.54) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
296 | (net 14 "Net-(U101-Pad13)")) | |
|
297 | (pad 14 smd rect (at 5.715 1.27) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
298 | (net 15 "Net-(U101-Pad14)")) | |
|
299 | (pad 15 smd rect (at 5.715 0) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
300 | (net 16 "Net-(U101-Pad15)")) | |
|
301 | (pad 16 smd rect (at 5.715 -1.27) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
302 | (net 17 "Net-(U101-Pad16)")) | |
|
303 | (pad 17 smd rect (at 5.715 -2.54) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
304 | (net 18 "Net-(U101-Pad17)")) | |
|
305 | (pad 18 smd rect (at 5.715 -3.81) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
306 | (net 19 "Net-(U101-Pad18)")) | |
|
307 | (pad 19 smd rect (at 3.81 -5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
308 | (net 20 "Net-(U101-Pad19)")) | |
|
309 | (pad 20 smd rect (at 2.54 -5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
310 | (net 21 "Net-(U101-Pad20)")) | |
|
311 | (pad 21 smd rect (at 1.27 -5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
312 | (net 22 "Net-(U101-Pad21)")) | |
|
313 | (pad 22 smd rect (at 0 -5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
314 | (net 23 "Net-(U101-Pad22)")) | |
|
315 | (pad 23 smd rect (at -1.27 -5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
316 | (net 24 "Net-(U101-Pad23)")) | |
|
317 | (pad 24 smd rect (at -2.54 -5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
318 | (net 25 "Net-(U101-Pad24)")) | |
|
319 | (pad 25 smd rect (at -3.81 -5.715) (size 0.762 2.032) (layers F.Cu F.Paste F.Mask) | |
|
320 | (net 26 "Net-(U101-Pad25)")) | |
|
321 | (pad 26 smd rect (at -5.715 -3.81) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
322 | (net 27 "Net-(U101-Pad26)")) | |
|
323 | (pad 27 smd rect (at -5.715 -2.54) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
324 | (net 28 "Net-(U101-Pad27)")) | |
|
325 | (pad 28 smd rect (at -5.715 -1.27) (size 2.032 0.762) (layers F.Cu F.Paste F.Mask) | |
|
326 | (net 29 "Net-(U101-Pad28)")) | |
|
327 | ) | |
|
328 | ||
|
329 | (module NF-Transformers_ETAL:NF-Transformer_P2781_ETAL (layer F.Cu) (tedit 0) (tstamp 557A29C0) | |
|
330 | (at 188.5 83.25) | |
|
331 | (descr "NF-Transformer, ETAL, P2781, SMD,") | |
|
332 | (tags "NF-Transformer, ETAL, P2781, SMD,") | |
|
333 | (attr smd) | |
|
334 | (fp_text reference REF** (at 0 -7.00024) (layer F.SilkS) | |
|
335 | (effects (font (size 1 1) (thickness 0.15))) | |
|
336 | ) | |
|
337 | (fp_text value NF-Transformer_P2781_ETAL (at 0 7.50062) (layer F.Fab) | |
|
338 | (effects (font (size 1 1) (thickness 0.15))) | |
|
339 | ) | |
|
340 | (fp_line (start 6.49986 4.50088) (end 6.49986 4.0005) (layer F.SilkS) (width 0.15)) | |
|
341 | (fp_line (start 6.49986 -4.50088) (end 6.49986 -4.0005) (layer F.SilkS) (width 0.15)) | |
|
342 | (fp_line (start 2.9591 3.83032) (end 3.83032 3.83032) (layer F.SilkS) (width 0.15)) | |
|
343 | (fp_line (start 2.98958 2.8194) (end 3.43916 2.3495) (layer F.SilkS) (width 0.15)) | |
|
344 | (fp_line (start 3.43916 2.3495) (end 3.43916 3.83032) (layer F.SilkS) (width 0.15)) | |
|
345 | (fp_line (start 2.0193 2.30886) (end 2.25044 2.35966) (layer F.SilkS) (width 0.15)) | |
|
346 | (fp_line (start 2.25044 2.35966) (end 2.37998 2.55016) (layer F.SilkS) (width 0.15)) | |
|
347 | (fp_line (start 2.37998 2.55016) (end 2.4003 2.75844) (layer F.SilkS) (width 0.15)) | |
|
348 | (fp_line (start 2.4003 2.75844) (end 2.32918 2.89052) (layer F.SilkS) (width 0.15)) | |
|
349 | (fp_line (start 2.32918 2.89052) (end 2.159 2.97942) (layer F.SilkS) (width 0.15)) | |
|
350 | (fp_line (start 2.159 2.97942) (end 1.89992 2.98958) (layer F.SilkS) (width 0.15)) | |
|
351 | (fp_line (start 1.89992 2.98958) (end 1.66878 3.08864) (layer F.SilkS) (width 0.15)) | |
|
352 | (fp_line (start 1.66878 3.08864) (end 1.51892 3.3401) (layer F.SilkS) (width 0.15)) | |
|
353 | (fp_line (start 1.51892 3.3401) (end 1.52908 3.64998) (layer F.SilkS) (width 0.15)) | |
|
354 | (fp_line (start 1.52908 3.64998) (end 1.67894 3.7592) (layer F.SilkS) (width 0.15)) | |
|
355 | (fp_line (start 1.67894 3.7592) (end 1.8288 3.81) (layer F.SilkS) (width 0.15)) | |
|
356 | (fp_line (start 1.8288 3.81) (end 2.05994 3.83032) (layer F.SilkS) (width 0.15)) | |
|
357 | (fp_line (start 2.05994 3.83032) (end 2.28092 3.7592) (layer F.SilkS) (width 0.15)) | |
|
358 | (fp_line (start 2.28092 3.7592) (end 2.37998 3.57886) (layer F.SilkS) (width 0.15)) | |
|
359 | (fp_line (start 2.37998 3.57886) (end 2.39014 3.3782) (layer F.SilkS) (width 0.15)) | |
|
360 | (fp_line (start 2.39014 3.3782) (end 2.3495 3.21056) (layer F.SilkS) (width 0.15)) | |
|
361 | (fp_line (start 2.3495 3.21056) (end 2.23012 3.08864) (layer F.SilkS) (width 0.15)) | |
|
362 | (fp_line (start 2.23012 3.08864) (end 2.0193 3.0099) (layer F.SilkS) (width 0.15)) | |
|
363 | (fp_line (start 2.0193 3.0099) (end 1.7907 2.97942) (layer F.SilkS) (width 0.15)) | |
|
364 | (fp_line (start 1.7907 2.97942) (end 1.651 2.89052) (layer F.SilkS) (width 0.15)) | |
|
365 | (fp_line (start 1.651 2.89052) (end 1.56972 2.6797) (layer F.SilkS) (width 0.15)) | |
|
366 | (fp_line (start 1.56972 2.6797) (end 1.6002 2.51968) (layer F.SilkS) (width 0.15)) | |
|
367 | (fp_line (start 1.6002 2.51968) (end 1.6891 2.41046) (layer F.SilkS) (width 0.15)) | |
|
368 | (fp_line (start 1.6891 2.41046) (end 1.9304 2.32918) (layer F.SilkS) (width 0.15)) | |
|
369 | (fp_line (start 0.04064 2.31902) (end 1.02108 2.30886) (layer F.SilkS) (width 0.15)) | |
|
370 | (fp_line (start 1.02108 2.30886) (end 0.40894 3.83032) (layer F.SilkS) (width 0.15)) | |
|
371 | (fp_line (start -1.38938 2.51968) (end -1.24968 2.39014) (layer F.SilkS) (width 0.15)) | |
|
372 | (fp_line (start -1.24968 2.39014) (end -1.08966 2.32918) (layer F.SilkS) (width 0.15)) | |
|
373 | (fp_line (start -1.08966 2.32918) (end -0.83058 2.32918) (layer F.SilkS) (width 0.15)) | |
|
374 | (fp_line (start -0.83058 2.32918) (end -0.67056 2.39014) (layer F.SilkS) (width 0.15)) | |
|
375 | (fp_line (start -0.67056 2.39014) (end -0.51054 2.57048) (layer F.SilkS) (width 0.15)) | |
|
376 | (fp_line (start -0.51054 2.57048) (end -0.4699 2.75844) (layer F.SilkS) (width 0.15)) | |
|
377 | (fp_line (start -0.4699 2.75844) (end -0.51054 2.92862) (layer F.SilkS) (width 0.15)) | |
|
378 | (fp_line (start -0.51054 2.92862) (end -0.65024 3.0988) (layer F.SilkS) (width 0.15)) | |
|
379 | (fp_line (start -0.65024 3.0988) (end -1.45034 3.82016) (layer F.SilkS) (width 0.15)) | |
|
380 | (fp_line (start -1.45034 3.82016) (end -0.49022 3.83032) (layer F.SilkS) (width 0.15)) | |
|
381 | (fp_line (start -2.80924 3.85826) (end -2.8194 2.33934) (layer F.SilkS) (width 0.15)) | |
|
382 | (fp_line (start -2.8194 2.33934) (end -2.17932 2.35966) (layer F.SilkS) (width 0.15)) | |
|
383 | (fp_line (start -2.17932 2.35966) (end -1.99898 2.51968) (layer F.SilkS) (width 0.15)) | |
|
384 | (fp_line (start -1.99898 2.51968) (end -1.94056 2.80924) (layer F.SilkS) (width 0.15)) | |
|
385 | (fp_line (start -1.94056 2.80924) (end -1.99898 3.02006) (layer F.SilkS) (width 0.15)) | |
|
386 | (fp_line (start -1.99898 3.02006) (end -2.2098 3.12928) (layer F.SilkS) (width 0.15)) | |
|
387 | (fp_line (start -2.2098 3.12928) (end -2.44094 3.1496) (layer F.SilkS) (width 0.15)) | |
|
388 | (fp_line (start -2.44094 3.1496) (end -2.77114 3.12928) (layer F.SilkS) (width 0.15)) | |
|
389 | (fp_line (start 2.65938 -3.91668) (end 2.64922 -2.41808) (layer F.SilkS) (width 0.15)) | |
|
390 | (fp_line (start 2.64922 -2.41808) (end 3.36042 -2.41808) (layer F.SilkS) (width 0.15)) | |
|
391 | (fp_line (start 1.27 -2.82702) (end 1.92024 -2.82702) (layer F.SilkS) (width 0.15)) | |
|
392 | (fp_line (start 1.10998 -2.37744) (end 1.63068 -3.91668) (layer F.SilkS) (width 0.15)) | |
|
393 | (fp_line (start 1.63068 -3.91668) (end 2.13106 -2.40792) (layer F.SilkS) (width 0.15)) | |
|
394 | (fp_line (start 2.13106 -2.40792) (end 2.14884 -2.40792) (layer F.SilkS) (width 0.15)) | |
|
395 | (fp_line (start 0.40132 -3.8862) (end 0.40132 -2.41808) (layer F.SilkS) (width 0.15)) | |
|
396 | (fp_line (start -0.02032 -3.90652) (end 0.81026 -3.91668) (layer F.SilkS) (width 0.15)) | |
|
397 | (fp_line (start -1.17094 -3.16738) (end -0.71882 -3.16738) (layer F.SilkS) (width 0.15)) | |
|
398 | (fp_line (start -0.4699 -3.90652) (end -1.19888 -3.90652) (layer F.SilkS) (width 0.15)) | |
|
399 | (fp_line (start -1.19888 -3.90652) (end -1.19888 -2.39776) (layer F.SilkS) (width 0.15)) | |
|
400 | (fp_line (start -1.19888 -2.39776) (end -0.51054 -2.3876) (layer F.SilkS) (width 0.15)) | |
|
401 | (fp_line (start -2.9591 -2.41046) (end -2.09042 -2.42062) (layer F.SilkS) (width 0.15)) | |
|
402 | (fp_line (start -2.93878 -3.3909) (end -2.50952 -3.90906) (layer F.SilkS) (width 0.15)) | |
|
403 | (fp_line (start -2.50952 -3.90906) (end -2.49936 -2.43078) (layer F.SilkS) (width 0.15)) | |
|
404 | (fp_line (start -6.49986 -4.0005) (end -3.50012 -4.0005) (layer F.SilkS) (width 0.15)) | |
|
405 | (fp_line (start -6.49986 4.50088) (end -6.49986 4.0005) (layer F.SilkS) (width 0.15)) | |
|
406 | (fp_line (start -3.50012 -4.50088) (end -3.50012 4.50088) (layer F.SilkS) (width 0.15)) | |
|
407 | (fp_line (start -6.49986 -4.50088) (end -6.49986 -4.0005) (layer F.SilkS) (width 0.15)) | |
|
408 | (fp_line (start 6.49986 4.50088) (end -6.49986 4.50088) (layer F.SilkS) (width 0.15)) | |
|
409 | (fp_line (start -6.49986 -4.50088) (end 6.49986 -4.50088) (layer F.SilkS) (width 0.15)) | |
|
410 | (pad 1 smd rect (at -5.53974 -2.54) (size 2.49936 1.39954) (layers F.Cu F.Paste F.Mask)) | |
|
411 | (pad 2 smd rect (at -5.53974 0) (size 2.49936 1.39954) (layers F.Cu F.Paste F.Mask)) | |
|
412 | (pad 3 smd rect (at -5.53974 2.54) (size 2.49936 1.39954) (layers F.Cu F.Paste F.Mask)) | |
|
413 | (pad 4 smd rect (at 5.53974 2.54) (size 2.49936 1.39954) (layers F.Cu F.Paste F.Mask)) | |
|
414 | (pad 5 smd rect (at 5.53974 0) (size 2.5019 1.39954) (layers F.Cu F.Paste F.Mask)) | |
|
415 | (pad 6 smd rect (at 5.53974 -2.54) (size 2.49936 1.39954) (layers F.Cu F.Paste F.Mask)) | |
|
416 | (pad 7 smd oval (at -1.99898 0 90) (size 3.50012 1.39954) (layers F.Adhes)) | |
|
417 | (pad 7 smd oval (at 1.99898 0 90) (size 3.50012 1.39954) (layers F.Adhes)) | |
|
418 | (model NF-Transformers_ETAL.3dshapes/NF-Transformer_P2781_ETAL.wrl | |
|
419 | (at (xyz 0 0 0)) | |
|
420 | (scale (xyz 0.3937 0.3937 0.3937)) | |
|
421 | (rotate (xyz 0 0 0)) | |
|
422 | ) | |
|
423 | ) | |
|
424 | ||
|
425 | (module NF-Transformers_ETAL:NF-Transformer_1-1_P1200_ETAL (layer F.Cu) (tedit 0) (tstamp 557A34AF) | |
|
426 | (at 151.75 82) | |
|
427 | (descr "NF-Transformer, 1:1, ETAL P1200,") | |
|
428 | (tags "NF-Transformer, 1:1, ETAL P1200,") | |
|
429 | (fp_text reference REF** (at -0.01016 -11.6205) (layer F.SilkS) | |
|
430 | (effects (font (size 1 1) (thickness 0.15))) | |
|
431 | ) | |
|
432 | (fp_text value NF-Transformer_1-1_P1200_ETAL (at -0.07112 12.05992) (layer F.Fab) | |
|
433 | (effects (font (size 1 1) (thickness 0.15))) | |
|
434 | ) | |
|
435 | (fp_line (start 5.80136 0.44958) (end 6.79196 0.44958) (layer F.SilkS) (width 0.15)) | |
|
436 | (fp_line (start 6.79196 0.44958) (end 6.30174 1.05918) (layer F.SilkS) (width 0.15)) | |
|
437 | (fp_line (start 6.30174 1.05918) (end 6.61162 1.0795) (layer F.SilkS) (width 0.15)) | |
|
438 | (fp_line (start 6.61162 1.0795) (end 6.7818 1.27) (layer F.SilkS) (width 0.15)) | |
|
439 | (fp_line (start 6.7818 1.27) (end 6.82244 1.5494) (layer F.SilkS) (width 0.15)) | |
|
440 | (fp_line (start 6.82244 1.5494) (end 6.75132 1.8288) (layer F.SilkS) (width 0.15)) | |
|
441 | (fp_line (start 6.75132 1.8288) (end 6.5913 1.97866) (layer F.SilkS) (width 0.15)) | |
|
442 | (fp_line (start 6.5913 1.97866) (end 6.37032 2.00914) (layer F.SilkS) (width 0.15)) | |
|
443 | (fp_line (start 6.37032 2.00914) (end 6.18998 1.98882) (layer F.SilkS) (width 0.15)) | |
|
444 | (fp_line (start 6.18998 1.98882) (end 6.02996 1.9685) (layer F.SilkS) (width 0.15)) | |
|
445 | (fp_line (start 6.02996 1.9685) (end 5.8801 1.85928) (layer F.SilkS) (width 0.15)) | |
|
446 | (fp_line (start -6.23062 1.01854) (end -6.25094 2.03962) (layer F.SilkS) (width 0.15)) | |
|
447 | (fp_line (start -6.61924 0.32004) (end -7.04088 1.52908) (layer F.SilkS) (width 0.15)) | |
|
448 | (fp_line (start -7.04088 1.52908) (end -5.969 1.50876) (layer F.SilkS) (width 0.15)) | |
|
449 | (fp_line (start -5.59308 -5.58038) (end -5.58292 -5.62102) (layer F.SilkS) (width 0.15)) | |
|
450 | (fp_line (start -5.58292 -5.62102) (end -5.58292 -5.61086) (layer F.SilkS) (width 0.15)) | |
|
451 | (fp_line (start -6.10108 -7.21106) (end -6.40334 -7.2009) (layer F.SilkS) (width 0.15)) | |
|
452 | (fp_line (start -6.40334 -7.2009) (end -6.61162 -7.17042) (layer F.SilkS) (width 0.15)) | |
|
453 | (fp_line (start -6.61162 -7.17042) (end -6.74116 -7.05104) (layer F.SilkS) (width 0.15)) | |
|
454 | (fp_line (start -6.74116 -7.05104) (end -6.95198 -6.8199) (layer F.SilkS) (width 0.15)) | |
|
455 | (fp_line (start -6.95198 -6.8199) (end -6.98246 -6.53034) (layer F.SilkS) (width 0.15)) | |
|
456 | (fp_line (start -6.98246 -6.53034) (end -7.01294 -6.1214) (layer F.SilkS) (width 0.15)) | |
|
457 | (fp_line (start -7.01294 -6.1214) (end -6.9215 -5.80136) (layer F.SilkS) (width 0.15)) | |
|
458 | (fp_line (start -6.9215 -5.80136) (end -6.76148 -5.67182) (layer F.SilkS) (width 0.15)) | |
|
459 | (fp_line (start -6.76148 -5.67182) (end -6.47192 -5.61086) (layer F.SilkS) (width 0.15)) | |
|
460 | (fp_line (start -6.47192 -5.61086) (end -6.28142 -5.6515) (layer F.SilkS) (width 0.15)) | |
|
461 | (fp_line (start -6.28142 -5.6515) (end -6.14172 -5.85216) (layer F.SilkS) (width 0.15)) | |
|
462 | (fp_line (start -6.14172 -5.85216) (end -6.1214 -6.1214) (layer F.SilkS) (width 0.15)) | |
|
463 | (fp_line (start -6.1214 -6.1214) (end -6.19252 -6.35) (layer F.SilkS) (width 0.15)) | |
|
464 | (fp_line (start -6.19252 -6.35) (end -6.39318 -6.53034) (layer F.SilkS) (width 0.15)) | |
|
465 | (fp_line (start -6.39318 -6.53034) (end -6.70306 -6.5405) (layer F.SilkS) (width 0.15)) | |
|
466 | (fp_line (start -6.70306 -6.5405) (end -6.8834 -6.47192) (layer F.SilkS) (width 0.15)) | |
|
467 | (fp_line (start 5.98932 -5.6007) (end 6.97992 -5.6007) (layer F.SilkS) (width 0.15)) | |
|
468 | (fp_line (start 5.95122 -6.56082) (end 6.47954 -7.05104) (layer F.SilkS) (width 0.15)) | |
|
469 | (fp_line (start 6.47954 -7.05104) (end 6.47954 -5.58038) (layer F.SilkS) (width 0.15)) | |
|
470 | (fp_line (start 5.90042 6.69036) (end 6.12902 6.78942) (layer F.SilkS) (width 0.15)) | |
|
471 | (fp_line (start 6.12902 6.78942) (end 6.25094 6.93928) (layer F.SilkS) (width 0.15)) | |
|
472 | (fp_line (start 6.25094 6.93928) (end 6.28904 7.13994) (layer F.SilkS) (width 0.15)) | |
|
473 | (fp_line (start 6.28904 7.13994) (end 6.28904 7.60984) (layer F.SilkS) (width 0.15)) | |
|
474 | (fp_line (start 6.28904 7.60984) (end 6.2611 7.8994) (layer F.SilkS) (width 0.15)) | |
|
475 | (fp_line (start 6.2611 7.8994) (end 6.18998 8.05942) (layer F.SilkS) (width 0.15)) | |
|
476 | (fp_line (start 6.18998 8.05942) (end 6.08076 8.17118) (layer F.SilkS) (width 0.15)) | |
|
477 | (fp_line (start 6.08076 8.17118) (end 5.98932 8.21944) (layer F.SilkS) (width 0.15)) | |
|
478 | (fp_line (start 5.98932 8.21944) (end 5.8801 8.2296) (layer F.SilkS) (width 0.15)) | |
|
479 | (fp_line (start 5.8801 8.2296) (end 5.75056 8.17118) (layer F.SilkS) (width 0.15)) | |
|
480 | (fp_line (start 5.75056 8.17118) (end 5.61086 8.06958) (layer F.SilkS) (width 0.15)) | |
|
481 | (fp_line (start 5.61086 8.06958) (end 5.52958 7.87908) (layer F.SilkS) (width 0.15)) | |
|
482 | (fp_line (start 5.52958 7.87908) (end 5.4991 7.52094) (layer F.SilkS) (width 0.15)) | |
|
483 | (fp_line (start 5.4991 7.52094) (end 5.4991 7.26948) (layer F.SilkS) (width 0.15)) | |
|
484 | (fp_line (start 5.4991 7.26948) (end 5.53974 7.03072) (layer F.SilkS) (width 0.15)) | |
|
485 | (fp_line (start 5.53974 7.03072) (end 5.6388 6.88086) (layer F.SilkS) (width 0.15)) | |
|
486 | (fp_line (start 5.6388 6.88086) (end 5.75056 6.74878) (layer F.SilkS) (width 0.15)) | |
|
487 | (fp_line (start 5.75056 6.74878) (end 5.85978 6.70052) (layer F.SilkS) (width 0.15)) | |
|
488 | (fp_line (start 4.42976 6.72084) (end 4.62026 6.7691) (layer F.SilkS) (width 0.15)) | |
|
489 | (fp_line (start 4.62026 6.7691) (end 4.81076 6.99008) (layer F.SilkS) (width 0.15)) | |
|
490 | (fp_line (start 4.81076 6.99008) (end 4.87934 7.29996) (layer F.SilkS) (width 0.15)) | |
|
491 | (fp_line (start 4.87934 7.29996) (end 4.86918 7.59968) (layer F.SilkS) (width 0.15)) | |
|
492 | (fp_line (start 4.86918 7.59968) (end 4.79044 7.9502) (layer F.SilkS) (width 0.15)) | |
|
493 | (fp_line (start 4.79044 7.9502) (end 4.6609 8.15086) (layer F.SilkS) (width 0.15)) | |
|
494 | (fp_line (start 4.6609 8.15086) (end 4.4704 8.2296) (layer F.SilkS) (width 0.15)) | |
|
495 | (fp_line (start 4.4704 8.2296) (end 4.24942 8.17118) (layer F.SilkS) (width 0.15)) | |
|
496 | (fp_line (start 4.24942 8.17118) (end 4.09956 7.98068) (layer F.SilkS) (width 0.15)) | |
|
497 | (fp_line (start 4.09956 7.98068) (end 4.03098 7.69112) (layer F.SilkS) (width 0.15)) | |
|
498 | (fp_line (start 4.03098 7.69112) (end 4.02082 7.31012) (layer F.SilkS) (width 0.15)) | |
|
499 | (fp_line (start 4.02082 7.31012) (end 4.09956 7.00024) (layer F.SilkS) (width 0.15)) | |
|
500 | (fp_line (start 4.09956 7.00024) (end 4.21894 6.77926) (layer F.SilkS) (width 0.15)) | |
|
501 | (fp_line (start 4.21894 6.77926) (end 4.37896 6.72084) (layer F.SilkS) (width 0.15)) | |
|
502 | (fp_line (start 2.51968 6.90118) (end 2.57048 6.84022) (layer F.SilkS) (width 0.15)) | |
|
503 | (fp_line (start 2.57048 6.84022) (end 2.77114 6.72084) (layer F.SilkS) (width 0.15)) | |
|
504 | (fp_line (start 2.77114 6.72084) (end 2.96926 6.70052) (layer F.SilkS) (width 0.15)) | |
|
505 | (fp_line (start 2.96926 6.70052) (end 3.18008 6.731) (layer F.SilkS) (width 0.15)) | |
|
506 | (fp_line (start 3.18008 6.731) (end 3.3401 6.85038) (layer F.SilkS) (width 0.15)) | |
|
507 | (fp_line (start 3.3401 6.85038) (end 3.429 7.04088) (layer F.SilkS) (width 0.15)) | |
|
508 | (fp_line (start 3.429 7.04088) (end 3.38074 7.29996) (layer F.SilkS) (width 0.15)) | |
|
509 | (fp_line (start 3.38074 7.29996) (end 2.55016 8.23976) (layer F.SilkS) (width 0.15)) | |
|
510 | (fp_line (start 2.55016 8.23976) (end 3.43916 8.23976) (layer F.SilkS) (width 0.15)) | |
|
511 | (fp_line (start 1.06934 8.20928) (end 1.96088 8.21944) (layer F.SilkS) (width 0.15)) | |
|
512 | (fp_line (start 1.06934 7.18058) (end 1.5494 6.74116) (layer F.SilkS) (width 0.15)) | |
|
513 | (fp_line (start 1.5494 6.74116) (end 1.55956 8.21944) (layer F.SilkS) (width 0.15)) | |
|
514 | (fp_line (start -0.34036 8.20928) (end -0.35052 6.731) (layer F.SilkS) (width 0.15)) | |
|
515 | (fp_line (start -0.35052 6.731) (end 0.1397 6.74116) (layer F.SilkS) (width 0.15)) | |
|
516 | (fp_line (start 0.1397 6.74116) (end 0.3302 6.78942) (layer F.SilkS) (width 0.15)) | |
|
517 | (fp_line (start 0.3302 6.78942) (end 0.51054 6.97992) (layer F.SilkS) (width 0.15)) | |
|
518 | (fp_line (start 0.51054 6.97992) (end 0.53086 7.22122) (layer F.SilkS) (width 0.15)) | |
|
519 | (fp_line (start 0.53086 7.22122) (end 0.4699 7.3406) (layer F.SilkS) (width 0.15)) | |
|
520 | (fp_line (start 0.4699 7.3406) (end 0.37084 7.43966) (layer F.SilkS) (width 0.15)) | |
|
521 | (fp_line (start 0.37084 7.43966) (end 0.24892 7.50062) (layer F.SilkS) (width 0.15)) | |
|
522 | (fp_line (start 0.24892 7.50062) (end -0.26924 7.50062) (layer F.SilkS) (width 0.15)) | |
|
523 | (fp_line (start -2.72034 6.65988) (end -2.72034 8.20928) (layer F.SilkS) (width 0.15)) | |
|
524 | (fp_line (start -2.72034 8.20928) (end -1.99898 8.2296) (layer F.SilkS) (width 0.15)) | |
|
525 | (fp_line (start -4.04114 7.79018) (end -3.51028 7.79018) (layer F.SilkS) (width 0.15)) | |
|
526 | (fp_line (start -4.26974 8.2296) (end -3.7592 6.70052) (layer F.SilkS) (width 0.15)) | |
|
527 | (fp_line (start -3.7592 6.70052) (end -3.24104 8.20928) (layer F.SilkS) (width 0.15)) | |
|
528 | (fp_line (start -5.44068 6.70052) (end -4.63042 6.70052) (layer F.SilkS) (width 0.15)) | |
|
529 | (fp_line (start -4.98094 8.20928) (end -4.98094 6.74116) (layer F.SilkS) (width 0.15)) | |
|
530 | (fp_line (start -6.55066 7.4295) (end -6.10108 7.4295) (layer F.SilkS) (width 0.15)) | |
|
531 | (fp_line (start -5.86994 6.70052) (end -6.61924 6.72084) (layer F.SilkS) (width 0.15)) | |
|
532 | (fp_line (start -6.61924 6.72084) (end -6.61924 8.24992) (layer F.SilkS) (width 0.15)) | |
|
533 | (fp_line (start -6.61924 8.24992) (end -5.92074 8.24992) (layer F.SilkS) (width 0.15)) | |
|
534 | (fp_line (start -1.40716 -6.77926) (end -0.7874 -6.79958) (layer F.SilkS) (width 0.15)) | |
|
535 | (fp_line (start 0.82042 -6.85038) (end 1.4605 -6.85038) (layer F.SilkS) (width 0.15)) | |
|
536 | (fp_line (start 0.09906 -6.91896) (end 0.02032 -6.91896) (layer F.SilkS) (width 0.15)) | |
|
537 | (fp_line (start 0.03048 -7.71906) (end -0.02032 -7.69874) (layer F.SilkS) (width 0.15)) | |
|
538 | (fp_line (start 0.67056 -7.87908) (end 1.17094 -8.30072) (layer F.SilkS) (width 0.15)) | |
|
539 | (fp_line (start 1.17094 -8.30072) (end 1.17094 -6.85038) (layer F.SilkS) (width 0.15)) | |
|
540 | (fp_line (start -1.56972 -7.82066) (end -1.03124 -8.30072) (layer F.SilkS) (width 0.15)) | |
|
541 | (fp_line (start -1.03124 -8.30072) (end -1.03124 -6.78942) (layer F.SilkS) (width 0.15)) | |
|
542 | (fp_line (start 4.82092 -4.0005) (end 3.0607 -4.04114) (layer F.SilkS) (width 0.15)) | |
|
543 | (fp_line (start 3.0607 -4.04114) (end 2.75082 -3.98018) (layer F.SilkS) (width 0.15)) | |
|
544 | (fp_line (start 2.75082 -3.98018) (end 2.42062 -3.78968) (layer F.SilkS) (width 0.15)) | |
|
545 | (fp_line (start 2.42062 -3.78968) (end 2.11074 -3.50012) (layer F.SilkS) (width 0.15)) | |
|
546 | (fp_line (start 2.11074 -3.50012) (end 1.98882 -3.10896) (layer F.SilkS) (width 0.15)) | |
|
547 | (fp_line (start 1.98882 -3.10896) (end 2.0193 -2.74066) (layer F.SilkS) (width 0.15)) | |
|
548 | (fp_line (start 2.0193 -2.74066) (end 2.16916 -2.35966) (layer F.SilkS) (width 0.15)) | |
|
549 | (fp_line (start 2.16916 -2.35966) (end 2.42062 -2.16916) (layer F.SilkS) (width 0.15)) | |
|
550 | (fp_line (start 2.42062 -2.16916) (end 2.88036 -1.96088) (layer F.SilkS) (width 0.15)) | |
|
551 | (fp_line (start 2.88036 -1.96088) (end 3.12928 -1.96088) (layer F.SilkS) (width 0.15)) | |
|
552 | (fp_line (start 3.12928 -1.96088) (end 2.64922 -1.86944) (layer F.SilkS) (width 0.15)) | |
|
553 | (fp_line (start 2.64922 -1.86944) (end 2.14884 -1.5494) (layer F.SilkS) (width 0.15)) | |
|
554 | (fp_line (start 2.14884 -1.5494) (end 2.00914 -1.23952) (layer F.SilkS) (width 0.15)) | |
|
555 | (fp_line (start 2.00914 -1.23952) (end 1.98882 -0.889) (layer F.SilkS) (width 0.15)) | |
|
556 | (fp_line (start 1.98882 -0.889) (end 2.11074 -0.5207) (layer F.SilkS) (width 0.15)) | |
|
557 | (fp_line (start 2.11074 -0.5207) (end 2.4003 -0.21082) (layer F.SilkS) (width 0.15)) | |
|
558 | (fp_line (start 2.4003 -0.21082) (end 2.72034 -0.02032) (layer F.SilkS) (width 0.15)) | |
|
559 | (fp_line (start 2.72034 -0.02032) (end 3.15976 0) (layer F.SilkS) (width 0.15)) | |
|
560 | (fp_line (start 3.15976 0) (end 2.6797 0.07112) (layer F.SilkS) (width 0.15)) | |
|
561 | (fp_line (start 2.6797 0.07112) (end 2.32918 0.26924) (layer F.SilkS) (width 0.15)) | |
|
562 | (fp_line (start 2.32918 0.26924) (end 2.11074 0.55118) (layer F.SilkS) (width 0.15)) | |
|
563 | (fp_line (start 2.11074 0.55118) (end 2.00914 0.87122) (layer F.SilkS) (width 0.15)) | |
|
564 | (fp_line (start 2.00914 0.87122) (end 2.0193 1.22936) (layer F.SilkS) (width 0.15)) | |
|
565 | (fp_line (start 2.0193 1.22936) (end 2.16916 1.57988) (layer F.SilkS) (width 0.15)) | |
|
566 | (fp_line (start 2.16916 1.57988) (end 2.43078 1.81102) (layer F.SilkS) (width 0.15)) | |
|
567 | (fp_line (start 2.43078 1.81102) (end 2.74066 1.97104) (layer F.SilkS) (width 0.15)) | |
|
568 | (fp_line (start 2.74066 1.97104) (end 2.97942 2.02946) (layer F.SilkS) (width 0.15)) | |
|
569 | (fp_line (start 2.97942 2.02946) (end 3.2004 2.02946) (layer F.SilkS) (width 0.15)) | |
|
570 | (fp_line (start 3.2004 2.02946) (end 2.46888 2.14884) (layer F.SilkS) (width 0.15)) | |
|
571 | (fp_line (start 2.46888 2.14884) (end 2.17932 2.4003) (layer F.SilkS) (width 0.15)) | |
|
572 | (fp_line (start 2.17932 2.4003) (end 2.03962 2.76098) (layer F.SilkS) (width 0.15)) | |
|
573 | (fp_line (start 2.03962 2.76098) (end 2.00914 3.08102) (layer F.SilkS) (width 0.15)) | |
|
574 | (fp_line (start 2.00914 3.08102) (end 2.11074 3.44932) (layer F.SilkS) (width 0.15)) | |
|
575 | (fp_line (start 2.11074 3.44932) (end 2.30886 3.68046) (layer F.SilkS) (width 0.15)) | |
|
576 | (fp_line (start 2.30886 3.68046) (end 2.5908 3.92938) (layer F.SilkS) (width 0.15)) | |
|
577 | (fp_line (start 2.5908 3.92938) (end 2.96926 4.0005) (layer F.SilkS) (width 0.15)) | |
|
578 | (fp_line (start 2.96926 4.0005) (end 4.89966 4.0005) (layer F.SilkS) (width 0.15)) | |
|
579 | (fp_line (start -5.00126 -4.0005) (end -2.99974 -4.0005) (layer F.SilkS) (width 0.15)) | |
|
580 | (fp_line (start -2.99974 -4.0005) (end -2.61874 -3.9497) (layer F.SilkS) (width 0.15)) | |
|
581 | (fp_line (start -2.61874 -3.9497) (end -2.32918 -3.73126) (layer F.SilkS) (width 0.15)) | |
|
582 | (fp_line (start -2.32918 -3.73126) (end -2.10058 -3.50012) (layer F.SilkS) (width 0.15)) | |
|
583 | (fp_line (start -2.10058 -3.50012) (end -2.04978 -3.2893) (layer F.SilkS) (width 0.15)) | |
|
584 | (fp_line (start -2.04978 -3.2893) (end -1.98882 -2.94894) (layer F.SilkS) (width 0.15)) | |
|
585 | (fp_line (start -1.98882 -2.94894) (end -2.04978 -2.51968) (layer F.SilkS) (width 0.15)) | |
|
586 | (fp_line (start -2.04978 -2.51968) (end -2.23012 -2.32918) (layer F.SilkS) (width 0.15)) | |
|
587 | (fp_line (start -2.23012 -2.32918) (end -2.44094 -2.18948) (layer F.SilkS) (width 0.15)) | |
|
588 | (fp_line (start -2.44094 -2.18948) (end -2.84988 -2.00914) (layer F.SilkS) (width 0.15)) | |
|
589 | (fp_line (start -2.84988 -2.00914) (end -3.0099 -2.00914) (layer F.SilkS) (width 0.15)) | |
|
590 | (fp_line (start -3.0099 -2.00914) (end -2.72034 -1.92024) (layer F.SilkS) (width 0.15)) | |
|
591 | (fp_line (start -2.72034 -1.92024) (end -2.4003 -1.81102) (layer F.SilkS) (width 0.15)) | |
|
592 | (fp_line (start -2.4003 -1.81102) (end -2.14122 -1.62052) (layer F.SilkS) (width 0.15)) | |
|
593 | (fp_line (start -2.14122 -1.62052) (end -2.0701 -1.3208) (layer F.SilkS) (width 0.15)) | |
|
594 | (fp_line (start -2.0701 -1.3208) (end -2.02946 -0.98044) (layer F.SilkS) (width 0.15)) | |
|
595 | (fp_line (start -2.02946 -0.98044) (end -2.0701 -0.6604) (layer F.SilkS) (width 0.15)) | |
|
596 | (fp_line (start -2.0701 -0.6604) (end -2.2098 -0.42926) (layer F.SilkS) (width 0.15)) | |
|
597 | (fp_line (start -2.2098 -0.42926) (end -2.30886 -0.2794) (layer F.SilkS) (width 0.15)) | |
|
598 | (fp_line (start -2.30886 -0.2794) (end -2.55016 -0.11938) (layer F.SilkS) (width 0.15)) | |
|
599 | (fp_line (start -2.55016 -0.11938) (end -2.78892 -0.02032) (layer F.SilkS) (width 0.15)) | |
|
600 | (fp_line (start -2.78892 -0.02032) (end -2.93878 -0.02032) (layer F.SilkS) (width 0.15)) | |
|
601 | (fp_line (start -2.93878 -0.02032) (end -2.66954 0.07112) (layer F.SilkS) (width 0.15)) | |
|
602 | (fp_line (start -2.66954 0.07112) (end -2.42062 0.20066) (layer F.SilkS) (width 0.15)) | |
|
603 | (fp_line (start -2.42062 0.20066) (end -2.16916 0.43942) (layer F.SilkS) (width 0.15)) | |
|
604 | (fp_line (start -2.16916 0.43942) (end -2.0701 0.6604) (layer F.SilkS) (width 0.15)) | |
|
605 | (fp_line (start -2.0701 0.6604) (end -2.00914 0.9398) (layer F.SilkS) (width 0.15)) | |
|
606 | (fp_line (start -2.00914 0.9398) (end -2.02946 1.20904) (layer F.SilkS) (width 0.15)) | |
|
607 | (fp_line (start -2.02946 1.20904) (end -2.10058 1.48082) (layer F.SilkS) (width 0.15)) | |
|
608 | (fp_line (start -2.10058 1.48082) (end -2.28092 1.6891) (layer F.SilkS) (width 0.15)) | |
|
609 | (fp_line (start -2.28092 1.6891) (end -2.44094 1.8288) (layer F.SilkS) (width 0.15)) | |
|
610 | (fp_line (start -2.44094 1.8288) (end -2.61874 1.92024) (layer F.SilkS) (width 0.15)) | |
|
611 | (fp_line (start -2.61874 1.92024) (end -2.94894 1.96088) (layer F.SilkS) (width 0.15)) | |
|
612 | (fp_line (start -2.94894 1.96088) (end -2.68986 2.03962) (layer F.SilkS) (width 0.15)) | |
|
613 | (fp_line (start -2.68986 2.03962) (end -2.42062 2.19964) (layer F.SilkS) (width 0.15)) | |
|
614 | (fp_line (start -2.42062 2.19964) (end -2.23012 2.44094) (layer F.SilkS) (width 0.15)) | |
|
615 | (fp_line (start -2.23012 2.44094) (end -2.10058 2.64922) (layer F.SilkS) (width 0.15)) | |
|
616 | (fp_line (start -2.10058 2.64922) (end -2.04978 2.88036) (layer F.SilkS) (width 0.15)) | |
|
617 | (fp_line (start -2.04978 2.88036) (end -2.04978 3.1496) (layer F.SilkS) (width 0.15)) | |
|
618 | (fp_line (start -2.04978 3.1496) (end -2.14122 3.46964) (layer F.SilkS) (width 0.15)) | |
|
619 | (fp_line (start -2.14122 3.46964) (end -2.2606 3.68046) (layer F.SilkS) (width 0.15)) | |
|
620 | (fp_line (start -2.2606 3.68046) (end -2.46888 3.88112) (layer F.SilkS) (width 0.15)) | |
|
621 | (fp_line (start -2.46888 3.88112) (end -2.74066 3.92938) (layer F.SilkS) (width 0.15)) | |
|
622 | (fp_line (start -2.74066 3.92938) (end -2.94894 3.98018) (layer F.SilkS) (width 0.15)) | |
|
623 | (fp_line (start -2.94894 3.98018) (end -3.0099 3.95986) (layer F.SilkS) (width 0.15)) | |
|
624 | (fp_line (start -3.0099 3.95986) (end -4.93014 3.9497) (layer F.SilkS) (width 0.15)) | |
|
625 | (fp_line (start 0 -5.99948) (end 0 5.99948) (layer F.SilkS) (width 0.15)) | |
|
626 | (fp_line (start 8.99922 -8.99922) (end -8.99922 -8.99922) (layer F.SilkS) (width 0.15)) | |
|
627 | (fp_line (start -8.99922 -8.99922) (end -8.99922 8.99922) (layer F.SilkS) (width 0.15)) | |
|
628 | (fp_line (start -8.99922 8.99922) (end 8.99922 8.99922) (layer F.SilkS) (width 0.15)) | |
|
629 | (fp_line (start 8.99922 8.99922) (end 8.99922 -8.99922) (layer F.SilkS) (width 0.15)) | |
|
630 | (pad 6 thru_hole circle (at -6.35 -3.81) (size 1.524 1.524) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)) | |
|
631 | (pad 4 thru_hole circle (at -6.35 3.81) (size 1.524 1.524) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)) | |
|
632 | (pad 1 thru_hole circle (at 6.35 -3.81) (size 1.524 1.524) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)) | |
|
633 | (pad 3 thru_hole circle (at 6.35 3.81) (size 1.524 1.524) (drill 0.8128) (layers *.Cu *.Mask F.SilkS)) | |
|
634 | (model NF-Transformers_ETAL.3dshapes/NF-Transformer_1-1_P1200_ETAL.wrl | |
|
635 | (at (xyz 0 0 0)) | |
|
636 | (scale (xyz 0.3937 0.3937 0.3937)) | |
|
637 | (rotate (xyz 0 0 0)) | |
|
638 | ) | |
|
639 | ) | |
|
640 | ||
|
641 | (target plus (at 126 82.75) (size 5) (width 0.1) (layer Edge.Cuts)) | |
|
642 | (target plus (at 198.25 93.75) (size 5) (width 0.1) (layer Edge.Cuts)) | |
|
643 | (dimension 7.5 (width 0.3) (layer F.SilkS) | |
|
644 | (gr_text "7,500 mm" (at 168 90.65) (layer F.SilkS) | |
|
645 | (effects (font (size 1.5 1.5) (thickness 0.3))) | |
|
646 | ) | |
|
647 | (feature1 (pts (xy 171.75 98.75) (xy 171.75 89.3))) | |
|
648 | (feature2 (pts (xy 164.25 98.75) (xy 164.25 89.3))) | |
|
649 | (crossbar (pts (xy 164.25 92) (xy 171.75 92))) | |
|
650 | (arrow1a (pts (xy 171.75 92) (xy 170.623496 92.586421))) | |
|
651 | (arrow1b (pts (xy 171.75 92) (xy 170.623496 91.413579))) | |
|
652 | (arrow2a (pts (xy 164.25 92) (xy 165.376504 92.586421))) | |
|
653 | (arrow2b (pts (xy 164.25 92) (xy 165.376504 91.413579))) | |
|
654 | ) | |
|
655 | (gr_text hello (at 181.75 101.25) (layer F.SilkS) | |
|
656 | (effects (font (size 1.5 1.5) (thickness 0.3))) | |
|
657 | ) | |
|
658 | (gr_arc (start 185.5 106) (end 189.75 107.5) (angle 174.5962086) (layer F.SilkS) (width 0.2)) | |
|
659 | (gr_circle (center 183 113) (end 186 115.75) (layer F.SilkS) (width 0.2)) | |
|
660 | ||
|
661 | (via (at 159.75 103.5) (size 0.6) (drill 0.4) (layers F.Cu B.Cu) (net 1)) | |
|
662 | (segment (start 160.036365 103.786365) (end 159.75 103.5) (width 0.25) (layer F.Cu) (net 1)) | |
|
663 | (segment (start 160.036365 104.5) (end 160.036365 103.786365) (width 0.25) (layer F.Cu) (net 1)) | |
|
664 | (segment (start 157.75 104.5) (end 160.036365 104.5) (width 0.25) (layer F.Cu) (net 1)) | |
|
665 | (segment (start 160.036365 104.5) (end 162.285 104.5) (width 0.25) (layer F.Cu) (net 1)) | |
|
666 | (segment (start 161.25 116.75) (end 170.5 116.75) (width 0.25) (layer F.Cu) (net 2)) | |
|
667 | (segment (start 156.25 111.75) (end 161.25 116.75) (width 0.25) (layer F.Cu) (net 2)) | |
|
668 | (segment (start 156.25 104.5) (end 156.25 111.75) (width 0.25) (layer F.Cu) (net 2)) | |
|
669 | (segment (start 168 115.25) (end 168 110.215) (width 0.25) (layer F.Cu) (net 3)) | |
|
670 | (segment (start 170.5 110.255) (end 170.54 110.215) (width 0.25) (layer F.Cu) (net 4)) | |
|
671 | (segment (start 170.5 115.25) (end 170.5 110.255) (width 0.25) (layer F.Cu) (net 4)) | |
|
672 | ||
|
673 | (zone (net 2) (net_name "Net-(R101-Pad2)") (layer F.Cu) (tstamp 0) (hatch edge 0.508) | |
|
674 | (priority 1) | |
|
675 | (connect_pads (clearance 0.508)) | |
|
676 | (min_thickness 0.254) | |
|
677 | (fill yes (arc_segments 32) (thermal_gap 0.508) (thermal_bridge_width 0.508) (smoothing fillet) (radius 0.2)) | |
|
678 | (polygon | |
|
679 | (pts | |
|
680 | (xy 195 119.75) (xy 179.75 114.75) (xy 192.5 127.25) (xy 133.75 130) (xy 137.630288 117.262531) | |
|
681 | (xy 124.5 106.5) (xy 142.197095 102.27149) (xy 145.25 92.25) (xy 169.536242 105.674556) (xy 182.5 110.25) | |
|
682 | (xy 181.034023 112.030113) | |
|
683 | ) | |
|
684 | ) | |
|
685 | (filled_polygon | |
|
686 | (pts | |
|
687 | (xy 193.120387 118.902543) (xy 193.118602 118.91578) (xy 193.114419 118.928464) (xy 193.107978 118.940164) (xy 193.099499 118.950484) | |
|
688 | (xy 193.089272 118.959071) (xy 193.07764 118.965636) (xy 193.065001 118.969955) (xy 193.051785 118.97188) (xy 193.038439 118.971347) | |
|
689 | (xy 193.019677 118.967062) (xy 180.597879 114.894341) (xy 180.542689 114.881941) (xy 180.480035 114.880102) (xy 180.418177 114.890227) | |
|
690 | (xy 180.35938 114.911951) (xy 180.305798 114.944475) (xy 180.25939 114.98661) (xy 180.221859 115.036812) (xy 180.194574 115.093243) | |
|
691 | (xy 180.178539 115.15384) (xy 180.174337 115.216379) (xy 180.182126 115.278576) (xy 180.201617 115.33815) (xy 180.232099 115.39292) | |
|
692 | (xy 180.268515 115.436202) (xy 192.079136 127.015241) (xy 192.092092 127.030665) (xy 192.098855 127.042889) (xy 192.103146 127.056188) | |
|
693 | (xy 192.104803 127.070062) (xy 192.103764 127.083994) (xy 192.100067 127.09747) (xy 192.093852 127.109985) (xy 192.085349 127.121071) | |
|
694 | (xy 192.074874 127.130318) (xy 192.062819 127.13738) (xy 192.049632 127.141996) (xy 192.029695 127.144875) (xy 171.585 128.10186) | |
|
695 | (xy 171.585 117.062542) (xy 171.585 117.03375) (xy 171.42625 116.875) (xy 170.627 116.875) (xy 170.627 117.47625) | |
|
696 | (xy 170.78575 117.635) (xy 170.887458 117.635) (xy 171.012542 117.635) (xy 171.135223 117.610597) (xy 171.250785 117.56273) | |
|
697 | (xy 171.354789 117.493237) (xy 171.443237 117.404789) (xy 171.51273 117.300785) (xy 171.560597 117.185223) (xy 171.585 117.062542) | |
|
698 | (xy 171.585 128.10186) (xy 170.373 128.158592) (xy 170.373 117.47625) (xy 170.373 116.875) (xy 169.57375 116.875) | |
|
699 | (xy 169.415 117.03375) (xy 169.415 117.062542) (xy 169.439403 117.185223) (xy 169.48727 117.300785) (xy 169.556763 117.404789) | |
|
700 | (xy 169.645211 117.493237) (xy 169.749215 117.56273) (xy 169.864777 117.610597) (xy 169.987458 117.635) (xy 170.112542 117.635) | |
|
701 | (xy 170.21425 117.635) (xy 170.373 117.47625) (xy 170.373 128.158592) (xy 169.085 128.218882) (xy 169.085 117.062542) | |
|
702 | (xy 169.085 117.03375) (xy 168.92625 116.875) (xy 168.127 116.875) (xy 168.127 117.47625) (xy 168.28575 117.635) | |
|
703 | (xy 168.387458 117.635) (xy 168.512542 117.635) (xy 168.635223 117.610597) (xy 168.750785 117.56273) (xy 168.854789 117.493237) | |
|
704 | (xy 168.943237 117.404789) (xy 169.01273 117.300785) (xy 169.060597 117.185223) (xy 169.085 117.062542) (xy 169.085 128.218882) | |
|
705 | (xy 167.873 128.275614) (xy 167.873 117.47625) (xy 167.873 116.875) (xy 167.07375 116.875) (xy 166.915 117.03375) | |
|
706 | (xy 166.915 117.062542) (xy 166.939403 117.185223) (xy 166.98727 117.300785) (xy 167.056763 117.404789) (xy 167.145211 117.493237) | |
|
707 | (xy 167.249215 117.56273) (xy 167.364777 117.610597) (xy 167.487458 117.635) (xy 167.612542 117.635) (xy 167.71425 117.635) | |
|
708 | (xy 167.873 117.47625) (xy 167.873 128.275614) (xy 156.125 128.82552) (xy 156.125 105.42625) (xy 156.125 104.627) | |
|
709 | (xy 156.125 104.373) (xy 156.125 103.57375) (xy 155.96625 103.415) (xy 155.937458 103.415) (xy 155.814777 103.439403) | |
|
710 | (xy 155.699215 103.48727) (xy 155.595211 103.556763) (xy 155.506763 103.645211) (xy 155.43727 103.749215) (xy 155.389403 103.864777) | |
|
711 | (xy 155.365 103.987458) (xy 155.365 104.112542) (xy 155.365 104.21425) (xy 155.52375 104.373) (xy 156.125 104.373) | |
|
712 | (xy 156.125 104.627) (xy 155.52375 104.627) (xy 155.365 104.78575) (xy 155.365 104.887458) (xy 155.365 105.012542) | |
|
713 | (xy 155.389403 105.135223) (xy 155.43727 105.250785) (xy 155.506763 105.354789) (xy 155.595211 105.443237) (xy 155.699215 105.51273) | |
|
714 | (xy 155.814777 105.560597) (xy 155.937458 105.585) (xy 155.96625 105.585) (xy 156.125 105.42625) (xy 156.125 128.82552) | |
|
715 | (xy 134.033461 129.859593) (xy 134.013543 129.858618) (xy 134.000107 129.855327) (xy 133.98754 129.84954) (xy 133.976304 129.84147) | |
|
716 | (xy 133.966808 129.83141) (xy 133.959398 129.819728) (xy 133.954344 129.80685) (xy 133.951832 129.793246) (xy 133.951953 129.779412) | |
|
717 | (xy 133.955915 129.759868) (xy 137.714318 117.4225) (xy 137.72476 117.373854) (xy 137.727122 117.318776) (xy 137.720211 117.264083) | |
|
718 | (xy 137.704224 117.211325) (xy 137.679612 117.161996) (xy 137.647074 117.117494) (xy 137.611387 117.082826) (xy 124.896799 106.661033) | |
|
719 | (xy 124.883072 106.647477) (xy 124.87544 106.636479) (xy 124.869962 106.624264) (xy 124.866825 106.611248) (xy 124.866135 106.597877) | |
|
720 | (xy 124.867917 106.584609) (xy 124.87211 106.571897) (xy 124.87857 106.560172) (xy 124.887079 106.549833) (xy 124.897344 106.541238) | |
|
721 | (xy 124.909013 106.534678) (xy 124.927282 106.528481) (xy 142.12052 102.420362) (xy 142.169092 102.404198) (xy 142.219015 102.377269) | |
|
722 | (xy 142.26354 102.342131) (xy 142.301336 102.299835) (xy 142.331266 102.251651) (xy 142.350369 102.204158) (xy 145.29788 92.528636) | |
|
723 | (xy 145.304847 92.511428) (xy 145.311723 92.500526) (xy 145.320419 92.491016) (xy 145.330662 92.483196) (xy 145.34213 92.477312) | |
|
724 | (xy 145.354456 92.473552) (xy 145.367255 92.472034) (xy 145.380118 92.472806) (xy 145.392642 92.475844) (xy 145.409626 92.483346) | |
|
725 | (xy 160.630928 100.897131) (xy 160.630928 101.071) (xy 160.639303 101.174043) (xy 160.688156 101.330278) (xy 160.656081 101.401611) | |
|
726 | (xy 160.630928 101.579) (xy 160.630928 102.341) (xy 160.639303 102.444043) (xy 160.688156 102.600278) (xy 160.656081 102.671611) | |
|
727 | (xy 160.630928 102.849) (xy 160.630928 103.183571) (xy 160.57955 103.05892) (xy 160.478079 102.906193) (xy 160.348875 102.776084) | |
|
728 | (xy 160.19686 102.673549) (xy 160.027825 102.602493) (xy 159.848207 102.565623) (xy 159.664849 102.564343) (xy 159.484733 102.598701) | |
|
729 | (xy 159.314722 102.66739) (xy 159.161291 102.767793) (xy 159.030283 102.896086) (xy 158.926689 103.047381) (xy 158.854454 103.215916) | |
|
730 | (xy 158.816331 103.395272) (xy 158.813771 103.578617) (xy 158.84339 103.74) (xy 158.552421 103.74) (xy 158.477326 103.626566) | |
|
731 | (xy 158.340792 103.510558) (xy 158.177389 103.437081) (xy 158 103.411928) (xy 157.5 103.411928) (xy 157.396957 103.420303) | |
|
732 | (xy 157.225959 103.473773) (xy 157.076566 103.572674) (xy 157.002788 103.659505) (xy 156.993237 103.645211) (xy 156.904789 103.556763) | |
|
733 | (xy 156.800785 103.48727) (xy 156.685223 103.439403) (xy 156.562542 103.415) (xy 156.53375 103.415) (xy 156.375 103.57375) | |
|
734 | (xy 156.375 104.373) (xy 156.397 104.373) (xy 156.397 104.627) (xy 156.375 104.627) (xy 156.375 105.42625) | |
|
735 | (xy 156.53375 105.585) (xy 156.562542 105.585) (xy 156.685223 105.560597) (xy 156.800785 105.51273) (xy 156.904789 105.443237) | |
|
736 | (xy 156.993237 105.354789) (xy 157.001823 105.341938) (xy 157.022674 105.373434) (xy 157.159208 105.489442) (xy 157.322611 105.562919) | |
|
737 | (xy 157.5 105.588072) (xy 158 105.588072) (xy 158.103043 105.579697) (xy 158.274041 105.526227) (xy 158.423434 105.427326) | |
|
738 | (xy 158.539442 105.290792) (xy 158.553288 105.26) (xy 160.036365 105.26) (xy 160.649219 105.26) (xy 160.630928 105.389) | |
|
739 | (xy 160.630928 106.151) (xy 160.639303 106.254043) (xy 160.688156 106.410278) (xy 160.656081 106.481611) (xy 160.630928 106.659) | |
|
740 | (xy 160.630928 107.421) (xy 160.639303 107.524043) (xy 160.688156 107.680278) (xy 160.656081 107.751611) (xy 160.630928 107.929) | |
|
741 | (xy 160.630928 108.691) (xy 160.639303 108.794043) (xy 160.692773 108.965041) (xy 160.791674 109.114434) (xy 160.928208 109.230442) | |
|
742 | (xy 161.091611 109.303919) (xy 161.269 109.329072) (xy 163.170928 109.329072) (xy 163.170928 111.231) (xy 163.179303 111.334043) | |
|
743 | (xy 163.232773 111.505041) (xy 163.331674 111.654434) (xy 163.468208 111.770442) (xy 163.631611 111.843919) (xy 163.809 111.869072) | |
|
744 | (xy 164.571 111.869072) (xy 164.674043 111.860697) (xy 164.830278 111.811843) (xy 164.901611 111.843919) (xy 165.079 111.869072) | |
|
745 | (xy 165.841 111.869072) (xy 165.944043 111.860697) (xy 166.100278 111.811843) (xy 166.171611 111.843919) (xy 166.349 111.869072) | |
|
746 | (xy 167.111 111.869072) (xy 167.214043 111.860697) (xy 167.24 111.85258) (xy 167.24 114.447578) (xy 167.126566 114.522674) | |
|
747 | (xy 167.010558 114.659208) (xy 166.937081 114.822611) (xy 166.911928 115) (xy 166.911928 115.5) (xy 166.920303 115.603043) | |
|
748 | (xy 166.973773 115.774041) (xy 167.072674 115.923434) (xy 167.159505 115.997211) (xy 167.145211 116.006763) (xy 167.056763 116.095211) | |
|
749 | (xy 166.98727 116.199215) (xy 166.939403 116.314777) (xy 166.915 116.437458) (xy 166.915 116.46625) (xy 167.07375 116.625) | |
|
750 | (xy 167.873 116.625) (xy 167.873 116.603) (xy 168.127 116.603) (xy 168.127 116.625) (xy 168.92625 116.625) | |
|
751 | (xy 169.085 116.46625) (xy 169.085 116.437458) (xy 169.060597 116.314777) (xy 169.01273 116.199215) (xy 168.943237 116.095211) | |
|
752 | (xy 168.854789 116.006763) (xy 168.841938 115.998176) (xy 168.873434 115.977326) (xy 168.989442 115.840792) (xy 169.062919 115.677389) | |
|
753 | (xy 169.088072 115.5) (xy 169.088072 115) (xy 169.079697 114.896957) (xy 169.026227 114.725959) (xy 168.927326 114.576566) | |
|
754 | (xy 168.790792 114.460558) (xy 168.76 114.446711) (xy 168.76 111.85078) (xy 168.889 111.869072) (xy 169.651 111.869072) | |
|
755 | (xy 169.74 111.861838) (xy 169.74 114.447578) (xy 169.626566 114.522674) (xy 169.510558 114.659208) (xy 169.437081 114.822611) | |
|
756 | (xy 169.411928 115) (xy 169.411928 115.5) (xy 169.420303 115.603043) (xy 169.473773 115.774041) (xy 169.572674 115.923434) | |
|
757 | (xy 169.659505 115.997211) (xy 169.645211 116.006763) (xy 169.556763 116.095211) (xy 169.48727 116.199215) (xy 169.439403 116.314777) | |
|
758 | (xy 169.415 116.437458) (xy 169.415 116.46625) (xy 169.57375 116.625) (xy 170.373 116.625) (xy 170.373 116.603) | |
|
759 | (xy 170.627 116.603) (xy 170.627 116.625) (xy 171.42625 116.625) (xy 171.585 116.46625) (xy 171.585 116.437458) | |
|
760 | (xy 171.560597 116.314777) (xy 171.51273 116.199215) (xy 171.443237 116.095211) (xy 171.354789 116.006763) (xy 171.341938 115.998176) | |
|
761 | (xy 171.373434 115.977326) (xy 171.489442 115.840792) (xy 171.562919 115.677389) (xy 171.588072 115.5) (xy 171.588072 115) | |
|
762 | (xy 171.579697 114.896957) (xy 171.526227 114.725959) (xy 171.427326 114.576566) (xy 171.290792 114.460558) (xy 171.26 114.446711) | |
|
763 | (xy 171.26 111.845108) (xy 171.429 111.869072) (xy 172.191 111.869072) (xy 172.294043 111.860697) (xy 172.465041 111.807227) | |
|
764 | (xy 172.614434 111.708326) (xy 172.730442 111.571792) (xy 172.803919 111.408389) (xy 172.829072 111.231) (xy 172.829072 109.329072) | |
|
765 | (xy 174.731 109.329072) (xy 174.834043 109.320697) (xy 175.005041 109.267227) (xy 175.154434 109.168326) (xy 175.270442 109.031792) | |
|
766 | (xy 175.343919 108.868389) (xy 175.369072 108.691) (xy 175.369072 107.929) (xy 175.363957 107.866074) (xy 182.182469 110.272608) | |
|
767 | (xy 182.200617 110.281048) (xy 182.211858 110.289199) (xy 182.221337 110.299345) (xy 182.228705 110.311115) (xy 182.233692 110.324073) | |
|
768 | (xy 182.236113 110.337746) (xy 182.23588 110.351628) (xy 182.233002 110.36521) (xy 182.227583 110.377996) (xy 182.216399 110.394595) | |
|
769 | (xy 181.085029 111.768399) (xy 181.052943 111.816173) (xy 181.028317 111.874998) (xy 181.015554 111.93748) (xy 181.015138 112.001253) | |
|
770 | (xy 181.027085 112.063898) (xy 181.050943 112.12304) (xy 181.085807 112.17644) (xy 181.130357 112.222074) (xy 181.177773 112.254683) | |
|
771 | (xy 193.078176 118.832796) (xy 193.094089 118.843619) (xy 193.103567 118.85303) (xy 193.111157 118.864021) (xy 193.1166 118.876216) | |
|
772 | (xy 193.119712 118.889205) (xy 193.120387 118.902543) | |
|
773 | ) | |
|
774 | ) | |
|
775 | ) | |
|
776 | ) |
@@ -2,8 +2,8 | |||
|
2 | 2 | //%require "3.0" |
|
3 | 3 | //%debug |
|
4 | 4 | %defines |
|
5 |
%define namespace |
|
|
6 |
%define parser_class_name |
|
|
5 | %define api.namespace {QIlib} | |
|
6 | %define parser_class_name {lispLike_Parser} | |
|
7 | 7 | |
|
8 | 8 | %code requires{ |
|
9 | 9 | #include <QString> |
@@ -20,7 +20,12 | |||
|
20 | 20 | -- Mail : alexis.jeandet@member.fsf.org |
|
21 | 21 | ----------------------------------------------------------------------------*/ |
|
22 | 22 | const char* add_net_c = "(add_net"; |
|
23 | const char* angle_c = "(angle"; | |
|
23 | 24 | const char* area_c = "(area"; |
|
25 | const char* arrow1a_c = "(arrow1a"; | |
|
26 | const char* arrow1b_c = "(arrow1b"; | |
|
27 | const char* arrow2a_c = "(arrow2a"; | |
|
28 | const char* arrow2b_c = "(arrow2b"; | |
|
24 | 29 | const char* at_c = "(at"; |
|
25 | 30 | const char* attr_c = "(attr"; |
|
26 | 31 | const char* center_c = "(center"; |
@@ -28,15 +33,20 const char* clearance_c = "(clearan | |||
|
28 | 33 | const char* code_c = "(code"; |
|
29 | 34 | const char* component_c = "(component"; |
|
30 | 35 | const char* components_c = "(components"; |
|
36 | const char* crossbar_c = "(crossbar"; | |
|
31 | 37 | const char* date_c = "(date"; |
|
32 | 38 | const char* design_c = "(design"; |
|
39 | const char* dimension_c = "(dimension"; | |
|
33 | 40 | const char* drawings_c = "(drawings"; |
|
41 | const char* drill_c = "(drill"; | |
|
34 | 42 | const char* drillshape_c = "(drillshape"; |
|
35 | 43 | const char* edge_width_c = "(edge_width"; |
|
36 | 44 | const char* effects_c = "(effects"; |
|
37 | 45 | const char* end_c = "(end"; |
|
38 | 46 | const char* excludeedgelayer_c = "(excludeedgelayer"; |
|
39 | 47 | const char* export_c = "(export"; |
|
48 | const char* feature1_c = "(feature1"; | |
|
49 | const char* feature2_c = "(feature2"; | |
|
40 | 50 | const char* field_c = "(field"; |
|
41 | 51 | const char* fields_c = "(fields"; |
|
42 | 52 | const char* font_c = "(font"; |
@@ -44,6 +54,10 const char* fp_circle_c = "(fp_circ | |||
|
44 | 54 | const char* fp_line_c = "(fp_line"; |
|
45 | 55 | const char* fp_text_c = "(fp_text"; |
|
46 | 56 | const char* general_c = "(general"; |
|
57 | const char* gr_arc_c = "(gr_arc"; | |
|
58 | const char* gr_circle_c = "(gr_circle"; | |
|
59 | const char* gr_line_c = "(gr_line"; | |
|
60 | const char* gr_text_c = "(gr_text"; | |
|
47 | 61 | const char* host_c = "(host"; |
|
48 | 62 | const char* hpglpendiameter_c = "(hpglpendiameter"; |
|
49 | 63 | const char* hpglpennumber_c = "(hpglpennumber"; |
@@ -52,6 +66,7 const char* hpglpenspeed_c = "(hpgl | |||
|
52 | 66 | const char* kicad_pcb_c = "(kicad_pcb"; |
|
53 | 67 | const char* last_trace_width_c = "(last_trace_width"; |
|
54 | 68 | const char* layers_c = "(layers"; |
|
69 | const char* layer_c = "(layer"; | |
|
55 | 70 | const char* layerselection_c = "(layerselection"; |
|
56 | 71 | const char* lib_c = "(lib"; |
|
57 | 72 | const char* libpart_c = "(libpart"; |
@@ -103,9 +118,11 const char* ref_c = "(ref"; | |||
|
103 | 118 | const char* rotate = "(rota"; |
|
104 | 119 | const char* scale_c = "(scale"; |
|
105 | 120 | const char* scaleselection_c = "(scaleselection"; |
|
121 | const char* segment_c = "(segment"; | |
|
106 | 122 | const char* segment_width_c = "(segment_width"; |
|
107 | 123 | const char* setup_c = "(setup"; |
|
108 | 124 | const char* sheetpath_c = "(sheetpath"; |
|
125 | const char* size_c = "(size"; | |
|
109 | 126 | const char* source_c = "(source"; |
|
110 | 127 | const char* start_c = "(start"; |
|
111 | 128 | const char* subtractmaskfromsilk_c = "(subtractmaskfromsilk"; |
@@ -131,6 +148,7 const char* uvia_size_c = "(uvia_si | |||
|
131 | 148 | const char* uvias_allowed_c = "(uvias_allowed"; |
|
132 | 149 | const char* value_c = "(value"; |
|
133 | 150 | const char* version_c = "(version"; |
|
151 | const char* via_c = "(via"; | |
|
134 | 152 | const char* via_dia_c = "(via_dia"; |
|
135 | 153 | const char* via_drill_c = "(via_drill"; |
|
136 | 154 | const char* via_min_drill_c = "(via_min_drill"; |
@@ -142,6 +160,7 const char* width_c = "(width"; | |||
|
142 | 160 | const char* xyz = "(x"; |
|
143 | 161 | const char* zone_45_only_c = "(zone_45_only"; |
|
144 | 162 | const char* zone_clearance_c = "(zone_clearance"; |
|
163 | const char* zone_c = "(zone"; | |
|
145 | 164 | const char* zones_c = "(zones"; |
|
146 | 165 | |
|
147 | 166 |
@@ -30,7 +30,12 namespace QIlib{ | |||
|
30 | 30 | namespace Lexique |
|
31 | 31 | { |
|
32 | 32 | extern "C" const char* add_net_c; |
|
33 | extern "C" const char* angle_c; | |
|
33 | 34 | extern "C" const char* area_c; |
|
35 | extern "C" const char* arrow1a_c; | |
|
36 | extern "C" const char* arrow1b_c; | |
|
37 | extern "C" const char* arrow2a_c; | |
|
38 | extern "C" const char* arrow2b_c; | |
|
34 | 39 | extern "C" const char* at_c; |
|
35 | 40 | extern "C" const char* attr_c; |
|
36 | 41 | extern "C" const char* center_c; |
@@ -38,15 +43,20 extern "C" const char* clearance_c; | |||
|
38 | 43 | extern "C" const char* code_c; |
|
39 | 44 | extern "C" const char* component_c; |
|
40 | 45 | extern "C" const char* components_c; |
|
46 | extern "C" const char* crossbar_c; | |
|
41 | 47 | extern "C" const char* date_c; |
|
42 | 48 | extern "C" const char* design_c; |
|
49 | extern "C" const char* dimension_c; | |
|
43 | 50 | extern "C" const char* drawings_c; |
|
51 | extern "C" const char* drill_c; | |
|
44 | 52 | extern "C" const char* drillshape_c; |
|
45 | 53 | extern "C" const char* edge_width_c; |
|
46 | 54 | extern "C" const char* effects_c; |
|
47 | 55 | extern "C" const char* end_c; |
|
48 | 56 | extern "C" const char* excludeedgelayer_c; |
|
49 | 57 | extern "C" const char* export_c; |
|
58 | extern "C" const char* feature1_c; | |
|
59 | extern "C" const char* feature2_c; | |
|
50 | 60 | extern "C" const char* field_c; |
|
51 | 61 | extern "C" const char* fields_c; |
|
52 | 62 | extern "C" const char* font_c; |
@@ -54,6 +64,10 extern "C" const char* fp_circle_c; | |||
|
54 | 64 | extern "C" const char* fp_line_c; |
|
55 | 65 | extern "C" const char* fp_text_c; |
|
56 | 66 | extern "C" const char* general_c; |
|
67 | extern "C" const char* gr_arc_c; | |
|
68 | extern "C" const char* gr_circle_c; | |
|
69 | extern "C" const char* gr_line_c; | |
|
70 | extern "C" const char* gr_text_c; | |
|
57 | 71 | extern "C" const char* host_c; |
|
58 | 72 | extern "C" const char* hpglpendiameter_c; |
|
59 | 73 | extern "C" const char* hpglpennumber_c; |
@@ -62,6 +76,7 extern "C" const char* hpglpenspeed_c; | |||
|
62 | 76 | extern "C" const char* kicad_pcb_c; |
|
63 | 77 | extern "C" const char* last_trace_width_c; |
|
64 | 78 | extern "C" const char* layers_c; |
|
79 | extern "C" const char* layer_c; | |
|
65 | 80 | extern "C" const char* layerselection_c; |
|
66 | 81 | extern "C" const char* lib_c; |
|
67 | 82 | extern "C" const char* libpart_c; |
@@ -113,9 +128,11 extern "C" const char* ref_c; | |||
|
113 | 128 | extern "C" const char* rotate; |
|
114 | 129 | extern "C" const char* scale_c; |
|
115 | 130 | extern "C" const char* scaleselection_c; |
|
131 | extern "C" const char* segment_c; | |
|
116 | 132 | extern "C" const char* segment_width_c; |
|
117 | 133 | extern "C" const char* setup_c; |
|
118 | 134 | extern "C" const char* sheetpath_c; |
|
135 | extern "C" const char* size_c; | |
|
119 | 136 | extern "C" const char* source_c; |
|
120 | 137 | extern "C" const char* start_c; |
|
121 | 138 | extern "C" const char* subtractmaskfromsilk_c; |
@@ -141,6 +158,7 extern "C" const char* uvia_size_c; | |||
|
141 | 158 | extern "C" const char* uvias_allowed_c; |
|
142 | 159 | extern "C" const char* value_c; |
|
143 | 160 | extern "C" const char* version_c; |
|
161 | extern "C" const char* via_c; | |
|
144 | 162 | extern "C" const char* via_dia_c; |
|
145 | 163 | extern "C" const char* via_drill_c; |
|
146 | 164 | extern "C" const char* via_min_drill_c; |
@@ -152,6 +170,7 extern "C" const char* width_c; | |||
|
152 | 170 | extern "C" const char* xyz; |
|
153 | 171 | extern "C" const char* zone_45_only_c; |
|
154 | 172 | extern "C" const char* zone_clearance_c; |
|
173 | extern "C" const char* zone_c; | |
|
155 | 174 | extern "C" const char* zones_c; |
|
156 | 175 | } |
|
157 | 176 | } |
This diff has been collapsed as it changes many lines, (908 lines changed) Show them Hide them | |||
@@ -48,10 +48,19 QIlib::QIcadPcbRoot::QIcadPcbRoot(QIlib: | |||
|
48 | 48 | |
|
49 | 49 | void QIlib::QIcadPcbRoot::setNode(QIlib::AbstractNode *node) |
|
50 | 50 | { |
|
51 | this->p_node = node; | |
|
52 | 51 | this->clrNets(); |
|
52 | this->clrModules(); | |
|
53 | this->clrDimensions(); | |
|
54 | this->clrLines(); | |
|
55 | this->clrSegments(); | |
|
56 | this->clrVias(); | |
|
57 | this->clrArcs(); | |
|
58 | this->clrCircles(); | |
|
59 | this->clrTexts(); | |
|
60 | this->clrZones(); | |
|
53 | 61 | if(node->name==QIlib::Lexique::kicad_pcb_c) |
|
54 | 62 | { |
|
63 | this->p_node = node; | |
|
55 | 64 | for(int i=0;i<node->nodes.count();i++) |
|
56 | 65 | { |
|
57 | 66 | if(node->nodes.at(i)->name==QIlib::Lexique::version_c) |
@@ -82,6 +91,42 void QIlib::QIcadPcbRoot::setNode(QIlib: | |||
|
82 | 91 | { |
|
83 | 92 | this->apendNet(node->nodes.at(i)); |
|
84 | 93 | } |
|
94 | if(node->nodes.at(i)->name==QIlib::Lexique::module_c) | |
|
95 | { | |
|
96 | this->apendModule(node->nodes.at(i)); | |
|
97 | } | |
|
98 | if(node->nodes.at(i)->name==QIlib::Lexique::gr_line_c) | |
|
99 | { | |
|
100 | this->apendLine(node->nodes.at(i)); | |
|
101 | } | |
|
102 | if(node->nodes.at(i)->name==QIlib::Lexique::dimension_c) | |
|
103 | { | |
|
104 | this->apendDimension(node->nodes.at(i)); | |
|
105 | } | |
|
106 | if(node->nodes.at(i)->name==QIlib::Lexique::via_c) | |
|
107 | { | |
|
108 | this->apendVia(node->nodes.at(i)); | |
|
109 | } | |
|
110 | if(node->nodes.at(i)->name==QIlib::Lexique::segment_c) | |
|
111 | { | |
|
112 | this->apendSegment(node->nodes.at(i)); | |
|
113 | } | |
|
114 | if(node->nodes.at(i)->name==QIlib::Lexique::gr_text_c) | |
|
115 | { | |
|
116 | this->apendText(node->nodes.at(i)); | |
|
117 | } | |
|
118 | if(node->nodes.at(i)->name==QIlib::Lexique::gr_arc_c) | |
|
119 | { | |
|
120 | this->apendArc(node->nodes.at(i)); | |
|
121 | } | |
|
122 | if(node->nodes.at(i)->name==QIlib::Lexique::gr_circle_c) | |
|
123 | { | |
|
124 | this->apendCircle(node->nodes.at(i)); | |
|
125 | } | |
|
126 | if(node->nodes.at(i)->name==QIlib::Lexique::zone_c) | |
|
127 | { | |
|
128 | this->apendZone(node->nodes.at(i)); | |
|
129 | } | |
|
85 | 130 | } |
|
86 | 131 | } |
|
87 | 132 | } |
@@ -105,6 +150,176 void QIlib::QIcadPcbRoot::apendNet(QIlib | |||
|
105 | 150 | } |
|
106 | 151 | } |
|
107 | 152 | |
|
153 | void QIlib::QIcadPcbRoot::clrModules() | |
|
154 | { | |
|
155 | while(modules.count()) | |
|
156 | { | |
|
157 | QIcadPcbModule* module; | |
|
158 | module = modules.last(); | |
|
159 | modules.removeLast(); | |
|
160 | delete module; | |
|
161 | } | |
|
162 | } | |
|
163 | ||
|
164 | void QIlib::QIcadPcbRoot::apendModule(QIlib::AbstractNode *node) | |
|
165 | { | |
|
166 | if(node->name==QIlib::Lexique::module_c) | |
|
167 | { | |
|
168 | this->modules.append(new QIcadPcbModule(node)); | |
|
169 | } | |
|
170 | } | |
|
171 | ||
|
172 | void QIlib::QIcadPcbRoot::clrDimensions() | |
|
173 | { | |
|
174 | while(dimensions.count()) | |
|
175 | { | |
|
176 | QIcadPcbDimension* dimension; | |
|
177 | dimension = dimensions.last(); | |
|
178 | dimensions.removeLast(); | |
|
179 | delete dimension; | |
|
180 | } | |
|
181 | } | |
|
182 | ||
|
183 | void QIlib::QIcadPcbRoot::apendDimension(QIlib::AbstractNode *node) | |
|
184 | { | |
|
185 | if(node->name==QIlib::Lexique::dimension_c) | |
|
186 | { | |
|
187 | this->dimensions.append(new QIcadPcbDimension(node)); | |
|
188 | } | |
|
189 | } | |
|
190 | ||
|
191 | void QIlib::QIcadPcbRoot::apendLine(QIlib::AbstractNode *node) | |
|
192 | { | |
|
193 | if(node->name==QIlib::Lexique::gr_line_c) | |
|
194 | { | |
|
195 | this->lines.append(new QIcadPcbLine(node)); | |
|
196 | } | |
|
197 | } | |
|
198 | ||
|
199 | void QIlib::QIcadPcbRoot::clrLines() | |
|
200 | { | |
|
201 | while(lines.count()) | |
|
202 | { | |
|
203 | QIcadPcbLine* line; | |
|
204 | line = lines.last(); | |
|
205 | lines.removeLast(); | |
|
206 | delete line; | |
|
207 | } | |
|
208 | } | |
|
209 | ||
|
210 | void QIlib::QIcadPcbRoot::clrSegments() | |
|
211 | { | |
|
212 | while(segments.count()) | |
|
213 | { | |
|
214 | QIcadPcbSegment* segment; | |
|
215 | segment = segments.last(); | |
|
216 | segments.removeLast(); | |
|
217 | delete segment; | |
|
218 | } | |
|
219 | } | |
|
220 | ||
|
221 | void QIlib::QIcadPcbRoot::apendSegment(QIlib::AbstractNode *node) | |
|
222 | { | |
|
223 | if(node->name==QIlib::Lexique::segment_c) | |
|
224 | { | |
|
225 | this->segments.append(new QIcadPcbSegment(node)); | |
|
226 | } | |
|
227 | } | |
|
228 | ||
|
229 | void QIlib::QIcadPcbRoot::clrVias() | |
|
230 | { | |
|
231 | while(vias.count()) | |
|
232 | { | |
|
233 | QIcadPcbVia* via; | |
|
234 | via = vias.last(); | |
|
235 | vias.removeLast(); | |
|
236 | delete via; | |
|
237 | } | |
|
238 | } | |
|
239 | ||
|
240 | void QIlib::QIcadPcbRoot::apendVia(QIlib::AbstractNode *node) | |
|
241 | { | |
|
242 | if(node->name==QIlib::Lexique::via_c) | |
|
243 | { | |
|
244 | this->vias.append(new QIcadPcbVia(node)); | |
|
245 | } | |
|
246 | } | |
|
247 | ||
|
248 | void QIlib::QIcadPcbRoot::clrArcs() | |
|
249 | { | |
|
250 | while(arcs.count()) | |
|
251 | { | |
|
252 | QIcadPcbArc* arc; | |
|
253 | arc = arcs.last(); | |
|
254 | arcs.removeLast(); | |
|
255 | delete arc; | |
|
256 | } | |
|
257 | } | |
|
258 | ||
|
259 | void QIlib::QIcadPcbRoot::apendArc(QIlib::AbstractNode *node) | |
|
260 | { | |
|
261 | if(node->name==QIlib::Lexique::gr_arc_c) | |
|
262 | { | |
|
263 | this->arcs.append(new QIcadPcbArc(node)); | |
|
264 | } | |
|
265 | } | |
|
266 | ||
|
267 | void QIlib::QIcadPcbRoot::clrCircles() | |
|
268 | { | |
|
269 | while(circles.count()) | |
|
270 | { | |
|
271 | QIcadPcbCircle* circle; | |
|
272 | circle = circles.last(); | |
|
273 | circles.removeLast(); | |
|
274 | delete circle; | |
|
275 | } | |
|
276 | } | |
|
277 | ||
|
278 | void QIlib::QIcadPcbRoot::apendCircle(QIlib::AbstractNode *node) | |
|
279 | { | |
|
280 | if(node->name==QIlib::Lexique::gr_circle_c) | |
|
281 | { | |
|
282 | this->circles.append(new QIcadPcbCircle(node)); | |
|
283 | } | |
|
284 | } | |
|
285 | ||
|
286 | void QIlib::QIcadPcbRoot::clrTexts() | |
|
287 | { | |
|
288 | while(texts.count()) | |
|
289 | { | |
|
290 | QIcadPcbText* text; | |
|
291 | text = texts.last(); | |
|
292 | texts.removeLast(); | |
|
293 | delete text; | |
|
294 | } | |
|
295 | } | |
|
296 | ||
|
297 | void QIlib::QIcadPcbRoot::apendText(QIlib::AbstractNode *node) | |
|
298 | { | |
|
299 | if(node->name==QIlib::Lexique::gr_text_c) | |
|
300 | { | |
|
301 | this->texts.append(new QIcadPcbText(node)); | |
|
302 | } | |
|
303 | } | |
|
304 | ||
|
305 | void QIlib::QIcadPcbRoot::clrZones() | |
|
306 | { | |
|
307 | while(zones.count()) | |
|
308 | { | |
|
309 | QIcadPcbZone* zone; | |
|
310 | zone = zones.last(); | |
|
311 | zones.removeLast(); | |
|
312 | delete zone; | |
|
313 | } | |
|
314 | } | |
|
315 | ||
|
316 | void QIlib::QIcadPcbRoot::apendZone(QIlib::AbstractNode *node) | |
|
317 | { | |
|
318 | if(node->name==QIlib::Lexique::zone_c) | |
|
319 | { | |
|
320 | this->zones.append(new QIcadPcbZone(node)); | |
|
321 | } | |
|
322 | } | |
|
108 | 323 | |
|
109 | 324 | QIlib::QIcadPcbGeneralInfo::QIcadPcbGeneralInfo(QIlib::AbstractNode *node) |
|
110 | 325 | :QIcadAbstractNodeWrapper(node) |
@@ -114,7 +329,49 QIlib::QIcadPcbGeneralInfo::QIcadPcbGene | |||
|
114 | 329 | |
|
115 | 330 | void QIlib::QIcadPcbGeneralInfo::setNode(QIlib::AbstractNode *node) |
|
116 | 331 | { |
|
332 | if(node->name==QIlib::Lexique::general_c) | |
|
333 | { | |
|
117 | 334 | this->p_node = node; |
|
335 | for(int i=0;i<node->nodes.count();i++) | |
|
336 | { | |
|
337 | if(node->nodes.at(i)->name==QIlib::Lexique::links_c) | |
|
338 | { | |
|
339 | this->links.setNode(node->nodes.at(i)); | |
|
340 | } | |
|
341 | if(node->nodes.at(i)->name==QIlib::Lexique::no_connect_c) | |
|
342 | { | |
|
343 | this->no_connections.setNode(node->nodes.at(i)); | |
|
344 | } | |
|
345 | if(node->nodes.at(i)->name==QIlib::Lexique::area_c) | |
|
346 | { | |
|
347 | this->area.setNode(node->nodes.at(i)); | |
|
348 | } | |
|
349 | if(node->nodes.at(i)->name==QIlib::Lexique::thickness_c) | |
|
350 | { | |
|
351 | this->thickness.setNode(node->nodes.at(i)); | |
|
352 | } | |
|
353 | if(node->nodes.at(i)->name==QIlib::Lexique::drawings_c) | |
|
354 | { | |
|
355 | this->drawings.setNode(node->nodes.at(i)); | |
|
356 | } | |
|
357 | if(node->nodes.at(i)->name==QIlib::Lexique::tracks_c) | |
|
358 | { | |
|
359 | this->tracks.setNode(node->nodes.at(i)); | |
|
360 | } | |
|
361 | if(node->nodes.at(i)->name==QIlib::Lexique::zones_c) | |
|
362 | { | |
|
363 | this->zones.setNode(node->nodes.at(i)); | |
|
364 | } | |
|
365 | if(node->nodes.at(i)->name==QIlib::Lexique::modules_c) | |
|
366 | { | |
|
367 | this->modules.setNode(node->nodes.at(i)); | |
|
368 | } | |
|
369 | if(node->nodes.at(i)->name==QIlib::Lexique::nets_c) | |
|
370 | { | |
|
371 | this->nets.setNode(node->nodes.at(i)); | |
|
372 | } | |
|
373 | } | |
|
374 | } | |
|
118 | 375 | } |
|
119 | 376 | |
|
120 | 377 | |
@@ -127,18 +384,73 QIlib::QIcadPcbLayers::QIcadPcbLayers(QI | |||
|
127 | 384 | void QIlib::QIcadPcbLayers::setNode(QIlib::AbstractNode *node) |
|
128 | 385 | { |
|
129 | 386 | this->p_node = node; |
|
387 | if(node->name==QIlib::Lexique::layers_c) | |
|
388 | { | |
|
389 | this->clrLayers(); | |
|
390 | for(int i=0;i<node->nodes.count();i++) | |
|
391 | { | |
|
392 | this->apendLayer(node->nodes.at(i)); | |
|
393 | } | |
|
394 | } | |
|
395 | } | |
|
396 | ||
|
397 | void QIlib::QIcadPcbLayers::clrLayers() | |
|
398 | { | |
|
399 | while(layers.count()) | |
|
400 | { | |
|
401 | QIcadPcbLayer* layer; | |
|
402 | layer = layers.last(); | |
|
403 | layers.removeLast(); | |
|
404 | delete layer; | |
|
405 | } | |
|
406 | } | |
|
407 | ||
|
408 | void QIlib::QIcadPcbLayers::apendLayer(QIlib::AbstractNode *node) | |
|
409 | { | |
|
410 | this->layers.append(new QIcadPcbLayer(node)); | |
|
130 | 411 | } |
|
131 | 412 | |
|
132 | 413 | |
|
133 | 414 | QIlib::QIcadPcbLine::QIcadPcbLine(QIlib::AbstractNode *node) |
|
134 |
:QIcadAbstract |
|
|
415 | :QIcadAbstractPcbLine(node) | |
|
135 | 416 | { |
|
136 | 417 | this->setNode(node); |
|
137 | 418 | } |
|
138 | 419 | |
|
420 | ||
|
139 | 421 | void QIlib::QIcadPcbLine::setNode(QIlib::AbstractNode *node) |
|
140 | 422 | { |
|
423 | if(node->name==QIlib::Lexique::gr_line_c) | |
|
424 | { | |
|
141 | 425 | this->p_node = node; |
|
426 | for(int i=0;i<node->nodes.count();i++) | |
|
427 | { | |
|
428 | if(node->nodes.at(i)->name==QIlib::Lexique::start_c) | |
|
429 | { | |
|
430 | this->p_startpos = nodeTo2DCoords(node->nodes.at(i)); | |
|
431 | this->start.setNode(node->nodes.at(i)); | |
|
432 | } | |
|
433 | if(node->nodes.at(i)->name==QIlib::Lexique::end_c) | |
|
434 | { | |
|
435 | this->p_stoppos = nodeTo2DCoords(node->nodes.at(i)); | |
|
436 | this->end.setNode(node->nodes.at(i)); | |
|
437 | } | |
|
438 | if(node->nodes.at(i)->name==QIlib::Lexique::angle_c) | |
|
439 | { | |
|
440 | this->angle.setNode(node->nodes.at(i)); | |
|
441 | } | |
|
442 | if(node->nodes.at(i)->name==QIlib::Lexique::layer_c) | |
|
443 | { | |
|
444 | this->p_layers = node->nodes.at(i)->Values; | |
|
445 | this->layer.setNode(node->nodes.at(i)); | |
|
446 | } | |
|
447 | if(node->nodes.at(i)->name==QIlib::Lexique::width_c) | |
|
448 | { | |
|
449 | this->p_width = nodeValueToDouble(node->nodes.at(i)); | |
|
450 | this->width.setNode(node->nodes.at(i)); | |
|
451 | } | |
|
452 | } | |
|
453 | } | |
|
142 | 454 | } |
|
143 | 455 | |
|
144 | 456 | |
@@ -148,9 +460,152 QIlib::QIcadPcbModule::QIcadPcbModule(QI | |||
|
148 | 460 | this->setNode(node); |
|
149 | 461 | } |
|
150 | 462 | |
|
463 | const QPointF &QIlib::QIcadPcbModule::pos() | |
|
464 | { | |
|
465 | return p_pos; | |
|
466 | } | |
|
467 | ||
|
468 | double QIlib::QIcadPcbModule::angle() | |
|
469 | { | |
|
470 | return p_angle; | |
|
471 | } | |
|
472 | ||
|
151 | 473 | void QIlib::QIcadPcbModule::setNode(QIlib::AbstractNode *node) |
|
152 | 474 | { |
|
475 | this->clrPads(); | |
|
476 | if(node->name==QIlib::Lexique::module_c) | |
|
477 | { | |
|
153 | 478 | this->p_node = node; |
|
479 | for(int i=0;i<node->nodes.count();i++) | |
|
480 | { | |
|
481 | if(node->nodes.at(i)->name==QIlib::Lexique::layer_c) | |
|
482 | { | |
|
483 | this->layer.setNode(node->nodes.at(i)); | |
|
484 | } | |
|
485 | if(node->nodes.at(i)->name==QIlib::Lexique::tedit_c) | |
|
486 | { | |
|
487 | this->tedit.setNode(node->nodes.at(i)); | |
|
488 | } | |
|
489 | if(node->nodes.at(i)->name==QIlib::Lexique::tstamp_c) | |
|
490 | { | |
|
491 | this->tstamp.setNode(node->nodes.at(i)); | |
|
492 | } | |
|
493 | if(node->nodes.at(i)->name==QIlib::Lexique::at_c) | |
|
494 | { | |
|
495 | this->at.setNode(node->nodes.at(i)); | |
|
496 | QStringList coords=node->nodes.at(i)->Values; | |
|
497 | p_pos = nodeTo2DCoords(node->nodes.at(i)); | |
|
498 | if(coords.count()==3) | |
|
499 | { | |
|
500 | p_angle = coords.at(2).toDouble(); | |
|
501 | } | |
|
502 | } | |
|
503 | if(node->nodes.at(i)->name==QIlib::Lexique::tags_c) | |
|
504 | { | |
|
505 | this->tags.setNode(node->nodes.at(i)); | |
|
506 | } | |
|
507 | if(node->nodes.at(i)->name==QIlib::Lexique::path_c) | |
|
508 | { | |
|
509 | this->path.setNode(node->nodes.at(i)); | |
|
510 | } | |
|
511 | if(node->nodes.at(i)->name==QIlib::Lexique::attr_c) | |
|
512 | { | |
|
513 | this->attr.setNode(node->nodes.at(i)); | |
|
514 | } | |
|
515 | if(node->nodes.at(i)->name==QIlib::Lexique::pad_c) | |
|
516 | { | |
|
517 | this->apendPad(node->nodes.at(i)); | |
|
518 | } | |
|
519 | if(node->nodes.at(i)->name==QIlib::Lexique::fp_line_c) | |
|
520 | { | |
|
521 | this->apendLine(node->nodes.at(i)); | |
|
522 | } | |
|
523 | if(node->nodes.at(i)->name==QIlib::Lexique::fp_text_c) | |
|
524 | { | |
|
525 | this->apendText(node->nodes.at(i)); | |
|
526 | } | |
|
527 | if(node->nodes.at(i)->name==QIlib::Lexique::fp_circle_c) | |
|
528 | { | |
|
529 | this->apendCircle(node->nodes.at(i)); | |
|
530 | } | |
|
531 | } | |
|
532 | } | |
|
533 | } | |
|
534 | ||
|
535 | void QIlib::QIcadPcbModule::clrPads() | |
|
536 | { | |
|
537 | while(pads.count()) | |
|
538 | { | |
|
539 | QIcadPcbPad* pad; | |
|
540 | pad = pads.last(); | |
|
541 | pads.removeLast(); | |
|
542 | delete pad; | |
|
543 | } | |
|
544 | } | |
|
545 | ||
|
546 | void QIlib::QIcadPcbModule::apendPad(QIlib::AbstractNode *node) | |
|
547 | { | |
|
548 | if(node->name==QIlib::Lexique::pad_c) | |
|
549 | { | |
|
550 | this->pads.append(new QIcadPcbPad(node)); | |
|
551 | } | |
|
552 | } | |
|
553 | ||
|
554 | void QIlib::QIcadPcbModule::clrTexts() | |
|
555 | { | |
|
556 | while(fp_texts.count()) | |
|
557 | { | |
|
558 | QIcadPcbFPText* text; | |
|
559 | text = fp_texts.last(); | |
|
560 | fp_texts.removeLast(); | |
|
561 | delete text; | |
|
562 | } | |
|
563 | } | |
|
564 | ||
|
565 | void QIlib::QIcadPcbModule::apendText(QIlib::AbstractNode *node) | |
|
566 | { | |
|
567 | if(node->name==QIlib::Lexique::fp_text_c) | |
|
568 | { | |
|
569 | this->fp_texts.append(new QIcadPcbFPText(node)); | |
|
570 | } | |
|
571 | } | |
|
572 | ||
|
573 | void QIlib::QIcadPcbModule::clrLines() | |
|
574 | { | |
|
575 | while(fp_lines.count()) | |
|
576 | { | |
|
577 | QIcadPcbFPLine* line; | |
|
578 | line = fp_lines.last(); | |
|
579 | fp_lines.removeLast(); | |
|
580 | delete line; | |
|
581 | } | |
|
582 | } | |
|
583 | ||
|
584 | void QIlib::QIcadPcbModule::apendLine(QIlib::AbstractNode *node) | |
|
585 | { | |
|
586 | if(node->name==QIlib::Lexique::fp_line_c) | |
|
587 | { | |
|
588 | this->fp_lines.append(new QIcadPcbFPLine(node)); | |
|
589 | } | |
|
590 | } | |
|
591 | ||
|
592 | void QIlib::QIcadPcbModule::clrCircles() | |
|
593 | { | |
|
594 | while(fp_circles.count()) | |
|
595 | { | |
|
596 | QIcadPcbFPCircle* circle; | |
|
597 | circle = fp_circles.last(); | |
|
598 | fp_circles.removeLast(); | |
|
599 | delete circle; | |
|
600 | } | |
|
601 | } | |
|
602 | ||
|
603 | void QIlib::QIcadPcbModule::apendCircle(QIlib::AbstractNode *node) | |
|
604 | { | |
|
605 | if(node->name==QIlib::Lexique::fp_circle_c) | |
|
606 | { | |
|
607 | this->fp_circles.append(new QIcadPcbFPCircle(node)); | |
|
608 | } | |
|
154 | 609 | } |
|
155 | 610 | |
|
156 | 611 | |
@@ -162,7 +617,49 QIlib::QIcadPcbDimension::QIcadPcbDimens | |||
|
162 | 617 | |
|
163 | 618 | void QIlib::QIcadPcbDimension::setNode(QIlib::AbstractNode *node) |
|
164 | 619 | { |
|
620 | if(node->name==QIlib::Lexique::dimension_c) | |
|
621 | { | |
|
165 | 622 | this->p_node = node; |
|
623 | for(int i=0;i<node->nodes.count();i++) | |
|
624 | { | |
|
625 | if(node->nodes.at(i)->name==QIlib::Lexique::width_c) | |
|
626 | { | |
|
627 | this->width.setNode(node->nodes.at(i)); | |
|
628 | } | |
|
629 | if(node->nodes.at(i)->name==QIlib::Lexique::layer_c) | |
|
630 | { | |
|
631 | this->layer.setNode(node->nodes.at(i)); | |
|
632 | } | |
|
633 | if(node->nodes.at(i)->name==QIlib::Lexique::gr_text_c) | |
|
634 | { | |
|
635 | this->gr_text.setNode(node->nodes.at(i)); | |
|
636 | } | |
|
637 | if(node->nodes.at(i)->name==QIlib::Lexique::feature1_c) | |
|
638 | { | |
|
639 | this->feature1.setNode(node->nodes.at(i)); | |
|
640 | } | |
|
641 | if(node->nodes.at(i)->name==QIlib::Lexique::crossbar_c) | |
|
642 | { | |
|
643 | this->crossbar.setNode(node->nodes.at(i)); | |
|
644 | } | |
|
645 | if(node->nodes.at(i)->name==QIlib::Lexique::arrow1a_c) | |
|
646 | { | |
|
647 | this->arrow1a.setNode(node->nodes.at(i)); | |
|
648 | } | |
|
649 | if(node->nodes.at(i)->name==QIlib::Lexique::arrow1b_c) | |
|
650 | { | |
|
651 | this->arrow1b.setNode(node->nodes.at(i)); | |
|
652 | } | |
|
653 | if(node->nodes.at(i)->name==QIlib::Lexique::arrow2a_c) | |
|
654 | { | |
|
655 | this->arrow2a.setNode(node->nodes.at(i)); | |
|
656 | } | |
|
657 | if(node->nodes.at(i)->name==QIlib::Lexique::arrow2b_c) | |
|
658 | { | |
|
659 | this->arrow2b.setNode(node->nodes.at(i)); | |
|
660 | } | |
|
661 | } | |
|
662 | } | |
|
166 | 663 | } |
|
167 | 664 | |
|
168 | 665 | |
@@ -178,15 +675,33 void QIlib::QIcadPcbModuleModel::setNode | |||
|
178 | 675 | } |
|
179 | 676 | |
|
180 | 677 | |
|
181 |
QIlib::QIcadPcbF |
|
|
678 | QIlib::QIcadPcbFPText::QIcadPcbFPText(QIlib::AbstractNode *node) | |
|
182 | 679 | :QIcadAbstractNodeWrapper(node) |
|
183 | 680 | { |
|
184 | 681 | this->setNode(node); |
|
185 | 682 | } |
|
186 | 683 | |
|
187 |
void QIlib::QIcadPcbF |
|
|
684 | void QIlib::QIcadPcbFPText::setNode(QIlib::AbstractNode *node) | |
|
685 | { | |
|
686 | if(node->name==QIlib::Lexique::pad_c) | |
|
188 | 687 | { |
|
189 | 688 | this->p_node = node; |
|
689 | for(int i=0;i<node->nodes.count();i++) | |
|
690 | { | |
|
691 | if(node->nodes.at(i)->name==QIlib::Lexique::at_c) | |
|
692 | { | |
|
693 | this->at.setNode(node->nodes.at(i)); | |
|
694 | } | |
|
695 | if(node->nodes.at(i)->name==QIlib::Lexique::layer_c) | |
|
696 | { | |
|
697 | this->layer.setNode(node->nodes.at(i)); | |
|
698 | } | |
|
699 | if(node->nodes.at(i)->name==QIlib::Lexique::effects_c) | |
|
700 | { | |
|
701 | this->effects.setNode(node->nodes.at(i)); | |
|
702 | } | |
|
703 | } | |
|
704 | } | |
|
190 | 705 | } |
|
191 | 706 | |
|
192 | 707 | |
@@ -251,14 +766,44 void QIlib::QIcadPcbPlotParams::setNode( | |||
|
251 | 766 | |
|
252 | 767 | |
|
253 | 768 | QIlib::QIcadPcbSegment::QIcadPcbSegment(QIlib::AbstractNode *node) |
|
254 |
:QIcadAbstract |
|
|
769 | :QIcadAbstractPcbLine(node) | |
|
255 | 770 | { |
|
256 | 771 | this->setNode(node); |
|
257 | 772 | } |
|
258 | 773 | |
|
259 | 774 | void QIlib::QIcadPcbSegment::setNode(QIlib::AbstractNode *node) |
|
260 | 775 | { |
|
776 | if(node->name==QIlib::Lexique::segment_c) | |
|
777 | { | |
|
261 | 778 | this->p_node = node; |
|
779 | for(int i=0;i<node->nodes.count();i++) | |
|
780 | { | |
|
781 | if(node->nodes.at(i)->name==QIlib::Lexique::start_c) | |
|
782 | { | |
|
783 | this->p_startpos = nodeTo2DCoords(node->nodes.at(i)); | |
|
784 | this->start.setNode(node->nodes.at(i)); | |
|
785 | } | |
|
786 | if(node->nodes.at(i)->name==QIlib::Lexique::end_c) | |
|
787 | { | |
|
788 | this->p_stoppos = nodeTo2DCoords(node->nodes.at(i)); | |
|
789 | this->end.setNode(node->nodes.at(i)); | |
|
790 | } | |
|
791 | if(node->nodes.at(i)->name==QIlib::Lexique::width_c) | |
|
792 | { | |
|
793 | this->p_width = nodeValueToDouble(node->nodes.at(i)); | |
|
794 | this->width.setNode(node->nodes.at(i)); | |
|
795 | } | |
|
796 | if(node->nodes.at(i)->name==QIlib::Lexique::layer_c) | |
|
797 | { | |
|
798 | this->p_layers = node->nodes.at(i)->Values; | |
|
799 | this->layer.setNode(node->nodes.at(i)); | |
|
800 | } | |
|
801 | if(node->nodes.at(i)->name==QIlib::Lexique::net_c) | |
|
802 | { | |
|
803 | this->net.setNode(node->nodes.at(i)); | |
|
804 | } | |
|
805 | } | |
|
806 | } | |
|
262 | 807 | } |
|
263 | 808 | |
|
264 | 809 | |
@@ -270,5 +815,358 QIlib::QIcadPcbVia::QIcadPcbVia(QIlib::A | |||
|
270 | 815 | |
|
271 | 816 | void QIlib::QIcadPcbVia::setNode(QIlib::AbstractNode *node) |
|
272 | 817 | { |
|
818 | if(node->name==QIlib::Lexique::via_c) | |
|
819 | { | |
|
820 | this->p_node = node; | |
|
821 | for(int i=0;i<node->nodes.count();i++) | |
|
822 | { | |
|
823 | if(node->nodes.at(i)->name==QIlib::Lexique::at_c) | |
|
824 | { | |
|
825 | this->at.setNode(node->nodes.at(i)); | |
|
826 | p_pos = nodeTo2DCoords(node->nodes.at(i)); | |
|
827 | } | |
|
828 | if(node->nodes.at(i)->name==QIlib::Lexique::size_c) | |
|
829 | { | |
|
830 | this->sizeNode.setNode(node->nodes.at(i)); | |
|
831 | p_size = nodeTo2DSize(node->nodes.at(i)); | |
|
832 | } | |
|
833 | if(node->nodes.at(i)->name==QIlib::Lexique::drill_c) | |
|
834 | { | |
|
835 | this->drillNode.setNode(node->nodes.at(i)); | |
|
836 | p_drill = nodeValueToDouble(node->nodes.at(i)); | |
|
837 | } | |
|
838 | if(node->nodes.at(i)->name==QIlib::Lexique::layers_c) | |
|
839 | { | |
|
840 | this->layersNode.setNode(node->nodes.at(i)); | |
|
841 | p_layers = node->nodes.at(i)->Values; | |
|
842 | } | |
|
843 | if(node->nodes.at(i)->name==QIlib::Lexique::net_c) | |
|
844 | { | |
|
845 | this->net.setNode(node->nodes.at(i)); | |
|
846 | } | |
|
847 | if(node->nodes.at(i)->name==QIlib::Lexique::tstamp_c) | |
|
848 | { | |
|
849 | this->tstamp.setNode(node->nodes.at(i)); | |
|
850 | } | |
|
851 | } | |
|
852 | } | |
|
853 | } | |
|
854 | ||
|
855 | ||
|
856 | QIlib::QIcadPcbPad::QIcadPcbPad(QIlib::AbstractNode *node) | |
|
857 | :QIcadAbstractNodeWrapper(node) | |
|
858 | { | |
|
859 | this->setNode(node); | |
|
860 | } | |
|
861 | ||
|
862 | void QIlib::QIcadPcbPad::setNode(QIlib::AbstractNode *node) | |
|
863 | { | |
|
864 | if(node->name==QIlib::Lexique::pad_c) | |
|
865 | { | |
|
866 | this->p_node = node; | |
|
867 | if(p_node->Values.count()>=3) | |
|
868 | { | |
|
869 | if(!this->p_node->Values.at((2)).compare("rect")) | |
|
870 | { | |
|
871 | this->p_shape = rectangle; | |
|
872 | } | |
|
873 | else | |
|
874 | if(!this->p_node->Values.at((2)).compare("circle")) | |
|
875 | { | |
|
876 | this->p_shape = circle; | |
|
877 | } | |
|
878 | ||
|
879 | } | |
|
880 | for(int i=0;i<node->nodes.count();i++) | |
|
881 | { | |
|
882 | if(node->nodes.at(i)->name==QIlib::Lexique::at_c) | |
|
883 | { | |
|
884 | this->at.setNode(node->nodes.at(i)); | |
|
885 | this->p_pos = nodeTo2DCoords(node->nodes.at(i)); | |
|
886 | } | |
|
887 | if(node->nodes.at(i)->name==QIlib::Lexique::size_c) | |
|
888 | { | |
|
889 | this->sizeNode.setNode(node->nodes.at(i)); | |
|
890 | this->p_size = nodeTo2DSize(node->nodes.at(i)); | |
|
891 | } | |
|
892 | if(node->nodes.at(i)->name==QIlib::Lexique::layers_c) | |
|
893 | { | |
|
894 | this->layer.setNode(node->nodes.at(i)); | |
|
895 | this->p_layers = node->nodes.at(i)->Values; | |
|
896 | } | |
|
897 | if(node->nodes.at(i)->name==QIlib::Lexique::net_c) | |
|
898 | { | |
|
899 | this->netNode.setNode(node->nodes.at(i)); | |
|
900 | } | |
|
901 | if(node->nodes.at(i)->name==QIlib::Lexique::drill_c) | |
|
902 | { | |
|
903 | this->drillNode.setNode(node->nodes.at(i)); | |
|
904 | this->p_drill = nodeValueToDouble(node->nodes.at(i)); | |
|
905 | } | |
|
906 | } | |
|
907 | } | |
|
908 | } | |
|
909 | ||
|
910 | ||
|
911 | QIlib::QIcadPcbFPLine::QIcadPcbFPLine(QIlib::AbstractNode *node) | |
|
912 | :QIcadAbstractPcbLine(node) | |
|
913 | { | |
|
914 | this->setNode(node); | |
|
915 | } | |
|
916 | ||
|
917 | void QIlib::QIcadPcbFPLine::setNode(QIlib::AbstractNode *node) | |
|
918 | { | |
|
919 | if(node->name==QIlib::Lexique::fp_line_c) | |
|
920 | { | |
|
921 | this->p_node = node; | |
|
922 | for(int i=0;i<node->nodes.count();i++) | |
|
923 | { | |
|
924 | if(node->nodes.at(i)->name==QIlib::Lexique::start_c) | |
|
925 | { | |
|
926 | this->p_startpos = nodeTo2DCoords(node->nodes.at(i)); | |
|
927 | this->start.setNode(node->nodes.at(i)); | |
|
928 | } | |
|
929 | if(node->nodes.at(i)->name==QIlib::Lexique::end_c) | |
|
930 | { | |
|
931 | this->p_stoppos = nodeTo2DCoords(node->nodes.at(i)); | |
|
932 | this->end.setNode(node->nodes.at(i)); | |
|
933 | } | |
|
934 | if(node->nodes.at(i)->name==QIlib::Lexique::layer_c) | |
|
935 | { | |
|
936 | this->p_layers = node->nodes.at(i)->Values; | |
|
937 | this->layer.setNode(node->nodes.at(i)); | |
|
938 | } | |
|
939 | if(node->nodes.at(i)->name==QIlib::Lexique::width_c) | |
|
940 | { | |
|
941 | this->p_width = nodeValueToDouble(node->nodes.at(i)); | |
|
942 | this->width.setNode(node->nodes.at(i)); | |
|
943 | } | |
|
944 | } | |
|
945 | } | |
|
946 | } | |
|
947 | ||
|
948 | ||
|
949 | QIlib::QIcadPcbFPCircle::QIcadPcbFPCircle(QIlib::AbstractNode *node) | |
|
950 | :QIcadAbstractNodeWrapper(node) | |
|
951 | { | |
|
952 | this->setNode(node); | |
|
953 | } | |
|
954 | ||
|
955 | void QIlib::QIcadPcbFPCircle::setNode(QIlib::AbstractNode *node) | |
|
956 | { | |
|
957 | if(node->name==QIlib::Lexique::fp_circle_c) | |
|
958 | { | |
|
959 | this->p_node = node; | |
|
960 | for(int i=0;i<node->nodes.count();i++) | |
|
961 | { | |
|
962 | if(node->nodes.at(i)->name==QIlib::Lexique::center_c) | |
|
963 | { | |
|
964 | this->center.setNode(node->nodes.at(i)); | |
|
965 | } | |
|
966 | if(node->nodes.at(i)->name==QIlib::Lexique::end_c) | |
|
967 | { | |
|
968 | this->end.setNode(node->nodes.at(i)); | |
|
969 | } | |
|
970 | if(node->nodes.at(i)->name==QIlib::Lexique::layer_c) | |
|
971 | { | |
|
972 | this->layer.setNode(node->nodes.at(i)); | |
|
973 | } | |
|
974 | if(node->nodes.at(i)->name==QIlib::Lexique::width_c) | |
|
975 | { | |
|
976 | this->width.setNode(node->nodes.at(i)); | |
|
977 | } | |
|
978 | } | |
|
979 | } | |
|
980 | } | |
|
981 | ||
|
982 | ||
|
983 | QIlib::QIcadPcbText::QIcadPcbText(QIlib::AbstractNode *node) | |
|
984 | :QIcadAbstractNodeWrapper(node) | |
|
985 | { | |
|
986 | this->setNode(node); | |
|
987 | } | |
|
988 | ||
|
989 | void QIlib::QIcadPcbText::setNode(QIlib::AbstractNode *node) | |
|
990 | { | |
|
991 | if(node->name==QIlib::Lexique::gr_text_c) | |
|
992 | { | |
|
993 | this->p_node = node; | |
|
994 | for(int i=0;i<node->nodes.count();i++) | |
|
995 | { | |
|
996 | if(node->nodes.at(i)->name==QIlib::Lexique::at_c) | |
|
997 | { | |
|
998 | this->at.setNode(node->nodes.at(i)); | |
|
999 | } | |
|
1000 | if(node->nodes.at(i)->name==QIlib::Lexique::layer_c) | |
|
1001 | { | |
|
1002 | this->layer.setNode(node->nodes.at(i)); | |
|
1003 | } | |
|
1004 | if(node->nodes.at(i)->name==QIlib::Lexique::width_c) | |
|
1005 | { | |
|
1006 | this->width.setNode(node->nodes.at(i)); | |
|
1007 | } | |
|
1008 | if(node->nodes.at(i)->name==QIlib::Lexique::effects_c) | |
|
1009 | { | |
|
1010 | this->effects.setNode(node->nodes.at(i)); | |
|
1011 | } | |
|
1012 | } | |
|
1013 | } | |
|
1014 | } | |
|
1015 | ||
|
1016 | ||
|
1017 | QIlib::QIcadPcbCircle::QIcadPcbCircle(QIlib::AbstractNode *node) | |
|
1018 | :QIcadAbstractNodeWrapper(node) | |
|
1019 | { | |
|
1020 | this->setNode(node); | |
|
1021 | } | |
|
1022 | ||
|
1023 | void QIlib::QIcadPcbCircle::setNode(QIlib::AbstractNode *node) | |
|
1024 | { | |
|
1025 | if(node->name==QIlib::Lexique::gr_circle_c) | |
|
1026 | { | |
|
1027 | this->p_node = node; | |
|
1028 | for(int i=0;i<node->nodes.count();i++) | |
|
1029 | { | |
|
1030 | if(node->nodes.at(i)->name==QIlib::Lexique::center_c) | |
|
1031 | { | |
|
1032 | this->center.setNode(node->nodes.at(i)); | |
|
1033 | } | |
|
1034 | if(node->nodes.at(i)->name==QIlib::Lexique::end_c) | |
|
1035 | { | |
|
1036 | this->end.setNode(node->nodes.at(i)); | |
|
1037 | } | |
|
1038 | if(node->nodes.at(i)->name==QIlib::Lexique::layer_c) | |
|
1039 | { | |
|
1040 | this->layer.setNode(node->nodes.at(i)); | |
|
1041 | } | |
|
1042 | if(node->nodes.at(i)->name==QIlib::Lexique::width_c) | |
|
1043 | { | |
|
1044 | this->width.setNode(node->nodes.at(i)); | |
|
1045 | } | |
|
1046 | } | |
|
1047 | } | |
|
1048 | } | |
|
1049 | ||
|
1050 | ||
|
1051 | QIlib::QIcadPcbArc::QIcadPcbArc(QIlib::AbstractNode *node) | |
|
1052 | :QIcadAbstractNodeWrapper(node) | |
|
1053 | { | |
|
1054 | this->setNode(node); | |
|
1055 | } | |
|
1056 | ||
|
1057 | void QIlib::QIcadPcbArc::setNode(QIlib::AbstractNode *node) | |
|
1058 | { | |
|
1059 | if(node->name==QIlib::Lexique::gr_arc_c) | |
|
1060 | { | |
|
1061 | this->p_node = node; | |
|
1062 | for(int i=0;i<node->nodes.count();i++) | |
|
1063 | { | |
|
1064 | if(node->nodes.at(i)->name==QIlib::Lexique::start_c) | |
|
1065 | { | |
|
1066 | this->start.setNode(node->nodes.at(i)); | |
|
1067 | } | |
|
1068 | if(node->nodes.at(i)->name==QIlib::Lexique::end_c) | |
|
1069 | { | |
|
1070 | this->end.setNode(node->nodes.at(i)); | |
|
1071 | } | |
|
1072 | if(node->nodes.at(i)->name==QIlib::Lexique::angle_c) | |
|
1073 | { | |
|
1074 | this->angle.setNode(node->nodes.at(i)); | |
|
1075 | } | |
|
1076 | if(node->nodes.at(i)->name==QIlib::Lexique::layer_c) | |
|
1077 | { | |
|
1078 | this->layer.setNode(node->nodes.at(i)); | |
|
1079 | } | |
|
1080 | if(node->nodes.at(i)->name==QIlib::Lexique::width_c) | |
|
1081 | { | |
|
1082 | this->width.setNode(node->nodes.at(i)); | |
|
1083 | } | |
|
1084 | } | |
|
1085 | } | |
|
1086 | } | |
|
1087 | ||
|
1088 | ||
|
1089 | QIlib::QIcadPcbZone::QIcadPcbZone(QIlib::AbstractNode *node) | |
|
1090 | :QIcadAbstractNodeWrapper(node) | |
|
1091 | { | |
|
1092 | this->setNode(node); | |
|
1093 | } | |
|
1094 | ||
|
1095 | void QIlib::QIcadPcbZone::setNode(QIlib::AbstractNode *node) | |
|
1096 | { | |
|
1097 | if(node->name==QIlib::Lexique::zone_c) | |
|
1098 | { | |
|
273 | 1099 | this->p_node = node; |
|
274 | 1100 | } |
|
1101 | } | |
|
1102 | ||
|
1103 | ||
|
1104 | const QPointF QIlib::nodeTo2DCoords(QIlib::AbstractNode *node) | |
|
1105 | { | |
|
1106 | QPointF point; | |
|
1107 | QStringList coords=node->Values; | |
|
1108 | if(coords.count()>=2) | |
|
1109 | { | |
|
1110 | point.setX(coords.at(0).toDouble()); | |
|
1111 | point.setY(coords.at(1).toDouble()); | |
|
1112 | } | |
|
1113 | return point; | |
|
1114 | } | |
|
1115 | ||
|
1116 | ||
|
1117 | double QIlib::nodeValueToDouble(QIlib::AbstractNode *node, int index) | |
|
1118 | { | |
|
1119 | if(node->Values.count()>index) | |
|
1120 | { | |
|
1121 | return node->Values.at(index).toDouble(); | |
|
1122 | } | |
|
1123 | return 0.0; | |
|
1124 | } | |
|
1125 | ||
|
1126 | ||
|
1127 | int QIlib::nodeValueToInt(QIlib::AbstractNode *node, int index) | |
|
1128 | { | |
|
1129 | if(node->Values.count()>index) | |
|
1130 | { | |
|
1131 | return node->Values.at(index).toInt(); | |
|
1132 | } | |
|
1133 | return 0; | |
|
1134 | } | |
|
1135 | ||
|
1136 | ||
|
1137 | QIlib::QIcadPcbLayer::QIcadPcbLayer(QIlib::AbstractNode *node) | |
|
1138 | :QIcadAbstractNodeWrapper(node) | |
|
1139 | { | |
|
1140 | this->p_index = QString(this->p_node->name).remove('(').toInt(); | |
|
1141 | if(this->p_node->Values.count()>=1) | |
|
1142 | { | |
|
1143 | this->p_name = this->p_node->Values.at(0); | |
|
1144 | } | |
|
1145 | if(this->p_node->Values.count()>=2) | |
|
1146 | { | |
|
1147 | QString typestr=this->p_node->Values.at(1); | |
|
1148 | this->p_type = none; | |
|
1149 | if(!typestr.compare("signal")) | |
|
1150 | { | |
|
1151 | this->p_type = signal; | |
|
1152 | } | |
|
1153 | else | |
|
1154 | if(!typestr.compare("user")) | |
|
1155 | { | |
|
1156 | this->p_type = user; | |
|
1157 | } | |
|
1158 | } | |
|
1159 | } | |
|
1160 | ||
|
1161 | ||
|
1162 | const QSizeF QIlib::nodeTo2DSize(QIlib::AbstractNode *node) | |
|
1163 | { | |
|
1164 | QSizeF size; | |
|
1165 | QStringList sz=node->Values; | |
|
1166 | if(sz.count()>=2) | |
|
1167 | { | |
|
1168 | size.setWidth(sz.at(0).toDouble()); | |
|
1169 | size.setHeight(sz.at(1).toDouble()); | |
|
1170 | } | |
|
1171 | return size; | |
|
1172 | } |
@@ -27,9 +27,53 | |||
|
27 | 27 | #include <QFile> |
|
28 | 28 | #include <parsers/lispLike_driver.h> |
|
29 | 29 | #include <qicadlisplikelexique.h> |
|
30 | #include <QPointF> | |
|
31 | #include <QRectF> | |
|
30 | 32 | |
|
31 | 33 | namespace QIlib{ |
|
32 | 34 | |
|
35 | const QPointF nodeTo2DCoords(QIlib::AbstractNode* node); | |
|
36 | const QSizeF nodeTo2DSize(QIlib::AbstractNode* node); | |
|
37 | double nodeValueToDouble(QIlib::AbstractNode* node,int index=0); | |
|
38 | int nodeValueToInt(QIlib::AbstractNode* node,int index=0); | |
|
39 | ||
|
40 | class QIcadAbstractPcbLine : public QIcadAbstractNodeWrapper | |
|
41 | { | |
|
42 | public: | |
|
43 | QIcadAbstractPcbLine(QIlib::AbstractNode* node) | |
|
44 | :QIcadAbstractNodeWrapper(node) | |
|
45 | {} | |
|
46 | QIcadAbstractPcbLine(){} | |
|
47 | virtual const QPointF& startPos(){return p_startpos;} | |
|
48 | virtual const QPointF& stopPos(){return p_stoppos;} | |
|
49 | virtual double width(){return p_width;} | |
|
50 | virtual const QStringList& layers(){return p_layers;} | |
|
51 | protected: | |
|
52 | double p_width; | |
|
53 | QPointF p_startpos; | |
|
54 | QPointF p_stoppos; | |
|
55 | QStringList p_layers; | |
|
56 | }; | |
|
57 | ||
|
58 | class QIcadPcbLayer : public QIcadAbstractNodeWrapper | |
|
59 | { | |
|
60 | public: | |
|
61 | typedef enum | |
|
62 | { | |
|
63 | signal, | |
|
64 | user, | |
|
65 | none | |
|
66 | }layetType_t; | |
|
67 | QIcadPcbLayer(QIlib::AbstractNode* node); | |
|
68 | QIcadPcbLayer(){} | |
|
69 | int index(){return p_index;} | |
|
70 | const QString& name(){return p_name;} | |
|
71 | layetType_t type(){return p_type;} | |
|
72 | protected: | |
|
73 | int p_index; | |
|
74 | QString p_name; | |
|
75 | layetType_t p_type; | |
|
76 | }; | |
|
33 | 77 | |
|
34 | 78 | class QIcadPcbPlotParams : public QIcadAbstractNodeWrapper |
|
35 | 79 | { |
@@ -99,7 +143,6 public: | |||
|
99 | 143 | void setNode(QIlib::AbstractNode* node); |
|
100 | 144 | }; |
|
101 | 145 | |
|
102 | ||
|
103 | 146 | class QIcadPcbNetClass : public QIcadAbstractNodeWrapper |
|
104 | 147 | { |
|
105 | 148 | public: |
@@ -133,13 +176,14 public: | |||
|
133 | 176 | void setNode(QIlib::AbstractNode* node); |
|
134 | 177 | }; |
|
135 | 178 | |
|
136 |
class QIcadPcbF |
|
|
179 | class QIcadPcbFPText : public QIcadAbstractNodeWrapper | |
|
137 | 180 | { |
|
138 | 181 | public: |
|
139 |
QIcadPcbF |
|
|
140 |
QIcadPcbF |
|
|
182 | QIcadPcbFPText(QIlib::AbstractNode* node); | |
|
183 | QIcadPcbFPText(){} | |
|
141 | 184 | QIcadAbstractNodeWrapper at; |
|
142 | 185 | QIcadAbstractNodeWrapper layer; |
|
186 | QIcadPcbFpTextEffects effects; | |
|
143 | 187 | void setNode(QIlib::AbstractNode* node); |
|
144 | 188 | }; |
|
145 | 189 | |
@@ -154,7 +198,6 public: | |||
|
154 | 198 | void setNode(QIlib::AbstractNode* node); |
|
155 | 199 | }; |
|
156 | 200 | |
|
157 | ||
|
158 | 201 | class QIcadPcbDimension : public QIcadAbstractNodeWrapper |
|
159 | 202 | { |
|
160 | 203 | public: |
@@ -173,11 +216,66 public: | |||
|
173 | 216 | void setNode(QIlib::AbstractNode* node); |
|
174 | 217 | }; |
|
175 | 218 | |
|
219 | class QIcadPcbPad : public QIcadAbstractNodeWrapper | |
|
220 | { | |
|
221 | public: | |
|
222 | typedef enum | |
|
223 | { | |
|
224 | rectangle, | |
|
225 | circle | |
|
226 | }padShape; | |
|
227 | QIcadPcbPad(QIlib::AbstractNode* node); | |
|
228 | QIcadPcbPad(){} | |
|
229 | QIcadAbstractNodeWrapper at; | |
|
230 | QIcadAbstractNodeWrapper sizeNode; | |
|
231 | QIcadAbstractNodeWrapper layer; | |
|
232 | QIcadAbstractNodeWrapper netNode; | |
|
233 | QIcadAbstractNodeWrapper drillNode; | |
|
234 | const QStringList& layers(){return p_layers;} | |
|
235 | const QSizeF& size(){return p_size;} | |
|
236 | const QPointF& pos(){return p_pos;} | |
|
237 | double drill(){return p_drill;} | |
|
238 | padShape shape(){return p_shape;} | |
|
239 | void setNode(QIlib::AbstractNode* node); | |
|
240 | private: | |
|
241 | padShape p_shape; | |
|
242 | double p_drill; | |
|
243 | QSizeF p_size; | |
|
244 | QPointF p_pos; | |
|
245 | QStringList p_layers; | |
|
246 | }; | |
|
247 | ||
|
248 | class QIcadPcbFPLine : public QIcadAbstractPcbLine | |
|
249 | { | |
|
250 | public: | |
|
251 | QIcadPcbFPLine(QIlib::AbstractNode* node); | |
|
252 | QIcadPcbFPLine(){} | |
|
253 | QIcadAbstractNodeWrapper start; | |
|
254 | QIcadAbstractNodeWrapper end; | |
|
255 | QIcadAbstractNodeWrapper layer; | |
|
256 | QIcadAbstractNodeWrapper width; | |
|
257 | void setNode(QIlib::AbstractNode* node); | |
|
258 | }; | |
|
259 | ||
|
260 | class QIcadPcbFPCircle : public QIcadAbstractNodeWrapper | |
|
261 | { | |
|
262 | public: | |
|
263 | QIcadPcbFPCircle(QIlib::AbstractNode* node); | |
|
264 | QIcadPcbFPCircle(){} | |
|
265 | QIcadAbstractNodeWrapper center; | |
|
266 | QIcadAbstractNodeWrapper end; | |
|
267 | QIcadAbstractNodeWrapper layer; | |
|
268 | QIcadAbstractNodeWrapper width; | |
|
269 | void setNode(QIlib::AbstractNode* node); | |
|
270 | }; | |
|
271 | ||
|
176 | 272 | class QIcadPcbModule : public QIcadAbstractNodeWrapper |
|
177 | 273 | { |
|
178 | 274 | public: |
|
179 | 275 | QIcadPcbModule(QIlib::AbstractNode* node); |
|
180 | 276 | QIcadPcbModule(){} |
|
277 | const QPointF& pos(); | |
|
278 | double angle(); | |
|
181 | 279 | QIcadAbstractNodeWrapper layer; |
|
182 | 280 | QIcadAbstractNodeWrapper tedit; |
|
183 | 281 | QIcadAbstractNodeWrapper tstamp; |
@@ -186,14 +284,26 public: | |||
|
186 | 284 | QIcadAbstractNodeWrapper tags; |
|
187 | 285 | QIcadAbstractNodeWrapper path; |
|
188 | 286 | QIcadAbstractNodeWrapper attr; |
|
189 |
QList<QIcad |
|
|
190 |
QList<QIcad |
|
|
191 |
QList<QIcad |
|
|
287 | QList<QIcadPcbFPText*> fp_texts; | |
|
288 | QList<QIcadPcbFPLine*> fp_lines; | |
|
289 | QList<QIcadPcbFPCircle*> fp_circles; | |
|
290 | QList<QIcadPcbPad*> pads; | |
|
192 | 291 | QIcadPcbModuleModel model; |
|
193 | 292 | void setNode(QIlib::AbstractNode* node); |
|
293 | void clrPads(); | |
|
294 | void apendPad(QIlib::AbstractNode* node); | |
|
295 | void clrTexts(); | |
|
296 | void apendText(QIlib::AbstractNode* node); | |
|
297 | void clrLines(); | |
|
298 | void apendLine(QIlib::AbstractNode* node); | |
|
299 | void clrCircles(); | |
|
300 | void apendCircle(QIlib::AbstractNode* node); | |
|
301 | private: | |
|
302 | QPointF p_pos; | |
|
303 | double p_angle; | |
|
194 | 304 | }; |
|
195 | 305 | |
|
196 |
class QIcadPcbSegment : public QIcadAbstract |
|
|
306 | class QIcadPcbSegment : public QIcadAbstractPcbLine | |
|
197 | 307 | { |
|
198 | 308 | public: |
|
199 | 309 | QIcadPcbSegment(QIlib::AbstractNode* node); |
@@ -205,20 +315,31 public: | |||
|
205 | 315 | QIcadAbstractNodeWrapper net; |
|
206 | 316 | void setNode(QIlib::AbstractNode* node); |
|
207 | 317 | }; |
|
318 | ||
|
208 | 319 | class QIcadPcbVia : public QIcadAbstractNodeWrapper |
|
209 | 320 | { |
|
210 | 321 | public: |
|
211 | 322 | QIcadPcbVia(QIlib::AbstractNode* node); |
|
212 | 323 | QIcadPcbVia(){} |
|
213 | 324 | QIcadAbstractNodeWrapper at; |
|
214 | QIcadAbstractNodeWrapper size; | |
|
215 | QIcadAbstractNodeWrapper drill; | |
|
216 | QIcadAbstractNodeWrapper layer; | |
|
325 | QIcadAbstractNodeWrapper sizeNode; | |
|
326 | QIcadAbstractNodeWrapper drillNode; | |
|
327 | QIcadAbstractNodeWrapper layersNode; | |
|
217 | 328 | QIcadAbstractNodeWrapper net; |
|
329 | QIcadAbstractNodeWrapper tstamp; | |
|
218 | 330 | void setNode(QIlib::AbstractNode* node); |
|
331 | const QStringList& layers(){return p_layers;} | |
|
332 | const QSizeF& size(){return p_size;} | |
|
333 | const QPointF& pos(){return p_pos;} | |
|
334 | double drill(){return p_drill;} | |
|
335 | private: | |
|
336 | double p_drill; | |
|
337 | QSizeF p_size; | |
|
338 | QPointF p_pos; | |
|
339 | QStringList p_layers; | |
|
219 | 340 | }; |
|
220 | 341 | |
|
221 |
class QIcadPcbLine : public QIcadAbstract |
|
|
342 | class QIcadPcbLine : public QIcadAbstractPcbLine | |
|
222 | 343 | { |
|
223 | 344 | public: |
|
224 | 345 | QIcadPcbLine(QIlib::AbstractNode* node); |
@@ -231,13 +352,60 public: | |||
|
231 | 352 | void setNode(QIlib::AbstractNode* node); |
|
232 | 353 | }; |
|
233 | 354 | |
|
355 | class QIcadPcbZone : public QIcadAbstractNodeWrapper | |
|
356 | { | |
|
357 | public: | |
|
358 | QIcadPcbZone(QIlib::AbstractNode* node); | |
|
359 | QIcadPcbZone(){} | |
|
360 | void setNode(QIlib::AbstractNode* node); | |
|
361 | }; | |
|
362 | ||
|
363 | class QIcadPcbArc : public QIcadAbstractNodeWrapper | |
|
364 | { | |
|
365 | public: | |
|
366 | QIcadPcbArc(QIlib::AbstractNode* node); | |
|
367 | QIcadPcbArc(){} | |
|
368 | QIcadAbstractNodeWrapper start; | |
|
369 | QIcadAbstractNodeWrapper end; | |
|
370 | QIcadAbstractNodeWrapper angle; | |
|
371 | QIcadAbstractNodeWrapper layer; | |
|
372 | QIcadAbstractNodeWrapper width; | |
|
373 | void setNode(QIlib::AbstractNode* node); | |
|
374 | }; | |
|
375 | ||
|
376 | class QIcadPcbCircle : public QIcadAbstractNodeWrapper | |
|
377 | { | |
|
378 | public: | |
|
379 | QIcadPcbCircle(QIlib::AbstractNode* node); | |
|
380 | QIcadPcbCircle(){} | |
|
381 | QIcadAbstractNodeWrapper center; | |
|
382 | QIcadAbstractNodeWrapper end; | |
|
383 | QIcadAbstractNodeWrapper layer; | |
|
384 | QIcadAbstractNodeWrapper width; | |
|
385 | void setNode(QIlib::AbstractNode* node); | |
|
386 | }; | |
|
387 | ||
|
388 | class QIcadPcbText : public QIcadAbstractNodeWrapper | |
|
389 | { | |
|
390 | public: | |
|
391 | QIcadPcbText(QIlib::AbstractNode* node); | |
|
392 | QIcadPcbText(){} | |
|
393 | QIcadAbstractNodeWrapper at; | |
|
394 | QIcadAbstractNodeWrapper layer; | |
|
395 | QIcadAbstractNodeWrapper width; | |
|
396 | QIcadPcbFpTextEffects effects; | |
|
397 | void setNode(QIlib::AbstractNode* node); | |
|
398 | }; | |
|
399 | ||
|
234 | 400 | class QIcadPcbLayers : public QIcadAbstractNodeWrapper |
|
235 | 401 | { |
|
236 | 402 | public: |
|
237 | 403 | QIcadPcbLayers(QIlib::AbstractNode* node); |
|
238 | 404 | QIcadPcbLayers(){} |
|
239 |
QList<QIcad |
|
|
405 | QList<QIcadPcbLayer*> layers; | |
|
240 | 406 | void setNode(QIlib::AbstractNode* node); |
|
407 | void clrLayers(); | |
|
408 | void apendLayer(QIlib::AbstractNode* node); | |
|
241 | 409 | }; |
|
242 | 410 | |
|
243 | 411 | class QIcadPcbGeneralInfo : public QIcadAbstractNodeWrapper |
@@ -273,19 +441,31 public: | |||
|
273 | 441 | QList<QIcadPcbLine*> lines; |
|
274 | 442 | QList<QIcadPcbSegment*> segments; |
|
275 | 443 | QList<QIcadPcbVia*> vias; |
|
444 | QList<QIcadPcbArc*> arcs; | |
|
445 | QList<QIcadPcbCircle*> circles; | |
|
446 | QList<QIcadPcbText*> texts; | |
|
447 | QList<QIcadPcbZone*> zones; | |
|
276 | 448 | void setNode(QIlib::AbstractNode* node); |
|
277 | 449 | void clrNets(); |
|
278 | 450 | void apendNet(QIlib::AbstractNode* node); |
|
279 | void setModules(QIlib::AbstractNode* node); | |
|
280 |
void apendModule |
|
|
281 | void setDimensions(QIlib::AbstractNode* node); | |
|
282 |
void apendDimension |
|
|
283 |
void |
|
|
284 | void apendLines(QIlib::AbstractNode* node); | |
|
285 | void setSegments(QIlib::AbstractNode* node); | |
|
286 |
void apendSegment |
|
|
287 | void setVias(QIlib::AbstractNode* node); | |
|
288 |
void apendVia |
|
|
451 | void clrModules(); | |
|
452 | void apendModule(QIlib::AbstractNode* node); | |
|
453 | void clrDimensions(); | |
|
454 | void apendDimension(QIlib::AbstractNode* node); | |
|
455 | void apendLine(QIlib::AbstractNode* node); | |
|
456 | void clrLines(); | |
|
457 | void clrSegments(); | |
|
458 | void apendSegment(QIlib::AbstractNode* node); | |
|
459 | void clrVias(); | |
|
460 | void apendVia(QIlib::AbstractNode* node); | |
|
461 | void clrArcs(); | |
|
462 | void apendArc(QIlib::AbstractNode* node); | |
|
463 | void clrCircles(); | |
|
464 | void apendCircle(QIlib::AbstractNode* node); | |
|
465 | void clrTexts(); | |
|
466 | void apendText(QIlib::AbstractNode* node); | |
|
467 | void clrZones(); | |
|
468 | void apendZone(QIlib::AbstractNode* node); | |
|
289 | 469 | }; |
|
290 | 470 | |
|
291 | 471 | class QIcadPcb : private lispLike_Driver |
@@ -19,7 +19,9 LIBS += -L../../bin -lQIlib | |||
|
19 | 19 | FILESTOCOPY.files += \ |
|
20 | 20 | $${PWD}/../testFiles/netlist1.net \ |
|
21 | 21 | $${PWD}/../testFiles/netlist2.net \ |
|
22 | $${PWD}/../testFiles/pcb1.kicad_pcb | |
|
22 | $${PWD}/../testFiles/pcb1.kicad_pcb\ | |
|
23 | $${PWD}/../testFiles/pcb2.kicad_pcb\ | |
|
24 | $${PWD}/../testFiles/pcb3.kicad_pcb | |
|
23 | 25 | |
|
24 | 26 | FILESTOCOPY.path = $${DESTDIR} |
|
25 | 27 |
@@ -3,7 +3,8 | |||
|
3 | 3 | TEMPLATE = subdirs |
|
4 | 4 | CONFIG += ordered release |
|
5 | 5 | |
|
6 | SUBDIRS += dumpLispLikeFiles | |
|
6 | SUBDIRS += dumpLispLikeFiles \ | |
|
7 | PCBView | |
|
7 | 8 | |
|
8 | 9 | |
|
9 | 10 | |
@@ -12,7 +13,8 OTHER_FILES += \ | |||
|
12 | 13 | testFiles/netlist1.net \ |
|
13 | 14 | testFiles/netlist2.net \ |
|
14 | 15 | testFiles/pcb1.kicad_pcb \ |
|
15 | testFiles/pcb2.kicad_pcb | |
|
16 | testFiles/pcb2.kicad_pcb \ | |
|
17 | testFiles/pcb3.kicad_pcb | |
|
16 | 18 | |
|
17 | 19 | |
|
18 | 20 |
General Comments 0
You need to be logged in to leave comments.
Login now