[qet] [2718] Export to DXF Format partially added.

[ Thread Index | Date Index | More lists.tuxfamily.org/qet Archives ]


Revision: 2718
Author:   abhishekm71
Date:     2014-01-08 17:55:16 +0100 (Wed, 08 Jan 2014)
Log Message:
-----------
Export to DXF Format partially added. Following entities are exported:
1. Border and title block
2. Diagram independent text items
3. Element text items
4. Conductors

Following entities are not exported right now:
1. Element components
2. Terminals
3. Maybe other things also.

Lot of debugging shall be required.

Thank you

Modified Paths:
--------------
    trunk/sources/bordertitleblock.cpp
    trunk/sources/bordertitleblock.h
    trunk/sources/exportdialog.cpp
    trunk/sources/exportdialog.h
    trunk/sources/exportpropertieswidget.cpp
    trunk/sources/titleblocktemplate.cpp
    trunk/sources/titleblocktemplate.h
    trunk/sources/titleblocktemplaterenderer.cpp
    trunk/sources/titleblocktemplaterenderer.h

Added Paths:
-----------
    trunk/sources/createdxf.cpp
    trunk/sources/createdxf.h

Modified: trunk/sources/bordertitleblock.cpp
===================================================================
--- trunk/sources/bordertitleblock.cpp	2014-01-08 13:49:55 UTC (rev 2717)
+++ trunk/sources/bordertitleblock.cpp	2014-01-08 16:55:16 UTC (rev 2718)
@@ -22,6 +22,7 @@
 #include "diagramposition.h"
 #include "qetapp.h"
 #include "math.h"
+#include "createdxf.h"
 
 /**
 	Constructeur simple : construit une bordure en recuperant les dimensions
@@ -409,6 +410,80 @@
 	titleblock_rect_       .translate(-x, -y);
 }
 
+void BorderTitleBlock::drawDxf(int width, int height, bool keep_aspect_ratio, QString &file_path, int color) {
+
+	// Transform to DXF scale.
+	columns_header_height_ *= Createdxf::yScale;
+	rows_height_           *= Createdxf::yScale;
+	rows_header_width_     *= Createdxf::xScale;
+	columns_width_         *= Createdxf::xScale;
+
+	// dessine la case vide qui apparait des qu'il y a un entete
+	if (display_border_ &&
+		(display_columns_ ||
+		 display_rows_)
+		) {
+		Createdxf::drawRectangle(
+			file_path,
+			double(diagram_rect_.topLeft().x()) * Createdxf::xScale,
+			Createdxf::sheetHeight - double(diagram_rect_.topLeft().y()) * Createdxf::yScale - columns_header_height_,
+			rows_header_width_,
+			columns_header_height_,
+			color
+		);
+	}
+
+	// dessine la numerotation des colonnes
+	if (display_border_ &&
+		display_columns_) {
+		for (int i = 1 ; i <= columns_count_ ; ++ i) {
+			double xCoord = diagram_rect_.topLeft().x() +
+					(rows_header_width_ + ((i - 1) *
+					 columns_width_));
+			double yCoord = Createdxf::sheetHeight - diagram_rect_.topLeft().y() - columns_header_height_;
+			double recWidth = columns_width_;
+			double recHeight = columns_header_height_;
+			Createdxf::drawRectangle(file_path, xCoord, yCoord, recWidth, recHeight, color);
+			Createdxf::drawTextAligned(file_path, QString::number(i), xCoord,
+									   yCoord + recHeight*0.5, recHeight*0.7, 0, 0, 1, 2, xCoord+recWidth/2, color, 0);
+		}
+	}
+
+	// dessine la numerotation des lignes
+
+	if (display_border_ && display_rows_) {
+		QString row_string("A");
+		for (int i = 1 ; i <= rows_count_ ; ++ i) {
+			double xCoord = diagram_rect_.topLeft().x() * Createdxf::xScale;
+			double yCoord = Createdxf::sheetHeight - diagram_rect_.topLeft().y()*Createdxf::yScale
+							- (columns_header_height_ + ((i - 1) * rows_height_))
+							- rows_height_;
+			double recWidth = rows_header_width_;
+			double recHeight = rows_height_;
+			Createdxf::drawRectangle(file_path, xCoord, yCoord, recWidth, recHeight, color);
+			Createdxf::drawTextAligned(file_path, row_string, xCoord,
+									   yCoord + recHeight*0.5, recWidth*0.7, 0, 0, 1, 2, xCoord+recWidth/2, color, 0);
+			row_string = incrementLetters(row_string);
+		}
+	}
+
+	// render the titleblock, using the TitleBlockTemplate object
+	if (display_titleblock_) {
+		//qp -> translate(titleblock_rect_.topLeft());
+		titleblock_template_renderer_ -> renderDxf(titleblock_rect_, titleblock_rect_.width(), file_path, color);
+		//qp -> translate(-titleblock_rect_.topLeft());
+	}
+
+	// Transform back to QET scale
+	columns_header_height_ /= Createdxf::yScale;
+	rows_height_		   /= Createdxf::yScale;
+	rows_header_width_     /= Createdxf::xScale;
+	columns_width_         /= Createdxf::xScale;
+
+}
+
+
+
 /**
 	Ajoute une colonne.
 */

Modified: trunk/sources/bordertitleblock.h
===================================================================
--- trunk/sources/bordertitleblock.h	2014-01-08 13:49:55 UTC (rev 2717)
+++ trunk/sources/bordertitleblock.h	2014-01-08 16:55:16 UTC (rev 2718)
@@ -49,7 +49,8 @@
 	static int   minNbRows();
 	static qreal minRowsHeight();
 	
-	void draw(QPainter *, qreal = 0.0, qreal = 0.0);
+	void draw(QPainter *, qreal = 0.0, qreal = 0.0);	
+	void drawDxf(int, int, bool, QString &, int);
 	
 	// methods to get dimensions
 	// columns

Added: trunk/sources/createdxf.cpp
===================================================================
--- trunk/sources/createdxf.cpp	                        (rev 0)
+++ trunk/sources/createdxf.cpp	2014-01-08 16:55:16 UTC (rev 2718)
@@ -0,0 +1,534 @@
+#include "createdxf.h"
+#include <QFile>
+#include <QTextStream>
+#include <QMessageBox>
+#include <QString>
+
+
+const double Createdxf::sheetWidth = 4000;
+const double Createdxf::sheetHeight = 2700;
+
+double Createdxf::xScale = 1;
+double Createdxf::yScale = 1;
+
+Createdxf::Createdxf()
+{
+}
+
+
+Createdxf::~Createdxf()
+{
+}
+
+/* Header section of every DXF file.*/
+void  Createdxf::dxfBegin (QString fileName)
+{
+
+    // Creation of an output stream object in text mode.
+    // Header section of every dxf file.
+    if (!fileName.isEmpty()) {
+        QFile file(fileName);
+        if (!file.open(QFile::WriteOnly)) {
+            // error message
+            QMessageBox errorFileOpen;
+             errorFileOpen.setIcon(QMessageBox::Warning);
+             errorFileOpen.setText("Error: "+fileName+" Could Not be Opened.");
+             errorFileOpen.setInformativeText("Close all Files and Try Again.");
+             errorFileOpen.exec();
+             exit(0);
+        } else {
+            QTextStream To_Dxf(&file);
+            To_Dxf << 999           << "\r\n";
+            To_Dxf << "QET"         << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "SECTION"     << "\r\n";
+            To_Dxf << 2             << "\r\n";
+            To_Dxf << "HEADER"      << "\r\n";
+            To_Dxf << 9             << "\r\n";
+            To_Dxf << "$ACADVER"    << "\r\n";
+            To_Dxf << 1             << "\r\n";
+            To_Dxf << "AC1006"      << "\r\n";
+            To_Dxf << 9             << "\r\n";
+            To_Dxf << "$INSBASE"    << "\r\n";
+            To_Dxf << 10            << "\r\n";
+            To_Dxf << "0.0"         << "\r\n";
+            To_Dxf << 20            << "\r\n";
+            To_Dxf << "0.0"         << "\r\n";
+            To_Dxf << 30            << "\r\n";
+            To_Dxf << "0.0"         << "\r\n";
+            To_Dxf << 9             << "\r\n";
+
+            To_Dxf << "$EXTMIN"     << "\r\n";
+            To_Dxf << 10            << "\r\n";
+            To_Dxf << "0.0"         << "\r\n";
+            To_Dxf << 20            << "\r\n";
+            To_Dxf << "0.0"         << "\r\n";
+            To_Dxf << 9             << "\r\n";
+            To_Dxf << "$EXTMAX"     << "\r\n";
+            To_Dxf << 10            << "\r\n";
+            To_Dxf << "4000.0"      << "\r\n";
+            To_Dxf << 20            << "\r\n";
+            To_Dxf << "4000.0"      << "\r\n";
+
+            To_Dxf << 9             << "\r\n";
+            To_Dxf << "$LIMMIN"     << "\r\n";
+            To_Dxf << 10            << "\r\n";
+            To_Dxf << "0.0"         << "\r\n";
+            To_Dxf << 20            << "\r\n";
+            To_Dxf << "0.0"         << "\r\n";
+            To_Dxf << 9             << "\r\n";
+            To_Dxf << "$LIMMAX"     << "\r\n";
+            To_Dxf << 10            << "\r\n";
+            To_Dxf << "4000.0"      << "\r\n";
+            To_Dxf << 20            << "\r\n";
+            To_Dxf << "4000.0"      << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "ENDSEC"      << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "SECTION"     << "\r\n";
+            To_Dxf << 2             << "\r\n";
+            To_Dxf << "TABLES"      << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "TABLE"       << "\r\n";
+            To_Dxf << 2             << "\r\n";
+
+            To_Dxf << "VPORT"       << "\r\n";
+            To_Dxf << 70            << "\r\n";
+            To_Dxf << 1             << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "VPORT"       << "\r\n";
+            To_Dxf << 2             << "\r\n";
+            To_Dxf << "*ACTIVE"     << "\r\n";
+            To_Dxf << 70            << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << 10            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 20            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 11            << "\r\n";
+            To_Dxf << 1.0           << "\r\n";
+            To_Dxf << 21            << "\r\n";
+            To_Dxf << 1.0           << "\r\n";
+            To_Dxf << 12            << "\r\n";
+            To_Dxf << 2000          << "\r\n";
+            To_Dxf << 22            << "\r\n";
+            To_Dxf << 1350          << "\r\n";
+            To_Dxf << 13            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 23            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 14            << "\r\n";
+            To_Dxf << 1.0           << "\r\n";
+            To_Dxf << 24            << "\r\n";
+            To_Dxf << 1.0           << "\r\n";
+            To_Dxf << 15            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 25            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 16            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 26            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 36            << "\r\n";
+            To_Dxf << 1.0           << "\r\n";
+            To_Dxf << 17            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 27            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 37            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 40            << "\r\n";
+            To_Dxf << 2732.5        << "\r\n";
+            To_Dxf << 41            << "\r\n";
+            To_Dxf << 2.558         << "\r\n";
+            To_Dxf << 42            << "\r\n";
+            To_Dxf << 50.0          << "\r\n";
+            To_Dxf << 43            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 44            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 50            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 51            << "\r\n";
+            To_Dxf << 0.0           << "\r\n";
+            To_Dxf << 71            << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << 72            << "\r\n";
+            To_Dxf << 100           << "\r\n";
+            To_Dxf << 73            << "\r\n";
+            To_Dxf << 1             << "\r\n";
+            To_Dxf << 74            << "\r\n";
+            To_Dxf << 1             << "\r\n";
+            To_Dxf << 75            << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << 76            << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << 77            << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << 78            << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "ENDTAB"      << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "TABLE"       << "\r\n";
+            To_Dxf << 2             << "\r\n";
+
+            To_Dxf << "LTYPE"       << "\r\n";
+            To_Dxf << 70            << "\r\n";
+            To_Dxf << 1             << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "LTYPE"       << "\r\n";
+            To_Dxf << 2             << "\r\n";
+            To_Dxf << "CONTINUOUS"  << "\r\n";
+            To_Dxf << 70            << "\r\n";
+            To_Dxf << 64            << "\r\n";
+            To_Dxf << 3             << "\r\n";
+            To_Dxf << "Solid Line"  << "\r\n";
+            To_Dxf << 72            << "\r\n";
+            To_Dxf << 65            << "\r\n";
+            To_Dxf << 73            << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << 40            << "\r\n";
+            To_Dxf << 0.00          << "\r\n";
+            To_Dxf << 0             << "\r\n";
+
+            To_Dxf << "ENDTAB"      << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "ENDSEC"      << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "SECTION"     << "\r\n";
+            To_Dxf << 2             << "\r\n";
+            To_Dxf << "BLOCKS"      << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "ENDSEC"      << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "SECTION"     << "\r\n";
+            To_Dxf << 2             << "\r\n";
+            To_Dxf << "ENTITIES"    << "\r\n";
+            file.close();
+        }
+    }
+}
+
+/* End Section of every DXF File*/
+void  Createdxf::dxfEnd (QString fileName)
+{
+    // Creation of an output stream object in text mode.
+    if (!fileName.isEmpty()) {
+        QFile file(fileName);
+        if (!file.open(QFile::Append)) {
+            // error message
+            QMessageBox errorFileOpen;
+             errorFileOpen.setText("Error: File "+fileName+" was not written correctly.");
+             errorFileOpen.setInformativeText("Close all Files and Re-Run");
+             errorFileOpen.exec();
+        } else {
+            QTextStream To_Dxf(&file);
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "ENDSEC"      << "\r\n";
+            To_Dxf << 0             << "\r\n";
+            To_Dxf << "EOF";
+            file.close();
+        }
+    }
+}
+
+
+/* draw circle in dxf format*/
+void Createdxf::drawCircle (QString fileName, double radius, double x, double y, int colour)
+{
+    if (!fileName.isEmpty()) {
+        QFile file(fileName);
+        if (!file.open(QFile::Append)) {
+            // error message
+            QMessageBox errorFileOpen;
+            errorFileOpen.setText("Error: File "+fileName+" was not written correctly.");
+            errorFileOpen.setInformativeText("Close all Files and Re-Run");
+            errorFileOpen.exec();
+        } else {
+            QTextStream To_Dxf(&file);
+            // Draw the circle
+            To_Dxf << 0         << "\r\n";
+            To_Dxf << "CIRCLE"  << "\r\n";
+            To_Dxf << 8         << "\r\n";
+            To_Dxf << 0         << "\r\n";    // Layer number (default layer in autocad)
+            To_Dxf << 62        << "\r\n";
+            To_Dxf << colour    << "\r\n";    // Colour Code
+            To_Dxf << 10        << "\r\n";    // XYZ is the Center point of circle
+            To_Dxf << x         << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 20        << "\r\n";
+            To_Dxf << y         << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 30        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 40        << "\r\n";
+            To_Dxf << radius    << "\r\n";    // radius of circle
+            file.close();
+        }
+    }
+}
+
+
+/* draw line in DXF Format*/
+void Createdxf::drawLine (QString fileName, double x1, double y1, double x2, double y2, int colour)
+{
+    if (!fileName.isEmpty()) {
+        QFile file(fileName);
+        if (!file.open(QFile::Append)) {
+            // error message
+            QMessageBox errorFileOpen;
+            errorFileOpen.setText("Error: File "+fileName+" was not written correctly.");
+            errorFileOpen.setInformativeText("Close all Files and Re-Run");
+            errorFileOpen.exec();
+        } else {
+            QTextStream To_Dxf(&file);
+            // Draw the Line
+            To_Dxf << 0         << "\r\n";
+            To_Dxf << "LINE"    << "\r\n";
+            To_Dxf << 8         << "\r\n";
+            To_Dxf << 0         << "\r\n";    // Layer number (default layer in autocad)
+            To_Dxf << 62        << "\r\n";
+            To_Dxf << colour    << "\r\n";    // Colour Code
+            To_Dxf << 10        << "\r\n";
+            To_Dxf << x1        << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 20        << "\r\n";
+            To_Dxf << y1        << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 30        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 11        << "\r\n";
+            To_Dxf << x2        << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 21        << "\r\n";
+            To_Dxf << y2        << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 31        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            file.close();
+        }
+    }
+}
+
+/* draw rectangle in dxf format */
+void Createdxf::drawRectangle (QString fileName, double x1, double y1, double width, double height, int colour)
+{
+    if (!fileName.isEmpty()) {
+        QFile file(fileName);
+        if (!file.open(QFile::Append)) {
+            // error message
+            QMessageBox errorFileOpen;
+            errorFileOpen.setText("Error: File "+fileName+" was not written correctly.");
+            errorFileOpen.setInformativeText("Close all Files and Re-Run");
+            errorFileOpen.exec();
+        } else {
+            QTextStream To_Dxf(&file);
+            // Draw the Rectangle
+            To_Dxf << 0         << "\r\n";
+            To_Dxf << "LINE"    << "\r\n";
+            To_Dxf << 8         << "\r\n";
+            To_Dxf << 0         << "\r\n";    // Layer number (default layer in autocad)
+            To_Dxf << 62        << "\r\n";
+            To_Dxf << colour    << "\r\n";    // Colour Code
+            To_Dxf << 10        << "\r\n";
+            To_Dxf << x1        << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 20        << "\r\n";
+            To_Dxf << y1        << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 30        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 11        << "\r\n";
+            To_Dxf << x1+width  << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 21        << "\r\n";
+            To_Dxf << y1        << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 31        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 0         << "\r\n";
+            To_Dxf << "LINE"    << "\r\n";
+            To_Dxf << 8         << "\r\n";
+            To_Dxf << 0         << "\r\n";    // Layer number (default layer in autocad)
+            To_Dxf << 62        << "\r\n";
+            To_Dxf << colour    << "\r\n";    // Colour Code
+            To_Dxf << 10        << "\r\n";
+            To_Dxf << x1        << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 20        << "\r\n";
+            To_Dxf << y1        << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 30        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 11        << "\r\n";
+            To_Dxf << x1        << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 21        << "\r\n";
+            To_Dxf << y1+height << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 31        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 0         << "\r\n";
+            To_Dxf << "LINE"    << "\r\n";
+            To_Dxf << 8         << "\r\n";
+            To_Dxf << 0         << "\r\n";    // Layer number (default layer in autocad)
+            To_Dxf << 62        << "\r\n";
+            To_Dxf << colour    << "\r\n";    // Colour Code
+            To_Dxf << 10        << "\r\n";
+            To_Dxf << x1+width  << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 20        << "\r\n";
+            To_Dxf << y1        << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 30        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 11        << "\r\n";
+            To_Dxf << x1+width  << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 21        << "\r\n";
+            To_Dxf << y1+height << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 31        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 0         << "\r\n";
+            To_Dxf << "LINE"    << "\r\n";
+            To_Dxf << 8         << "\r\n";
+            To_Dxf << 0         << "\r\n";    // Layer number (default layer in autocad)
+            To_Dxf << 62        << "\r\n";
+            To_Dxf << colour    << "\r\n";    // Colour Code
+            To_Dxf << 10        << "\r\n";
+            To_Dxf << x1        << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 20        << "\r\n";
+            To_Dxf << y1+height << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 30        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 11        << "\r\n";
+            To_Dxf << x1+width  << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 21        << "\r\n";
+            To_Dxf << y1+height << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 31        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            file.close();
+        }
+    }
+}
+
+/* draw arc in dx format */
+void Createdxf::drawArc(QString fileName,double x,double y,double rad,double startAngle,double endAngle,int color)
+{
+    if (!fileName.isEmpty()) {
+        QFile file(fileName);
+        if (!file.open(QFile::Append)) {
+            // error message
+            QMessageBox errorFileOpen;
+            errorFileOpen.setText("Error: File "+fileName+" was not written correctly.");
+            errorFileOpen.setInformativeText("Close all Files and Re-Run");
+            errorFileOpen.exec();
+        } else {
+            QTextStream To_Dxf(&file);
+            // Draw the arc
+            To_Dxf << 0         << "\r\n";
+            To_Dxf << "ARC"     << "\r\n";
+            To_Dxf << 8         << "\r\n";
+            To_Dxf << 0         << "\r\n";    // Layer number (default layer in autocad)
+            To_Dxf << 62        << "\r\n";
+            To_Dxf << color     << "\r\n";    // Colour Code
+            To_Dxf << 10        << "\r\n";    // XYZ is the Center point of circle
+            To_Dxf << x         << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 20        << "\r\n";
+            To_Dxf << y         << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 30        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 40        << "\r\n";
+            To_Dxf << rad       << "\r\n";    // radius of arc
+            To_Dxf << 50        << "\r\n";
+            To_Dxf << startAngle<< "\r\n";    // start angle
+            To_Dxf << 51        << "\r\n";
+            To_Dxf << endAngle  << "\r\n";    // end angle
+            file.close();
+        }
+    }
+}
+
+/* draw simple text in dxf format without any alignment specified */
+void Createdxf::drawText(QString fileName, QString text,double x, double y, double height, double rotation, int colour)
+{
+    if (!fileName.isEmpty()) {
+        QFile file(fileName);
+        if (!file.open(QFile::Append)) {
+            // error message
+            QMessageBox errorFileOpen;
+            errorFileOpen.setText("Error: File "+fileName+" was not written correctly.");
+            errorFileOpen.setInformativeText("Close all Files and Re-Run");
+            errorFileOpen.exec();
+        } else {
+            QTextStream To_Dxf(&file);
+            // Draw the circle
+            To_Dxf << 0         << "\r\n";
+            To_Dxf << "TEXT"    << "\r\n";
+            To_Dxf << 8         << "\r\n";
+            To_Dxf << 0         << "\r\n";    // Layer number (default layer in autocad)
+            To_Dxf << 62        << "\r\n";
+            To_Dxf << colour    << "\r\n";    // Colour Code
+            To_Dxf << 10        << "\r\n";    // XYZ
+            To_Dxf << x         << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 20        << "\r\n";
+            To_Dxf << y         << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 30        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 40        << "\r\n";
+            To_Dxf << height    << "\r\n";    // Text Height
+            To_Dxf << 1         << "\r\n";
+            To_Dxf << text      << "\r\n";    // Text Value
+            To_Dxf << 50        << "\r\n";
+            To_Dxf << rotation  << "\r\n";    // Text Rotation
+            file.close();
+        }
+    }
+}
+
+/* draw aligned text in DXF Format */
+void Createdxf::drawTextAligned(QString fileName, QString text,double x, double y, double height, double rotation, double oblique,int hAlign, int vAlign, double xAlign,int colour,
+                            float scale)
+{
+    if (!fileName.isEmpty()) {
+        QFile file(fileName);
+        if (!file.open(QFile::Append)) {
+            // error message
+            QMessageBox errorFileOpen;
+            errorFileOpen.setText("Error: File "+fileName+" was not written correctly.");
+            errorFileOpen.setInformativeText("Close all Files and Re-Run");
+            errorFileOpen.exec();
+        } else {
+            QTextStream To_Dxf(&file);
+            // Draw the circle
+            To_Dxf << 0         << "\r\n";
+            To_Dxf << "TEXT"    << "\r\n";
+            To_Dxf << 8         << "\r\n";
+            To_Dxf << 0         << "\r\n";    // Layer number (default layer in autocad)
+            To_Dxf << 62        << "\r\n";
+            To_Dxf << colour    << "\r\n";    // Colour Code
+            To_Dxf << 10        << "\r\n";    // XYZ
+            To_Dxf << x         << "\r\n";    // X in UCS (User Coordinate System)coordinates
+            To_Dxf << 20        << "\r\n";
+            To_Dxf << y         << "\r\n";    // Y in UCS (User Coordinate System)coordinates
+            To_Dxf << 30        << "\r\n";
+            To_Dxf << 0.0       << "\r\n";    // Z in UCS (User Coordinate System)coordinates
+            To_Dxf << 40        << "\r\n";
+            To_Dxf << height    << "\r\n";    // Text Height
+            To_Dxf << 1         << "\r\n";
+            To_Dxf << text      << "\r\n";    // Text Value
+            To_Dxf << 50        << "\r\n";
+            To_Dxf << rotation  << "\r\n";    // Text Rotation
+            To_Dxf << 51        << "\r\n";
+            To_Dxf << oblique   << "\r\n";    // Text Obliqueness
+            To_Dxf << 72        << "\r\n";
+
+            // If "Fit to width", then check if width of text < width specified then change it "center align"
+            if (hAlign == 5) {
+                int xDiff = xAlign - x;
+                if (text.length() < xDiff/height) {
+                    hAlign = 1;
+                    xAlign = (x+xAlign) / 2;
+                }
+            }
+
+            To_Dxf << hAlign    << "\r\n";    // Text Horizontal Alignment
+            To_Dxf << 73        << "\r\n";
+            To_Dxf << vAlign    << "\r\n";    // Text Vertical Alignment
+
+            if ((hAlign) || (vAlign)) { // Enter Second Point
+                To_Dxf << 11       << "\r\n"; // XYZ
+                To_Dxf << xAlign   << "\r\n"; // X in UCS (User Coordinate System)coordinates
+                To_Dxf << 21       << "\r\n";
+                To_Dxf << y        << "\r\n"; // Y in UCS (User Coordinate System)coordinates
+                To_Dxf << 31       << "\r\n";
+                To_Dxf << 0.0      << "\r\n"; // Z in UCS (User Coordinate System)coordinates
+            }
+            file.close();
+        }
+    }
+}

Added: trunk/sources/createdxf.h
===================================================================
--- trunk/sources/createdxf.h	                        (rev 0)
+++ trunk/sources/createdxf.h	2014-01-08 16:55:16 UTC (rev 2718)
@@ -0,0 +1,32 @@
+#ifndef CREATEDXF_H
+#define CREATEDXF_H
+#include <QString>
+#include <QtCore>
+#include <QtGui>
+
+
+/* This class exports the project to DXF Format */
+class Createdxf
+{    
+    public:
+    Createdxf();
+    ~Createdxf();
+	static void dxfBegin (QString);
+	static void dxfEnd(QString);
+    // you can add more functions to create more drawings.
+	static void drawCircle(QString,double,double,double,int);
+	static void drawArc(QString,double x,double y,double rad,double startAngle,double endAngle,int color);
+	static void drawDonut(QString,double,double,double,int);
+	static void drawRectangle(QString,double,double,double,double,int);
+	static void drawLine(QString,double,double,double,double,int);
+	static void drawText(QString,QString,double,double,double,double,int);
+	static void drawTextAligned(QString fileName, QString text,double x, double y, double height, double rotation, double oblique,int hAlign, int vAlign, double xAlign, int colour,
+                     float scale = 0);
+
+	static const double sheetWidth;
+	static const double sheetHeight;
+	static double		xScale;
+	static double		yScale;
+};
+
+#endif // CREATEDXF_H

