7539 lines
509 KiB
Plaintext
7539 lines
509 KiB
Plaintext
This is LibreDWG.info, produced by makeinfo version 7.1 from
|
||
LibreDWG.texi.
|
||
|
||
This manual is for GNU LibreDWG (version 20c18f6f, 26 March 2024).
|
||
|
||
Copyright © 2010-2024 Free Software Foundation, Inc.
|
||
|
||
Permission is granted to copy, distribute and/or modify this
|
||
document under the terms of the GNU Free Documentation License,
|
||
Version 1.3 or any later version published by the Free Software
|
||
Foundation; with no Invariant Sections, with no Front-Cover Texts,
|
||
and with no Back-Cover Texts. A copy of the license is included in
|
||
the section entitled "GNU Free Documentation License".
|
||
|
||
All other trademarks, trade names or company names referenced herein
|
||
are used for identification purposes only and are the property of their
|
||
respective owners.
|
||
|
||
DWG is the native and proprietary file format for AutoCAD® and a
|
||
trademark of Autodesk, Inc. LibreDWG is neither associated with
|
||
Autodesk, nor with the Open Design Alliance.
|
||
INFO-DIR-SECTION Libraries
|
||
START-INFO-DIR-ENTRY
|
||
* LibreDWG: (LibreDWG). Free implementation of the DWG file format.
|
||
END-INFO-DIR-ENTRY
|
||
|
||
|
||
File: LibreDWG.info, Node: strings, Next: Other Formats, Prev: dynapi, Up: Functions
|
||
|
||
7.5 strings
|
||
===========
|
||
|
||
Internally the DWG consists of multiple different string formats, *note
|
||
Types::. The most important are ‘BITCODE_TV’ (i.e. ‘char*’) encoded
|
||
according to ‘dwg->header.codepage’, and ‘BITCODE_TU’ (i.e. ‘wchar_t’
|
||
on Windows, UCS-2).
|
||
|
||
Externally most functions get and set strings as UTF-8, as in DXF or
|
||
JSON.
|
||
|
||
Before r2007 DWG's the TV and T strings are encoded in its codepage,
|
||
and converted from and to their proper codepage to UTF-8 or \U+XXXX.
|
||
|
||
To encode unicode characters special \U+XXXX sequences are used, and
|
||
pre-r2007 DXF MIF \M+nXXXX sequences, where n is one of the asian
|
||
wide-character codepages 932 (Japanese), 950 (trad. Chinese), 949
|
||
(Korean Wansung), 1361 (Johab), and 936 (simplified Chinese).
|
||
|
||
On DWG's r2007 and later most strings (T and TU) are encoded in the
|
||
Microsoft specific two-byte UCS-2 Unicode encoding, without proper
|
||
support for surrogate pairs and the upper planes (i.e. emojis).
|
||
|
||
Fixed TF strings are not encoded and have a length stored also.
|
||
Normal strings are all zero-delimited. EED and XDATA strings do have a
|
||
length though, but have length limitations.
|
||
|
||
Strings in DXF and JSON also have quoting rules for special
|
||
characters, like \r, \n, \" and so on.
|
||
|
||
Transformations:
|
||
|
||
DWG to DWG: decode reads the T and TU strings in its natural format
|
||
into the field. encode translate it to TV or TU. encode needs
|
||
‘header.from_version’ and how it was read, from DWG or from an importer
|
||
(in_dxf or in_json) or the *note add api:: (DWG_OPTS_IN).
|
||
|
||
DXF/JSON to DWG: in_dxf/json keeps the T and TU strings as TV. encode
|
||
to <r2007 keeps it as TV, r2007+ translates it to TU. Unicode is encoded
|
||
as \U+XXXX. It sets DWG_OPTS_IN.
|
||
|
||
DWG to DXF/JSON: decode keeps the T and TU strings as TV or TU.
|
||
out_dxf/json translate them to TV or UTF-8 and quotes them via \U+XXXX.
|
||
|
||
add api to DWG/DXF: add reads strings as UTF-8, and encodes it from
|
||
UTF-8 to TV or TU. (TU not yet, as we don't encode r2004+ yet). add
|
||
sets DWG_OPTS_IN.
|
||
|
||
|
||
File: LibreDWG.info, Node: Other Formats, Prev: strings, Up: Functions
|
||
|
||
7.6 Other Formats
|
||
=================
|
||
|
||
* Menu:
|
||
|
||
* DXF:: Write and read ASCII DXF
|
||
* DXFB:: Write (and soon read) Binary DXF.
|
||
* JSON:: Write and read our own JSON serialization of the DWG
|
||
* GeoJSON:: See the GeoJSON spec
|
||
|
||
|
||
File: LibreDWG.info, Node: DXF, Next: DXFB, Up: Other Formats
|
||
|
||
7.6.1 DXF
|
||
---------
|
||
|
||
We can write ASCII DXF files in various versions, with much more data
|
||
than other free DWG libraries, but not as stable as the unfree Teigha
|
||
library yet. AutoCAD ® fails to import some of our files still (~10%
|
||
failure rate).
|
||
|
||
Options: ‘--minimal’ (see ‘dwg2dxf’ or ‘dwgread’) creates only a
|
||
short header with a ACADVER and HANDSEED element, and the entities,
|
||
without any subclass markers, reactors or handles.
|
||
|
||
Support for the different r1.x DXF format is not planned.
|
||
|
||
Reading DXF works for most objects. Converting a minimal DXF to DWG
|
||
may fail, and needs some fixes.
|
||
|
||
|
||
File: LibreDWG.info, Node: DXFB, Next: JSON, Prev: DXF, Up: Other Formats
|
||
|
||
7.6.2 DXFB
|
||
----------
|
||
|
||
We can almost write Binary DXF files in various versions.
|
||
|
||
Reading DXFB is under construction and un-tested.
|
||
|
||
|
||
File: LibreDWG.info, Node: JSON, Next: GeoJSON, Prev: DXFB, Up: Other Formats
|
||
|
||
7.6.3 JSON
|
||
----------
|
||
|
||
We write to and read back from our own JSON format, which is a readable
|
||
1:1 mapping of the DWG structures, and carries much more information
|
||
than the DXF format. The idea is to dump a DWG to JSON and filter/query
|
||
or postprocess it with more powerful JSON query tools such as jq
|
||
(<https://stedolan.github.io/jq/>), and optionally import it back in.
|
||
*Note dwgfilter: Programs. JSON is much better structured than DXF.
|
||
|
||
The current first level objects are all the section names, like
|
||
"HEADER", "CLASSES", "OBJECTS". For more see the specs.
|
||
|
||
Note that for the versions before R13 we convert all tables to table
|
||
control and record objects internally, so that we can use our iterators
|
||
needed for DXF support. This does not reflect the internal DWG
|
||
structure. *Note Tables::.
|
||
|
||
|
||
File: LibreDWG.info, Node: GeoJSON, Prev: JSON, Up: Other Formats
|
||
|
||
7.6.4 GeoJSON
|
||
-------------
|
||
|
||
‘dwgread’ supports writing to the GeoJSON format as specified at
|
||
<http://geojson.org/geojson-spec.html>. See ‘dwgread’ with the ‘--fmt
|
||
GeoJSON’ option.
|
||
|
||
We write in the RFC7946 format, the new GeoJSON format since 2016,
|
||
which means smaller, less precision, and normalized polygons with proper
|
||
right-hande rule orientation.
|
||
|
||
We write all coordinates as [x, y], not [y, x]. z-coordinates are
|
||
optional, and only written if not 0.0. Colors are either written as
|
||
palette index as integer if not 256 (ByLayer), or as TrueColor RGB hex
|
||
string values for all r2004+ DWG's.
|
||
|
||
Missing entities: No 3D entities, HATCH by definition. ELLIPSE,
|
||
polyline bulges would need segmention into line segments. MLINE,
|
||
SPLINE, MINSERT, SOLID, TRACE, RAY(?), XLINE(?)
|
||
|
||
Due to implementation quirks with ending commas in JSON, we mostly
|
||
add an empty dummy feature at the very end, with null properties and
|
||
null geometry.
|
||
|
||
|
||
File: LibreDWG.info, Node: Errors, Next: Programs, Prev: Functions, Up: Top
|
||
|
||
8 Errors
|
||
********
|
||
|
||
LibreDWG is mostly a library, and as such collects error codes from the
|
||
highest level function down to the lowest level functions. The error
|
||
codes are sorted by severity, and only if the error exceeds
|
||
DWG_ERR_CRITICAL, i.e. ‘DWG_ERR_CLASSESNOTFOUND’, processing is
|
||
stopped.
|
||
|
||
All error bitmasks are collected during read or write and returned at
|
||
the end.
|
||
|
||
‘DWG_ERR_WRONGCRC’
|
||
1
|
||
‘DWG_ERR_NOTYETSUPPORTED’
|
||
2
|
||
‘DWG_ERR_UNHANDLEDCLASS’
|
||
4
|
||
‘DWG_ERR_INVALIDTYPE’
|
||
8
|
||
‘DWG_ERR_INVALIDHANDLE’
|
||
16
|
||
‘DWG_ERR_INVALIDEED’
|
||
32
|
||
‘DWG_ERR_VALUEOUTOFBOUNDS’
|
||
64
|
||
‘DWG_ERR_CLASSESNOTFOUND’
|
||
128 = ‘DWG_ERR_CRITICAL’
|
||
‘DWG_ERR_SECTIONNOTFOUND’
|
||
256
|
||
‘DWG_ERR_PAGENOTFOUND’
|
||
512
|
||
‘DWG_ERR_INTERNALERROR’
|
||
1024
|
||
‘DWG_ERR_INVALIDDWG’
|
||
2048
|
||
‘DWG_ERR_IOERROR’
|
||
4096
|
||
‘DWG_ERR_OUTOFMEM’
|
||
8192
|
||
|
||
Additionally, verbose warning and error messages are printed to
|
||
stderr.
|
||
|
||
Unhandled class and Invalid type errors of objects are not severe. A
|
||
DWG format can store a serialization of many third party classes and
|
||
objects, and thus we will never be able read all possible types.
|
||
Unknown types are just stored as binary blob without any DXF codes.
|
||
|
||
|
||
File: LibreDWG.info, Node: Programs, Next: Bindings, Prev: Errors, Up: Top
|
||
|
||
9 Programs
|
||
**********
|
||
|
||
LibreDWG installs some binary programs to read or write DWG files.
|
||
|
||
‘dwgread’
|
||
|
||
This reads a DWG file, and optionally converts its content to some
|
||
output formats: JSON, Minimal JSON, GeoJSON, DXF, DXFB (i.e.
|
||
Binary DXF), SVG.
|
||
|
||
‘dwgread [OPTION]... DWGFILE’
|
||
|
||
Options:
|
||
|
||
-v[0-9], -verbose [0-9] verbosity
|
||
|
||
-O fmt, -format fmt fmt: JSON, DXF, DXFB, minJSON, GeoJSON.
|
||
|
||
More planned formats: YAML, XML/OGR, GPX, SVG, PS.
|
||
|
||
-o outfile, -file outfile also defines the output fmt. Default:
|
||
stdout
|
||
|
||
-help display this help and exit
|
||
|
||
-version output version information and exit
|
||
|
||
minJSON is minimized JSON, without whitespace.
|
||
|
||
‘dwgwrite’
|
||
|
||
Create a DWG from a given input file (*note DXF::, *note Binary
|
||
DXF: DXFB, *note JSON::), optionally via ‘--as=rNNNN’ as another
|
||
version. For now can only create r1.2-r2000 DWG files.
|
||
|
||
‘dxfwrite’
|
||
|
||
Create a DXF from a given input file (‘DWG’, *note DXF::, *note
|
||
Binary DXF: DXFB, *note JSON::), optionally via ‘--as=rNNNN’ as
|
||
another version. Experimental. Supports the same options as
|
||
‘dwg2dxf’.
|
||
|
||
‘dwg2dxf’
|
||
|
||
Converts DWG files to DXF, optionally via ‘--as=rNNNN’ as another
|
||
version, an earlier or later version, or via ‘-m’ or ‘--minimal’ as
|
||
a minimal DXF version, skipping most headers vars, classes, tables
|
||
and objects.
|
||
|
||
‘--binary’ as a binary DXF file, with full precision, under
|
||
construction.
|
||
|
||
The DXF files are created in the current directory and not
|
||
overwritten, unless the option ‘--overwrite’ or ‘-y’ is given.
|
||
|
||
‘dxf2dwg’
|
||
|
||
Converts DXF (or Binary DXF) files to DWG, optionally via
|
||
‘--as=rVER’ as another version, an earlier or later version.
|
||
|
||
The DWG files are created in the current directory and not
|
||
overwritten, unless the option ‘--overwrite’ or ‘-y’ is given.
|
||
|
||
This program is experimental and AutoCAD ® may fail to import it.
|
||
For now can only create r1.2-r2000 DWG. The default is writing as
|
||
r2000.
|
||
|
||
‘dwgrewrite’
|
||
|
||
Read and write the DWG, optionally via ‘--as=rNNNN’ as another
|
||
version, an earlier or later version. The default is writing as
|
||
r2000. For now can only create r1.2-r2000 DWG.
|
||
|
||
‘dwglayers’
|
||
|
||
Prints all layers in a DWG. With ‘-x’ or ‘--extnames’ prints the
|
||
extended displayed layer name with spaces, not the internally
|
||
stored old-style name with ‘_’ instead. Only relevant with old r13
|
||
and r14 DWGs, after that layers are always stored in the extended
|
||
format. With ‘-f’ or ‘--flags’ also the status of frown, on/off
|
||
and locked. With ‘--on’ only the visible layers, which are on and
|
||
not frozen.
|
||
|
||
You can get the same effect via this json filter:
|
||
dwgfilter '.OBJECTS[]' example.dwg | \
|
||
grep -A22 '"object": "LAYER"' | grep name
|
||
|
||
‘dwggrep’
|
||
|
||
Search regex pattern in all text values in a list of DWGs. dwggrep
|
||
uses PCRE.
|
||
|
||
With ‘-i’ searches case-insensitive. With ‘-c’ prints only the
|
||
count of found texts. With ‘-h’ or ‘--no-filename’ does not print
|
||
the filename. With ‘--type NAME’ search only NAME entities or
|
||
objects. With ‘--dxf NUM’ search only in DXF group NUM fields.
|
||
With ‘--text’ searches only TEXT-like entities: TEXT, MTEXT,
|
||
ATTRIB, ATTDEF.
|
||
|
||
‘dwgfilter’
|
||
|
||
Search and modify a single DWG file via ‘jq’, using the powerful JQ
|
||
query expression language on a temporary json file. See ‘man jq’.
|
||
|
||
With ‘-i’ replaces the DWG in-place. This only makes sense with an
|
||
JQ expression which changes values.
|
||
|
||
‘dwg2SVG’
|
||
|
||
Convert a DWG to a limited SVG. All paperspace or modelspace enties
|
||
of type: TEXT, LINE, CIRCLE, ARC, POLYLINE_2D, LWPOLYLINE, INSERT,
|
||
ELLIPSE (unrotated), SOLID, 3DFACE, RAY, XLINE.
|
||
|
||
With ‘-m’ or ‘--mspace’ all paper-space entities are ignored, and
|
||
only model-space is printed. The default is to print all
|
||
paper-space entities. But if there are none, print all model-space
|
||
entities instead.
|
||
|
||
Limitations: Many other graphical entities and some properties are
|
||
still missing.
|
||
|
||
‘dwg2ps’
|
||
|
||
Convert a DWG to a very limited Postscript file. All paperspace
|
||
and modelspace entities of type LINE, POLYLINE_2D, LWPOLYLINE, ARC
|
||
and CIRCLE.
|
||
|
||
This requires installation of pslib
|
||
<http://pslib.sourceforge.net/doc/pslib.html>.
|
||
|
||
Note that the graphical representation for PS and SVG output is
|
||
severely lacking, block references (insert entities) are not yet
|
||
exploded, UCS and paper space transformations per entity are not
|
||
yet done.
|
||
|
||
Planned is *dwgplot*, via GNU Plotutils
|
||
<https://www.gnu.org/software/plotutils/>, to replace ‘dwg2SVG’ and
|
||
‘dwg2ps’. This supports much more bitmap and vector formats.
|
||
|
||
There are also some more examples in the source distribution:
|
||
|
||
‘load_dwg’
|
||
loads a DWG and adds some entities.
|
||
|
||
‘dwg2svg2’
|
||
converts a DWG to SVG similar to ‘dwg2SVG’, but via the ‘dwg_api.h’
|
||
only. The graphical representation for PS and SVG output is
|
||
severely lacking, block references (insert entities) are not yet
|
||
exploded , UCS and paper space transformations per entity are not
|
||
yet done.
|
||
|
||
‘unknown’
|
||
lists the not yet reverse-engineered blobs from our examples files,
|
||
and is the framework to guess the field layout for these. It is
|
||
optionally using picat (<http://picat-lang.org/>) to solve some of
|
||
the field-packing problems.
|
||
|
||
‘dwgfuzz’
|
||
afl++ fuzzing frontend, to test and debug various fast
|
||
shared-memory options for afl-clang-fast, with the following
|
||
runtime options: ‘-indxf’, ‘-injson’, ‘-rw’, ‘-dwg’, ‘-dxf’,
|
||
‘-dxfb’, ‘-json’, ‘-geojson’. All other output formats, like BMP,
|
||
SVG, PS need to be fuzzed via their programs, which is the
|
||
recommended way. The now default and fastest method INMEM does not
|
||
need the 2nd file argument ‘@@’, the 2nd method STDIN neither.
|
||
|
||
See also <https://github.com/LibreDWG/libredwg-fuzz> for our
|
||
fuzzing setup to test new fuzzing campaigns automatically and find
|
||
regressions.
|
||
|
||
‘dwgadd’
|
||
is the easiest way to create DWG's (or DXF, JSON) from scratch or
|
||
add entities to an existing DWG. It accepts a very simple file with
|
||
commands to create entities or objects and set its properties. See
|
||
‘man 1 dwgadd’ and ‘man 5 dwgadd’.
|
||
|
||
|
||
File: LibreDWG.info, Node: Bindings, Next: Reference API, Prev: Programs, Up: Top
|
||
|
||
10 Bindings
|
||
***********
|
||
|
||
LibreDWG generates library bindings to python and perl5 via swig. These
|
||
can be quite huge, and it is recommended to use ‘ccache’. You can
|
||
easily add bindings to other swig-supported languages, like Go, C#,
|
||
ruby, php, D, lua, tcl, common lisp, ocaml, or others by yourself.
|
||
Patches accepted.
|
||
|
||
Bindings for gambas (which looks very close to VBA) are at GitHub
|
||
(https://github.com/LibreDWG/gambas3-bindings) and will soon be added to
|
||
gambas3 as gb.dwg component. This is in development and about 80%
|
||
finished.
|
||
|
||
|
||
File: LibreDWG.info, Node: Reference API, Next: Reporting bugs, Prev: Bindings, Up: Top
|
||
|
||
11 Reference API
|
||
****************
|
||
|
||
See the separate refman (https://www.gnu.org/software/libredwg/refman/)
|
||
manual (in pdf or html format, the pdf has ~1800 pages) for a detailed
|
||
API description, or see the relevant ‘dwg.h’, ‘dwg_api.h’ or the
|
||
‘*.spec’ files.
|
||
|
||
For reference you might also want to check the public DXF reference
|
||
manuals, the VBA object model and the ODA
|
||
‘OpenDesign_Specification_for_dwg_files.pdf’.
|
||
|
||
|
||
File: LibreDWG.info, Node: Reporting bugs, Next: GNU Free Documentation License, Prev: Reference API, Up: Top
|
||
|
||
12 Reporting bugs
|
||
*****************
|
||
|
||
To report bugs or suggest enhancements for GNU LibreDWG, please "submit
|
||
a bug" at Savannah (http://savannah.gnu.org/projects/libredwg) or send
|
||
electronic mail to <libredwg@gnu.org>. (If you use the web interface,
|
||
you don't need to also send email, since that is done automatically.)
|
||
Issues and pull requests at the github mirror
|
||
(https://github.com/LibreDWG/libredwg) are also accepted.
|
||
|
||
For bug reports, please include enough information for the
|
||
maintainers to reproduce the problem. Generally speaking, that means:
|
||
|
||
• The version numbers of LibreDWG and any other program(s) or
|
||
manual(s) involved.
|
||
• Hardware and operating system names and versions.
|
||
• The contents of any input files necessary to reproduce the bug.
|
||
• The expected behavior and/or output.
|
||
• A description of the problem and samples of any erroneous output.
|
||
• Options you gave to ‘configure’ other than specifying installation
|
||
directories.
|
||
• Anything else that you think would be helpful. Usually that's the
|
||
failing part of the object processed with ‘dwgread -v5’, but only
|
||
the failing part, not the whole output.
|
||
|
||
When in doubt whether something is needed or not, include it. It's
|
||
better to include too much than to leave out something important.
|
||
|
||
Patches are welcome; if possible, please make them with ‘git
|
||
format-patch’ and include ‘ChangeLog’ entries (*note (emacs)Change
|
||
Log::). Please follow the existing GNU coding conventions. For patches
|
||
longer than 15 lines we need your copyright assignment to the FSF clerk.
|
||
See ‘CONTRIBUTING’ in the source distribution.
|
||
|
||
|
||
File: LibreDWG.info, Node: GNU Free Documentation License, Next: Index, Prev: Reporting bugs, Up: Top
|
||
|
||
Appendix A GNU Free Documentation License
|
||
*****************************************
|
||
|
||
Version 1.3, 3 November 2008
|
||
|
||
Copyright © 2000, 2001, 2002, 2007, 2008 Free Software Foundation, Inc.
|
||
<http://fsf.org/>
|
||
|
||
Everyone is permitted to copy and distribute verbatim copies
|
||
of this license document, but changing it is not allowed.
|
||
|
||
0. PREAMBLE
|
||
|
||
The purpose of this License is to make a manual, textbook, or other
|
||
functional and useful document “free” in the sense of freedom: to
|
||
assure everyone the effective freedom to copy and redistribute it,
|
||
with or without modifying it, either commercially or
|
||
noncommercially. Secondarily, this License preserves for the
|
||
author and publisher a way to get credit for their work, while not
|
||
being considered responsible for modifications made by others.
|
||
|
||
This License is a kind of "copyleft", which means that derivative
|
||
works of the document must themselves be free in the same sense.
|
||
It complements the GNU General Public License, which is a copyleft
|
||
license designed for free software.
|
||
|
||
We have designed this License in order to use it for manuals for
|
||
free software, because free software needs free documentation: a
|
||
free program should come with manuals providing the same freedoms
|
||
that the software does. But this License is not limited to
|
||
software manuals; it can be used for any textual work, regardless
|
||
of subject matter or whether it is published as a printed book. We
|
||
recommend this License principally for works whose purpose is
|
||
instruction or reference.
|
||
|
||
1. APPLICABILITY AND DEFINITIONS
|
||
|
||
This License applies to any manual or other work, in any medium,
|
||
that contains a notice placed by the copyright holder saying it can
|
||
be distributed under the terms of this License. Such a notice
|
||
grants a world-wide, royalty-free license, unlimited in duration,
|
||
to use that work under the conditions stated herein. The
|
||
"Document", below, refers to any such manual or work. Any member
|
||
of the public is a licensee, and is addressed as "you". You accept
|
||
the license if you copy, modify or distribute the work in a way
|
||
requiring permission under copyright law.
|
||
|
||
A "Modified Version" of the Document means any work containing the
|
||
Document or a portion of it, either copied verbatim, or with
|
||
modifications and/or translated into another language.
|
||
|
||
A "Secondary Section" is a named appendix or a front-matter section
|
||
of the Document that deals exclusively with the relationship of the
|
||
publishers or authors of the Document to the Document's overall
|
||
subject (or to related matters) and contains nothing that could
|
||
fall directly within that overall subject. (Thus, if the Document
|
||
is in part a textbook of mathematics, a Secondary Section may not
|
||
explain any mathematics.) The relationship could be a matter of
|
||
historical connection with the subject or with related matters, or
|
||
of legal, commercial, philosophical, ethical or political position
|
||
regarding them.
|
||
|
||
The "Invariant Sections" are certain Secondary Sections whose
|
||
titles are designated, as being those of Invariant Sections, in the
|
||
notice that says that the Document is released under this License.
|
||
If a section does not fit the above definition of Secondary then it
|
||
is not allowed to be designated as Invariant. The Document may
|
||
contain zero Invariant Sections. If the Document does not identify
|
||
any Invariant Sections then there are none.
|
||
|
||
The "Cover Texts" are certain short passages of text that are
|
||
listed, as Front-Cover Texts or Back-Cover Texts, in the notice
|
||
that says that the Document is released under this License. A
|
||
Front-Cover Text may be at most 5 words, and a Back-Cover Text may
|
||
be at most 25 words.
|
||
|
||
A "Transparent" copy of the Document means a machine-readable copy,
|
||
represented in a format whose specification is available to the
|
||
general public, that is suitable for revising the document
|
||
straightforwardly with generic text editors or (for images composed
|
||
of pixels) generic paint programs or (for drawings) some widely
|
||
available drawing editor, and that is suitable for input to text
|
||
formatters or for automatic translation to a variety of formats
|
||
suitable for input to text formatters. A copy made in an otherwise
|
||
Transparent file format whose markup, or absence of markup, has
|
||
been arranged to thwart or discourage subsequent modification by
|
||
readers is not Transparent. An image format is not Transparent if
|
||
used for any substantial amount of text. A copy that is not
|
||
"Transparent" is called "Opaque".
|
||
|
||
Examples of suitable formats for Transparent copies include plain
|
||
ASCII without markup, Texinfo input format, LaTeX input format,
|
||
SGML or XML using a publicly available DTD, and standard-conforming
|
||
simple HTML, PostScript or PDF designed for human modification.
|
||
Examples of transparent image formats include PNG, XCF and JPG.
|
||
Opaque formats include proprietary formats that can be read and
|
||
edited only by proprietary word processors, SGML or XML for which
|
||
the DTD and/or processing tools are not generally available, and
|
||
the machine-generated HTML, PostScript or PDF produced by some word
|
||
processors for output purposes only.
|
||
|
||
The "Title Page" means, for a printed book, the title page itself,
|
||
plus such following pages as are needed to hold, legibly, the
|
||
material this License requires to appear in the title page. For
|
||
works in formats which do not have any title page as such, "Title
|
||
Page" means the text near the most prominent appearance of the
|
||
work's title, preceding the beginning of the body of the text.
|
||
|
||
The "publisher" means any person or entity that distributes copies
|
||
of the Document to the public.
|
||
|
||
A section "Entitled XYZ" means a named subunit of the Document
|
||
whose title either is precisely XYZ or contains XYZ in parentheses
|
||
following text that translates XYZ in another language. (Here XYZ
|
||
stands for a specific section name mentioned below, such as
|
||
"Acknowledgements", "Dedications", "Endorsements", or "History".)
|
||
To "Preserve the Title" of such a section when you modify the
|
||
Document means that it remains a section "Entitled XYZ" according
|
||
to this definition.
|
||
|
||
The Document may include Warranty Disclaimers next to the notice
|
||
which states that this License applies to the Document. These
|
||
Warranty Disclaimers are considered to be included by reference in
|
||
this License, but only as regards disclaiming warranties: any other
|
||
implication that these Warranty Disclaimers may have is void and
|
||
has no effect on the meaning of this License.
|
||
|
||
2. VERBATIM COPYING
|
||
|
||
You may copy and distribute the Document in any medium, either
|
||
commercially or noncommercially, provided that this License, the
|
||
copyright notices, and the license notice saying this License
|
||
applies to the Document are reproduced in all copies, and that you
|
||
add no other conditions whatsoever to those of this License. You
|
||
may not use technical measures to obstruct or control the reading
|
||
or further copying of the copies you make or distribute. However,
|
||
you may accept compensation in exchange for copies. If you
|
||
distribute a large enough number of copies you must also follow the
|
||
conditions in section 3.
|
||
|
||
You may also lend copies, under the same conditions stated above,
|
||
and you may publicly display copies.
|
||
|
||
3. COPYING IN QUANTITY
|
||
|
||
If you publish printed copies (or copies in media that commonly
|
||
have printed covers) of the Document, numbering more than 100, and
|
||
the Document's license notice requires Cover Texts, you must
|
||
enclose the copies in covers that carry, clearly and legibly, all
|
||
these Cover Texts: Front-Cover Texts on the front cover, and
|
||
Back-Cover Texts on the back cover. Both covers must also clearly
|
||
and legibly identify you as the publisher of these copies. The
|
||
front cover must present the full title with all words of the title
|
||
equally prominent and visible. You may add other material on the
|
||
covers in addition. Copying with changes limited to the covers, as
|
||
long as they preserve the title of the Document and satisfy these
|
||
conditions, can be treated as verbatim copying in other respects.
|
||
|
||
If the required texts for either cover are too voluminous to fit
|
||
legibly, you should put the first ones listed (as many as fit
|
||
reasonably) on the actual cover, and continue the rest onto
|
||
adjacent pages.
|
||
|
||
If you publish or distribute Opaque copies of the Document
|
||
numbering more than 100, you must either include a machine-readable
|
||
Transparent copy along with each Opaque copy, or state in or with
|
||
each Opaque copy a computer-network location from which the general
|
||
network-using public has access to download using public-standard
|
||
network protocols a complete Transparent copy of the Document, free
|
||
of added material. If you use the latter option, you must take
|
||
reasonably prudent steps, when you begin distribution of Opaque
|
||
copies in quantity, to ensure that this Transparent copy will
|
||
remain thus accessible at the stated location until at least one
|
||
year after the last time you distribute an Opaque copy (directly or
|
||
through your agents or retailers) of that edition to the public.
|
||
|
||
It is requested, but not required, that you contact the authors of
|
||
the Document well before redistributing any large number of copies,
|
||
to give them a chance to provide you with an updated version of the
|
||
Document.
|
||
|
||
4. MODIFICATIONS
|
||
|
||
You may copy and distribute a Modified Version of the Document
|
||
under the conditions of sections 2 and 3 above, provided that you
|
||
release the Modified Version under precisely this License, with the
|
||
Modified Version filling the role of the Document, thus licensing
|
||
distribution and modification of the Modified Version to whoever
|
||
possesses a copy of it. In addition, you must do these things in
|
||
the Modified Version:
|
||
|
||
A. Use in the Title Page (and on the covers, if any) a title
|
||
distinct from that of the Document, and from those of previous
|
||
versions (which should, if there were any, be listed in the
|
||
History section of the Document). You may use the same title
|
||
as a previous version if the original publisher of that
|
||
version gives permission.
|
||
|
||
B. List on the Title Page, as authors, one or more persons or
|
||
entities responsible for authorship of the modifications in
|
||
the Modified Version, together with at least five of the
|
||
principal authors of the Document (all of its principal
|
||
authors, if it has fewer than five), unless they release you
|
||
from this requirement.
|
||
|
||
C. State on the Title page the name of the publisher of the
|
||
Modified Version, as the publisher.
|
||
|
||
D. Preserve all the copyright notices of the Document.
|
||
|
||
E. Add an appropriate copyright notice for your modifications
|
||
adjacent to the other copyright notices.
|
||
|
||
F. Include, immediately after the copyright notices, a license
|
||
notice giving the public permission to use the Modified
|
||
Version under the terms of this License, in the form shown in
|
||
the Addendum below.
|
||
|
||
G. Preserve in that license notice the full lists of Invariant
|
||
Sections and required Cover Texts given in the Document's
|
||
license notice.
|
||
|
||
H. Include an unaltered copy of this License.
|
||
|
||
I. Preserve the section Entitled "History", Preserve its Title,
|
||
and add to it an item stating at least the title, year, new
|
||
authors, and publisher of the Modified Version as given on the
|
||
Title Page. If there is no section Entitled "History" in the
|
||
Document, create one stating the title, year, authors, and
|
||
publisher of the Document as given on its Title Page, then add
|
||
an item describing the Modified Version as stated in the
|
||
previous sentence.
|
||
|
||
J. Preserve the network location, if any, given in the Document
|
||
for public access to a Transparent copy of the Document, and
|
||
likewise the network locations given in the Document for
|
||
previous versions it was based on. These may be placed in the
|
||
"History" section. You may omit a network location for a work
|
||
that was published at least four years before the Document
|
||
itself, or if the original publisher of the version it refers
|
||
to gives permission.
|
||
|
||
K. For any section Entitled "Acknowledgements" or "Dedications",
|
||
Preserve the Title of the section, and preserve in the section
|
||
all the substance and tone of each of the contributor
|
||
acknowledgements and/or dedications given therein.
|
||
|
||
L. Preserve all the Invariant Sections of the Document, unaltered
|
||
in their text and in their titles. Section numbers or the
|
||
equivalent are not considered part of the section titles.
|
||
|
||
M. Delete any section Entitled "Endorsements". Such a section
|
||
may not be included in the Modified Version.
|
||
|
||
N. Do not retitle any existing section to be Entitled
|
||
"Endorsements" or to conflict in title with any Invariant
|
||
Section.
|
||
|
||
O. Preserve any Warranty Disclaimers.
|
||
|
||
If the Modified Version includes new front-matter sections or
|
||
appendices that qualify as Secondary Sections and contain no
|
||
material copied from the Document, you may at your option designate
|
||
some or all of these sections as invariant. To do this, add their
|
||
titles to the list of Invariant Sections in the Modified Version's
|
||
license notice. These titles must be distinct from any other
|
||
section titles.
|
||
|
||
You may add a section Entitled "Endorsements", provided it contains
|
||
nothing but endorsements of your Modified Version by various
|
||
parties--for example, statements of peer review or that the text
|
||
has been approved by an organization as the authoritative
|
||
definition of a standard.
|
||
|
||
You may add a passage of up to five words as a Front-Cover Text,
|
||
and a passage of up to 25 words as a Back-Cover Text, to the end of
|
||
the list of Cover Texts in the Modified Version. Only one passage
|
||
of Front-Cover Text and one of Back-Cover Text may be added by (or
|
||
through arrangements made by) any one entity. If the Document
|
||
already includes a cover text for the same cover, previously added
|
||
by you or by arrangement made by the same entity you are acting on
|
||
behalf of, you may not add another; but you may replace the old
|
||
one, on explicit permission from the previous publisher that added
|
||
the old one.
|
||
|
||
The author(s) and publisher(s) of the Document do not by this
|
||
License give permission to use their names for publicity for or to
|
||
assert or imply endorsement of any Modified Version.
|
||
|
||
5. COMBINING DOCUMENTS
|
||
|
||
You may combine the Document with other documents released under
|
||
this License, under the terms defined in section 4 above for
|
||
modified versions, provided that you include in the combination all
|
||
of the Invariant Sections of all of the original documents,
|
||
unmodified, and list them all as Invariant Sections of your
|
||
combined work in its license notice, and that you preserve all
|
||
their Warranty Disclaimers.
|
||
|
||
The combined work need only contain one copy of this License, and
|
||
multiple identical Invariant Sections may be replaced with a single
|
||
copy. If there are multiple Invariant Sections with the same name
|
||
but different contents, make the title of each such section unique
|
||
by adding at the end of it, in parentheses, the name of the
|
||
original author or publisher of that section if known, or else a
|
||
unique number. Make the same adjustment to the section titles in
|
||
the list of Invariant Sections in the license notice of the
|
||
combined work.
|
||
|
||
In the combination, you must combine any sections Entitled
|
||
"History" in the various original documents, forming one section
|
||
Entitled "History"; likewise combine any sections Entitled
|
||
"Acknowledgements", and any sections Entitled "Dedications". You
|
||
must delete all sections Entitled "Endorsements."
|
||
|
||
6. COLLECTIONS OF DOCUMENTS
|
||
|
||
You may make a collection consisting of the Document and other
|
||
documents released under this License, and replace the individual
|
||
copies of this License in the various documents with a single copy
|
||
that is included in the collection, provided that you follow the
|
||
rules of this License for verbatim copying of each of the documents
|
||
in all other respects.
|
||
|
||
You may extract a single document from such a collection, and
|
||
distribute it individually under this License, provided you insert
|
||
a copy of this License into the extracted document, and follow this
|
||
License in all other respects regarding verbatim copying of that
|
||
document.
|
||
|
||
7. AGGREGATION WITH INDEPENDENT WORKS
|
||
|
||
A compilation of the Document or its derivatives with other
|
||
separate and independent documents or works, in or on a volume of a
|
||
storage or distribution medium, is called an "aggregate" if the
|
||
copyright resulting from the compilation is not used to limit the
|
||
legal rights of the compilation's users beyond what the individual
|
||
works permit. When the Document is included in an aggregate, this
|
||
License does not apply to the other works in the aggregate which
|
||
are not themselves derivative works of the Document.
|
||
|
||
If the Cover Text requirement of section 3 is applicable to these
|
||
copies of the Document, then if the Document is less than one half
|
||
of the entire aggregate, the Document's Cover Texts may be placed
|
||
on covers that bracket the Document within the aggregate, or the
|
||
electronic equivalent of covers if the Document is in electronic
|
||
form. Otherwise they must appear on printed covers that bracket
|
||
the whole aggregate.
|
||
|
||
8. TRANSLATION
|
||
|
||
Translation is considered a kind of modification, so you may
|
||
distribute translations of the Document under the terms of section
|
||
4. Replacing Invariant Sections with translations requires special
|
||
permission from their copyright holders, but you may include
|
||
translations of some or all Invariant Sections in addition to the
|
||
original versions of these Invariant Sections. You may include a
|
||
translation of this License, and all the license notices in the
|
||
Document, and any Warranty Disclaimers, provided that you also
|
||
include the original English version of this License and the
|
||
original versions of those notices and disclaimers. In case of a
|
||
disagreement between the translation and the original version of
|
||
this License or a notice or disclaimer, the original version will
|
||
prevail.
|
||
|
||
If a section in the Document is Entitled "Acknowledgements",
|
||
"Dedications", or "History", the requirement (section 4) to
|
||
Preserve its Title (section 1) will typically require changing the
|
||
actual title.
|
||
|
||
9. TERMINATION
|
||
|
||
You may not copy, modify, sublicense, or distribute the Document
|
||
except as expressly provided under this License. Any attempt
|
||
otherwise to copy, modify, sublicense, or distribute it is void,
|
||
and will automatically terminate your rights under this License.
|
||
|
||
However, if you cease all violation of this License, then your
|
||
license from a particular copyright holder is reinstated (a)
|
||
provisionally, unless and until the copyright holder explicitly and
|
||
finally terminates your license, and (b) permanently, if the
|
||
copyright holder fails to notify you of the violation by some
|
||
reasonable means prior to 60 days after the cessation.
|
||
|
||
Moreover, your license from a particular copyright holder is
|
||
reinstated permanently if the copyright holder notifies you of the
|
||
violation by some reasonable means, this is the first time you have
|
||
received notice of violation of this License (for any work) from
|
||
that copyright holder, and you cure the violation prior to 30 days
|
||
after your receipt of the notice.
|
||
|
||
Termination of your rights under this section does not terminate
|
||
the licenses of parties who have received copies or rights from you
|
||
under this License. If your rights have been terminated and not
|
||
permanently reinstated, receipt of a copy of some or all of the
|
||
same material does not give you any rights to use it.
|
||
|
||
10. FUTURE REVISIONS OF THIS LICENSE
|
||
|
||
The Free Software Foundation may publish new, revised versions of
|
||
the GNU Free Documentation License from time to time. Such new
|
||
versions will be similar in spirit to the present version, but may
|
||
differ in detail to address new problems or concerns. See
|
||
<http://www.gnu.org/copyleft/>.
|
||
|
||
Each version of the License is given a distinguishing version
|
||
number. If the Document specifies that a particular numbered
|
||
version of this License "or any later version" applies to it, you
|
||
have the option of following the terms and conditions either of
|
||
that specified version or of any later version that has been
|
||
published (not as a draft) by the Free Software Foundation. If the
|
||
Document does not specify a version number of this License, you may
|
||
choose any version ever published (not as a draft) by the Free
|
||
Software Foundation. If the Document specifies that a proxy can
|
||
decide which future versions of this License can be used, that
|
||
proxy's public statement of acceptance of a version permanently
|
||
authorizes you to choose that version for the Document.
|
||
|
||
11. RELICENSING
|
||
|
||
"Massive Multiauthor Collaboration Site" (or "MMC Site") means any
|
||
World Wide Web server that publishes copyrightable works and also
|
||
provides prominent facilities for anybody to edit those works. A
|
||
public wiki that anybody can edit is an example of such a server.
|
||
A "Massive Multiauthor Collaboration" (or "MMC") contained in the
|
||
site means any set of copyrightable works thus published on the MMC
|
||
site.
|
||
|
||
"CC-BY-SA" means the Creative Commons Attribution-Share Alike 3.0
|
||
license published by Creative Commons Corporation, a not-for-profit
|
||
corporation with a principal place of business in San Francisco,
|
||
California, as well as future copyleft versions of that license
|
||
published by that same organization.
|
||
|
||
"Incorporate" means to publish or republish a Document, in whole or
|
||
in part, as part of another Document.
|
||
|
||
An MMC is "eligible for relicensing" if it is licensed under this
|
||
License, and if all works that were first published under this
|
||
License somewhere other than this MMC, and subsequently
|
||
incorporated in whole or in part into the MMC, (1) had no cover
|
||
texts or invariant sections, and (2) were thus incorporated prior
|
||
to November 1, 2008.
|
||
|
||
The operator of an MMC Site may republish an MMC contained in the
|
||
site under CC-BY-SA on the same site at any time before August 1,
|
||
2009, provided the MMC is eligible for relicensing.
|
||
|
||
ADDENDUM: How to use this License for your documents
|
||
====================================================
|
||
|
||
To use this License in a document you have written, include a copy of
|
||
the License in the document and put the following copyright and license
|
||
notices just after the title page:
|
||
|
||
Copyright (C) YEAR YOUR NAME.
|
||
Permission is granted to copy, distribute and/or modify this document
|
||
under the terms of the GNU Free Documentation License, Version 1.3
|
||
or any later version published by the Free Software Foundation;
|
||
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover
|
||
Texts. A copy of the license is included in the section entitled ``GNU
|
||
Free Documentation License''.
|
||
|
||
If you have Invariant Sections, Front-Cover Texts and Back-Cover
|
||
Texts, replace the "with...Texts." line with this:
|
||
|
||
with the Invariant Sections being LIST THEIR TITLES, with
|
||
the Front-Cover Texts being LIST, and with the Back-Cover Texts
|
||
being LIST.
|
||
|
||
If you have Invariant Sections without Cover Texts, or some other
|
||
combination of the three, merge those two alternatives to suit the
|
||
situation.
|
||
|
||
If your document contains nontrivial examples of program code, we
|
||
recommend releasing these examples in parallel under your choice of free
|
||
software license, such as the GNU General Public License, to permit
|
||
their use in free software.
|
||
|
||
|
||
File: LibreDWG.info, Node: Index, Prev: GNU Free Documentation License, Up: Top
|
||
|
||
B Index
|
||
*******
|
||
|
||
* Menu:
|
||
|
||
* General Index:: Concepts, functions and types.
|
||
* Object and Field Index:: Objects, Entities and its fields.
|
||
|
||
|
||
File: LibreDWG.info, Node: General Index, Next: Object and Field Index, Up: Index
|
||
|
||
B.1 General Index
|
||
=================
|
||
|
||
|