QGIS API Documentation  3.11.0-Master (68611307d7)
Classes | Public Types | Public Member Functions | Static Public Member Functions | List of all members
QgsDxfExport Class Reference

#include <qgsdxfexport.h>

Classes

struct  DxfLayer
 Layers and optional attribute index to split into multiple layers using attribute value as layer name. More...
 

Public Types

enum  DxfPolylineFlag {
  Closed = 1, Curve = 2, Spline = 4, Is3DPolyline = 8,
  Is3DPolygonMesh = 16, PolygonMesh = 32, PolyfaceMesh = 64, ContinuousPattern = 128
}
 Flags for polylines. More...
 
enum  ExportResult { ExportResult::Success = 0, ExportResult::InvalidDeviceError, ExportResult::DeviceNotWritableError, ExportResult::EmptyExtentError }
 The result of an export as dxf operation. More...
 
enum  Flag { FlagNoMText = 1 << 1 }
 Export flags. More...
 
enum  HAlign : int {
  HAlign::HLeft = 0, HAlign::HCenter = 1, HAlign::HRight = 2, HAlign::HAligned = 3,
  HAlign::HMiddle = 4, HAlign::HFit = 5, HAlign::Undefined = 9999
}
 Horizontal alignments. More...
 
enum  SymbologyExport { NoSymbology = 0, FeatureSymbology, SymbolLayerSymbology }
 
enum  VAlign : int {
  VAlign::VBaseLine = 0, VAlign::VBottom = 1, VAlign::VMiddle = 2, VAlign::VTop = 3,
  VAlign::Undefined = 9999
}
 Vertical alignments. More...
 

Public Member Functions

 QgsDxfExport ()
 Constructor for QgsDxfExport. More...
 
 ~QgsDxfExport ()
 
void addLayers (const QList< QgsDxfExport::DxfLayer > &layers)
 Add layers to export. More...
 
void clipValueToMapUnitScale (double &value, const QgsMapUnitScale &scale, double pixelToMMFactor) const
 Clips value to scale minimum/maximum. More...
 
QgsCoordinateReferenceSystem destinationCrs () const
 Returns the destination CRS, or an invalid CRS if no reprojection will be done. More...
 
void drawLabel (const QString &layerId, QgsRenderContext &context, pal::LabelPosition *label, const QgsPalLayerSettings &settings)
 Output the label. More...
 
QgsRectangle extent () const
 Gets extent of area to export. More...
 
QgsDxfExport::Flags flags () const
 Returns the export flags. More...
 
bool force2d ()
 Retrieve whether the output should be forced to 2d. More...
 
QString layerName (const QString &id, const QgsFeature &f) const
 Gets layer name for feature. More...
 
QString layerName (QgsVectorLayer *vl) const
 Gets name for layer respecting the use layer title as layer name mode. More...
 
bool layerTitleAsName ()
 Retrieve whether layer title (where set) instead of name shall be use. More...
 
QgsUnitTypes::DistanceUnit mapUnits () const
 Retrieve map units. More...
 
void registerDxfLayer (const QString &layerId, QgsFeatureId fid, const QString &layer)
 Register name of layer for feature. More...
 
void setDestinationCrs (const QgsCoordinateReferenceSystem &crs)
 Set destination CRS. More...
 
void setExtent (const QgsRectangle &r)
 Set extent of area to export. More...
 
void setFlags (QgsDxfExport::Flags flags)
 Sets the export flags. More...
 