Modified: trunk/sources/exportdialog.cpp
===================================================================
--- trunk/sources/exportdialog.cpp	2014-01-08 13:49:55 UTC (rev 2717)
+++ trunk/sources/exportdialog.cpp	2014-01-08 16:55:16 UTC (rev 2718)
@@ -22,6 +22,16 @@
 #include "qetmessagebox.h"
 #include "exportpropertieswidget.h"
 #include "qetdiagrameditor.h"
+#include "createdxf.h"
+#include "conductorsegment.h"
+#include "qetgraphicsitem/conductor.h"
+#include "qetgraphicsitem/diagramtextitem.h"
+#include "qetgraphicsitem/conductortextitem.h"
+#include "qetgraphicsitem/customelement.h"
+#include "qetgraphicsitem/elementtextitem.h"
+#include "qetgraphicsitem/ghostelement.h"
+#include "qetgraphicsitem/independenttextitem.h"
+#include "qetgraphicsitem/diagramimageitem.h"
 
 /**
 	Constructeur
@@ -351,6 +361,108 @@
 }
 
 /**
+	Exporte le schema en DXF
+	@param diagram Schema a exporter en DXF
+	@param width  Largeur de l'export DXF
+	@param height Hauteur de l'export DXF
+	@param keep_aspect_ratio True pour conserver le ratio, false sinon
+	@param io_device Peripherique de sortie pour le code DXF (souvent : un fichier)
+*/
+void ExportDialog::generateDxf(Diagram *diagram, int width, int height, bool keep_aspect_ratio, QString &file_path) {
+
+	project_ -> setFilePath(file_path);
+
+	width  -= 2*Diagram::margin;
+	height -= 2*Diagram::margin;
+
+	Createdxf::xScale = Createdxf::sheetWidth  / double(width);
+	Createdxf::yScale = Createdxf::sheetHeight / double(height);
+
+	Createdxf::dxfBegin(file_path);
+
+	//Add project elements (lines, rectangles, circles, texts) to dxf file
+	Createdxf::drawRectangle(file_path, 0, 0, double(width)*Createdxf::xScale, double(height)*Createdxf::yScale, 0);
+	diagram -> border_and_titleblock.drawDxf(width, height, keep_aspect_ratio, file_path, 0);
+
+	// Build the lists of elements.
+	QList<Element *> list_elements;
+	QList<Conductor *> list_conductors;
+	QList<DiagramTextItem *> list_texts;
+	QList<DiagramImageItem *> list_images;
+
+	// Determine les elements a "XMLiser"
+	foreach(QGraphicsItem *qgi, diagram -> items()) {
+		if (Element *elmt = qgraphicsitem_cast<Element *>(qgi)) {
+			list_elements << elmt;
+		} else if (Conductor *f = qgraphicsitem_cast<Conductor *>(qgi)) {
+			list_conductors << f;
+		} else if (IndependentTextItem *iti = qgraphicsitem_cast<IndependentTextItem *>(qgi)) {
+			list_texts << iti;
+		} else if (DiagramImageItem *dii = qgraphicsitem_cast<DiagramImageItem *>(qgi)) {
+			list_images << dii;
+		}
+	}
+
+	//Draw elements
+	foreach(Element *elmt, list_elements) {
+
+		qreal hot_spot_x = elmt -> pos().x();// + elmt -> hotspot().x();
+		qreal hot_spot_y = elmt -> pos().y();// + elmt -> hotspot().y();
+
+		QList<ElementTextItem *> elmt_text = elmt -> texts();
+		foreach(ElementTextItem *dti, elmt_text) {
+			qreal fontSize = dti -> font().pointSizeF();
+			if (fontSize < 0)
+				fontSize = dti -> font().pixelSize();
+			fontSize *= Createdxf::yScale;
+			qreal x = hot_spot_x + dti -> pos().x();
+			x *= Createdxf::xScale;
+			qreal y = hot_spot_y + dti -> pos().y();
+			y = Createdxf::sheetHeight - (y * Createdxf::yScale) - fontSize*1.05;
+			Createdxf::drawText(file_path, dti -> toPlainText(), x, y, fontSize, dti -> rotationAngle(), 0 );
+		}
+	}
+
+	//Draw conductors
+	foreach(Conductor *cond, list_conductors) {
+		foreach(ConductorSegment *segment, cond -> segmentsList()) {
+			qreal x1 = (segment -> firstPoint().x()) * Createdxf::xScale;
+			qreal y1 = Createdxf::sheetHeight - (segment -> firstPoint().y() * Createdxf::yScale);
+			qreal x2 = (segment -> secondPoint().x()) * Createdxf::xScale;
+			qreal y2 = Createdxf::sheetHeight - (segment -> secondPoint().y() * Createdxf::yScale);
+			Createdxf::drawLine(file_path, x1, y1, x2, y2, 0);
+		}
+		//Draw conductor text item
+		ConductorTextItem *textItem = cond -> textItem();
+		if (textItem) {
+			qreal fontSize = textItem -> font().pointSizeF();
+			if (fontSize < 0)
+				fontSize = textItem -> font().pixelSize();
+			fontSize *= Createdxf::yScale;
+			qreal x = (textItem -> pos().x()) * Createdxf::xScale;
+			qreal y = Createdxf::sheetHeight - (textItem -> pos().y() * Createdxf::yScale) - fontSize*1.05;
+			Createdxf::drawText(file_path, textItem -> toPlainText(), x, y, fontSize, textItem -> rotationAngle(), 0 );
+		}
+	}
+
+	//Draw text items
+	foreach(DiagramTextItem *dti, list_texts) {
+		qreal fontSize = dti -> font().pointSizeF();
+		if (fontSize < 0)
+			fontSize = dti -> font().pixelSize();
+		fontSize *= Createdxf::yScale;
+		qreal x = (dti -> pos().x()) * Createdxf::xScale;
+		qreal y = Createdxf::sheetHeight - (dti -> pos().y() * Createdxf::yScale) - fontSize*1.05;
+		Createdxf::drawText(file_path, dti -> toPlainText(), x, y, fontSize, dti -> rotationAngle(), 0 );
+	}
+
+
+	Createdxf::dxfEnd(file_path);
+}
+
+
+
+/**
 	Slot effectuant les exports apres la validation du dialogue.
 */
 void ExportDialog::slot_export() {
@@ -456,6 +568,14 @@
 			diagram_line -> keep_ratio -> isChecked(),
 			target_file
 		);
