QCAD
Open Source 2D CAD
Loading...
Searching...
No Matches
RDxfExporter.h
Go to the documentation of this file.
1
20#ifndef RDXFEXPORTER_H
21#define RDXFEXPORTER_H
22
23#include "dxf_global.h"
24
26#include "dxflib/src/dl_dxf.h"
27
28#include "RDxfServices.h"
29#include "RFileExporter.h"
30
31class RArc;
32class RArcEntity;
35class RCircleEntity;
37class RDocument;
38class REllipseEntity;
39class RHatchEntity;
40class RImageEntity;
41class RLeaderEntity;
42class RLineEntity;
43class RMessageHandler;
44class RPointEntity;
45class RPolylineEntity;
47class RRay;
48class RRayEntity;
49class RSolidEntity;
50class RSplineEntity;
51class RTraceEntity;
52class RTextEntity;
53class RTextBasedData;
55class RXLine;
56class RXLineEntity;
57
58
65public:
66 RDxfExporter(RDocument& document,
67 RMessageHandler* messageHandler = NULL,
68 RProgressHandler* progressHandler = NULL);
69 virtual ~RDxfExporter() {}
70
71 virtual QString getCorrectedFileName(const QString& fileName, const QString& nameFilter);
72
73 virtual bool exportFile(const QString& fileName, const QString& nameFilter, bool setFileName = true);
74
75 void writeVariables();
76 void writeLinetype(const RLinetypePattern& lt);
77 void writeLayer(const RLayer& l);
78 void writeBlock(const RBlock& b);
79
80 void writeEntity(RObject::Id id);
81 void writeEntity(const REntity& e);
82 void writePoint(const RPointEntity& p);
83 void writeLine(const RLineEntity& l);
84 void writeXLine(const RXLineEntity& l);
85 void writeRay(const RRayEntity& l);
86 void writeCircle(const RCircleEntity& c);
87 void writeArc(const RArcEntity& a);
88 void writeEllipse(const REllipseEntity& el);
89 void writePolyline(const RPolylineEntity& pl);
90 void writePolyline(const RPolyline& pl, bool plineGen);
91 void writeSpline(const RSplineEntity& sp);
92 DL_TextData getTextData(const RTextBasedData& t, const QString& styleName);
93 QString getStyleName(const RTextBasedEntity& t);
94 void writeText(const RTextEntity& t);
95 void writeAttribute(const RAttributeEntity& t);
96 void writeSimpleText(const RTextEntity& t);
97 void writeMText(const RTextEntity& t);
98 void writeDimension(const RDimensionEntity& d);
99 void writeLeader(const RLeaderEntity& l);
100 void writeHatch(const RHatchEntity& h);
101 void writeImage(const RImageEntity& img);
102 void writeSolid(const RSolidEntity& sol);
103 void writeTrace(const RTraceEntity& t);
104
105 void writeBlockReference(const RBlockReferenceEntity& br);
106
107 void writeImageDef(const RImageEntity& img);
108
109 virtual void exportPoint(const RPoint& point) {
110 // MSVC:
111 //Q_UNUSED(point)
112 }
113
114 virtual void exportArcSegment(const RArc& arc, bool allowForZeroLength = false) {
115 // MSVC:
116 //QQ_UNUSED(arc)
117 Q_UNUSED(allowForZeroLength)
118 }
119
120 virtual void exportLineSegment(const RLine& line, double angle = RNANDOUBLE) {
121 // MSVC:
122 //QQ_UNUSED(line)
123 Q_UNUSED(angle)
124 }
125
126 virtual void exportXLine(const RXLine& xLine) {
127 // MSVC:
128 //QQ_UNUSED(xLine)
129 }
130
131 virtual void exportRay(const RRay& ray) {
132 // MSVC:
133 //QQ_UNUSED(ray)
134 }
135
136 virtual void exportTriangle(const RTriangle& triangle) {
137 // MSVC:
138 //Q_UNUSED(triangle)
139 }
140
141 static QByteArray escapeUnicode(const QString& str);
142
143private:
144 DL_Attributes getEntityAttributes(const REntity& entity);
145 DL_StyleData getStyle(const RTextBasedEntity& entity);
146
147private:
153 // maps image entity IDs to handles:
156};
157
159
160#endif
#define RNANDOUBLE
Definition RMath.h:74
Q_DECLARE_METATYPE(RMath *)
Storing and passing around attributes.
Definition dl_attributes.h:41
Reading and writing of DXF files.
Definition dl_dxf.h:126
Implements functions defined in DL_Writer for writing low level DXF constructs to an ASCII format DXF...
Definition dl_writer_ascii.h:49
Definition RDebug.h:38
Arc entity.
Definition RArcEntity.h:38
Low-level mathematical representation of an arc.
Definition RArc.h:42
Attribute entity.
Definition RAttributeEntity.h:38
Represents a block definition in a drawing.
Definition RBlock.h:42
Block reference entity.
Definition RBlockReferenceEntity.h:38
Circle entity.
Definition RCircleEntity.h:38
Base class for dimension entity classes.
Definition RDimensionEntity.h:38
A graphics document contains and owns entities, layers, user coordinate systems, variables,...
Definition RDocument.h:78
Exporter for the DXF format, based on dxflib.
Definition RDxfExporter.h:64
int textStyleCounter
Definition RDxfExporter.h:151
QMap< int, int > imageHandles
Definition RDxfExporter.h:154
virtual void exportPoint(const RPoint &point)
Exports a point with the current attributes.
Definition RDxfExporter.h:109
bool minimalistic
Definition RDxfExporter.h:155
virtual ~RDxfExporter()
Definition RDxfExporter.h:69
QMap< int, QString > textStyles
Definition RDxfExporter.h:152
virtual void exportLineSegment(const RLine &line, double angle=RNANDOUBLE)
Exports a line segment (a line without pattern).
Definition RDxfExporter.h:120
virtual void exportRay(const RRay &ray)
Exports an infinite ray.
Definition RDxfExporter.h:131
DL_Dxf dxf
Definition RDxfExporter.h:148
virtual void exportArcSegment(const RArc &arc, bool allowForZeroLength=false)
Definition RDxfExporter.h:114
DL_Attributes attributes
Definition RDxfExporter.h:150
virtual void exportTriangle(const RTriangle &triangle)
Exports a triangle with the current attributes.
Definition RDxfExporter.h:136
virtual void exportXLine(const RXLine &xLine)
Exports an infinite line.
Definition RDxfExporter.h:126
DL_WriterA * dw
Definition RDxfExporter.h:149
Ellipse entity.
Definition REllipseEntity.h:38
Base class for all entity classes.
Definition REntity.h:63
Base class for file exporters.
Definition RFileExporter.h:42
virtual QString getCorrectedFileName(const QString &fileName, const QString &nameFilter)=0
Must be implemented by file exporters to correct the given file name if necessary (add extension base...
virtual bool exportFile(const QString &fileName, const QString &nameFilter, bool setFileName=true)=0
Must be implemented by file exporters to export the document into the given file.
Point entity.
Definition RHatchEntity.h:43
Point entity.
Definition RImageEntity.h:38
Represents a layer in a drawing.
Definition RLayer.h:45
Leader entity class.
Definition RLeaderEntity.h:38
Line entity.
Definition RLineEntity.h:38
Low-level mathematical representation of a line.
Definition RLine.h:41
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RLinetypePattern.h:42
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RMessageHandler.h:33
int Id
Definition RObject.h:69
Point entity.
Definition RPointEntity.h:38
Low-level mathematical representation of a point.
Definition RPoint.h:40
Polyline entity.
Definition RPolylineEntity.h:44
Low-level mathematical representation of an open polyline or closed polyline (= polygon).
Definition RPolyline.h:50
Copyright (c) 2011-2018 by Andrew Mustun.
Definition RProgressHandler.h:33
Infinite ray entity.
Definition RRayEntity.h:38
Low-level mathematical representation of a ray.
Definition RRay.h:41
Solid entity.
Definition RSolidEntity.h:38
Spline entity.
Definition RSplineEntity.h:42
Stores and manages all data that defines the geometry and appearance of a text based entity (text,...
Definition RTextBasedData.h:68
Text entity.
Definition RTextBasedEntity.h:38
Linear dimension entity class.
Definition RTextEntity.h:38
Trace entity.
Definition RTraceEntity.h:38
Low-level mathematical representation of a triangle.
Definition RTriangle.h:49
Infinite line entity.
Definition RXLineEntity.h:38
Low-level mathematical representation of an infinite line.
Definition RXLine.h:42
#define QCADDXF_EXPORT
Definition dxf_global.h:10
#define NULL
Definition opennurbs_system.h:256
Text style data.
Definition dl_entities.h:130
Text Data.
Definition dl_entities.h:800