Every QCAD Professional installation includes some command line tools. These command line tools can be used to batch convert CAD drawing files, extract information, generate map data or otherwise process CAD files in an automated fashion.
Contents
Platform Notes
Windows
Under Windows, these utilities are included as batch files (.bat) in the installation directory of QCAD.
macOS
Under macOS, you can find the utilities as shell scripts inside the application bundle under:
QCAD-Pro.app/Contents/Resources
Linux
Under Linux systems, the utilities are also included as shell scripts in the installation directory of QCAD.
dwginfo
(also dxfinfo)
dwginfo lists information from a DXF/DWG file. Currently, it can list all layers, blocks or the total number of entities in the file.
Usage: ./dwginfo [OPTION]... <drawing file> Exracts various information from a DXF/DWG file. -h, -help Display this help -b, -blocklist List all block names -l, -layerlist List all layer names -e, -entities Output number of entities in file macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwg2csv
(also dxf2csv)
dwg2csv extracts properties from DXF/DWG entities into a CSV spreadsheet file.
Usage: ./dwg2csv [OPTIONS]... <drawing file> Extracts information from a drawing file (DWG, DXF, ...) to CSV. -d, -decimals Number of decimal places for float value -f, -force Overwrite existing output file -l, -list List available entity types and their properties -o FILE, -outfile=FILE Set output file to FILE default is same path and base name as input file -p PROPERTY Extract given PROPERTY (e.g. 'Start Point:X') Multiple properties may be extracted Defaults to all properties of the given object type(s) -t OBJECT_TYPE Object or entity type (e.g. 'Line', 'Layer', ...) Defaults to all object type(s) macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwg2bmp
(also dwg2png, dwg2jpeg, dwg2tiff, dxf2png, dxf2jpeg, dxf2tiff, ...)
dwg2bmp converts a DXF or DWG file into a bitmap file. Supported output formats are: BMP, ICO, JPEG, PNG, PPM, TIFF, XBM, XPM.
The maximum number of bytes for the raw image data is 2'147'483'647 bytes. With four bytes per pixel (ARGB), the maximum size for the output file is 536'870'911 pixels, or for example 23'170x23'170 pixels.
Usage: ./dwg2bmp [OPTIONS]... <drawing file> Converts a drawing file (DWG, DXF, ...) to a bitmap file (BMP, PNG, ...). -a, -antialiasing Enable antialiasing -b, -background=C Set the background color as color name e.g. 'white' or '#ccdd00'. -block=BLOCK_NAME Name of block (or layout) to output (defaults to *Model_Space) -c, -color-correction Enable color correction to prevent white on white or black on black painting -d, -recompute-dim Recompute dimension blocks if empty (dimensions rendered with best compatibility) -f, -force Overwrite existing output file -flat Flatten to 2D (Z==0) -fs, -font-substitution FONT1 FONT2 Substitute FONT1 with FONT2 -h, -help Display this help -no-weight-margin Don't add additional margin to compensate for lineweight -k, -grayscale Grayscale -layer=LAYER_NAMES Comma-separated list of layer(s) to export List may include regular expressions -l, -list List supported formats -ltscale=FACTOR Set linetype scale to FACTOR -m, -margin=M Set auto zoom margin to M (in pixels) -n, -monochrome Monochrome (black / white) -o, -outfile=FILE Set output file to FILE Default is same path and base name as input file -q, -quality=Q Set the image quality / compression (0=best compression..100=best quality) -r, -resolution=R Set rendering resolution to R (in pixels/drawing unit) This overrides the width/height parameters. -u, -unit=[in|m|mm] Assume input data to be in given unit Default is the drawing unit Mainly useful for drawings with unit 'None' -w, -window=X,Y,W,H Zoom to given window -x, -width=W Set bitmap width to W (in pixels) -y, -height=H Set bitmap height to H (in pixels) The maximum size for width*height is 536870911 pixels -zoom-all Auto zoom to maximum extends of all layers -p, -origin Draw zero point (origin) macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
bmp2dwg
(also png2dwg, jpeg2dwg, tiff2dwg, png2dxf, jpeg2dxf, tiff2dxf, ...)
bmp2dwg traces the contours in a bitmap file and saves the resulting polylines as a DXF or DWG file. Supported input formats are: BMP, ICO, JPEG, PNG, PPM, TIFF, XBM, XPM.
Usage: ./bmp2dwg [OPTIONS]... <bitmap file> Traces a bitmap file (BMP, PNG, ...) and saves the result in a drawing file (DWG, DXF, ...). -a, -alpha=ALPHA Set alpha threshold to ALPHA, treat higher transparencies as fully transparent (default 200) -b, -blurdelta=DELTA Set blur delta to DELTA (default 200) -c, -colors=COLORS Set number of colors to COLORS (default 16) -f, -force Overwrite existing output file -h, -help Display this help -m, -monochrome Convert bitmap to monochrome before tracing -o, -outfile=FILE Set output file to FILE Default is same path and base name as input file -r, -release=RELEASE Set output DXF/DWG release to RELEASE -t, -brightness=B Set brightness threshold to B, treat brighter pixels as white (default 200) macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwg2svg
(also dxf2svg)
dwg2svg converts a DXF or DWG file into an SVG (Scalable Vector Graphics) file. The output file can be optimized to look exactly the same as the drawing file (default) or to transfer as much of the geometry across as possible (switch -g).
Usage: ./dwg2svg [OPTIONS]... <drawing file> Converts a drawing file (DWG, DXF, ...) file to an SVG file. -a, -adjust Adjust page size to include thickest line weight -b, -bottom=MB Set page margin at bottom to MB -block=BLOCK_NAME Name of block (or layout) to output (defaults to *Model_Space) -c, -circle=CR Export points as circles with radius CR -d, -recompute-dim Recompute dimension blocks if empty (dimensions rendered with best compatibility) -decimals=D Decimal places for float values (defaults to 4) -e, -equal-margins=M Set all page margins to M -l, -r, -t and -b are ignored -embed-images Embed images (bitmaps) -f, -force Overwrite existing output file -flat Flatten to 2D (Z==0) -fs, -font-substitution FONT1 FONT2 Substitute FONT1 with FONT2 -g, -preserve-geometry Preserve as much of the original geometry as possible Default is identical rendering -h, -help Display this help -i, -inkscape Generate additional information for Inkscape -l, -left=ML Set page margin at left to ML -layer=LAYER_NAMES Comma-separated list of layer(s) to export List may include regular expressions -layer-attribute Export layer attributes into QCAD SVG namespace -ltscale=FACTOR Set linetype scale to FACTOR -n, -no-comments Suppress comments for DXF entities -o, -outfile=FILE Set output file to FILE Default is same path and base name as input file -p, -open Open the converted file after conversion -u, -unit=[in|m|mm] Assume input data to be in given unit Default is the drawing unit Mainly useful for drawings with unit 'None' -r, -right=MR Set page margin at right to MR -s, -scale=SF Set scale factor to SF -t, -top=MT Set page margin at top to MT -w, -min-lineweight=LW Set minimum line weight to LW drawing units Defaults to 0.001 since 0 in SVG means invisible -no-text-transforms Don't use transformations for text entities -x, -cross=CS Export points as crosses with size CS macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui. Points: If neither -c nor -x is given, points are not exported. SVG Units: SVG only supports the following CAD units: mm, cm, in. - Unsupported Metric drawing units are converted to Millimeters. - Unsupported Imperial drawing units are converted to Inches. Use -s to scale and avoid large values. Margins: Margin values have to be specified in the (converted) SVG unit. Examples: Adjust page, set all margins to 1.5, export points as circles with radius 0.5: ./dwg2svg -a -e 1.5 -c 0.5 file.dwg Set scale factor to '1:200': ./dwg2svg -s 1:200 file.dwg
svg2dwg
(also svg2dxf)
svg2dwg converts an SVG (Scalable Vector Graphics) file into a DXF or DWG file. Only a limited set of SVG features are supported.
Usage: ./svg2dwg [OPTIONS]... <drawing file> Converts the given SVG file to DXF or DWG. -f, -force Overwrite existing output file -t, -filter=FILTER Use specified format filter e.g. DXF R15, DWG R27, etc. -h, -help Display this help -o, -output=FILE Set CAD output file to FILE macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwg2pdf
(also dxf2pdf)
dwg2pdf converts a DXF or DWG file into a PDF file.
Usage: ./dwg2pdf [OPTIONS]... <drawing file> Converts a drawing file (DWG, DXF, ...) to a PDF file. -a, -auto-fit Auto fit and center drawing to paper -auto-orientation Auto paper orientation (landscape or portrait) based on document bounding box -block=BLOCK_NAMES Comma-separated list of block(s) or layout(s) to export List may include regular expressions List defines order of export unless -block-sort is used A block may be exported more than once unless -block-unique is used -block-sort Sort blocks in natural order Layouts are sorted by tab order and exported before blocks Blocks are ordered alphanumerically -block-unique Export every matching block only once -c, -center Auto center drawing on paper -d, -recompute-dim Recompute dimension blocks if empty (dimensions rendered with best compatibility) -e, -papers List all supported paper size names -point-size=SIZE Set size of points in mm -f, -force Overwrite existing output file -flat Flatten to 2D (Z==0) -fs, -font-substitution FONT1 FONT2 Substitute FONT1 with FONT2 -h, -help Display this help -k, -grayscale Grayscale -l, -landscape Landscape (default is portrait) -layer=LAYER_NAMES Comma-separated list of layer(s) to export List may include regular expressions -list-printers List all available printers -ltscale=FACTOR Set linetype scale to FACTOR -m, -margin=M Set paper margins to M -n, -monochrome Monochrome (black / white) -o, -outfile=FILE Set output file to FILE default is same path and base name as input file -offset=X,Y Set offset to X,Y in drawing units ('3,4', '7/2,1/4', '0.5,-1.5', ...) -p, -paper=WxH Set paper size to W x H in mm or to named paper size ('A4', 'Letter', ...) -pdf-version=VER Specify PDF version to '1.4' (default) for PDF 1.4 '1.6' for PDF 1.6 'A' or 'A-1B' or 'A1B' for PDF/A-1B -printer=PRINTER Print directly to PRINTER or default printer if no printer given -rows=ROWS Set number of paper rows to ROWS -s, -scale=SCALE Set drawing scale to given scale ('1', '2', '0.5', '1:1', '1:5', '5:1', ...) -cols=COLS Set number of paper columns to COLS -u, -unit=[in|m|mm] Assume input data to be in given unit Default is the drawing unit Mainly useful for drawings with unit 'None' -w, -min-lineweight=LW Set minimum line weight on paper to LW Millimeter -max-lineweight=LW Set maximum line weight on paper to LW Millimeter macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwgmapconvert
(also dxfmapconvert)
dwgmapconvert converts a drawing from one map coordinate system (CRS) to another, for example from a local CRS to Web Mercator (EPSG:3857). Please refer also to our map tiles tutorial.
Usage: ./dwgmapconvert [OPTIONS]... <drawing file> Converts a drawing file (DWG, DXF, ...) from one CRS to another. Typically used to convert the coordinate system before running dwg2maptiles. -block=BLOCK_NAME Name of block (or layout) to output (defaults to *Model_Space) -crs-in=CRS Data is in given coordinate reference system (CRS *) -crs-out=CRS Transform to given coordinate reference system (CRS *) * CRS can be either of: - An object code such as 'EPSG:2056' - An object name such as 'LV95' - A WKT string ('PROJCS[...]') - A proj-string ('+proj=...') -crs-list List supported coordinate reference systems (CRS) -d, -recompute-dim Recompute dimension blocks if empty (dimensions rendered with best compatibility) -f, -force Overwrite existing output file -fs, -font-substitution FONT1 FONT2 Substitute FONT1 with FONT2 -h, -help Display this help -layer=LAYER_NAMES Comma-separated list of layer(s) to export List may include regular expressions -ltscale=FACTOR Set linetype scale to FACTOR -retain-texts Retain (don't segmentate) text labels Only the text position and height is transformed -segment-length=L Segmentate all entities with segment length L -simplify Simplify after segmentation -o, -outfile=FILE Set output file to FILE -r, -release=RELEASE Set output DXF/DWG release to RELEASE. Defaults to R27. -u, -unit=[in|m|mm] Assume input data to be in given unit Default is the drawing unit Mainly useful for drawings with unit 'None' macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwg2maptiles
(also dxf2maptiles)
dwg2maptiles fully automatically creates sets of tiles for use in online maps. The generated directory / file structure follows the well established standard of (z/x/y.png). The number of zoom levels (z) is adjustable. Such map tiles can be used to create interactive maps for the web, for example using leaflet.js. Please refer also to our map tiles tutorial.
Usage: ./dwg2maptiles [OPTIONS]... <drawing file> Converts a drawing file (DWG, DXF, ...) to a set of bitmap files (PNG, JPEG, ...) for use with online maps, e.g. leaflet.js. -a, -antialiasing Enable antialiasing -skip-empty Skip empty tiles -b, -background=C Set the background color as color name e.g. 'white', '#ccdd00' or 'transparent' -block=BLOCK_NAME Name of block (or layout) to output (defaults to *Model_Space) -c, -color-correction Enable color correction to prevent white on white or black on black painting -center=X,Y Set center of first tile to X,Y in drawing units -dry-run Don't write any tiles. -d, -recompute-dim Recompute dimension blocks if empty (dimensions rendered with best compatibility) -tile-markers Add tile markers (for testing, debugging) -e, -tile=ROW,COL Generate only tile at ROW,COL -f, -force Overwrite existing output file -flat Flatten to 2D (Z==0) -fs, -font-substitution FONT1 FONT2 Substitute FONT1 with FONT2 -h, -help Display this help -k, -grayscale Grayscale -layer=LAYER_NAMES Comma-separated list of layer(s) to export List may include regular expressions -l, -list List supported formats -ltscale=FACTOR Set linetype scale to FACTOR -m, -margin=M Set auto zoom margin to M (in percent) Default is 10% -tms Y=0 is at the bottom (typically used for TMS, default is Y=0 at the top for WMS) -n, -monochrome Monochrome (black / white) -o, -outdir=DIR Set output dir to DIR default is same path and base name as input file -hq-postfix=P Generate high-res tiles (512px) in addition to 256px tiles and use the given postfix for the high-res output files, e.g. '@2x' for '[email protected]' -q, -quality=Q Set the image quality / compression (0=best compression..100=best quality) -r, -resolution=R Set rendering resolution of first tile to R (in pixels/drawing unit) This overrides the width/height parameters -screen-lt Use screen based linetypes (thin, visible patterns) -s, -subsection=N,M Generate subsection N of M Examples: 1,4: generate first of four subsections 4,4: generate fourth of four subsections 7,8: generate seventh of eight subsections -t, -format File format (png, jpeg, gif) -u, -unit=[in|m|mm] Assume input data to be in given unit Default is the drawing unit Mainly useful for drawings with unit 'None' -x, -width=W Set bitmap width to W (in pixels) -y, -height=H Set bitmap height to H (in pixels) -y, -height=H Set bitmap height to H (in pixels) -x-offset=X X offset for fine tuning -y-offset=Y Y offset for fine tuning -opacity=O Make all tiles (semi-)transparent using the given opacity 0.0: transparent 1.0: opaque -p, -origin Draw zero point (origin) -web-mercator Input is in Web Mercator coordinates, from example from dwgmapconvert -z, -zoomlevels Number or range of zoom levels, defaults to 0-6 Examples: 5: zoom levels 0,1,2,3,4,5 3-5: zoom levels 3,4,5 1,3,5: zoom levels 1,3,5 3-3: zoom level 3 only macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwg2dwg / pdf2dwg
(also dxf2dxf, dwg2dxf, dxf2dwg, pdf2dxf)
dwg2dwg reads and writes DXF or DWG files and outputs DXF or DWG files. Several settings as well as the file format version can be changed. dwg2dwg can also convert vector data from PDF files to DXF or DWG.
Usage: ./dwg2dwg [OPTIONS]... <drawing file> Converts a drawing file (DWG, DXF) or PDF file to a drawing file (DWG, DXF) with a specified format release. -f, -force Overwrite existing output file -h, -help Display this help -l, -list List supported releases -n, -setdimfont=FONT Set the dimension font to the given font -o, -outfile=FILE Set output file to FILE Default is same path and base name as input file -r, -release=RELEASE Set output DXF/DWG release to RELEASE -s, -set=VARIABLE:VALUE Set the given known variable to the given value For example -s DIMASZ:2.5 DXF header variables that can be changed are (among others): DIMADEC: Angular dimension label precision (0-8) DIMASZ: Dimension arrow size DIMAUNIT: Angular dimension label format 0: decimal degrees 1: deg/min/sec 2: gradians 3: radians 4: surveyors DIMAZIN: Trailing zeroes for angular dimensions (0: on, 2: off) DIMDEC: Set linear dimension label precision (0-8) DIMDLI: Dimension line increment DIMEXE: Extension line extension DIMEXO: Extension line offset DIMGAP: Dimension line gap DIMLUNIT: Set linear dimension label format 1: scientific 2: decimal 3: engineering 4: architectural 5: fractional DIMTSZ: Dimension arch tick size (0 for arrow) DIMTXT: Dimension text height DIMZIN: Trailing zeroes (0: on, 8: off) -t, -substitute=FONT1:FONT2 Substitute FONT1 with FONT2 in all texts PDF import options: -noimages Don't import images from PDF -relpath Store images with relative path Note: relative images paths are not properly supported by the DXF/DWG format. Applications may or may not load images from relative paths. -noclipping Don't clip content to clipping areas -p, -page=PAGE Set page to import from PDF file macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwghatch
(also dxfhatch)
dwghatch creates a solid fill hatch entity using all closed paths in the given drawing file as boundary. Boundary loops contained in other boundary loops are considered to be islands.
Usage: ./dwghatch [OPTIONS]... <drawing file> Fill all fillable (closed) boundaries of the given drawing file (DXF, DWG) with a solid fill hatch. -f, -force Overwrite existing output file -h, -help Display this help -o FILE, -output=FILE Set CAD output file to FILE macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwghatcharea
(also dxfhatcharea)
dwghatcharea outputs the area of all hatches or solid fills of the given file per layer.
Usage: ./dwghatcharea [OPTIONS]... <drawing file> List the area of all hatches (or solid fills) of the given drawing file (DXF, DWG) per layer. The area of all entities on all blocks are considered. If hatch loops are intersecting, the result is not correct / not defined. -block=BLOCK_NAME Name of block (or layout) to process (defaults to *Model_Space) -f, -factor Linear factor applied to all lengths -flat Flatten to 2D (Z==0) -h, -help Display this help -layer=LAYER_NAMES Comma-separated list of layer(s) to process List may include regular expressions Defaults to all visible layers -s, -segment=LENGTH Segment length for curve segmentation. Shorter means slower but more precise. Defaults to 0.1 drawing units. macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwgexplode
(also dxfexplode)
dwgexplode explodes all complex entities in the drawing into simpler entities (points, lines, arcs and circles).
Usage: ./dwgexplode [OPTIONS]... <drawing file> Explodes blocks, ellipses, texts in the given drawing file (DXF, DWG). -f, -force Overwrite existing output file -t, -types=TYPES Comma separated list of entity types that should NOT be exploded any further Default is to explode everything into points, lines, arcs and circles -h, -help Display this help -o, -output=FILE Set CAD output file to FILE Examples: ./dwgexplode -t Text,Polyline -o out.dxf in.dxf Explodes everything except texts and polylines. Dimensions for example are exploded into lines, polylines (for the arrows) and a text label. macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
merge
merge is a powerful tool to merge multiple drawing files (DXF, DWG, ...) into one. Each drawing can be individually positioned, rotated, scaled and flipped horizontally or vertically. One of the parameters when calling merge is an XML file which defined what drawings are inserted and where, at what angle, etc.
The insert tag may be repeated to insert the same drawing multiple times with different parameters.
Usage: ./merge [OPTIONS]... <XML config file> Merges multiple drawing files (DWG, DXF, ...) into one. -f, -force Overwrite existing output file -h, -help Display this help -t TYPE, -type=TYPE Set file type to TYPE (e.g. R12...R27 or 2000...2013) -o FILE, -outfile=FILE Set output file to FILE default is same path and base name as input file macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui. XML format: <?xml version="1.0" encoding="UTF-8"?> <merge xmlns="http://qcad.org/merge/elements/1.0/" unit="Millimeter"> <item src="/file1.dxf"> <insert x="10" y="0" angle="30" flipx="false" flipy="false" /> </item> </merge>
bbox
bbox outputs the bounding box (minimum and maximum extends and size) of a drawing in the format:
Min: x/y
Max: x/y
Size: width/height
Usage: ./bbox <drawing file> Prints the minimum, maximum and size of the given drawing. -h, -help Display this help macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.
dwgnest (QCAD/CAM)
(also dxfnest)
dwgnest is the command line tool version of the QCAD/CAM nesting tool. dwgnest nests all parts on a given layer / set of layers into the sheets on a different layer / set of layers.
Usage: ./dwgnest [OPTIONS]... <drawing file> Nests parts on a layer to sheets on another layer in the given drawing file (DXF, DWG). -a, -alignment=ALIGN Alignment [0-7]: (first priority, second priority) 0: Left bottom 1: Left top 2: Right bottom 3: Right top 4: Bottom left 5: Bottom right 6: Top left 7: Top right Defaults to 0 -e, -strategy Strategy [0-1]: 0: Align 1: Hull Defaults to 0 -f, -force Overwrite existing output file -h, -help Display this help -i, -iterations=ITR Number of iterations to use Higher numbers yield better results but take longer Defaults to 100 -r, -rotations=ROT Use ROT rotations for parts Defaults to 4, meaning rotate by 0 degrees, 90 degrees, 180 degrees or 270 degrees -s, -sheets=LAYER_NAMES Comma-separated list of layer(s) containing sheets List may include regular expressions -m, -margin Margin (minimum distance between parts) Defaults to 0 -n, -sheet-margin=MARGIN Sheet margin (minimum distance between sheet and parts) Defaults to 0 -no-align Don't align parts with largest side to X axis -no-holes Don't use holes for part placement -o, -output=FILE Set CAD output file to FILE -p, -parts=LAYER_NAMES Comma-separated list of layer(s) containing parts List may include regular expressions -t, -tolerance=TOL Tolerance. Affects margins but not part or sheet quality Defaults to 0.1 -u, -multiplier=M Multiplier for all nested parts. Example: ./dwgnest -p Parts -s Sheets -o out.dxf in.dxf macOS specific options: -no-dock-icon Don't show icon in dock. This should only be used in combination with -no-gui.