+	} else if (format_acronym == "DXF") {
+		generateDxf(
+			diagram_line -> diagram,
+			diagram_line -> width  -> value(),
+			diagram_line -> height -> value(),
+			diagram_line -> keep_ratio -> isChecked(),
+			diagram_path
+		);
 	} else {
 		QImage image = generateImage(
 			diagram_line -> diagram,

Modified: trunk/sources/exportdialog.h
===================================================================
--- trunk/sources/exportdialog.h	2014-01-08 13:49:55 UTC (rev 2717)
+++ trunk/sources/exportdialog.h	2014-01-08 16:55:16 UTC (rev 2718)
@@ -84,6 +84,7 @@
 	QWidget *initDiagramsListPart();
 	void saveReloadDiagramParameters(Diagram *, bool = true);
 	void generateSvg(Diagram *, int, int, bool, QIODevice &);
+	void generateDxf(Diagram *, int, int, bool, QString &);
 	QImage generateImage(Diagram *, int, int, bool);
 	void exportDiagram(ExportDiagramLine *);
 	qreal diagramRatio(Diagram *);

Modified: trunk/sources/exportpropertieswidget.cpp
===================================================================
--- trunk/sources/exportpropertieswidget.cpp	2014-01-08 13:49:55 UTC (rev 2717)
+++ trunk/sources/exportpropertieswidget.cpp	2014-01-08 16:55:16 UTC (rev 2718)
@@ -143,6 +143,7 @@
 	format -> addItem(tr("JPEG (*.jpg)"),   "JPG");
 	format -> addItem(tr("Bitmap (*.bmp)"), "BMP");
 	format -> addItem(tr("SVG (*.svg)"),    "SVG");
+	format -> addItem(tr("DXF (*.dxf)"),    "DXF");
 	hboxLayout1 -> addStretch();
 	
 	vboxLayout -> addLayout(hboxLayout1);

Modified: trunk/sources/titleblocktemplate.cpp
===================================================================
--- trunk/sources/titleblocktemplate.cpp	2014-01-08 13:49:55 UTC (rev 2717)
+++ trunk/sources/titleblocktemplate.cpp	2014-01-08 16:55:16 UTC (rev 2718)
@@ -19,6 +19,7 @@
 #include "qet.h"
 #include "qetapp.h"
 #include "nameslist.h"
+#include "createdxf.h"
 // uncomment the line below to get more debug information
 //#define TITLEBLOCK_TEMPLATE_DEBUG
 
@@ -1258,6 +1259,55 @@
 }
 
 /**
+	Render the titleblock in DXF.
+	@param diagram_context Diagram context to use to generate the titleblock strings
+	@param titleblock_width Width of the titleblock to render
+*/
+void TitleBlockTemplate::renderDxf(QRectF &title_block_rect, const DiagramContext &diagram_context,
+								   int titleblock_width, QString &file_path, int color) const {
+	QList<int> widths = columnsWidth(titleblock_width);
+
+	// draw the titleblock border
+	double xCoord    = title_block_rect.topLeft().x();
+	double yCoord    = Createdxf::sheetHeight - title_block_rect.bottomLeft().y()*Createdxf::yScale;
+	double recWidth  = title_block_rect.width()  * Createdxf::xScale;
+	double recHeight = title_block_rect.height() * Createdxf::yScale;
+	Createdxf::drawRectangle(file_path, xCoord, yCoord, recWidth, recHeight, color);
+
+	// run through each individual cell
+	for (int j = 0 ; j < rows_heights_.count() ; ++ j) {
+		for (int i = 0 ; i < columns_width_.count() ; ++ i) {
+			if (cells_[i][j] -> spanner_cell || cells_[i][j] -> cell_type == TitleBlockCell::EmptyCell) continue;
+
+			// calculate the border rect of the current cell
+			double x = lengthRange(0, cells_[i][j] -> num_col, widths);
+			double y = lengthRange(0, cells_[i][j] -> num_row, rows_heights_);
+
+			int row_span = 0, col_span = 0;
+			if (cells_[i][j] -> span_state != TitleBlockCell::Disabled) {
+				row_span = cells_[i][j] -> applied_row_span;
+				col_span = cells_[i][j] -> applied_col_span;
+			}
+			double w = lengthRange(cells_[i][j] -> num_col, cells_[i][j] -> num_col + 1 + col_span, widths);
+			double h = lengthRange(cells_[i][j] -> num_row, cells_[i][j] -> num_row + 1 + row_span, rows_heights_);
+
+			x = xCoord + x*Createdxf::xScale;
+			h *= Createdxf::yScale;
+			y = yCoord + recHeight - h - y*Createdxf::yScale;
+			w *= Createdxf::xScale;
+
+			Createdxf::drawRectangle(file_path, x, y, w, h, color);
+			if (cells_[i][j] -> type() == TitleBlockCell::TextCell) {
+				QString final_text = finalTextForCell(*cells_[i][j], diagram_context);
+				renderTextCellDxf(file_path, final_text, *cells_[i][j], x, y, w, h, color);
+			}
+		}
+	}
+}
+
+
+
+/**
 	Render a titleblock cell.
 	@param painter Painter to use to render the titleblock
 	@param diagram_context Diagram context to use to generate the titleblock strings
@@ -1295,6 +1345,9 @@
 	painter.drawRect(cell_rect);
 }
 
+
+
+
 /**
 	@param cell A cell from this template
 	@param diagram_context Diagram context to use to generate the final text for the given cell
@@ -1389,6 +1442,65 @@
 	painter.drawText(cell_rect, cell.alignment, text);
 }
 
+
+void TitleBlockTemplate::renderTextCellDxf(QString &file_path, const QString &text,
+										   const TitleBlockCell &cell,
+										   qreal x, qreal y, qreal w, qreal h, int color) const {
+	if (text.isEmpty()) return;
+	QFont text_font = TitleBlockTemplate::fontForCell(cell);
+	double textHeight = text_font.pointSizeF();
+	if (textHeight < 0)
+		textHeight = text_font.pixelSize();
+
+	qreal x2 = x + w;
+
+	int vAlign = 0;
+	int hAlign = 0;
+	bool hALigned = false;
+
+	if ( cell.alignment & Qt::AlignRight ) {
+		hAlign = 2;
+		hALigned = true;
+	} else if ( cell.alignment & Qt::AlignHCenter ) {
+		hAlign = 1;
+		hALigned = true;
+		x2 = x + w/2;
+	} else if ( cell.alignment & Qt::AlignJustify ) {
+		hAlign = 5;
+		hALigned = true;
+	}
+
+	if ( cell.alignment & Qt::AlignTop ) {
+		vAlign = 3;
+		y += h - textHeight*Createdxf::yScale;
+		if (!hALigned)
+			x2 = x;
+	} else if ( cell.alignment & Qt::AlignVCenter ) {
+		vAlign = 2;
+		y += h/2;
+		if (!hALigned)
+			x2 = x;
+	} else if ( cell.alignment & Qt::AlignBottom ) {}
+
+
+	//painter.setFont(text_font);
+
+	if (cell.hadjust) {
+		QFontMetricsF font_metrics(text_font);
+		QRectF font_rect = font_metrics.boundingRect(QRect(-10000, -10000, 10000, 10000), cell.alignment, text);
+
+		if (font_rect.width()*Createdxf::xScale > w) {
+			qreal ratio = qreal(w) / qreal(font_rect.width()*Createdxf::xScale);
+			textHeight *= ratio;
+		}
+	}
+
+	Createdxf::drawTextAligned(file_path, text, x,
+							   y, textHeight*Createdxf::yScale, 0, 0, hAlign, vAlign, x2, color, 0);
+
+}
+
+
 /**
 	Set the spanner_cell attribute of every cell to 0.
 */

Modified: trunk/sources/titleblocktemplate.h
===================================================================
--- trunk/sources/titleblocktemplate.h	2014-01-08 13:49:55 UTC (rev 2717)
+++ trunk/sources/titleblocktemplate.h	2014-01-08 16:55:16 UTC (rev 2718)
@@ -97,6 +97,7 @@
 	QPixmap bitmapLogo(const QString &) const;
 	
 	void render(QPainter &, const DiagramContext &, int) const;
+	void renderDxf(QRectF &, const DiagramContext &, int, QString &, int) const;
 	void renderCell(QPainter &, const TitleBlockCell &, const DiagramContext &, const QRect &) const;
 	QString toString() const;
 	void applyCellSpans();
@@ -133,6 +134,7 @@
 	QString finalTextForCell(const TitleBlockCell &, const DiagramContext &) const;
 	QString interpreteVariables(const QString &, const DiagramContext &) const;
 	void renderTextCell(QPainter &, const QString &, const TitleBlockCell &, const QRectF &) const;
+	void renderTextCellDxf(QString &, const QString &, const TitleBlockCell &, qreal, qreal, qreal, qreal, int) const;
 	
 	// attributes
 	private:

Modified: trunk/sources/titleblocktemplaterenderer.cpp
===================================================================
--- trunk/sources/titleblocktemplaterenderer.cpp	2014-01-08 13:49:55 UTC (rev 2717)
+++ trunk/sources/titleblocktemplaterenderer.cpp	2014-01-08 16:55:16 UTC (rev 2718)
@@ -76,6 +76,12 @@
 	}
 }
 
+
+void TitleBlockTemplateRenderer::renderDxf(QRectF &title_block_rect, int titleblock_width, QString &file_path, int color) {
+	if (!titleblock_template_) return;
+	titleblock_template_ -> renderDxf(title_block_rect, context_, titleblock_width, file_path, color);
+}
+
 /**
 	Renders the titleblock to the internal QPicture
 	@param titleblock_width Width of the titleblock to render

Modified: trunk/sources/titleblocktemplaterenderer.h
===================================================================
--- trunk/sources/titleblocktemplaterenderer.h	2014-01-08 13:49:55 UTC (rev 2717)
+++ trunk/sources/titleblocktemplaterenderer.h	2014-01-08 16:55:16 UTC (rev 2718)
@@ -31,6 +31,7 @@
 	void setContext(const DiagramContext &context);
 	int height() const;
 	void render(QPainter *, int);
+	void renderDxf(QRectF &, int, QString &, int);
 	void invalidateRenderedTemplate();
 	void setUseCache(bool);
 	bool useCache() const;


Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/