void setForce2d (bool force2d)
 Force 2d output (eg. More...
 
void setLayerTitleAsName (bool layerTitleAsName)
 Enable use of title (where set) instead of layer name, when attribute index of corresponding layer index is -1. More...
 
void setMapSettings (const QgsMapSettings &settings)
 Set map settings and assign layer name attributes. More...
 
void setSymbologyExport (QgsDxfExport::SymbologyExport e)
 Set symbology export mode. More...
 
void setSymbologyScale (double scale)
 Set reference scale for output. More...
 
QgsDxfExport::SymbologyExport symbologyExport () const
 Gets symbology export mode. More...
 
double symbologyScale () const
 Returns the reference scale for output. More...
 
void writeCircle (const QString &layer, const QColor &color, const QgsPoint &pt, double radius, const QString &lineStyleName, double width)
 Write circle (as polyline) More...
 
void writeDouble (double d)
 Write a floating point value. More...
 
void writeFilledCircle (const QString &layer, const QColor &color, const QgsPoint &pt, double radius)
 Write filled circle (as hatch) More...
 
void writeGroup (int code, int i)
 Write a tuple of group code and integer value. More...
 
void writeGroup (int code, double d)
 Write a group code with a floating point value. More...
 
void writeGroup (int code, const QString &s)
 Write a group code with a string value. More...
 
void writeGroup (int code, const QgsPoint &p)
 Write a group code with a point. More...
 
void writeGroup (const QColor &color, int exactMatch=62, int rgbCode=420, int transparencyCode=440)
 Write a group code with color value. More...
 
void writeGroupCode (int code)
 Write a group code. More...
 
int writeHandle (int code=5, int handle=0)
 Write a tuple of group code and a handle. More...
 
void writeInt (int i)
 Write an integer value. More...
 
void writeLine (const QgsPoint &pt1, const QgsPoint &pt2, const QString &layer, const QString &lineStyleName, const QColor &color, double width=-1)
 Write line (as a polyline) More...
 
void writeMText (const QString &layer, const QString &text, const QgsPoint &pt, double width, double angle, const QColor &color)
 Write mtext (MTEXT) More...
 
void writePoint (const QString &layer, const QColor &color, const QgsPoint &pt)
 Write point. More...
 
void writePolygon (const QgsRingSequence &polygon, const QString &layer, const QString &hatchPattern, const QColor &color)
 Draw dxf filled polygon (HATCH) More...
 
void writePolygon (const QgsCurvePolygon &polygon, const QString &layer, const QString &hatchPattern, const QColor &color)
 Draw dxf curved filled polygon (HATCH) More...
 
void writePolyline (const QgsPointSequence &line, const QString &layer, const QString &lineStyleName, const QColor &color, double width=-1)
 Draw dxf primitives (LWPOLYLINE) More...
 
void writePolyline (const QgsCurve &curve, const QString &layer, const QString &lineStyleName, const QColor &color, double width=-1)
 Draw dxf primitives (LWPOLYLINE) More...
 
void writeString (const QString &s)
 Write a string value. More...
 
void writeText (const QString &layer, const QString &text, const QgsPoint &pt, double size, double angle, const QColor &color, QgsDxfExport::HAlign hali=QgsDxfExport::HAlign::Undefined, QgsDxfExport::VAlign vali=QgsDxfExport::VAlign::Undefined)
 Write text (TEXT) More...
 
ExportResult writeToFile (QIODevice *d, const QString &codec)
 Export to a dxf file in the given encoding. More...
 

Static Public Member Functions

static int closestColorMatch (QRgb color)
 Gets DXF palette index of nearest entry for given color. More...
 
static QString dxfEncoding (const QString &name)
 Returns DXF encoding for Qt encoding. More...
 
static QString dxfLayerName (const QString &name)
 Returns cleaned layer name for use in DXF. More...
 
static QStringList encodings ()
 Returns list of available DXF encodings. More...
 
static double mapUnitScaleFactor (double scale, QgsUnitTypes::RenderUnit symbolUnits, QgsUnitTypes::DistanceUnit mapUnits, double mapUnitsPerPixel=1.0)
 Returns scale factor for conversion to map units. More...
 

Detailed Description

Definition at line 57 of file qgsdxfexport.h.

Member Enumeration Documentation

◆ DxfPolylineFlag

Flags for polylines.

Since
QGIS 3.12
Enumerator
Closed 

This is a closed polyline (or a polygon mesh closed in the M direction)

Curve 

Curve-fit vertices have been added.

Spline 
Is3DPolyline 

< Spline-fit vertices have been added

This is a 3D polyline

Is3DPolygonMesh 

This is a 3D polygon mesh.

PolygonMesh 

The polygon mesh is closed in the N direction.

PolyfaceMesh 

The polyline is a polyface mesh.

ContinuousPattern 

The linetype pattern is generated continuously around the vertices of this polyline.

Definition at line 151 of file qgsdxfexport.h.

◆ ExportResult

The result of an export as dxf operation.

Since
QGIS 3.10.1
Enumerator
Success 

Successful export.

InvalidDeviceError 

Invalid device error.

DeviceNotWritableError 

Device not writable error.

EmptyExtentError 

Empty extent, no extent given and no extent could be derived from layers.

Definition at line 114 of file qgsdxfexport.h.

◆ Flag

Export flags.

Enumerator
FlagNoMText 

Export text as TEXT elements. If not set, text will be exported as MTEXT elements.

Definition at line 103 of file qgsdxfexport.h.

◆ HAlign

enum QgsDxfExport::HAlign : int
strong

Horizontal alignments.

Enumerator
HLeft 

Left (0)

HCenter 

Centered (1)

HRight 

Right (2)

HAligned 

Aligned = (3) (if VAlign==0)

HMiddle 

Middle = (4) (if VAlign==0)

HFit 

Fit into point = (5) (if VAlign==0)

Undefined 

Undefined.

Definition at line 135 of file qgsdxfexport.h.

◆ SymbologyExport

Enumerator
NoSymbology 

Export only data.

FeatureSymbology 

Keeps the number of features and export symbology per feature (using the first symbol level)

SymbolLayerSymbology 

Exports one feature per symbol layer (considering symbol levels)

Definition at line 95 of file qgsdxfexport.h.

◆ VAlign

enum QgsDxfExport::VAlign : int
strong

Vertical alignments.

Enumerator
VBaseLine 

Top (0)

VBottom 

Bottom (1)

VMiddle 

Middle (2)

VTop 

Top (3)

Undefined 

Undefined.

Definition at line 125 of file qgsdxfexport.h.

Constructor & Destructor Documentation

◆ QgsDxfExport()

QgsDxfExport::QgsDxfExport ( )
default

Constructor for QgsDxfExport.

◆ ~QgsDxfExport()

QgsDxfExport::~QgsDxfExport ( )

Definition at line 66 of file qgsdxfexport.cpp.

Member Function Documentation

◆ addLayers()

void QgsDxfExport::addLayers ( const QList< QgsDxfExport::DxfLayer > &  layers)

Add layers to export.

Parameters
layerslist of layers and corresponding attribute indexes that determine the layer name (-1 for original layer name or title)
See also
setLayerTitleAsName

Definition at line 86 of file qgsdxfexport.cpp.

◆ clipValueToMapUnitScale()

void QgsDxfExport::clipValueToMapUnitScale ( double &  value,
const QgsMapUnitScale scale,
double  pixelToMMFactor 
) const

Clips value to scale minimum/maximum.

Parameters
valuethe value to clip
scalethe scale dependent minimum/maximum values
pixelToMMFactorpixels per mm

Definition at line 1831 of file qgsdxfexport.cpp.

◆ closestColorMatch()

int QgsDxfExport::closestColorMatch ( QRgb  color)
static

Gets DXF palette index of nearest entry for given color.

Parameters
color

Definition at line 1764 of file qgsdxfexport.cpp.

◆ destinationCrs()

QgsCoordinateReferenceSystem QgsDxfExport::destinationCrs ( ) const

Returns the destination CRS, or an invalid CRS if no reprojection will be done.

See also
setDestinationCrs()
Since
QGIS 3.0

Definition at line 2363 of file qgsdxfexport.cpp.

◆ drawLabel()

void QgsDxfExport::drawLabel ( const QString &  layerId,
QgsRenderContext context,
pal::LabelPosition label,
const QgsPalLayerSettings settings 
)

Output the label.

Parameters
layerIdid of the layer
contextrender context
labelposition of label
settingslabel settings
Note
not available in Python bindings

Definition at line 2202 of file qgsdxfexport.cpp.

◆ dxfEncoding()

QString QgsDxfExport::dxfEncoding ( const QString &  name)
static

Returns DXF encoding for Qt encoding.

Definition at line 2159 of file qgsdxfexport.cpp.

◆ dxfLayerName()

QString QgsDxfExport::dxfLayerName ( const QString &  name)
static

Returns cleaned layer name for use in DXF.

Definition at line 2099 of file qgsdxfexport.cpp.

◆ encodings()

QStringList QgsDxfExport::encodings ( )
static

Returns list of available DXF encodings.

Definition at line 2180 of file qgsdxfexport.cpp.

◆ extent()

QgsRectangle QgsDxfExport::extent ( ) const
inline

Gets extent of area to export.

Returns
area to export
See also
setExtent

Definition at line 267 of file qgsdxfexport.h.

◆ flags()

QgsDxfExport::Flags QgsDxfExport::flags ( ) const

Returns the export flags.

See also
setFlags()
Since
QGIS 3.0

Definition at line 81 of file qgsdxfexport.cpp.

◆ force2d()

bool QgsDxfExport::force2d ( )
inline

Retrieve whether the output should be forced to 2d.

Returns
flag
See also
setForce2d

Definition at line 296 of file qgsdxfexport.h.

◆ layerName() [1/2]

QString QgsDxfExport::layerName ( const QString &  id,
const QgsFeature f 
) const

Gets layer name for feature.

Parameters
idlayer id of layer
ffeature of layer
Returns
layer name for feature

Definition at line 2142 of file qgsdxfexport.cpp.

◆ layerName() [2/2]

QString QgsDxfExport::layerName ( QgsVectorLayer vl) const

Gets name for layer respecting the use layer title as layer name mode.

Parameters
vlthe vector layer
Returns
name of layer
See also
setLayerTitleAsName

Definition at line 2196 of file qgsdxfexport.cpp.

◆ layerTitleAsName()

bool QgsDxfExport::layerTitleAsName ( )
inline

Retrieve whether layer title (where set) instead of name shall be use.

Returns
flag
See also
setLayerTitleAsName

Definition at line 282 of file qgsdxfexport.h.

◆ mapUnits()

QgsUnitTypes::DistanceUnit QgsDxfExport::mapUnits ( ) const

Retrieve map units.

Returns
unit

Definition at line 246 of file qgsdxfexport.cpp.

◆ mapUnitScaleFactor()

double QgsDxfExport::mapUnitScaleFactor ( double  scale,
QgsUnitTypes::RenderUnit  symbolUnits,
QgsUnitTypes::DistanceUnit  mapUnits,
double  mapUnitsPerPixel = 1.0 
)
static

Returns scale factor for conversion to map units.

Parameters
scalethe map scale denominator
symbolUnitsthe symbol output units
mapUnitsthe map units
mapUnitsPerPixelMap units per pixel

Definition at line 1814 of file qgsdxfexport.cpp.

◆ registerDxfLayer()

void QgsDxfExport::registerDxfLayer ( const QString &  layerId,
QgsFeatureId  fid,
const QString &  layer 
)

Register name of layer for feature.

Parameters
layerIdid of layer
fidid of feature
layerdxf layer of feature

Definition at line 2349 of file qgsdxfexport.cpp.

◆ setDestinationCrs()

void QgsDxfExport::setDestinationCrs ( const QgsCoordinateReferenceSystem crs)

Set destination CRS.

See also
destinationCrs()
Since
QGIS 3.0

Definition at line 2357 of file qgsdxfexport.cpp.

◆ setExtent()

void QgsDxfExport::setExtent ( const QgsRectangle r)
inline

Set extent of area to export.

Parameters
rarea to export

Definition at line 260 of file qgsdxfexport.h.

◆ setFlags()

void QgsDxfExport::setFlags ( QgsDxfExport::Flags  flags)

Sets the export flags.

See also
flags()
Since
QGIS 3.0

Definition at line 76 of file qgsdxfexport.cpp.

◆ setForce2d()

void QgsDxfExport::setForce2d ( bool  force2d)
inline

Force 2d output (eg.

to support linewidth in polylines)

Parameters
force2dflag
See also
force2d

Definition at line 289 of file qgsdxfexport.h.

◆ setLayerTitleAsName()

void QgsDxfExport::setLayerTitleAsName ( bool  layerTitleAsName)
inline

Enable use of title (where set) instead of layer name, when attribute index of corresponding layer index is -1.

Parameters
layerTitleAsNameflag
See also
addLayers

Definition at line 275 of file qgsdxfexport.h.

◆ setMapSettings()

void QgsDxfExport::setMapSettings ( const QgsMapSettings settings)

Set map settings and assign layer name attributes.

Parameters
settingsmap settings to apply

Definition at line 71 of file qgsdxfexport.cpp.

◆ setSymbologyExport()

void QgsDxfExport::setSymbologyExport ( QgsDxfExport::SymbologyExport  e)
inline

Set symbology export mode.

Parameters
ethe mode

Definition at line 247 of file qgsdxfexport.h.

◆ setSymbologyScale()

void QgsDxfExport::setSymbologyScale ( double  scale)
inline

Set reference scale for output.

The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map.

See also
symbologyScale()
Since
QGIS 3.0

Definition at line 213 of file qgsdxfexport.h.

◆ symbologyExport()

QgsDxfExport::SymbologyExport QgsDxfExport::symbologyExport ( ) const
inline

Gets symbology export mode.

Returns
mode
See also
setSymbologyExport

Definition at line 254 of file qgsdxfexport.h.

◆ symbologyScale()

double QgsDxfExport::symbologyScale ( ) const
inline

Returns the reference scale for output.

The scale value indicates the scale denominator, e.g. 1000.0 for a 1:1000 map.

See also
setSymbologyScale()
Since
QGIS 3.0

Definition at line 221 of file qgsdxfexport.h.

◆ writeCircle()

void QgsDxfExport::writeCircle ( const QString &  layer,
const QColor &  color,
const QgsPoint pt,
double  radius,
const QString &  lineStyleName,
double  width 
)

Write circle (as polyline)

Note
available in Python bindings as writeCircleV2
Since
QGIS 2.15

Definition at line 1435 of file qgsdxfexport.cpp.

◆ writeDouble()

void QgsDxfExport::writeDouble ( double  d)

Write a floating point value.

Parameters
dfloating point value

Definition at line 167 of file qgsdxfexport.cpp.

◆ writeFilledCircle()

void QgsDxfExport::writeFilledCircle ( const QString &  layer,
const QColor &  color,
const QgsPoint pt,
double  radius 
)

Write filled circle (as hatch)

Note
available in Python bindings as writePointV2
Since
QGIS 2.15

Definition at line 1398 of file qgsdxfexport.cpp.

◆ writeGroup() [1/5]

void QgsDxfExport::writeGroup ( int  code,
int  i 
)

Write a tuple of group code and integer value.

Parameters
codegroup code
iinteger value
Note
available in Python bindings as writeGroupInt

Definition at line 102 of file qgsdxfexport.cpp.

◆ writeGroup() [2/5]

void QgsDxfExport::writeGroup ( int  code,
double  d 
)

Write a group code with a floating point value.

Parameters
codegroup code
dfloating point value
Note
available in Python bindings as writeGroupDouble

Definition at line 108 of file qgsdxfexport.cpp.

◆ writeGroup() [3/5]

void QgsDxfExport::writeGroup ( int  code,
const QString &  s 
)

Write a group code with a string value.

Parameters
codegroup code
sstring value

Definition at line 114 of file qgsdxfexport.cpp.

◆ writeGroup() [4/5]

void QgsDxfExport::writeGroup ( int  code,
const QgsPoint p 
)

Write a group code with a point.

Parameters
codegroup code
ppoint value
Note
available in Python bindings as writeGroupPointV2
Since
QGIS 2.15

Definition at line 120 of file qgsdxfexport.cpp.

◆ writeGroup() [5/5]

void QgsDxfExport::writeGroup ( const QColor &  color,
int  exactMatch = 62,
int  rgbCode = 420,
int  transparencyCode = 440 
)

Write a group code with color value.

Parameters
colorcolor
exactMatchgroup code to use if the color has an exact match in the dxf palette
rgbCodegroup code to use if the color doesn't have an exact match or has a transparency component
transparencyCodegroup code to use for transparency component
Note
available in Python bindings as writeGroupPoint

Definition at line 128 of file qgsdxfexport.cpp.

◆ writeGroupCode()

void QgsDxfExport::writeGroupCode ( int  code)

Write a group code.

Parameters
codegroup code value

Definition at line 157 of file qgsdxfexport.cpp.

◆ writeHandle()

int QgsDxfExport::writeHandle ( int  code = 5,
int  handle = 0 
)

Write a tuple of group code and a handle.

Parameters
codegroup code to use
handlehandle to use (0 generates a new handle)
Returns
the used handle

Definition at line 295 of file qgsdxfexport.cpp.

◆ writeInt()

void QgsDxfExport::writeInt ( int  i)

Write an integer value.

Parameters
iinteger value

Definition at line 162 of file qgsdxfexport.cpp.

◆ writeLine()

void QgsDxfExport::writeLine ( const QgsPoint pt1,
const QgsPoint pt2,
const QString &  layer,
const QString &  lineStyleName,
const QColor &  color,
double  width = -1 
)

Write line (as a polyline)

Since
QGIS 2.15

Definition at line 1258 of file qgsdxfexport.cpp.

◆ writeMText()

void QgsDxfExport::writeMText ( const QString &  layer,
const QString &  text,
const QgsPoint pt,
double  width,
double  angle,
const QColor &  color 
)

Write mtext (MTEXT)

Note
available in Python bindings as writeMTextV2
Since
QGIS 2.15

Definition at line 1483 of file qgsdxfexport.cpp.

◆ writePoint()

void QgsDxfExport::writePoint ( const QString &  layer,
const QColor &  color,
const QgsPoint pt 
)

Write point.

Note
available in Python bindings as writePointV2
Since
QGIS 2.15

Definition at line 1387 of file qgsdxfexport.cpp.

◆ writePolygon() [1/2]

void QgsDxfExport::writePolygon ( const QgsRingSequence polygon,
const QString &  layer,
const QString &  hatchPattern,
const QColor &  color 
)

Draw dxf filled polygon (HATCH)

Parameters
polygonpolygon
layerlayer name to use
hatchPatternhatchPattern to use
colorcolor to use
Note
not available in Python bindings
Since
QGIS 2.15

Definition at line 1158 of file qgsdxfexport.cpp.

◆ writePolygon() [2/2]

void QgsDxfExport::writePolygon ( const QgsCurvePolygon polygon,
const QString &  layer,
const QString &  hatchPattern,
const QColor &  color 
)

Draw dxf curved filled polygon (HATCH)

Parameters
polygonpolygon (including curves)
layerlayer name to use
hatchPatternhatchPattern to use
colorcolor to use
Note
not available in Python bindings
Since
QGIS 3.8

Definition at line 1197 of file qgsdxfexport.cpp.

◆ writePolyline() [1/2]

void QgsDxfExport::writePolyline ( const QgsPointSequence line,
const QString &  layer,
const QString &  lineStyleName,
const QColor &  color,
double  width = -1 
)

Draw dxf primitives (LWPOLYLINE)

Parameters
linepolyline
layerlayer name to use
lineStyleNameline type to use
colorcolor to use
widthline width to use
Note
not available in Python bindings
Since
QGIS 2.15

Definition at line 932 of file qgsdxfexport.cpp.

◆ writePolyline() [2/2]

void QgsDxfExport::writePolyline ( const QgsCurve curve,
const QString &  layer,
const QString &  lineStyleName,
const QColor &  color,
double  width = -1 
)

Draw dxf primitives (LWPOLYLINE)

Parameters
curvepolyline (including curved)
layerlayer name to use
lineStyleNameline type to use
colorcolor to use
widthline width to use
Note
not available in Python bindings
Since
QGIS 3.8

Definition at line 1070 of file qgsdxfexport.cpp.

◆ writeString()

void QgsDxfExport::writeString ( const QString &  s)

Write a string value.

Parameters
sstring value

Definition at line 175 of file qgsdxfexport.cpp.

◆ writeText()

void QgsDxfExport::writeText ( const QString &  layer,
const QString &  text,
const QgsPoint pt,
double  size,
double  angle,
const QColor &  color,
QgsDxfExport::HAlign  hali = QgsDxfExport::HAlign::Undefined,
QgsDxfExport::VAlign  vali = QgsDxfExport::VAlign::Undefined 
)

Write text (TEXT)

Note
available in Python bindings as writeTextV2
Since
QGIS 2.15

Definition at line 1457 of file qgsdxfexport.cpp.

◆ writeToFile()

QgsDxfExport::ExportResult QgsDxfExport::writeToFile ( QIODevice *  d,
const QString &  codec 
)

Export to a dxf file in the given encoding.

Parameters
ddevice
codecencoding
Returns
an ExportResult

Definition at line 180 of file qgsdxfexport.cpp.


The documentation for this class was generated from the following files: