diff --git a/.gitattributes b/.gitattributes
index dfe0770..ada0244 100644
--- a/.gitattributes
+++ b/.gitattributes
@@ -1,2 +1,4 @@
# Auto detect text files and perform LF normalization
* text=auto
+templates/*.dxf text eol=crlf
+templates/*.dwt binary
diff --git a/.gitignore b/.gitignore
index d46dc2e..13517c3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,6 +47,9 @@ benchmarks/results/*
!benchmarks/results/published/**
benchmarks/.competitors/
*.dxf
+# The bundled templates are the one committed DXF set: built by
+# scripts/build_templates.py and pinned reproducible by its --check.
+!templates/*.dxf
*.dwg
*.bak
diff --git a/Dockerfile b/Dockerfile
index aac0f9b..e43dfab 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -9,6 +9,7 @@ COPY server.py config.py security.py version.py ./
COPY backends/ ./backends/
COPY engineering/ ./engineering/
COPY discovery/ ./discovery/
+COPY templates/ ./templates/
RUN pip install --no-cache-dir -e .
diff --git a/README.md b/README.md
index 3dec326..dacc503 100644
--- a/README.md
+++ b/README.md
@@ -27,7 +27,7 @@ Live through COM on Windows, or headless through ezdxf anywhere — one typed co
-> **v1.5 release snapshot:** 170 tools · 8 resources · 5 prompt templates · 2423 collected tests.
+> **v1.5 release snapshot:** 171 tools · 8 resources · 5 prompt templates · 2423 collected tests.
> 166 is the **registered** count; a default install advertises 161 over `tools/list`,
> because `ENABLE_3D` is unset. `system_about` is the runtime authority.
@@ -104,6 +104,7 @@ Claude Desktop, Cursor, or any stdio MCP host. For HTTP: `autocad-mcp --transpor
| Discovery | `search_tools` ranked over an AutoCAD command and synonym corpus — `FILLET`, `BPOLY`, `QSELECT`, `WBLOCK`, `OVERKILL`, `CHSPACE` each rank **#1** of the 161-tool advertised catalog |
| Batching | `cad_batch` runs a step list in one round trip; `fields=` projects 11 result-heavy tools |
| Paper space | tab lifecycle, viewports, `entity_change_space` (CHSPACE), `page_setup_apply` (ISO 216 / ANSI Y14.1 paper, ctb, scale, device — on both engines), `batch_plot` with every sheet size read back from its PDF's `/MediaBox`, `drawing_export_pdf(layout=…)` |
+| Templates | five bundled templates built by the server's own tools and pinned reproducible (`iso_a3_mech`, `iso_a1_arch`, `iso_a3_pid`, `ansi_b_mech`, `ansi_d_arch`) — `drawing_new(template="iso_a3_mech")`, `drawing_template_list` |
| Selection | window vs crossing stated back to the caller; a polygon tested against its own shape, not its bounding box |
| Boundaries | `boundary_trace` (BOUNDARY/BPOLY) chains loose edges into one closed polyline, arcs kept as bulges *(headless)* |
| Measurement | `analysis_measure_entity` measures what is *in* the drawing, by handle |
@@ -113,7 +114,7 @@ Claude Desktop, Cursor, or any stdio MCP host. For HTTP: `autocad-mcp --transpor
| Quality loop | `drawing_preflight` → `drawing_plan` → `drawing_critique` → `drawing_refine` → `drawing_finalize` (0–100 score) |
| Delivery | `drawing_deliver`: DXF/PDF/PNG + SHA-256 manifest + reopen-parity checks |
-170 tools in 20 groups; TOOL_PACKS=core hides the nine pid_* tools from a client that never draws a P&ID. Plus 8 resources that cost nothing in the tool budget (autocad://drawing/info, layers, blocks, entities/stats, entities/{layer_name}, system/status, pid/symbols, standards/isa51) and 5 prompt templates.
+171 tools in 20 groups; TOOL_PACKS=core hides the nine pid_* tools from a client that never draws a P&ID. Plus 8 resources that cost nothing in the tool budget (autocad://drawing/info, layers, blocks, entities/stats, entities/{layer_name}, system/status, pid/symbols, standards/isa51) and 5 prompt templates.
**Two rules worth knowing.** Every coordinate in and out of a tool is WCS on both engines — the one exception is TEXT `rotation`, which stays in the entity frame because a mirrored TEXT is mirror-imaged and no scalar angle expresses that. And never read vertices back and shoelace them: that loses **28.2%** of the area on a semicircular edge, silently. `analysis_measure_entity(handle)` reads the real geometry and states its own accuracy.
diff --git a/discovery/aliases.py b/discovery/aliases.py
index a59e657..bd77614 100644
--- a/discovery/aliases.py
+++ b/discovery/aliases.py
@@ -445,7 +445,13 @@ TOOL_ALIASES: dict[str, ToolAliases] = {
),
"drawing_new": ToolAliases(
acad=("NEW", "QNEW"),
- synonyms=("new drawing", "start a drawing", "blank sheet", "create a file"),
+ synonyms=(
+ "new drawing",
+ "start a drawing",
+ "blank sheet",
+ "create a file",
+ "start from a bundled template",
+ ),
),
"drawing_open": ToolAliases(
acad=("OPEN",),
@@ -1445,6 +1451,17 @@ TOOL_ALIASES: dict[str, ToolAliases] = {
"plot the whole drawing set",
),
),
+ "drawing_template_list": ToolAliases(
+ acad=(),
+ synonyms=(
+ "which templates are there",
+ "bundled templates",
+ "iso a3 template",
+ "ansi b sheet",
+ "start from a standard sheet",
+ "dwt list",
+ ),
+ ),
"page_setup_apply": ToolAliases(
acad=("PAGESETUP",),
synonyms=(
diff --git a/docs/tool-inventory.json b/docs/tool-inventory.json
index 401303e..62e22ca 100644
--- a/docs/tool-inventory.json
+++ b/docs/tool-inventory.json
@@ -3,7 +3,7 @@
"schema_version": 1,
"package_version": "1.5.1",
"totals": {
- "tools": 170,
+ "tools": 171,
"resources": 8,
"prompts": 5,
"groups": 20
@@ -25,7 +25,7 @@
"premium": 12,
"solids": 5,
"system": 7,
- "templates": 2,
+ "templates": 3,
"transactions": 3,
"validation": 1,
"view": 4
@@ -596,7 +596,7 @@
"name": "drawing_new",
"group": "drawing",
"cost": "mutate",
- "summary": "Start a blank drawing, pre-seeded with the standard engineering layers.",
+ "summary": "Start a drawing: blank with the engineering layers, or from a bundled/own template.",
"tags": [
"drawing"
],
@@ -726,6 +726,21 @@
"destructiveHint": false
}
},
+ {
+ "name": "drawing_template_list",
+ "group": "templates",
+ "cost": "read",
+ "summary": "List the five bundled drawing templates: standard, sheet, layers, styles, page setup.",
+ "tags": [
+ "drawing",
+ "query",
+ "template"
+ ],
+ "annotations": {
+ "title": "List Drawing Templates",
+ "readOnlyHint": true
+ }
+ },
{
"name": "drawing_undo",
"group": "drawing",
diff --git a/engineering/standards/templates.py b/engineering/standards/templates.py
new file mode 100644
index 0000000..8306b18
--- /dev/null
+++ b/engineering/standards/templates.py
@@ -0,0 +1,187 @@
+"""The five bundled drawing templates: what each contains, where its files live.
+
+Built by ``scripts/build_templates.py`` through the server's own backend
+(layers, styles, settings, the ISO 5457 A3 frame where the sheet is A3, page
+setup) and saved as DXF; the ``.dwt`` twins are produced on a live AutoCAD by
+``scripts/smoke_settings_com.py --build-dwt`` and committed once.
+"""
+
+from __future__ import annotations
+
+from dataclasses import asdict, dataclass, field
+from pathlib import Path
+
+__all__ = [
+ "TEMPLATES_DIR",
+ "TEMPLATE_CATALOG",
+ "TemplateSpec",
+ "resolve_template",
+ "template_rows",
+]
+
+#: ``/templates`` — shipped in the wheel (pyproject ``only-include``) and the Docker image.
+TEMPLATES_DIR = Path(__file__).resolve().parents[2] / "templates"
+
+_ISO_SETTINGS = {
+ "units": "mm",
+ "ltscale": 1.0,
+ "dimscale": 1.0,
+ "linear_precision": 2,
+ "angular_precision": 0,
+ "decimal_separator": ",",
+}
+_ANSI_SETTINGS = {**_ISO_SETTINGS, "decimal_separator": "."}
+
+
+@dataclass(frozen=True)
+class TemplateSpec:
+ name: str
+ standard: str # "ISO" | "ANSI"
+ sheet: str # human label, e.g. "A3 landscape"
+ paper: str # engineering.standards.papers.PAPER_SIZES key
+ orientation: str
+ layout: str # the paper-space tab's name
+ layer_set: str # engineering.layers.LAYER_SET_REGISTRY key
+ dimstyle_preset: str # group S preset id: "iso-25" | "ansi"
+ dimstyle: str # style name in the drawing
+ textstyle: str # "ISOCP" | "ROMANS"
+ scale: str # page setup scale label
+ title_block: bool
+ settings: dict = field(default_factory=dict) # drawing_settings facade keys
+ description: str = ""
+
+
+TEMPLATE_CATALOG: dict[str, TemplateSpec] = {
+ spec.name: spec
+ for spec in (
+ TemplateSpec(
+ name="iso_a3_mech",
+ standard="ISO",
+ sheet="A3 landscape",
+ paper="ISO_A3",
+ orientation="landscape",
+ layout="A3",
+ layer_set="mech",
+ dimstyle_preset="iso-25",
+ dimstyle="ISO-25",
+ textstyle="ISOCP",
+ scale="1:1",
+ title_block=True,
+ settings=dict(_ISO_SETTINGS),
+ description="ISO A3 mechanical part drawing",
+ ),
+ TemplateSpec(
+ name="iso_a1_arch",
+ standard="ISO",
+ sheet="A1 landscape",
+ paper="ISO_A1",
+ orientation="landscape",
+ layout="A1",
+ layer_set="iso13567",
+ dimstyle_preset="iso-25",
+ dimstyle="ISO-25",
+ textstyle="ISOCP",
+ scale="fit",
+ title_block=False,
+ settings={**_ISO_SETTINGS, "annotation_scale": "1:50"},
+ description="ISO A1 architectural sheet, ISO 13567 layers, 1:50 annotation",
+ ),
+ TemplateSpec(
+ name="iso_a3_pid",
+ standard="ISO",
+ sheet="A3 landscape",
+ paper="ISO_A3",
+ orientation="landscape",
+ layout="A3",
+ layer_set="pid",
+ dimstyle_preset="iso-25",
+ dimstyle="ISO-25",
+ textstyle="ISOCP",
+ scale="1:1",
+ title_block=True,
+ settings=dict(_ISO_SETTINGS),
+ description="ISO A3 P&ID sheet",
+ ),
+ TemplateSpec(
+ name="ansi_b_mech",
+ standard="ANSI",
+ sheet="ANSI B landscape",
+ paper="ANSI_B",
+ orientation="landscape",
+ layout="B",
+ layer_set="mech",
+ dimstyle_preset="ansi",
+ dimstyle="ANSI",
+ textstyle="ROMANS",
+ scale="1:1",
+ title_block=False,
+ settings=dict(_ANSI_SETTINGS),
+ description="ANSI B mechanical part drawing (metric)",
+ ),
+ TemplateSpec(
+ name="ansi_d_arch",
+ standard="ANSI",
+ sheet="ANSI D landscape",
+ paper="ANSI_D",
+ orientation="landscape",
+ layout="D",
+ layer_set="iso13567",
+ dimstyle_preset="ansi",
+ dimstyle="ANSI",
+ textstyle="ROMANS",
+ scale="fit",
+ title_block=False,
+ settings=dict(_ANSI_SETTINGS),
+ description="ANSI D architectural sheet (metric)",
+ ),
+ )
+}
+
+
+def _file(name: str, suffix: str) -> dict:
+ path = TEMPLATES_DIR / f"{name}{suffix}"
+ return {"path": str(path), "present": path.is_file()}
+
+
+def template_rows() -> list[dict]:
+ """Catalogue rows for ``drawing_template_list``: the spec plus its files."""
+ rows = []
+ for spec in TEMPLATE_CATALOG.values():
+ row = asdict(spec)
+ row["files"] = {"dxf": _file(spec.name, ".dxf"), "dwt": _file(spec.name, ".dwt")}
+ rows.append(row)
+ return rows
+
+
+def resolve_template(name_or_path: str, engine: str) -> tuple[str, str]:
+ """``(path, source)`` for a catalogue name or a template file path.
+
+ A catalogue name resolves to ``templates/.dxf`` (headless) or
+ ``templates/.dwt`` (live), falling back to the DXF with
+ ``source="bundled_dxf"`` when the ``.dwt`` twin is missing. Anything with a
+ path separator or a ``.dwt``/``.dxf`` suffix is a path (``source="path"``,
+ not checked here). A bare word that is not in the catalogue is refused
+ with the catalogue names.
+ """
+ raw = str(name_or_path or "").strip()
+ if not raw:
+ raise ValueError("template: pass a bundled template name or a path to a .dwt/.dxf file")
+ key = raw.lower()
+ if key in TEMPLATE_CATALOG:
+ dxf = TEMPLATES_DIR / f"{key}.dxf"
+ dwt = TEMPLATES_DIR / f"{key}.dwt"
+ if engine == "com" and dwt.is_file():
+ return str(dwt), "bundled"
+ if dxf.is_file():
+ return str(dxf), "bundled" if engine != "com" else "bundled_dxf"
+ raise ValueError(
+ f"template {key!r} is in the catalogue but {dxf} is missing — run "
+ "`uv run --frozen python scripts/build_templates.py`"
+ )
+ looks_like_path = ("/" in raw or "\\" in raw) or Path(raw).suffix.lower() in (".dwt", ".dxf")
+ if looks_like_path:
+ return raw, "path"
+ raise ValueError(
+ f"unknown template {raw!r}. Bundled templates: {', '.join(TEMPLATE_CATALOG)}; "
+ "or pass a path to a .dwt/.dxf file"
+ )
diff --git a/pyproject.toml b/pyproject.toml
index 09cd8d9..5243780 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -138,6 +138,7 @@ only-include = [
"backends",
"engineering",
"discovery",
+ "templates",
]
[tool.ruff]
diff --git a/scripts/build_templates.py b/scripts/build_templates.py
new file mode 100644
index 0000000..af0e51e
--- /dev/null
+++ b/scripts/build_templates.py
@@ -0,0 +1,280 @@
+"""Build the bundled templates through the server's own backend, reproducibly.
+
+ uv run --frozen python scripts/build_templates.py # write templates/*.dxf
+ uv run --frozen python scripts/build_templates.py --check # exit 1 if a rebuild differs
+ uv run --frozen python scripts/build_templates.py --out DIR # build elsewhere
+
+Each template is: drawing_new -> apply_layer_set -> styles -> drawing_settings
+-> layout renamed to the sheet -> ISO 5457 frame (A3 sheets) -> page_setup_apply
+-> drawing_save_as DXF. Nothing is hand-authored, so what the tools produce is
+what ships.
+
+Styles: once group S's ``dimstyle_create`` / ``textstyle_create`` are on the
+backend they are used (ISO-25 / ISOCP, ANSI / ROMANS, set current). Until then
+the same values (spec §4.1) are written as header DIM variables so the template
+already dimensions correctly; the final task re-runs this script after the S
+merge and re-commits the five files.
+
+``--check`` rebuilds into a temporary folder and compares line by line after
+masking the values ezdxf cannot keep constant — measured on 2026-09-16, exactly
+six lines differ between two builds: $TDCREATE, $TDUPDATE, $FINGERPRINTGUID,
+$VERSIONGUID and the two EZDXF_META DICTIONARYVAR stamps. One more source of
+drift is removed before the save rather than masked: the CLASSES section, which
+ezdxf otherwise orders by set iteration (see ``_pin_class_order``).
+"""
+
+from __future__ import annotations
+
+import argparse
+import asyncio
+import re
+import sys
+import tempfile
+from pathlib import Path
+
+ROOT = Path(__file__).resolve().parents[1]
+if str(ROOT) not in sys.path:
+ sys.path.insert(0, str(ROOT))
+
+from backends.ezdxf_backend import EzdxfBackend # noqa: E402
+from engineering import TitleBlockMetadata, apply_iso_a3_titleblock # noqa: E402
+from engineering.layers import apply_layer_set # noqa: E402
+from engineering.standards.papers import resolve_page_setup # noqa: E402
+from engineering.standards.templates import ( # noqa: E402
+ TEMPLATE_CATALOG,
+ TEMPLATES_DIR,
+ TemplateSpec,
+)
+
+#: Header variables whose values change on every save.
+VOLATILE_HEADER_VARS = frozenset(
+ {
+ "$TDCREATE",
+ "$TDUPDATE",
+ "$TDUCREATE",
+ "$TDUUPDATE",
+ "$TDINDWG",
+ "$TDUSRTIMER",
+ "$FINGERPRINTGUID",
+ "$VERSIONGUID",
+ }
+)
+#: The EZDXF_META stamps: ``1.4.4 @ 2026-09-16T12:33:38.192529+00:00``.
+_EZDXF_STAMP = re.compile(r"^\d+\.\d+\.\d+\S* @ \d{4}-\d{2}-\d{2}T")
+
+#: Spec §4.1 as header variables — the fallback until dimstyle_create lands.
+#: DIMDSEP goes through the facade (decimal_separator); DIMTXSTY is omitted
+#: because the text style it names is created by textstyle_create.
+_FALLBACK_DIMVARS: dict[str, dict[str, float | int]] = {
+ "iso-25": {
+ "DIMTXT": 2.5,
+ "DIMASZ": 2.5,
+ "DIMEXE": 1.25,
+ "DIMEXO": 0.625,
+ "DIMGAP": 0.625,
+ "DIMTAD": 1,
+ "DIMTIH": 0,
+ "DIMTOH": 0,
+ "DIMDEC": 2,
+ "DIMLUNIT": 2,
+ "DIMZIN": 8,
+ "DIMLWD": -2,
+ "DIMLWE": -2,
+ "DIMSCALE": 1.0,
+ },
+ "ansi": {
+ "DIMTXT": 3.0,
+ "DIMASZ": 3.0,
+ "DIMEXE": 1.5,
+ "DIMEXO": 1.5,
+ "DIMGAP": 1.0,
+ "DIMTAD": 0,
+ "DIMTIH": 1,
+ "DIMTOH": 1,
+ "DIMDEC": 2,
+ "DIMLUNIT": 2,
+ "DIMZIN": 8,
+ "DIMLWD": -2,
+ "DIMLWE": -2,
+ "DIMSCALE": 1.0,
+ },
+}
+
+
+async def _apply_styles(backend, spec: TemplateSpec) -> dict:
+ if hasattr(backend, "dimstyle_create") and hasattr(backend, "textstyle_create"):
+ from engineering.standards.dimstyles import resolve_dimstyle
+ from engineering.standards.textstyles import TEXT_PRESETS
+
+ font, width_factor, oblique = TEXT_PRESETS[spec.textstyle]
+ text = await backend.textstyle_create(
+ spec.textstyle, font, 0.0, width_factor, oblique, set_current=True
+ )
+ dim = await backend.dimstyle_create(
+ spec.dimstyle, resolve_dimstyle(spec.dimstyle_preset, None), set_current=True
+ )
+ return {"mode": "styles", "dimstyle": dim["name"], "textstyle": text["name"]}
+ applied = {}
+ for variable, value in _FALLBACK_DIMVARS[spec.dimstyle_preset].items():
+ applied[variable] = (await backend.system_set_variable(variable, value))["ok"]
+ return {
+ "mode": "header_dimvars",
+ "applied": applied,
+ "pending": "dimstyle_create/textstyle_create not on this backend yet (group S)",
+ }
+
+
+def _pin_class_order(doc) -> list[str]:
+ """Put the CLASSES section in a stable order before the save.
+
+ ezdxf fills CLASSES from ``entitydb.dxf_types_in_use()`` — a ``set[str]``,
+ so its order follows the process's string-hash seed and two builds in
+ different processes put ``LAYOUT`` / ``ACDBPLACEHOLDER`` in different slots
+ (measured 2026-09-21: the same-process double build agreed, ``--check``
+ from a fresh process did not). The backend's undo baseline has already
+ written the document once by now, so the section is already populated in
+ that random order; it is re-keyed here as ezdxf's required list first, then
+ every other class by name.
+ """
+ from ezdxf.sections.classes import REQ_R2004, REQUIRED_CLASSES
+
+ section = doc.classes
+ section.add_required_classes(doc.dxfversion)
+ for name in sorted(doc.entitydb.dxf_types_in_use()):
+ section.add_class(name)
+ rank = {name: i for i, name in enumerate(REQUIRED_CLASSES.get(doc.dxfversion, REQ_R2004))}
+ ordered = sorted(
+ section.classes.items(),
+ key=lambda item: (rank.get(item[1].dxf.name, len(rank)), item[1].dxf.name, item[0]),
+ )
+ section.classes = dict(ordered)
+ return [cls.dxf.name for cls in section.classes.values()]
+
+
+async def build_template(spec: TemplateSpec, out_dir: Path) -> dict:
+ """Build one template into ``out_dir/.dxf`` and report what went in."""
+ out_dir = Path(out_dir)
+ out_dir.mkdir(parents=True, exist_ok=True)
+ backend = EzdxfBackend()
+ await backend.connect()
+ try:
+ await backend.drawing_new()
+ layers = await apply_layer_set(backend, spec.layer_set)
+ styles = await _apply_styles(backend, spec)
+ settings = await backend.drawing_settings(dict(spec.settings))
+ pending = sorted(settings.get("errors") or {}) # keys the facade does not know yet
+ renamed = await backend.layout_rename("Layout1", spec.layout)
+ if not renamed.get("ok"):
+ raise RuntimeError(f"{spec.name}: layout rename failed: {renamed}")
+ title_block = None
+ if spec.title_block:
+ title_block = await apply_iso_a3_titleblock(
+ backend,
+ metadata=TitleBlockMetadata(
+ title=spec.description.upper(),
+ drawing_no="TEMPLATE",
+ scale=spec.scale if spec.scale != "fit" else "1:1",
+ ),
+ layout=spec.layout,
+ )
+ setup = resolve_page_setup(
+ spec.paper,
+ spec.orientation,
+ "monochrome.ctb",
+ spec.scale,
+ "layout",
+ "DWG To PDF.pc3",
+ [0.0, 0.0, 0.0, 0.0], # the frame is drawn at the paper corner; no unprintable band
+ True,
+ )
+ page_setup = await backend.page_setup_apply(spec.layout, setup)
+ await backend.layout_set_current("Model")
+ classes = _pin_class_order(backend._doc)
+ path = out_dir / f"{spec.name}.dxf"
+ await backend.drawing_save_as(str(path), "dxf")
+ return {
+ "name": spec.name,
+ "path": str(path),
+ "layers": layers,
+ "styles": styles,
+ "settings_applied": settings.get("applied", {}),
+ "settings_pending": pending,
+ "title_block": bool(title_block),
+ "page_setup": {"ok": page_setup["ok"], "paper": page_setup["applied"]["paper"]},
+ "classes": classes,
+ }
+ finally:
+ await backend.disconnect()
+
+
+async def build_all(out_dir: Path = TEMPLATES_DIR) -> list[dict]:
+ return [await build_template(spec, out_dir) for spec in TEMPLATE_CATALOG.values()]
+
+
+def normalised_lines(path: Path) -> list[str]:
+ """The DXF's lines with every value that legitimately changes per save masked."""
+ lines = Path(path).read_text(encoding="utf-8").splitlines()
+ out: list[str] = []
+ mask_at = -1
+ for index, line in enumerate(lines):
+ if index == mask_at:
+ out.append("")
+ continue
+ stripped = line.strip()
+ if stripped in VOLATILE_HEADER_VARS:
+ mask_at = index + 2 # " 9" / "$TDCREATE" / " 40" /
+ if _EZDXF_STAMP.match(stripped):
+ out.append("")
+ continue
+ out.append(line)
+ return out
+
+
+def drifted_names(rebuilt: Path) -> list[str]:
+ """Names whose committed DXF differs from the build in ``rebuilt`` (masked compare)."""
+ drifted = []
+ for name in TEMPLATE_CATALOG:
+ committed = TEMPLATES_DIR / f"{name}.dxf"
+ if not committed.is_file():
+ drifted.append(f"{name} (missing)")
+ continue
+ fresh = normalised_lines(Path(rebuilt) / f"{name}.dxf")
+ current = normalised_lines(committed)
+ if fresh != current:
+ first = next(
+ (i for i, (a, b) in enumerate(zip(fresh, current, strict=False)) if a != b),
+ min(len(fresh), len(current)),
+ )
+ drifted.append(f"{name} (first difference at line {first + 1})")
+ return drifted
+
+
+def check_templates() -> list[str]:
+ """CLI ``--check``: rebuild into a temporary folder and report drift."""
+ with tempfile.TemporaryDirectory() as folder:
+ asyncio.run(build_all(Path(folder)))
+ return drifted_names(Path(folder))
+
+
+def main(argv: list[str] | None = None) -> int:
+ parser = argparse.ArgumentParser(
+ description=__doc__, formatter_class=argparse.RawDescriptionHelpFormatter
+ )
+ parser.add_argument("--check", action="store_true", help="rebuild to a temp dir and diff")
+ parser.add_argument("--out", type=Path, default=TEMPLATES_DIR, help="output folder")
+ args = parser.parse_args(argv)
+ if args.check:
+ drifted = check_templates()
+ if drifted:
+ print("templates drifted from scripts/build_templates.py: " + ", ".join(drifted))
+ return 1
+ print(f"{len(TEMPLATE_CATALOG)} templates reproduce byte-for-byte (volatile stamps masked)")
+ return 0
+ for row in asyncio.run(build_all(args.out)):
+ pending = f" pending={row['settings_pending']}" if row["settings_pending"] else ""
+ print(f"{row['name']}: {row['path']} styles={row['styles']['mode']}{pending}")
+ return 0
+
+
+if __name__ == "__main__":
+ sys.exit(main())
diff --git a/server.py b/server.py
index 990e6eb..5e96773 100644
--- a/server.py
+++ b/server.py
@@ -1082,7 +1082,7 @@ async def drawing_info(ctx: Context) -> dict:
@cad_tool(
- summary="Start a blank drawing, pre-seeded with the standard engineering layers.",
+ summary="Start a drawing: blank with the engineering layers, or from a bundled/own template.",
cost="mutate",
)
@mcp.tool(
@@ -1090,7 +1090,11 @@ async def drawing_info(ctx: Context) -> dict:
tags={"drawing"},
)
async def drawing_new(
- template: Annotated[str | None, "Optional path to .dwt template file"] = None,
+ template: Annotated[
+ str | None,
+ "Bundled template name (drawing_template_list: iso_a3_mech, iso_a1_arch, iso_a3_pid, "
+ "ansi_b_mech, ansi_d_arch) or a path to a .dwt/.dxf template file.",
+ ] = None,
bootstrap: Annotated[
bool,
Field(
@@ -1101,19 +1105,43 @@ async def drawing_new(
] = True,
ctx: Context = None,
) -> dict:
- """Create a new empty drawing, optionally from a template (.dwt).
+ """Create a new drawing, optionally from a template.
- When ``bootstrap=True`` (default), the drawing is also seeded with the
- standard engineering linetypes (CENTER/HIDDEN/PHANTOM) and layers
- (GEOMETRY, DIM, CENTER, HIDDEN, PHANTOM, HATCH, TEXT, TITLEBLOCK).
+ A bundled name resolves to `templates/.dxf` headlessly and
+ `templates/.dwt` on the live engine (falling back to the DXF with
+ `source: "bundled_dxf"` when no `.dwt` twin is committed); a path is used
+ as given. The result carries `template: {name|path, path, source}`.
+
+ Refused before anything is replaced: a bare name that is not in the
+ catalogue (the message lists the five), a template path that does not
+ exist, and a path outside the allowed directories. With `bootstrap=True`
+ (default) the standard engineering linetypes and layers are ensured
+ afterwards — idempotent on a template that already has them.
"""
- if template is not None:
- validated_template = validate_path(template, allow_write=False)
- template = str(validated_template)
- await ctx.info(f"Creating new drawing (template={template}, bootstrap={bootstrap})")
+ from pathlib import Path as _P
+
+ from engineering.standards.templates import resolve_template
+
backend = _backend(ctx)
+ template_info: dict | None = None
+ if template is not None:
+ try:
+ resolved, source = resolve_template(template, backend.name)
+ except ValueError as exc:
+ raise ToolError(f"drawing_new: {exc}") from exc
+ if source == "path":
+ resolved = str(validate_path(resolved, allow_write=False))
+ if not _P(resolved).is_file():
+ raise ToolError(f"drawing_new: template file not found: {resolved}")
+ template_info = {"path": resolved, "source": source}
+ else:
+ template_info = {"name": template.strip().lower(), "path": resolved, "source": source}
+ template = resolved
+ await ctx.info(f"Creating new drawing (template={template}, bootstrap={bootstrap})")
raw = await backend.drawing_new(template)
result = dict(raw) if isinstance(raw, dict) else {"result": raw}
+ if template_info is not None:
+ result["template"] = template_info
if bootstrap:
try:
from engineering import (
@@ -6816,7 +6844,7 @@ async def pid_tag_parse(
# ---------------------------------------------------------------------------
-# ── SECTION 19: Page Setup & Templates (4 tools) ────────────────────────────
+# ── SECTION 19: Page Setup & Templates (5 tools) ────────────────────────────
# ---------------------------------------------------------------------------
@@ -6974,6 +7002,37 @@ async def batch_plot(
raise ToolError(str(exc)) from exc
+@cad_tool(
+ summary="List the five bundled drawing templates: standard, sheet, layers, styles, page setup.",
+ cost="read",
+)
+@mcp.tool(
+ annotations={"title": "List Drawing Templates", "readOnlyHint": True},
+ tags={"template", "drawing", "query"},
+)
+async def drawing_template_list(ctx: Context = None) -> dict:
+ """The templates `drawing_new(template=)` can start from.
+
+ Each row: `standard` (ISO/ANSI), `sheet`, `paper`, `layout` (the sheet tab's
+ name), `layer_set` (mech / pid / iso13567), `dimstyle` / `textstyle`
+ (ISO-25 / ISOCP or ANSI / ROMANS), `scale`, `title_block` (the ISO 5457 A3
+ frame, A3 sheets only), the `settings` applied, and `files.dxf` /
+ `files.dwt` with `present` flags — the `.dwt` twins exist only once built
+ on a live AutoCAD (`scripts/smoke_settings_com.py --build-dwt`). Never
+ refuses; it reads a catalogue.
+ """
+ from engineering.standards.templates import TEMPLATES_DIR, template_rows
+
+ rows = template_rows()
+ return {
+ "ok": True,
+ "templates": rows,
+ "count": len(rows),
+ "templates_dir": str(TEMPLATES_DIR),
+ "engine": _backend(ctx).name,
+ }
+
+
# ---------------------------------------------------------------------------
# ── RESOURCES ───────────────────────────────────────────────────────────────
# ---------------------------------------------------------------------------
diff --git a/templates/ansi_b_mech.dxf b/templates/ansi_b_mech.dxf
new file mode 100644
index 0000000..3c59c40
--- /dev/null
+++ b/templates/ansi_b_mech.dxf
@@ -0,0 +1,3444 @@
+ 0
+SECTION
+ 2
+HEADER
+ 9
+$ACADVER
+ 1
+AC1024
+ 9
+$ACADMAINTVER
+ 70
+6
+ 9
+$DWGCODEPAGE
+ 3
+ANSI_1252
+ 9
+$LASTSAVEDBY
+ 1
+ezdxf
+ 9
+$INSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$EXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$EXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$LIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$LIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$ORTHOMODE
+ 70
+0
+ 9
+$REGENMODE
+ 70
+1
+ 9
+$FILLMODE
+ 70
+1
+ 9
+$QTEXTMODE
+ 70
+0
+ 9
+$MIRRTEXT
+ 70
+1
+ 9
+$LTSCALE
+ 40
+1.0
+ 9
+$ATTMODE
+ 70
+1
+ 9
+$TEXTSIZE
+ 40
+2.5
+ 9
+$TRACEWID
+ 40
+1.0
+ 9
+$TEXTSTYLE
+ 7
+Standard
+ 9
+$CLAYER
+ 8
+0
+ 9
+$CELTYPE
+ 6
+ByLayer
+ 9
+$CECOLOR
+ 62
+256
+ 9
+$CELTSCALE
+ 40
+1.0
+ 9
+$DISPSILH
+ 70
+0
+ 9
+$DIMSCALE
+ 40
+1.0
+ 9
+$DIMASZ
+ 40
+3.0
+ 9
+$DIMEXO
+ 40
+1.5
+ 9
+$DIMDLI
+ 40
+3.75
+ 9
+$DIMRND
+ 40
+0.0
+ 9
+$DIMDLE
+ 40
+0.0
+ 9
+$DIMEXE
+ 40
+1.5
+ 9
+$DIMTP
+ 40
+0.0
+ 9
+$DIMTM
+ 40
+0.0
+ 9
+$DIMTXT
+ 40
+3.0
+ 9
+$DIMCEN
+ 40
+2.5
+ 9
+$DIMTSZ
+ 40
+0.0
+ 9
+$DIMTOL
+ 70
+0
+ 9
+$DIMLIM
+ 70
+0
+ 9
+$DIMTIH
+ 70
+1
+ 9
+$DIMTOH
+ 70
+1
+ 9
+$DIMSE1
+ 70
+0
+ 9
+$DIMSE2
+ 70
+0
+ 9
+$DIMTAD
+ 70
+0
+ 9
+$DIMZIN
+ 70
+8
+ 9
+$DIMBLK
+ 1
+
+ 9
+$DIMASO
+ 70
+1
+ 9
+$DIMSHO
+ 70
+1
+ 9
+$DIMPOST
+ 1
+
+ 9
+$DIMAPOST
+ 1
+
+ 9
+$DIMALT
+ 70
+0
+ 9
+$DIMALTD
+ 70
+3
+ 9
+$DIMALTF
+ 40
+0.03937007874
+ 9
+$DIMLFAC
+ 40
+1.0
+ 9
+$DIMTOFL
+ 70
+1
+ 9
+$DIMTVP
+ 40
+0.0
+ 9
+$DIMTIX
+ 70
+0
+ 9
+$DIMSOXD
+ 70
+0
+ 9
+$DIMSAH
+ 70
+0
+ 9
+$DIMBLK1
+ 1
+
+ 9
+$DIMBLK2
+ 1
+
+ 9
+$DIMSTYLE
+ 2
+ISO-25
+ 9
+$DIMCLRD
+ 70
+0
+ 9
+$DIMCLRE
+ 70
+0
+ 9
+$DIMCLRT
+ 70
+0
+ 9
+$DIMTFAC
+ 40
+1.0
+ 9
+$DIMGAP
+ 40
+1.0
+ 9
+$DIMJUST
+ 70
+0
+ 9
+$DIMSD1
+ 70
+0
+ 9
+$DIMSD2
+ 70
+0
+ 9
+$DIMTOLJ
+ 70
+0
+ 9
+$DIMTZIN
+ 70
+8
+ 9
+$DIMALTZ
+ 70
+0
+ 9
+$DIMALTTZ
+ 70
+0
+ 9
+$DIMUPT
+ 70
+0
+ 9
+$DIMDEC
+ 70
+2
+ 9
+$DIMTDEC
+ 70
+2
+ 9
+$DIMALTU
+ 70
+2
+ 9
+$DIMALTTD
+ 70
+3
+ 9
+$DIMTXSTY
+ 7
+Standard
+ 9
+$DIMAUNIT
+ 70
+0
+ 9
+$DIMADEC
+ 70
+0
+ 9
+$DIMALTRND
+ 40
+0.0
+ 9
+$DIMAZIN
+ 70
+0
+ 9
+$DIMDSEP
+ 70
+46
+ 9
+$DIMATFIT
+ 70
+3
+ 9
+$DIMFRAC
+ 70
+0
+ 9
+$DIMLDRBLK
+ 1
+
+ 9
+$DIMLUNIT
+ 70
+2
+ 9
+$DIMLWD
+ 70
+-2
+ 9
+$DIMLWE
+ 70
+-2
+ 9
+$DIMTMOVE
+ 70
+0
+ 9
+$DIMFXL
+ 40
+1.0
+ 9
+$DIMFXLON
+ 70
+0
+ 9
+$DIMJOGANG
+ 40
+0.785398163397
+ 9
+$DIMTFILL
+ 70
+0
+ 9
+$DIMTFILLCLR
+ 70
+0
+ 9
+$DIMARCSYM
+ 70
+0
+ 9
+$DIMLTYPE
+ 6
+
+ 9
+$DIMLTEX1
+ 6
+
+ 9
+$DIMLTEX2
+ 6
+
+ 9
+$DIMTXTDIRECTION
+ 70
+0
+ 9
+$LUNITS
+ 70
+2
+ 9
+$LUPREC
+ 70
+2
+ 9
+$SKETCHINC
+ 40
+1.0
+ 9
+$FILLETRAD
+ 40
+10.0
+ 9
+$AUNITS
+ 70
+0
+ 9
+$AUPREC
+ 70
+0
+ 9
+$MENU
+ 1
+.
+ 9
+$ELEVATION
+ 40
+0.0
+ 9
+$PELEVATION
+ 40
+0.0
+ 9
+$THICKNESS
+ 40
+0.0
+ 9
+$LIMCHECK
+ 70
+0
+ 9
+$CHAMFERA
+ 40
+0.0
+ 9
+$CHAMFERB
+ 40
+0.0
+ 9
+$CHAMFERC
+ 40
+0.0
+ 9
+$CHAMFERD
+ 40
+0.0
+ 9
+$SKPOLY
+ 70
+0
+ 9
+$TDCREATE
+ 40
+2461305.9168518516
+ 9
+$TDUCREATE
+ 40
+2458532.153996898
+ 9
+$TDUPDATE
+ 40
+2461305.9168518516
+ 9
+$TDUUPDATE
+ 40
+2458532.1544311
+ 9
+$TDINDWG
+ 40
+0.0
+ 9
+$TDUSRTIMER
+ 40
+0.0
+ 9
+$USRTIMER
+ 70
+1
+ 9
+$ANGBASE
+ 50
+0.0
+ 9
+$ANGDIR
+ 70
+0
+ 9
+$PDMODE
+ 70
+0
+ 9
+$PDSIZE
+ 40
+0.0
+ 9
+$PLINEWID
+ 40
+0.0
+ 9
+$SPLFRAME
+ 70
+0
+ 9
+$SPLINETYPE
+ 70
+6
+ 9
+$SPLINESEGS
+ 70
+8
+ 9
+$HANDSEED
+ 5
+40
+ 9
+$SURFTAB1
+ 70
+6
+ 9
+$SURFTAB2
+ 70
+6
+ 9
+$SURFTYPE
+ 70
+6
+ 9
+$SURFU
+ 70
+6
+ 9
+$SURFV
+ 70
+6
+ 9
+$UCSBASE
+ 2
+
+ 9
+$UCSNAME
+ 2
+
+ 9
+$UCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$UCSORTHOREF
+ 2
+
+ 9
+$UCSORTHOVIEW
+ 70
+0
+ 9
+$UCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSBASE
+ 2
+
+ 9
+$PUCSNAME
+ 2
+
+ 9
+$PUCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$PUCSORTHOREF
+ 2
+
+ 9
+$PUCSORTHOVIEW
+ 70
+0
+ 9
+$PUCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$USERI1
+ 70
+0
+ 9
+$USERI2
+ 70
+0
+ 9
+$USERI3
+ 70
+0
+ 9
+$USERI4
+ 70
+0
+ 9
+$USERI5
+ 70
+0
+ 9
+$USERR1
+ 40
+0.0
+ 9
+$USERR2
+ 40
+0.0
+ 9
+$USERR3
+ 40
+0.0
+ 9
+$USERR4
+ 40
+0.0
+ 9
+$USERR5
+ 40
+0.0
+ 9
+$WORLDVIEW
+ 70
+1
+ 9
+$SHADEDGE
+ 70
+3
+ 9
+$SHADEDIF
+ 70
+70
+ 9
+$TILEMODE
+ 70
+1
+ 9
+$MAXACTVP
+ 70
+64
+ 9
+$PINSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PLIMCHECK
+ 70
+0
+ 9
+$PEXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$PEXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$PLIMMIN
+ 10
+-0.0
+ 20
+-0.0
+ 9
+$PLIMMAX
+ 10
+432.0
+ 20
+279.0
+ 9
+$UNITMODE
+ 70
+0
+ 9
+$VISRETAIN
+ 70
+1
+ 9
+$PLINEGEN
+ 70
+0
+ 9
+$PSLTSCALE
+ 70
+1
+ 9
+$TREEDEPTH
+ 70
+3020
+ 9
+$CMLSTYLE
+ 2
+Standard
+ 9
+$CMLJUST
+ 70
+0
+ 9
+$CMLSCALE
+ 40
+20.0
+ 9
+$PROXYGRAPHICS
+ 70
+1
+ 9
+$MEASUREMENT
+ 70
+1
+ 9
+$CELWEIGHT
+370
+-1
+ 9
+$ENDCAPS
+280
+0
+ 9
+$JOINSTYLE
+280
+0
+ 9
+$LWDISPLAY
+290
+0
+ 9
+$INSUNITS
+ 70
+4
+ 9
+$HYPERLINKBASE
+ 1
+
+ 9
+$STYLESHEET
+ 1
+
+ 9
+$XEDIT
+290
+1
+ 9
+$CEPSNTYPE
+380
+0
+ 9
+$PSTYLEMODE
+290
+1
+ 9
+$FINGERPRINTGUID
+ 2
+{C86D7286-E19E-4B12-95FA-2422D8FA8D21}
+ 9
+$VERSIONGUID
+ 2
+{6AD177C1-789E-403D-83B3-B9A1E5C62637}
+ 9
+$EXTNAMES
+290
+1
+ 9
+$PSVPSCALE
+ 40
+0.0
+ 9
+$OLESTARTUP
+290
+0
+ 9
+$SORTENTS
+280
+127
+ 9
+$INDEXCTL
+280
+0
+ 9
+$HIDETEXT
+280
+1
+ 9
+$XCLIPFRAME
+280
+1
+ 9
+$HALOGAP
+280
+0
+ 9
+$OBSCOLOR
+ 70
+257
+ 9
+$OBSLTYPE
+280
+0
+ 9
+$INTERSECTIONDISPLAY
+280
+0
+ 9
+$INTERSECTIONCOLOR
+ 70
+257
+ 9
+$DIMASSOC
+280
+2
+ 9
+$PROJECTNAME
+ 1
+
+ 9
+$CAMERADISPLAY
+290
+0
+ 9
+$LENSLENGTH
+ 40
+50.0
+ 9
+$CAMERAHEIGHT
+ 40
+0.0
+ 9
+$STEPSPERSEC
+ 40
+24.0
+ 9
+$STEPSIZE
+ 40
+100.0
+ 9
+$3DDWFPREC
+ 40
+2.0
+ 9
+$PSOLWIDTH
+ 40
+0.005
+ 9
+$PSOLHEIGHT
+ 40
+0.08
+ 9
+$LOFTANG1
+ 40
+1.570796326795
+ 9
+$LOFTANG2
+ 40
+1.570796326795
+ 9
+$LOFTMAG1
+ 40
+0.0
+ 9
+$LOFTMAG2
+ 40
+0.0
+ 9
+$LOFTPARAM
+ 70
+7
+ 9
+$LOFTNORMALS
+280
+1
+ 9
+$LATITUDE
+ 40
+37.795
+ 9
+$LONGITUDE
+ 40
+-122.394
+ 9
+$NORTHDIRECTION
+ 40
+0.0
+ 9
+$TIMEZONE
+ 70
+-8000
+ 9
+$LIGHTGLYPHDISPLAY
+280
+1
+ 9
+$TILEMODELIGHTSYNCH
+280
+1
+ 9
+$CMATERIAL
+347
+20
+ 9
+$SOLIDHIST
+280
+0
+ 9
+$SHOWHIST
+280
+1
+ 9
+$DWFFRAME
+280
+2
+ 9
+$DGNFRAME
+280
+2
+ 9
+$REALWORLDSCALE
+290
+1
+ 9
+$INTERFERECOLOR
+ 62
+256
+ 9
+$CSHADOW
+280
+0
+ 9
+$SHADOWPLANELOCATION
+ 40
+0.0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+CLASSES
+ 0
+CLASS
+ 1
+ACDBDICTIONARYWDFLT
+ 2
+AcDbDictionaryWithDefault
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SUN
+ 2
+AcDbSun
+ 3
+SCENEOE
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+VISUALSTYLE
+ 2
+AcDbVisualStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MATERIAL
+ 2
+AcDbMaterial
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SCALE
+ 2
+AcDbScale
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+TABLESTYLE
+ 2
+AcDbTableStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MLEADERSTYLE
+ 2
+AcDbMLeaderStyle
+ 3
+ACDB_MLEADERSTYLE_CLASS
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+DICTIONARYVAR
+ 2
+AcDbDictionaryVar
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+CELLSTYLEMAP
+ 2
+AcDbCellStyleMap
+ 3
+ObjectDBX Classes
+ 90
+1152
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MENTALRAYRENDERSETTINGS
+ 2
+AcDbMentalRayRenderSettings
+ 3
+SCENEOE
+ 90
+1024
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBDETAILVIEWSTYLE
+ 2
+AcDbDetailViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBSECTIONVIEWSTYLE
+ 2
+AcDbSectionViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+RASTERVARIABLES
+ 2
+AcDbRasterVariables
+ 3
+ISM
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBPLACEHOLDER
+ 2
+AcDbPlaceHolder
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+LAYOUT
+ 2
+AcDbLayout
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+TABLES
+ 0
+TABLE
+ 2
+VPORT
+ 5
+8
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+VPORT
+ 5
+23
+330
+8
+100
+AcDbSymbolTableRecord
+100
+AcDbViewportTableRecord
+ 2
+*Active
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+1.0
+ 21
+1.0
+ 12
+0.0
+ 22
+0.0
+ 13
+0.0
+ 23
+0.0
+ 14
+0.5
+ 24
+0.5
+ 15
+0.5
+ 25
+0.5
+ 16
+0.0
+ 26
+0.0
+ 36
+1.0
+ 17
+0.0
+ 27
+0.0
+ 37
+0.0
+ 40
+1000.0
+ 41
+1.34
+ 42
+50.0
+ 43
+0.0
+ 44
+0.0
+ 50
+0.0
+ 51
+0.0
+ 71
+0
+ 72
+1000
+ 73
+1
+ 74
+3
+ 75
+0
+ 76
+0
+ 77
+0
+ 78
+0
+281
+0
+ 65
+0
+146
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LTYPE
+ 5
+2
+330
+0
+100
+AcDbSymbolTable
+ 70
+8
+ 0
+LTYPE
+ 5
+24
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByBlock
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+25
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByLayer
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+26
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+Continuous
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+2F
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+CENTER
+ 70
+0
+ 3
+Center ____ _ ____ _ ____ _ ____ _ ____ _ ____
+ 72
+65
+ 73
+4
+ 40
+2.0
+ 49
+1.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 0
+LTYPE
+ 5
+30
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+HIDDEN
+ 70
+0
+ 3
+Hidden __ __ __ __ __ __ __ __ __
+ 72
+65
+ 73
+2
+ 40
+7.5
+ 49
+5.0
+ 74
+0
+ 49
+-2.5
+ 74
+0
+ 0
+LTYPE
+ 5
+31
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+PHANTOM
+ 70
+0
+ 3
+Phantom ______ __ __ ______ __ __ ______
+ 72
+65
+ 73
+6
+ 40
+2.5
+ 49
+1.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 0
+LTYPE
+ 5
+32
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+DASHED
+ 70
+0
+ 3
+Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _
+ 72
+65
+ 73
+2
+ 40
+0.6
+ 49
+0.5
+ 74
+0
+ 49
+-0.1
+ 74
+0
+ 0
+LTYPE
+ 5
+33
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+DASHDOT
+ 70
+0
+ 3
+Dash dot __ . __ . __ . __ . __ . __ . __ . __
+ 72
+65
+ 73
+4
+ 40
+1.4
+ 49
+1.0
+ 74
+0
+ 49
+-0.2
+ 74
+0
+ 49
+0.0
+ 74
+0
+ 49
+-0.2
+ 74
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LAYER
+ 5
+1
+330
+0
+100
+AcDbSymbolTable
+ 70
+11
+ 0
+LAYER
+ 5
+27
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+0
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+28
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+Defpoints
+ 70
+0
+ 62
+7
+ 6
+Continuous
+290
+0
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+34
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+GEOMETRY
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+35
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+HIDDEN
+ 70
+0
+ 62
+3
+ 6
+HIDDEN
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+36
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+CENTER
+ 70
+0
+ 62
+1
+ 6
+CENTER
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+37
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+PHANTOM
+ 70
+0
+ 62
+6
+ 6
+PHANTOM
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+38
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+DIM
+ 70
+0
+ 62
+2
+ 6
+Continuous
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+39
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+TEXT
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3A
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+HATCH
+ 70
+0
+ 62
+8
+ 6
+Continuous
+370
+13
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3B
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+TITLEBLOCK
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3C
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+CONSTRUCTION
+ 70
+0
+ 62
+250
+ 6
+Continuous
+370
+5
+390
+13
+347
+21
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+STYLE
+ 5
+5
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+STYLE
+ 5
+29
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbTextStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+0.0
+ 41
+1.0
+ 50
+0.0
+ 71
+0
+ 42
+2.5
+ 3
+txt
+ 4
+
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+VIEW
+ 5
+7
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+UCS
+ 5
+6
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+APPID
+ 5
+3
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+APPID
+ 5
+2A
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+ACAD
+ 70
+0
+ 0
+APPID
+ 5
+3D
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+HATCHBACKGROUNDCOLOR
+ 70
+0
+ 0
+APPID
+ 5
+3E
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+EZDXF
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+DIMSTYLE
+ 5
+4
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+100
+AcDbDimStyleTable
+ 0
+DIMSTYLE
+105
+2B
+330
+4
+100
+AcDbSymbolTableRecord
+100
+AcDbDimStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+1.0
+ 41
+2.5
+ 42
+0.625
+ 43
+3.75
+ 44
+1.25
+ 45
+0.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+2.5
+140
+2.5
+141
+2.5
+142
+0.0
+143
+0.03937007874
+144
+1.0
+145
+0.0
+146
+1.0
+147
+0.625
+148
+0.0
+ 69
+0
+ 70
+0
+ 71
+0
+ 72
+0
+ 73
+0
+ 74
+0
+ 75
+0
+ 76
+0
+ 77
+1
+ 78
+8
+ 79
+3
+170
+0
+171
+3
+172
+1
+173
+0
+174
+0
+175
+0
+176
+0
+177
+0
+178
+0
+179
+2
+271
+2
+272
+2
+273
+2
+274
+3
+275
+0
+276
+0
+277
+2
+278
+46
+279
+0
+280
+0
+281
+0
+282
+0
+283
+0
+284
+8
+285
+0
+286
+0
+288
+0
+289
+3
+290
+0
+371
+-2
+372
+-2
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+BLOCK_RECORD
+ 5
+9
+330
+0
+100
+AcDbSymbolTable
+ 70
+2
+ 0
+BLOCK_RECORD
+ 5
+17
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Model_Space
+340
+1A
+ 70
+0
+280
+1
+281
+0
+ 0
+BLOCK_RECORD
+ 5
+1B
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Paper_Space
+340
+1E
+ 70
+0
+280
+1
+281
+0
+ 0
+ENDTAB
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+BLOCKS
+ 0
+BLOCK
+ 5
+18
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Model_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Model_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+19
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+BLOCK
+ 5
+1C
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Paper_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Paper_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+1D
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+OBJECTS
+ 0
+DICTIONARY
+ 5
+A
+330
+0
+100
+AcDbDictionary
+281
+1
+ 3
+ACAD_COLOR
+350
+B
+ 3
+ACAD_GROUP
+350
+C
+ 3
+ACAD_LAYOUT
+350
+D
+ 3
+ACAD_MATERIAL
+350
+E
+ 3
+ACAD_MLEADERSTYLE
+350
+F
+ 3
+ACAD_MLINESTYLE
+350
+10
+ 3
+ACAD_PLOTSETTINGS
+350
+11
+ 3
+ACAD_PLOTSTYLENAME
+350
+12
+ 3
+ACAD_SCALELIST
+350
+14
+ 3
+ACAD_TABLESTYLE
+350
+15
+ 3
+ACAD_VISUALSTYLE
+350
+16
+ 3
+EZDXF_META
+350
+2D
+ 0
+DICTIONARY
+ 5
+B
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+C
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+D
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Model
+350
+1A
+ 3
+B
+350
+1E
+ 0
+DICTIONARY
+ 5
+E
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+ByBlock
+350
+1F
+ 3
+ByLayer
+350
+20
+ 3
+Global
+350
+21
+ 0
+DICTIONARY
+ 5
+F
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+2C
+ 0
+DICTIONARY
+ 5
+10
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+22
+ 0
+DICTIONARY
+ 5
+11
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+ACDBDICTIONARYWDFLT
+ 5
+12
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Normal
+350
+13
+100
+AcDbDictionaryWithDefault
+340
+13
+ 0
+ACDBPLACEHOLDER
+ 5
+13
+330
+12
+ 0
+DICTIONARY
+ 5
+14
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+15
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+16
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+LAYOUT
+ 5
+1A
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+1024
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Model
+ 70
+1
+ 71
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+17
+ 0
+LAYOUT
+ 5
+1E
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 2
+DWG To PDF.pc3
+ 4
+ANSI_B_(17.00_x_11.00_Inches)
+ 6
+
+ 40
+0.0
+ 41
+0.0
+ 42
+0.0
+ 43
+0.0
+ 44
+432.0
+ 45
+279.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+688
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+monochrome.ctb
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+B
+ 70
+1
+ 71
+1
+ 10
+-0.0
+ 20
+-0.0
+ 11
+432.0
+ 21
+279.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+1B
+ 0
+MATERIAL
+ 5
+1F
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByBlock
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+20
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByLayer
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+21
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+Global
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MLINESTYLE
+ 5
+22
+102
+{ACAD_REACTORS
+330
+10
+102
+}
+330
+10
+100
+AcDbMlineStyle
+ 2
+Standard
+ 70
+0
+ 3
+
+ 62
+256
+ 51
+90.0
+ 52
+90.0
+ 71
+2
+ 49
+0.5
+ 62
+256
+ 6
+BYLAYER
+ 49
+-0.5
+ 62
+256
+ 6
+BYLAYER
+ 0
+MLEADERSTYLE
+ 5
+2C
+102
+{ACAD_REACTORS
+330
+F
+102
+}
+330
+F
+100
+AcDbMLeaderStyle
+179
+2
+170
+2
+171
+1
+172
+0
+ 90
+2
+ 40
+0.0
+ 41
+0.0
+173
+1
+ 91
+-1056964608
+ 92
+-2
+290
+1
+ 42
+2.0
+291
+1
+ 43
+8.0
+ 3
+Standard
+ 44
+4.0
+300
+
+342
+29
+174
+1
+175
+1
+176
+0
+178
+1
+ 93
+-1056964608
+ 45
+4.0
+292
+0
+297
+0
+ 46
+4.0
+ 94
+-1056964608
+ 47
+1.0
+ 49
+1.0
+140
+1.0
+294
+1
+141
+0.0
+177
+0
+142
+1.0
+295
+0
+296
+0
+143
+3.75
+271
+0
+272
+9
+273
+9
+ 0
+DICTIONARY
+ 5
+2D
+330
+A
+100
+AcDbDictionary
+280
+1
+281
+1
+ 3
+CREATED_BY_EZDXF
+350
+2E
+ 3
+WRITTEN_BY_EZDXF
+350
+3F
+ 0
+DICTIONARYVAR
+ 5
+2E
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.4 @ 2026-09-21T19:00:16.253966+00:00
+ 0
+DICTIONARYVAR
+ 5
+3F
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.4 @ 2026-09-21T19:00:16.261077+00:00
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/templates/ansi_d_arch.dxf b/templates/ansi_d_arch.dxf
new file mode 100644
index 0000000..1313fa4
--- /dev/null
+++ b/templates/ansi_d_arch.dxf
@@ -0,0 +1,3444 @@
+ 0
+SECTION
+ 2
+HEADER
+ 9
+$ACADVER
+ 1
+AC1024
+ 9
+$ACADMAINTVER
+ 70
+6
+ 9
+$DWGCODEPAGE
+ 3
+ANSI_1252
+ 9
+$LASTSAVEDBY
+ 1
+ezdxf
+ 9
+$INSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$EXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$EXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$LIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$LIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$ORTHOMODE
+ 70
+0
+ 9
+$REGENMODE
+ 70
+1
+ 9
+$FILLMODE
+ 70
+1
+ 9
+$QTEXTMODE
+ 70
+0
+ 9
+$MIRRTEXT
+ 70
+1
+ 9
+$LTSCALE
+ 40
+1.0
+ 9
+$ATTMODE
+ 70
+1
+ 9
+$TEXTSIZE
+ 40
+2.5
+ 9
+$TRACEWID
+ 40
+1.0
+ 9
+$TEXTSTYLE
+ 7
+Standard
+ 9
+$CLAYER
+ 8
+0
+ 9
+$CELTYPE
+ 6
+ByLayer
+ 9
+$CECOLOR
+ 62
+256
+ 9
+$CELTSCALE
+ 40
+1.0
+ 9
+$DISPSILH
+ 70
+0
+ 9
+$DIMSCALE
+ 40
+1.0
+ 9
+$DIMASZ
+ 40
+3.0
+ 9
+$DIMEXO
+ 40
+1.5
+ 9
+$DIMDLI
+ 40
+3.75
+ 9
+$DIMRND
+ 40
+0.0
+ 9
+$DIMDLE
+ 40
+0.0
+ 9
+$DIMEXE
+ 40
+1.5
+ 9
+$DIMTP
+ 40
+0.0
+ 9
+$DIMTM
+ 40
+0.0
+ 9
+$DIMTXT
+ 40
+3.0
+ 9
+$DIMCEN
+ 40
+2.5
+ 9
+$DIMTSZ
+ 40
+0.0
+ 9
+$DIMTOL
+ 70
+0
+ 9
+$DIMLIM
+ 70
+0
+ 9
+$DIMTIH
+ 70
+1
+ 9
+$DIMTOH
+ 70
+1
+ 9
+$DIMSE1
+ 70
+0
+ 9
+$DIMSE2
+ 70
+0
+ 9
+$DIMTAD
+ 70
+0
+ 9
+$DIMZIN
+ 70
+8
+ 9
+$DIMBLK
+ 1
+
+ 9
+$DIMASO
+ 70
+1
+ 9
+$DIMSHO
+ 70
+1
+ 9
+$DIMPOST
+ 1
+
+ 9
+$DIMAPOST
+ 1
+
+ 9
+$DIMALT
+ 70
+0
+ 9
+$DIMALTD
+ 70
+3
+ 9
+$DIMALTF
+ 40
+0.03937007874
+ 9
+$DIMLFAC
+ 40
+1.0
+ 9
+$DIMTOFL
+ 70
+1
+ 9
+$DIMTVP
+ 40
+0.0
+ 9
+$DIMTIX
+ 70
+0
+ 9
+$DIMSOXD
+ 70
+0
+ 9
+$DIMSAH
+ 70
+0
+ 9
+$DIMBLK1
+ 1
+
+ 9
+$DIMBLK2
+ 1
+
+ 9
+$DIMSTYLE
+ 2
+ISO-25
+ 9
+$DIMCLRD
+ 70
+0
+ 9
+$DIMCLRE
+ 70
+0
+ 9
+$DIMCLRT
+ 70
+0
+ 9
+$DIMTFAC
+ 40
+1.0
+ 9
+$DIMGAP
+ 40
+1.0
+ 9
+$DIMJUST
+ 70
+0
+ 9
+$DIMSD1
+ 70
+0
+ 9
+$DIMSD2
+ 70
+0
+ 9
+$DIMTOLJ
+ 70
+0
+ 9
+$DIMTZIN
+ 70
+8
+ 9
+$DIMALTZ
+ 70
+0
+ 9
+$DIMALTTZ
+ 70
+0
+ 9
+$DIMUPT
+ 70
+0
+ 9
+$DIMDEC
+ 70
+2
+ 9
+$DIMTDEC
+ 70
+2
+ 9
+$DIMALTU
+ 70
+2
+ 9
+$DIMALTTD
+ 70
+3
+ 9
+$DIMTXSTY
+ 7
+Standard
+ 9
+$DIMAUNIT
+ 70
+0
+ 9
+$DIMADEC
+ 70
+0
+ 9
+$DIMALTRND
+ 40
+0.0
+ 9
+$DIMAZIN
+ 70
+0
+ 9
+$DIMDSEP
+ 70
+46
+ 9
+$DIMATFIT
+ 70
+3
+ 9
+$DIMFRAC
+ 70
+0
+ 9
+$DIMLDRBLK
+ 1
+
+ 9
+$DIMLUNIT
+ 70
+2
+ 9
+$DIMLWD
+ 70
+-2
+ 9
+$DIMLWE
+ 70
+-2
+ 9
+$DIMTMOVE
+ 70
+0
+ 9
+$DIMFXL
+ 40
+1.0
+ 9
+$DIMFXLON
+ 70
+0
+ 9
+$DIMJOGANG
+ 40
+0.785398163397
+ 9
+$DIMTFILL
+ 70
+0
+ 9
+$DIMTFILLCLR
+ 70
+0
+ 9
+$DIMARCSYM
+ 70
+0
+ 9
+$DIMLTYPE
+ 6
+
+ 9
+$DIMLTEX1
+ 6
+
+ 9
+$DIMLTEX2
+ 6
+
+ 9
+$DIMTXTDIRECTION
+ 70
+0
+ 9
+$LUNITS
+ 70
+2
+ 9
+$LUPREC
+ 70
+2
+ 9
+$SKETCHINC
+ 40
+1.0
+ 9
+$FILLETRAD
+ 40
+10.0
+ 9
+$AUNITS
+ 70
+0
+ 9
+$AUPREC
+ 70
+0
+ 9
+$MENU
+ 1
+.
+ 9
+$ELEVATION
+ 40
+0.0
+ 9
+$PELEVATION
+ 40
+0.0
+ 9
+$THICKNESS
+ 40
+0.0
+ 9
+$LIMCHECK
+ 70
+0
+ 9
+$CHAMFERA
+ 40
+0.0
+ 9
+$CHAMFERB
+ 40
+0.0
+ 9
+$CHAMFERC
+ 40
+0.0
+ 9
+$CHAMFERD
+ 40
+0.0
+ 9
+$SKPOLY
+ 70
+0
+ 9
+$TDCREATE
+ 40
+2461305.9168518516
+ 9
+$TDUCREATE
+ 40
+2458532.153996898
+ 9
+$TDUPDATE
+ 40
+2461305.9168518516
+ 9
+$TDUUPDATE
+ 40
+2458532.1544311
+ 9
+$TDINDWG
+ 40
+0.0
+ 9
+$TDUSRTIMER
+ 40
+0.0
+ 9
+$USRTIMER
+ 70
+1
+ 9
+$ANGBASE
+ 50
+0.0
+ 9
+$ANGDIR
+ 70
+0
+ 9
+$PDMODE
+ 70
+0
+ 9
+$PDSIZE
+ 40
+0.0
+ 9
+$PLINEWID
+ 40
+0.0
+ 9
+$SPLFRAME
+ 70
+0
+ 9
+$SPLINETYPE
+ 70
+6
+ 9
+$SPLINESEGS
+ 70
+8
+ 9
+$HANDSEED
+ 5
+40
+ 9
+$SURFTAB1
+ 70
+6
+ 9
+$SURFTAB2
+ 70
+6
+ 9
+$SURFTYPE
+ 70
+6
+ 9
+$SURFU
+ 70
+6
+ 9
+$SURFV
+ 70
+6
+ 9
+$UCSBASE
+ 2
+
+ 9
+$UCSNAME
+ 2
+
+ 9
+$UCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$UCSORTHOREF
+ 2
+
+ 9
+$UCSORTHOVIEW
+ 70
+0
+ 9
+$UCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSBASE
+ 2
+
+ 9
+$PUCSNAME
+ 2
+
+ 9
+$PUCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$PUCSORTHOREF
+ 2
+
+ 9
+$PUCSORTHOVIEW
+ 70
+0
+ 9
+$PUCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$USERI1
+ 70
+0
+ 9
+$USERI2
+ 70
+0
+ 9
+$USERI3
+ 70
+0
+ 9
+$USERI4
+ 70
+0
+ 9
+$USERI5
+ 70
+0
+ 9
+$USERR1
+ 40
+0.0
+ 9
+$USERR2
+ 40
+0.0
+ 9
+$USERR3
+ 40
+0.0
+ 9
+$USERR4
+ 40
+0.0
+ 9
+$USERR5
+ 40
+0.0
+ 9
+$WORLDVIEW
+ 70
+1
+ 9
+$SHADEDGE
+ 70
+3
+ 9
+$SHADEDIF
+ 70
+70
+ 9
+$TILEMODE
+ 70
+1
+ 9
+$MAXACTVP
+ 70
+64
+ 9
+$PINSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PLIMCHECK
+ 70
+0
+ 9
+$PEXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$PEXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$PLIMMIN
+ 10
+-0.0
+ 20
+-0.0
+ 9
+$PLIMMAX
+ 10
+864.0
+ 20
+559.0
+ 9
+$UNITMODE
+ 70
+0
+ 9
+$VISRETAIN
+ 70
+1
+ 9
+$PLINEGEN
+ 70
+0
+ 9
+$PSLTSCALE
+ 70
+1
+ 9
+$TREEDEPTH
+ 70
+3020
+ 9
+$CMLSTYLE
+ 2
+Standard
+ 9
+$CMLJUST
+ 70
+0
+ 9
+$CMLSCALE
+ 40
+20.0
+ 9
+$PROXYGRAPHICS
+ 70
+1
+ 9
+$MEASUREMENT
+ 70
+1
+ 9
+$CELWEIGHT
+370
+-1
+ 9
+$ENDCAPS
+280
+0
+ 9
+$JOINSTYLE
+280
+0
+ 9
+$LWDISPLAY
+290
+0
+ 9
+$INSUNITS
+ 70
+4
+ 9
+$HYPERLINKBASE
+ 1
+
+ 9
+$STYLESHEET
+ 1
+
+ 9
+$XEDIT
+290
+1
+ 9
+$CEPSNTYPE
+380
+0
+ 9
+$PSTYLEMODE
+290
+1
+ 9
+$FINGERPRINTGUID
+ 2
+{5DBCBFFD-85BB-4756-97CD-DF14393BA48D}
+ 9
+$VERSIONGUID
+ 2
+{8BCC5654-8976-41B9-B27D-2DE6DFEDDA75}
+ 9
+$EXTNAMES
+290
+1
+ 9
+$PSVPSCALE
+ 40
+0.0
+ 9
+$OLESTARTUP
+290
+0
+ 9
+$SORTENTS
+280
+127
+ 9
+$INDEXCTL
+280
+0
+ 9
+$HIDETEXT
+280
+1
+ 9
+$XCLIPFRAME
+280
+1
+ 9
+$HALOGAP
+280
+0
+ 9
+$OBSCOLOR
+ 70
+257
+ 9
+$OBSLTYPE
+280
+0
+ 9
+$INTERSECTIONDISPLAY
+280
+0
+ 9
+$INTERSECTIONCOLOR
+ 70
+257
+ 9
+$DIMASSOC
+280
+2
+ 9
+$PROJECTNAME
+ 1
+
+ 9
+$CAMERADISPLAY
+290
+0
+ 9
+$LENSLENGTH
+ 40
+50.0
+ 9
+$CAMERAHEIGHT
+ 40
+0.0
+ 9
+$STEPSPERSEC
+ 40
+24.0
+ 9
+$STEPSIZE
+ 40
+100.0
+ 9
+$3DDWFPREC
+ 40
+2.0
+ 9
+$PSOLWIDTH
+ 40
+0.005
+ 9
+$PSOLHEIGHT
+ 40
+0.08
+ 9
+$LOFTANG1
+ 40
+1.570796326795
+ 9
+$LOFTANG2
+ 40
+1.570796326795
+ 9
+$LOFTMAG1
+ 40
+0.0
+ 9
+$LOFTMAG2
+ 40
+0.0
+ 9
+$LOFTPARAM
+ 70
+7
+ 9
+$LOFTNORMALS
+280
+1
+ 9
+$LATITUDE
+ 40
+37.795
+ 9
+$LONGITUDE
+ 40
+-122.394
+ 9
+$NORTHDIRECTION
+ 40
+0.0
+ 9
+$TIMEZONE
+ 70
+-8000
+ 9
+$LIGHTGLYPHDISPLAY
+280
+1
+ 9
+$TILEMODELIGHTSYNCH
+280
+1
+ 9
+$CMATERIAL
+347
+20
+ 9
+$SOLIDHIST
+280
+0
+ 9
+$SHOWHIST
+280
+1
+ 9
+$DWFFRAME
+280
+2
+ 9
+$DGNFRAME
+280
+2
+ 9
+$REALWORLDSCALE
+290
+1
+ 9
+$INTERFERECOLOR
+ 62
+256
+ 9
+$CSHADOW
+280
+0
+ 9
+$SHADOWPLANELOCATION
+ 40
+0.0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+CLASSES
+ 0
+CLASS
+ 1
+ACDBDICTIONARYWDFLT
+ 2
+AcDbDictionaryWithDefault
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SUN
+ 2
+AcDbSun
+ 3
+SCENEOE
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+VISUALSTYLE
+ 2
+AcDbVisualStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MATERIAL
+ 2
+AcDbMaterial
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SCALE
+ 2
+AcDbScale
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+TABLESTYLE
+ 2
+AcDbTableStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MLEADERSTYLE
+ 2
+AcDbMLeaderStyle
+ 3
+ACDB_MLEADERSTYLE_CLASS
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+DICTIONARYVAR
+ 2
+AcDbDictionaryVar
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+CELLSTYLEMAP
+ 2
+AcDbCellStyleMap
+ 3
+ObjectDBX Classes
+ 90
+1152
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MENTALRAYRENDERSETTINGS
+ 2
+AcDbMentalRayRenderSettings
+ 3
+SCENEOE
+ 90
+1024
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBDETAILVIEWSTYLE
+ 2
+AcDbDetailViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBSECTIONVIEWSTYLE
+ 2
+AcDbSectionViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+RASTERVARIABLES
+ 2
+AcDbRasterVariables
+ 3
+ISM
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBPLACEHOLDER
+ 2
+AcDbPlaceHolder
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+LAYOUT
+ 2
+AcDbLayout
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+TABLES
+ 0
+TABLE
+ 2
+VPORT
+ 5
+8
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+VPORT
+ 5
+23
+330
+8
+100
+AcDbSymbolTableRecord
+100
+AcDbViewportTableRecord
+ 2
+*Active
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+1.0
+ 21
+1.0
+ 12
+0.0
+ 22
+0.0
+ 13
+0.0
+ 23
+0.0
+ 14
+0.5
+ 24
+0.5
+ 15
+0.5
+ 25
+0.5
+ 16
+0.0
+ 26
+0.0
+ 36
+1.0
+ 17
+0.0
+ 27
+0.0
+ 37
+0.0
+ 40
+1000.0
+ 41
+1.34
+ 42
+50.0
+ 43
+0.0
+ 44
+0.0
+ 50
+0.0
+ 51
+0.0
+ 71
+0
+ 72
+1000
+ 73
+1
+ 74
+3
+ 75
+0
+ 76
+0
+ 77
+0
+ 78
+0
+281
+0
+ 65
+0
+146
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LTYPE
+ 5
+2
+330
+0
+100
+AcDbSymbolTable
+ 70
+8
+ 0
+LTYPE
+ 5
+24
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByBlock
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+25
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByLayer
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+26
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+Continuous
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+2F
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+CENTER
+ 70
+0
+ 3
+Center ____ _ ____ _ ____ _ ____ _ ____ _ ____
+ 72
+65
+ 73
+4
+ 40
+2.0
+ 49
+1.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 0
+LTYPE
+ 5
+30
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+HIDDEN
+ 70
+0
+ 3
+Hidden __ __ __ __ __ __ __ __ __
+ 72
+65
+ 73
+2
+ 40
+7.5
+ 49
+5.0
+ 74
+0
+ 49
+-2.5
+ 74
+0
+ 0
+LTYPE
+ 5
+31
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+PHANTOM
+ 70
+0
+ 3
+Phantom ______ __ __ ______ __ __ ______
+ 72
+65
+ 73
+6
+ 40
+2.5
+ 49
+1.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 0
+LTYPE
+ 5
+32
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+DASHED
+ 70
+0
+ 3
+Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _
+ 72
+65
+ 73
+2
+ 40
+0.6
+ 49
+0.5
+ 74
+0
+ 49
+-0.1
+ 74
+0
+ 0
+LTYPE
+ 5
+33
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+DASHDOT
+ 70
+0
+ 3
+Dash dot __ . __ . __ . __ . __ . __ . __ . __
+ 72
+65
+ 73
+4
+ 40
+1.4
+ 49
+1.0
+ 74
+0
+ 49
+-0.2
+ 74
+0
+ 49
+0.0
+ 74
+0
+ 49
+-0.2
+ 74
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LAYER
+ 5
+1
+330
+0
+100
+AcDbSymbolTable
+ 70
+11
+ 0
+LAYER
+ 5
+27
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+0
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+28
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+Defpoints
+ 70
+0
+ 62
+7
+ 6
+Continuous
+290
+0
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+34
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-GEOMET-E-N
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+35
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-HIDDEN-E-N
+ 70
+0
+ 62
+3
+ 6
+HIDDEN
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+36
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-CENTL-E-N
+ 70
+0
+ 62
+1
+ 6
+CENTER
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+37
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-PHANT-E-N
+ 70
+0
+ 62
+6
+ 6
+PHANTOM
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+38
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-DIMEN-T-N
+ 70
+0
+ 62
+2
+ 6
+Continuous
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+39
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-TEXT-T-N
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3A
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-HATCH-H-N
+ 70
+0
+ 62
+8
+ 6
+Continuous
+370
+13
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3B
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-TITLE-T-N
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3C
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-CONST-E-N
+ 70
+0
+ 62
+250
+ 6
+Continuous
+370
+5
+390
+13
+347
+21
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+STYLE
+ 5
+5
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+STYLE
+ 5
+29
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbTextStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+0.0
+ 41
+1.0
+ 50
+0.0
+ 71
+0
+ 42
+2.5
+ 3
+txt
+ 4
+
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+VIEW
+ 5
+7
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+UCS
+ 5
+6
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+APPID
+ 5
+3
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+APPID
+ 5
+2A
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+ACAD
+ 70
+0
+ 0
+APPID
+ 5
+3D
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+HATCHBACKGROUNDCOLOR
+ 70
+0
+ 0
+APPID
+ 5
+3E
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+EZDXF
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+DIMSTYLE
+ 5
+4
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+100
+AcDbDimStyleTable
+ 0
+DIMSTYLE
+105
+2B
+330
+4
+100
+AcDbSymbolTableRecord
+100
+AcDbDimStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+1.0
+ 41
+2.5
+ 42
+0.625
+ 43
+3.75
+ 44
+1.25
+ 45
+0.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+2.5
+140
+2.5
+141
+2.5
+142
+0.0
+143
+0.03937007874
+144
+1.0
+145
+0.0
+146
+1.0
+147
+0.625
+148
+0.0
+ 69
+0
+ 70
+0
+ 71
+0
+ 72
+0
+ 73
+0
+ 74
+0
+ 75
+0
+ 76
+0
+ 77
+1
+ 78
+8
+ 79
+3
+170
+0
+171
+3
+172
+1
+173
+0
+174
+0
+175
+0
+176
+0
+177
+0
+178
+0
+179
+2
+271
+2
+272
+2
+273
+2
+274
+3
+275
+0
+276
+0
+277
+2
+278
+46
+279
+0
+280
+0
+281
+0
+282
+0
+283
+0
+284
+8
+285
+0
+286
+0
+288
+0
+289
+3
+290
+0
+371
+-2
+372
+-2
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+BLOCK_RECORD
+ 5
+9
+330
+0
+100
+AcDbSymbolTable
+ 70
+2
+ 0
+BLOCK_RECORD
+ 5
+17
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Model_Space
+340
+1A
+ 70
+0
+280
+1
+281
+0
+ 0
+BLOCK_RECORD
+ 5
+1B
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Paper_Space
+340
+1E
+ 70
+0
+280
+1
+281
+0
+ 0
+ENDTAB
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+BLOCKS
+ 0
+BLOCK
+ 5
+18
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Model_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Model_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+19
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+BLOCK
+ 5
+1C
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Paper_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Paper_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+1D
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+OBJECTS
+ 0
+DICTIONARY
+ 5
+A
+330
+0
+100
+AcDbDictionary
+281
+1
+ 3
+ACAD_COLOR
+350
+B
+ 3
+ACAD_GROUP
+350
+C
+ 3
+ACAD_LAYOUT
+350
+D
+ 3
+ACAD_MATERIAL
+350
+E
+ 3
+ACAD_MLEADERSTYLE
+350
+F
+ 3
+ACAD_MLINESTYLE
+350
+10
+ 3
+ACAD_PLOTSETTINGS
+350
+11
+ 3
+ACAD_PLOTSTYLENAME
+350
+12
+ 3
+ACAD_SCALELIST
+350
+14
+ 3
+ACAD_TABLESTYLE
+350
+15
+ 3
+ACAD_VISUALSTYLE
+350
+16
+ 3
+EZDXF_META
+350
+2D
+ 0
+DICTIONARY
+ 5
+B
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+C
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+D
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Model
+350
+1A
+ 3
+D
+350
+1E
+ 0
+DICTIONARY
+ 5
+E
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+ByBlock
+350
+1F
+ 3
+ByLayer
+350
+20
+ 3
+Global
+350
+21
+ 0
+DICTIONARY
+ 5
+F
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+2C
+ 0
+DICTIONARY
+ 5
+10
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+22
+ 0
+DICTIONARY
+ 5
+11
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+ACDBDICTIONARYWDFLT
+ 5
+12
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Normal
+350
+13
+100
+AcDbDictionaryWithDefault
+340
+13
+ 0
+ACDBPLACEHOLDER
+ 5
+13
+330
+12
+ 0
+DICTIONARY
+ 5
+14
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+15
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+16
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+LAYOUT
+ 5
+1A
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+1024
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Model
+ 70
+1
+ 71
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+17
+ 0
+LAYOUT
+ 5
+1E
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 2
+DWG To PDF.pc3
+ 4
+ANSI_D_(34.00_x_22.00_Inches)
+ 6
+
+ 40
+0.0
+ 41
+0.0
+ 42
+0.0
+ 43
+0.0
+ 44
+864.0
+ 45
+559.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+688
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+monochrome.ctb
+ 75
+0
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+D
+ 70
+1
+ 71
+1
+ 10
+-0.0
+ 20
+-0.0
+ 11
+864.0
+ 21
+559.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+1B
+ 0
+MATERIAL
+ 5
+1F
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByBlock
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+20
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByLayer
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+21
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+Global
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MLINESTYLE
+ 5
+22
+102
+{ACAD_REACTORS
+330
+10
+102
+}
+330
+10
+100
+AcDbMlineStyle
+ 2
+Standard
+ 70
+0
+ 3
+
+ 62
+256
+ 51
+90.0
+ 52
+90.0
+ 71
+2
+ 49
+0.5
+ 62
+256
+ 6
+BYLAYER
+ 49
+-0.5
+ 62
+256
+ 6
+BYLAYER
+ 0
+MLEADERSTYLE
+ 5
+2C
+102
+{ACAD_REACTORS
+330
+F
+102
+}
+330
+F
+100
+AcDbMLeaderStyle
+179
+2
+170
+2
+171
+1
+172
+0
+ 90
+2
+ 40
+0.0
+ 41
+0.0
+173
+1
+ 91
+-1056964608
+ 92
+-2
+290
+1
+ 42
+2.0
+291
+1
+ 43
+8.0
+ 3
+Standard
+ 44
+4.0
+300
+
+342
+29
+174
+1
+175
+1
+176
+0
+178
+1
+ 93
+-1056964608
+ 45
+4.0
+292
+0
+297
+0
+ 46
+4.0
+ 94
+-1056964608
+ 47
+1.0
+ 49
+1.0
+140
+1.0
+294
+1
+141
+0.0
+177
+0
+142
+1.0
+295
+0
+296
+0
+143
+3.75
+271
+0
+272
+9
+273
+9
+ 0
+DICTIONARY
+ 5
+2D
+330
+A
+100
+AcDbDictionary
+280
+1
+281
+1
+ 3
+CREATED_BY_EZDXF
+350
+2E
+ 3
+WRITTEN_BY_EZDXF
+350
+3F
+ 0
+DICTIONARYVAR
+ 5
+2E
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.4 @ 2026-09-21T19:00:16.265081+00:00
+ 0
+DICTIONARYVAR
+ 5
+3F
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.4 @ 2026-09-21T19:00:16.272301+00:00
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/templates/iso_a1_arch.dxf b/templates/iso_a1_arch.dxf
new file mode 100644
index 0000000..8904c76
--- /dev/null
+++ b/templates/iso_a1_arch.dxf
@@ -0,0 +1,3444 @@
+ 0
+SECTION
+ 2
+HEADER
+ 9
+$ACADVER
+ 1
+AC1024
+ 9
+$ACADMAINTVER
+ 70
+6
+ 9
+$DWGCODEPAGE
+ 3
+ANSI_1252
+ 9
+$LASTSAVEDBY
+ 1
+ezdxf
+ 9
+$INSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$EXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$EXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$LIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$LIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$ORTHOMODE
+ 70
+0
+ 9
+$REGENMODE
+ 70
+1
+ 9
+$FILLMODE
+ 70
+1
+ 9
+$QTEXTMODE
+ 70
+0
+ 9
+$MIRRTEXT
+ 70
+1
+ 9
+$LTSCALE
+ 40
+1.0
+ 9
+$ATTMODE
+ 70
+1
+ 9
+$TEXTSIZE
+ 40
+2.5
+ 9
+$TRACEWID
+ 40
+1.0
+ 9
+$TEXTSTYLE
+ 7
+Standard
+ 9
+$CLAYER
+ 8
+0
+ 9
+$CELTYPE
+ 6
+ByLayer
+ 9
+$CECOLOR
+ 62
+256
+ 9
+$CELTSCALE
+ 40
+1.0
+ 9
+$DISPSILH
+ 70
+0
+ 9
+$DIMSCALE
+ 40
+1.0
+ 9
+$DIMASZ
+ 40
+2.5
+ 9
+$DIMEXO
+ 40
+0.625
+ 9
+$DIMDLI
+ 40
+3.75
+ 9
+$DIMRND
+ 40
+0.0
+ 9
+$DIMDLE
+ 40
+0.0
+ 9
+$DIMEXE
+ 40
+1.25
+ 9
+$DIMTP
+ 40
+0.0
+ 9
+$DIMTM
+ 40
+0.0
+ 9
+$DIMTXT
+ 40
+2.5
+ 9
+$DIMCEN
+ 40
+2.5
+ 9
+$DIMTSZ
+ 40
+0.0
+ 9
+$DIMTOL
+ 70
+0
+ 9
+$DIMLIM
+ 70
+0
+ 9
+$DIMTIH
+ 70
+0
+ 9
+$DIMTOH
+ 70
+0
+ 9
+$DIMSE1
+ 70
+0
+ 9
+$DIMSE2
+ 70
+0
+ 9
+$DIMTAD
+ 70
+1
+ 9
+$DIMZIN
+ 70
+8
+ 9
+$DIMBLK
+ 1
+
+ 9
+$DIMASO
+ 70
+1
+ 9
+$DIMSHO
+ 70
+1
+ 9
+$DIMPOST
+ 1
+
+ 9
+$DIMAPOST
+ 1
+
+ 9
+$DIMALT
+ 70
+0
+ 9
+$DIMALTD
+ 70
+3
+ 9
+$DIMALTF
+ 40
+0.03937007874
+ 9
+$DIMLFAC
+ 40
+1.0
+ 9
+$DIMTOFL
+ 70
+1
+ 9
+$DIMTVP
+ 40
+0.0
+ 9
+$DIMTIX
+ 70
+0
+ 9
+$DIMSOXD
+ 70
+0
+ 9
+$DIMSAH
+ 70
+0
+ 9
+$DIMBLK1
+ 1
+
+ 9
+$DIMBLK2
+ 1
+
+ 9
+$DIMSTYLE
+ 2
+ISO-25
+ 9
+$DIMCLRD
+ 70
+0
+ 9
+$DIMCLRE
+ 70
+0
+ 9
+$DIMCLRT
+ 70
+0
+ 9
+$DIMTFAC
+ 40
+1.0
+ 9
+$DIMGAP
+ 40
+0.625
+ 9
+$DIMJUST
+ 70
+0
+ 9
+$DIMSD1
+ 70
+0
+ 9
+$DIMSD2
+ 70
+0
+ 9
+$DIMTOLJ
+ 70
+0
+ 9
+$DIMTZIN
+ 70
+8
+ 9
+$DIMALTZ
+ 70
+0
+ 9
+$DIMALTTZ
+ 70
+0
+ 9
+$DIMUPT
+ 70
+0
+ 9
+$DIMDEC
+ 70
+2
+ 9
+$DIMTDEC
+ 70
+2
+ 9
+$DIMALTU
+ 70
+2
+ 9
+$DIMALTTD
+ 70
+3
+ 9
+$DIMTXSTY
+ 7
+Standard
+ 9
+$DIMAUNIT
+ 70
+0
+ 9
+$DIMADEC
+ 70
+0
+ 9
+$DIMALTRND
+ 40
+0.0
+ 9
+$DIMAZIN
+ 70
+0
+ 9
+$DIMDSEP
+ 70
+44
+ 9
+$DIMATFIT
+ 70
+3
+ 9
+$DIMFRAC
+ 70
+0
+ 9
+$DIMLDRBLK
+ 1
+
+ 9
+$DIMLUNIT
+ 70
+2
+ 9
+$DIMLWD
+ 70
+-2
+ 9
+$DIMLWE
+ 70
+-2
+ 9
+$DIMTMOVE
+ 70
+0
+ 9
+$DIMFXL
+ 40
+1.0
+ 9
+$DIMFXLON
+ 70
+0
+ 9
+$DIMJOGANG
+ 40
+0.785398163397
+ 9
+$DIMTFILL
+ 70
+0
+ 9
+$DIMTFILLCLR
+ 70
+0
+ 9
+$DIMARCSYM
+ 70
+0
+ 9
+$DIMLTYPE
+ 6
+
+ 9
+$DIMLTEX1
+ 6
+
+ 9
+$DIMLTEX2
+ 6
+
+ 9
+$DIMTXTDIRECTION
+ 70
+0
+ 9
+$LUNITS
+ 70
+2
+ 9
+$LUPREC
+ 70
+2
+ 9
+$SKETCHINC
+ 40
+1.0
+ 9
+$FILLETRAD
+ 40
+10.0
+ 9
+$AUNITS
+ 70
+0
+ 9
+$AUPREC
+ 70
+0
+ 9
+$MENU
+ 1
+.
+ 9
+$ELEVATION
+ 40
+0.0
+ 9
+$PELEVATION
+ 40
+0.0
+ 9
+$THICKNESS
+ 40
+0.0
+ 9
+$LIMCHECK
+ 70
+0
+ 9
+$CHAMFERA
+ 40
+0.0
+ 9
+$CHAMFERB
+ 40
+0.0
+ 9
+$CHAMFERC
+ 40
+0.0
+ 9
+$CHAMFERD
+ 40
+0.0
+ 9
+$SKPOLY
+ 70
+0
+ 9
+$TDCREATE
+ 40
+2461305.9168518516
+ 9
+$TDUCREATE
+ 40
+2458532.153996898
+ 9
+$TDUPDATE
+ 40
+2461305.9168518516
+ 9
+$TDUUPDATE
+ 40
+2458532.1544311
+ 9
+$TDINDWG
+ 40
+0.0
+ 9
+$TDUSRTIMER
+ 40
+0.0
+ 9
+$USRTIMER
+ 70
+1
+ 9
+$ANGBASE
+ 50
+0.0
+ 9
+$ANGDIR
+ 70
+0
+ 9
+$PDMODE
+ 70
+0
+ 9
+$PDSIZE
+ 40
+0.0
+ 9
+$PLINEWID
+ 40
+0.0
+ 9
+$SPLFRAME
+ 70
+0
+ 9
+$SPLINETYPE
+ 70
+6
+ 9
+$SPLINESEGS
+ 70
+8
+ 9
+$HANDSEED
+ 5
+40
+ 9
+$SURFTAB1
+ 70
+6
+ 9
+$SURFTAB2
+ 70
+6
+ 9
+$SURFTYPE
+ 70
+6
+ 9
+$SURFU
+ 70
+6
+ 9
+$SURFV
+ 70
+6
+ 9
+$UCSBASE
+ 2
+
+ 9
+$UCSNAME
+ 2
+
+ 9
+$UCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$UCSORTHOREF
+ 2
+
+ 9
+$UCSORTHOVIEW
+ 70
+0
+ 9
+$UCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSBASE
+ 2
+
+ 9
+$PUCSNAME
+ 2
+
+ 9
+$PUCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$PUCSORTHOREF
+ 2
+
+ 9
+$PUCSORTHOVIEW
+ 70
+0
+ 9
+$PUCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$USERI1
+ 70
+0
+ 9
+$USERI2
+ 70
+0
+ 9
+$USERI3
+ 70
+0
+ 9
+$USERI4
+ 70
+0
+ 9
+$USERI5
+ 70
+0
+ 9
+$USERR1
+ 40
+0.0
+ 9
+$USERR2
+ 40
+0.0
+ 9
+$USERR3
+ 40
+0.0
+ 9
+$USERR4
+ 40
+0.0
+ 9
+$USERR5
+ 40
+0.0
+ 9
+$WORLDVIEW
+ 70
+1
+ 9
+$SHADEDGE
+ 70
+3
+ 9
+$SHADEDIF
+ 70
+70
+ 9
+$TILEMODE
+ 70
+1
+ 9
+$MAXACTVP
+ 70
+64
+ 9
+$PINSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PLIMCHECK
+ 70
+0
+ 9
+$PEXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$PEXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$PLIMMIN
+ 10
+-0.0
+ 20
+-0.0
+ 9
+$PLIMMAX
+ 10
+841.0
+ 20
+594.0
+ 9
+$UNITMODE
+ 70
+0
+ 9
+$VISRETAIN
+ 70
+1
+ 9
+$PLINEGEN
+ 70
+0
+ 9
+$PSLTSCALE
+ 70
+1
+ 9
+$TREEDEPTH
+ 70
+3020
+ 9
+$CMLSTYLE
+ 2
+Standard
+ 9
+$CMLJUST
+ 70
+0
+ 9
+$CMLSCALE
+ 40
+20.0
+ 9
+$PROXYGRAPHICS
+ 70
+1
+ 9
+$MEASUREMENT
+ 70
+1
+ 9
+$CELWEIGHT
+370
+-1
+ 9
+$ENDCAPS
+280
+0
+ 9
+$JOINSTYLE
+280
+0
+ 9
+$LWDISPLAY
+290
+0
+ 9
+$INSUNITS
+ 70
+4
+ 9
+$HYPERLINKBASE
+ 1
+
+ 9
+$STYLESHEET
+ 1
+
+ 9
+$XEDIT
+290
+1
+ 9
+$CEPSNTYPE
+380
+0
+ 9
+$PSTYLEMODE
+290
+1
+ 9
+$FINGERPRINTGUID
+ 2
+{06CA53E2-CDAA-439F-9CAD-D12BED7E531C}
+ 9
+$VERSIONGUID
+ 2
+{DFE1833D-4A98-418F-8215-C1956203953D}
+ 9
+$EXTNAMES
+290
+1
+ 9
+$PSVPSCALE
+ 40
+0.0
+ 9
+$OLESTARTUP
+290
+0
+ 9
+$SORTENTS
+280
+127
+ 9
+$INDEXCTL
+280
+0
+ 9
+$HIDETEXT
+280
+1
+ 9
+$XCLIPFRAME
+280
+1
+ 9
+$HALOGAP
+280
+0
+ 9
+$OBSCOLOR
+ 70
+257
+ 9
+$OBSLTYPE
+280
+0
+ 9
+$INTERSECTIONDISPLAY
+280
+0
+ 9
+$INTERSECTIONCOLOR
+ 70
+257
+ 9
+$DIMASSOC
+280
+2
+ 9
+$PROJECTNAME
+ 1
+
+ 9
+$CAMERADISPLAY
+290
+0
+ 9
+$LENSLENGTH
+ 40
+50.0
+ 9
+$CAMERAHEIGHT
+ 40
+0.0
+ 9
+$STEPSPERSEC
+ 40
+24.0
+ 9
+$STEPSIZE
+ 40
+100.0
+ 9
+$3DDWFPREC
+ 40
+2.0
+ 9
+$PSOLWIDTH
+ 40
+0.005
+ 9
+$PSOLHEIGHT
+ 40
+0.08
+ 9
+$LOFTANG1
+ 40
+1.570796326795
+ 9
+$LOFTANG2
+ 40
+1.570796326795
+ 9
+$LOFTMAG1
+ 40
+0.0
+ 9
+$LOFTMAG2
+ 40
+0.0
+ 9
+$LOFTPARAM
+ 70
+7
+ 9
+$LOFTNORMALS
+280
+1
+ 9
+$LATITUDE
+ 40
+37.795
+ 9
+$LONGITUDE
+ 40
+-122.394
+ 9
+$NORTHDIRECTION
+ 40
+0.0
+ 9
+$TIMEZONE
+ 70
+-8000
+ 9
+$LIGHTGLYPHDISPLAY
+280
+1
+ 9
+$TILEMODELIGHTSYNCH
+280
+1
+ 9
+$CMATERIAL
+347
+20
+ 9
+$SOLIDHIST
+280
+0
+ 9
+$SHOWHIST
+280
+1
+ 9
+$DWFFRAME
+280
+2
+ 9
+$DGNFRAME
+280
+2
+ 9
+$REALWORLDSCALE
+290
+1
+ 9
+$INTERFERECOLOR
+ 62
+256
+ 9
+$CSHADOW
+280
+0
+ 9
+$SHADOWPLANELOCATION
+ 40
+0.0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+CLASSES
+ 0
+CLASS
+ 1
+ACDBDICTIONARYWDFLT
+ 2
+AcDbDictionaryWithDefault
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SUN
+ 2
+AcDbSun
+ 3
+SCENEOE
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+VISUALSTYLE
+ 2
+AcDbVisualStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MATERIAL
+ 2
+AcDbMaterial
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SCALE
+ 2
+AcDbScale
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+TABLESTYLE
+ 2
+AcDbTableStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MLEADERSTYLE
+ 2
+AcDbMLeaderStyle
+ 3
+ACDB_MLEADERSTYLE_CLASS
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+DICTIONARYVAR
+ 2
+AcDbDictionaryVar
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+CELLSTYLEMAP
+ 2
+AcDbCellStyleMap
+ 3
+ObjectDBX Classes
+ 90
+1152
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MENTALRAYRENDERSETTINGS
+ 2
+AcDbMentalRayRenderSettings
+ 3
+SCENEOE
+ 90
+1024
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBDETAILVIEWSTYLE
+ 2
+AcDbDetailViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBSECTIONVIEWSTYLE
+ 2
+AcDbSectionViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+RASTERVARIABLES
+ 2
+AcDbRasterVariables
+ 3
+ISM
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBPLACEHOLDER
+ 2
+AcDbPlaceHolder
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+LAYOUT
+ 2
+AcDbLayout
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+TABLES
+ 0
+TABLE
+ 2
+VPORT
+ 5
+8
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+VPORT
+ 5
+23
+330
+8
+100
+AcDbSymbolTableRecord
+100
+AcDbViewportTableRecord
+ 2
+*Active
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+1.0
+ 21
+1.0
+ 12
+0.0
+ 22
+0.0
+ 13
+0.0
+ 23
+0.0
+ 14
+0.5
+ 24
+0.5
+ 15
+0.5
+ 25
+0.5
+ 16
+0.0
+ 26
+0.0
+ 36
+1.0
+ 17
+0.0
+ 27
+0.0
+ 37
+0.0
+ 40
+1000.0
+ 41
+1.34
+ 42
+50.0
+ 43
+0.0
+ 44
+0.0
+ 50
+0.0
+ 51
+0.0
+ 71
+0
+ 72
+1000
+ 73
+1
+ 74
+3
+ 75
+0
+ 76
+0
+ 77
+0
+ 78
+0
+281
+0
+ 65
+0
+146
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LTYPE
+ 5
+2
+330
+0
+100
+AcDbSymbolTable
+ 70
+8
+ 0
+LTYPE
+ 5
+24
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByBlock
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+25
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByLayer
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+26
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+Continuous
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+2F
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+CENTER
+ 70
+0
+ 3
+Center ____ _ ____ _ ____ _ ____ _ ____ _ ____
+ 72
+65
+ 73
+4
+ 40
+2.0
+ 49
+1.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 0
+LTYPE
+ 5
+30
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+HIDDEN
+ 70
+0
+ 3
+Hidden __ __ __ __ __ __ __ __ __
+ 72
+65
+ 73
+2
+ 40
+7.5
+ 49
+5.0
+ 74
+0
+ 49
+-2.5
+ 74
+0
+ 0
+LTYPE
+ 5
+31
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+PHANTOM
+ 70
+0
+ 3
+Phantom ______ __ __ ______ __ __ ______
+ 72
+65
+ 73
+6
+ 40
+2.5
+ 49
+1.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 0
+LTYPE
+ 5
+32
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+DASHED
+ 70
+0
+ 3
+Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _
+ 72
+65
+ 73
+2
+ 40
+0.6
+ 49
+0.5
+ 74
+0
+ 49
+-0.1
+ 74
+0
+ 0
+LTYPE
+ 5
+33
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+DASHDOT
+ 70
+0
+ 3
+Dash dot __ . __ . __ . __ . __ . __ . __ . __
+ 72
+65
+ 73
+4
+ 40
+1.4
+ 49
+1.0
+ 74
+0
+ 49
+-0.2
+ 74
+0
+ 49
+0.0
+ 74
+0
+ 49
+-0.2
+ 74
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LAYER
+ 5
+1
+330
+0
+100
+AcDbSymbolTable
+ 70
+11
+ 0
+LAYER
+ 5
+27
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+0
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+28
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+Defpoints
+ 70
+0
+ 62
+7
+ 6
+Continuous
+290
+0
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+34
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-GEOMET-E-N
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+35
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-HIDDEN-E-N
+ 70
+0
+ 62
+3
+ 6
+HIDDEN
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+36
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-CENTL-E-N
+ 70
+0
+ 62
+1
+ 6
+CENTER
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+37
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-PHANT-E-N
+ 70
+0
+ 62
+6
+ 6
+PHANTOM
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+38
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-DIMEN-T-N
+ 70
+0
+ 62
+2
+ 6
+Continuous
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+39
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-TEXT-T-N
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3A
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-HATCH-H-N
+ 70
+0
+ 62
+8
+ 6
+Continuous
+370
+13
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3B
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-TITLE-T-N
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3C
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+M-CONST-E-N
+ 70
+0
+ 62
+250
+ 6
+Continuous
+370
+5
+390
+13
+347
+21
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+STYLE
+ 5
+5
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+STYLE
+ 5
+29
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbTextStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+0.0
+ 41
+1.0
+ 50
+0.0
+ 71
+0
+ 42
+2.5
+ 3
+txt
+ 4
+
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+VIEW
+ 5
+7
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+UCS
+ 5
+6
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+APPID
+ 5
+3
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+APPID
+ 5
+2A
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+ACAD
+ 70
+0
+ 0
+APPID
+ 5
+3D
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+HATCHBACKGROUNDCOLOR
+ 70
+0
+ 0
+APPID
+ 5
+3E
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+EZDXF
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+DIMSTYLE
+ 5
+4
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+100
+AcDbDimStyleTable
+ 0
+DIMSTYLE
+105
+2B
+330
+4
+100
+AcDbSymbolTableRecord
+100
+AcDbDimStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+1.0
+ 41
+2.5
+ 42
+0.625
+ 43
+3.75
+ 44
+1.25
+ 45
+0.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+2.5
+140
+2.5
+141
+2.5
+142
+0.0
+143
+0.03937007874
+144
+1.0
+145
+0.0
+146
+1.0
+147
+0.625
+148
+0.0
+ 69
+0
+ 70
+0
+ 71
+0
+ 72
+0
+ 73
+0
+ 74
+0
+ 75
+0
+ 76
+0
+ 77
+1
+ 78
+8
+ 79
+3
+170
+0
+171
+3
+172
+1
+173
+0
+174
+0
+175
+0
+176
+0
+177
+0
+178
+0
+179
+2
+271
+2
+272
+2
+273
+2
+274
+3
+275
+0
+276
+0
+277
+2
+278
+46
+279
+0
+280
+0
+281
+0
+282
+0
+283
+0
+284
+8
+285
+0
+286
+0
+288
+0
+289
+3
+290
+0
+371
+-2
+372
+-2
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+BLOCK_RECORD
+ 5
+9
+330
+0
+100
+AcDbSymbolTable
+ 70
+2
+ 0
+BLOCK_RECORD
+ 5
+17
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Model_Space
+340
+1A
+ 70
+0
+280
+1
+281
+0
+ 0
+BLOCK_RECORD
+ 5
+1B
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Paper_Space
+340
+1E
+ 70
+0
+280
+1
+281
+0
+ 0
+ENDTAB
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+BLOCKS
+ 0
+BLOCK
+ 5
+18
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Model_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Model_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+19
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+BLOCK
+ 5
+1C
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Paper_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Paper_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+1D
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+OBJECTS
+ 0
+DICTIONARY
+ 5
+A
+330
+0
+100
+AcDbDictionary
+281
+1
+ 3
+ACAD_COLOR
+350
+B
+ 3
+ACAD_GROUP
+350
+C
+ 3
+ACAD_LAYOUT
+350
+D
+ 3
+ACAD_MATERIAL
+350
+E
+ 3
+ACAD_MLEADERSTYLE
+350
+F
+ 3
+ACAD_MLINESTYLE
+350
+10
+ 3
+ACAD_PLOTSETTINGS
+350
+11
+ 3
+ACAD_PLOTSTYLENAME
+350
+12
+ 3
+ACAD_SCALELIST
+350
+14
+ 3
+ACAD_TABLESTYLE
+350
+15
+ 3
+ACAD_VISUALSTYLE
+350
+16
+ 3
+EZDXF_META
+350
+2D
+ 0
+DICTIONARY
+ 5
+B
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+C
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+D
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Model
+350
+1A
+ 3
+A1
+350
+1E
+ 0
+DICTIONARY
+ 5
+E
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+ByBlock
+350
+1F
+ 3
+ByLayer
+350
+20
+ 3
+Global
+350
+21
+ 0
+DICTIONARY
+ 5
+F
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+2C
+ 0
+DICTIONARY
+ 5
+10
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+22
+ 0
+DICTIONARY
+ 5
+11
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+ACDBDICTIONARYWDFLT
+ 5
+12
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Normal
+350
+13
+100
+AcDbDictionaryWithDefault
+340
+13
+ 0
+ACDBPLACEHOLDER
+ 5
+13
+330
+12
+ 0
+DICTIONARY
+ 5
+14
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+15
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+16
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+LAYOUT
+ 5
+1A
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+1024
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Model
+ 70
+1
+ 71
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+17
+ 0
+LAYOUT
+ 5
+1E
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 2
+DWG To PDF.pc3
+ 4
+ISO_A1_(841.00_x_594.00_MM)
+ 6
+
+ 40
+0.0
+ 41
+0.0
+ 42
+0.0
+ 43
+0.0
+ 44
+841.0
+ 45
+594.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+688
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+monochrome.ctb
+ 75
+0
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+A1
+ 70
+1
+ 71
+1
+ 10
+-0.0
+ 20
+-0.0
+ 11
+841.0
+ 21
+594.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+1B
+ 0
+MATERIAL
+ 5
+1F
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByBlock
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+20
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByLayer
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+21
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+Global
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MLINESTYLE
+ 5
+22
+102
+{ACAD_REACTORS
+330
+10
+102
+}
+330
+10
+100
+AcDbMlineStyle
+ 2
+Standard
+ 70
+0
+ 3
+
+ 62
+256
+ 51
+90.0
+ 52
+90.0
+ 71
+2
+ 49
+0.5
+ 62
+256
+ 6
+BYLAYER
+ 49
+-0.5
+ 62
+256
+ 6
+BYLAYER
+ 0
+MLEADERSTYLE
+ 5
+2C
+102
+{ACAD_REACTORS
+330
+F
+102
+}
+330
+F
+100
+AcDbMLeaderStyle
+179
+2
+170
+2
+171
+1
+172
+0
+ 90
+2
+ 40
+0.0
+ 41
+0.0
+173
+1
+ 91
+-1056964608
+ 92
+-2
+290
+1
+ 42
+2.0
+291
+1
+ 43
+8.0
+ 3
+Standard
+ 44
+4.0
+300
+
+342
+29
+174
+1
+175
+1
+176
+0
+178
+1
+ 93
+-1056964608
+ 45
+4.0
+292
+0
+297
+0
+ 46
+4.0
+ 94
+-1056964608
+ 47
+1.0
+ 49
+1.0
+140
+1.0
+294
+1
+141
+0.0
+177
+0
+142
+1.0
+295
+0
+296
+0
+143
+3.75
+271
+0
+272
+9
+273
+9
+ 0
+DICTIONARY
+ 5
+2D
+330
+A
+100
+AcDbDictionary
+280
+1
+281
+1
+ 3
+CREATED_BY_EZDXF
+350
+2E
+ 3
+WRITTEN_BY_EZDXF
+350
+3F
+ 0
+DICTIONARYVAR
+ 5
+2E
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.4 @ 2026-09-21T19:00:16.220288+00:00
+ 0
+DICTIONARYVAR
+ 5
+3F
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.4 @ 2026-09-21T19:00:16.228248+00:00
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/templates/iso_a3_mech.dxf b/templates/iso_a3_mech.dxf
new file mode 100644
index 0000000..d2b5f9a
--- /dev/null
+++ b/templates/iso_a3_mech.dxf
@@ -0,0 +1,4352 @@
+ 0
+SECTION
+ 2
+HEADER
+ 9
+$ACADVER
+ 1
+AC1024
+ 9
+$ACADMAINTVER
+ 70
+6
+ 9
+$DWGCODEPAGE
+ 3
+ANSI_1252
+ 9
+$LASTSAVEDBY
+ 1
+ezdxf
+ 9
+$INSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$EXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$EXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$LIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$LIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$ORTHOMODE
+ 70
+0
+ 9
+$REGENMODE
+ 70
+1
+ 9
+$FILLMODE
+ 70
+1
+ 9
+$QTEXTMODE
+ 70
+0
+ 9
+$MIRRTEXT
+ 70
+1
+ 9
+$LTSCALE
+ 40
+1.0
+ 9
+$ATTMODE
+ 70
+1
+ 9
+$TEXTSIZE
+ 40
+2.5
+ 9
+$TRACEWID
+ 40
+1.0
+ 9
+$TEXTSTYLE
+ 7
+Standard
+ 9
+$CLAYER
+ 8
+0
+ 9
+$CELTYPE
+ 6
+ByLayer
+ 9
+$CECOLOR
+ 62
+256
+ 9
+$CELTSCALE
+ 40
+1.0
+ 9
+$DISPSILH
+ 70
+0
+ 9
+$DIMSCALE
+ 40
+1.0
+ 9
+$DIMASZ
+ 40
+2.5
+ 9
+$DIMEXO
+ 40
+0.625
+ 9
+$DIMDLI
+ 40
+3.75
+ 9
+$DIMRND
+ 40
+0.0
+ 9
+$DIMDLE
+ 40
+0.0
+ 9
+$DIMEXE
+ 40
+1.25
+ 9
+$DIMTP
+ 40
+0.0
+ 9
+$DIMTM
+ 40
+0.0
+ 9
+$DIMTXT
+ 40
+2.5
+ 9
+$DIMCEN
+ 40
+2.5
+ 9
+$DIMTSZ
+ 40
+0.0
+ 9
+$DIMTOL
+ 70
+0
+ 9
+$DIMLIM
+ 70
+0
+ 9
+$DIMTIH
+ 70
+0
+ 9
+$DIMTOH
+ 70
+0
+ 9
+$DIMSE1
+ 70
+0
+ 9
+$DIMSE2
+ 70
+0
+ 9
+$DIMTAD
+ 70
+1
+ 9
+$DIMZIN
+ 70
+8
+ 9
+$DIMBLK
+ 1
+
+ 9
+$DIMASO
+ 70
+1
+ 9
+$DIMSHO
+ 70
+1
+ 9
+$DIMPOST
+ 1
+
+ 9
+$DIMAPOST
+ 1
+
+ 9
+$DIMALT
+ 70
+0
+ 9
+$DIMALTD
+ 70
+3
+ 9
+$DIMALTF
+ 40
+0.03937007874
+ 9
+$DIMLFAC
+ 40
+1.0
+ 9
+$DIMTOFL
+ 70
+1
+ 9
+$DIMTVP
+ 40
+0.0
+ 9
+$DIMTIX
+ 70
+0
+ 9
+$DIMSOXD
+ 70
+0
+ 9
+$DIMSAH
+ 70
+0
+ 9
+$DIMBLK1
+ 1
+
+ 9
+$DIMBLK2
+ 1
+
+ 9
+$DIMSTYLE
+ 2
+ISO-25
+ 9
+$DIMCLRD
+ 70
+0
+ 9
+$DIMCLRE
+ 70
+0
+ 9
+$DIMCLRT
+ 70
+0
+ 9
+$DIMTFAC
+ 40
+1.0
+ 9
+$DIMGAP
+ 40
+0.625
+ 9
+$DIMJUST
+ 70
+0
+ 9
+$DIMSD1
+ 70
+0
+ 9
+$DIMSD2
+ 70
+0
+ 9
+$DIMTOLJ
+ 70
+0
+ 9
+$DIMTZIN
+ 70
+8
+ 9
+$DIMALTZ
+ 70
+0
+ 9
+$DIMALTTZ
+ 70
+0
+ 9
+$DIMUPT
+ 70
+0
+ 9
+$DIMDEC
+ 70
+2
+ 9
+$DIMTDEC
+ 70
+2
+ 9
+$DIMALTU
+ 70
+2
+ 9
+$DIMALTTD
+ 70
+3
+ 9
+$DIMTXSTY
+ 7
+Standard
+ 9
+$DIMAUNIT
+ 70
+0
+ 9
+$DIMADEC
+ 70
+0
+ 9
+$DIMALTRND
+ 40
+0.0
+ 9
+$DIMAZIN
+ 70
+0
+ 9
+$DIMDSEP
+ 70
+44
+ 9
+$DIMATFIT
+ 70
+3
+ 9
+$DIMFRAC
+ 70
+0
+ 9
+$DIMLDRBLK
+ 1
+
+ 9
+$DIMLUNIT
+ 70
+2
+ 9
+$DIMLWD
+ 70
+-2
+ 9
+$DIMLWE
+ 70
+-2
+ 9
+$DIMTMOVE
+ 70
+0
+ 9
+$DIMFXL
+ 40
+1.0
+ 9
+$DIMFXLON
+ 70
+0
+ 9
+$DIMJOGANG
+ 40
+0.785398163397
+ 9
+$DIMTFILL
+ 70
+0
+ 9
+$DIMTFILLCLR
+ 70
+0
+ 9
+$DIMARCSYM
+ 70
+0
+ 9
+$DIMLTYPE
+ 6
+
+ 9
+$DIMLTEX1
+ 6
+
+ 9
+$DIMLTEX2
+ 6
+
+ 9
+$DIMTXTDIRECTION
+ 70
+0
+ 9
+$LUNITS
+ 70
+2
+ 9
+$LUPREC
+ 70
+2
+ 9
+$SKETCHINC
+ 40
+1.0
+ 9
+$FILLETRAD
+ 40
+10.0
+ 9
+$AUNITS
+ 70
+0
+ 9
+$AUPREC
+ 70
+0
+ 9
+$MENU
+ 1
+.
+ 9
+$ELEVATION
+ 40
+0.0
+ 9
+$PELEVATION
+ 40
+0.0
+ 9
+$THICKNESS
+ 40
+0.0
+ 9
+$LIMCHECK
+ 70
+0
+ 9
+$CHAMFERA
+ 40
+0.0
+ 9
+$CHAMFERB
+ 40
+0.0
+ 9
+$CHAMFERC
+ 40
+0.0
+ 9
+$CHAMFERD
+ 40
+0.0
+ 9
+$SKPOLY
+ 70
+0
+ 9
+$TDCREATE
+ 40
+2461305.9168518516
+ 9
+$TDUCREATE
+ 40
+2458532.153996898
+ 9
+$TDUPDATE
+ 40
+2461305.9168518516
+ 9
+$TDUUPDATE
+ 40
+2458532.1544311
+ 9
+$TDINDWG
+ 40
+0.0
+ 9
+$TDUSRTIMER
+ 40
+0.0
+ 9
+$USRTIMER
+ 70
+1
+ 9
+$ANGBASE
+ 50
+0.0
+ 9
+$ANGDIR
+ 70
+0
+ 9
+$PDMODE
+ 70
+0
+ 9
+$PDSIZE
+ 40
+0.0
+ 9
+$PLINEWID
+ 40
+0.0
+ 9
+$SPLFRAME
+ 70
+0
+ 9
+$SPLINETYPE
+ 70
+6
+ 9
+$SPLINESEGS
+ 70
+8
+ 9
+$HANDSEED
+ 5
+62
+ 9
+$SURFTAB1
+ 70
+6
+ 9
+$SURFTAB2
+ 70
+6
+ 9
+$SURFTYPE
+ 70
+6
+ 9
+$SURFU
+ 70
+6
+ 9
+$SURFV
+ 70
+6
+ 9
+$UCSBASE
+ 2
+
+ 9
+$UCSNAME
+ 2
+
+ 9
+$UCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$UCSORTHOREF
+ 2
+
+ 9
+$UCSORTHOVIEW
+ 70
+0
+ 9
+$UCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSBASE
+ 2
+
+ 9
+$PUCSNAME
+ 2
+
+ 9
+$PUCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$PUCSORTHOREF
+ 2
+
+ 9
+$PUCSORTHOVIEW
+ 70
+0
+ 9
+$PUCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$USERI1
+ 70
+0
+ 9
+$USERI2
+ 70
+0
+ 9
+$USERI3
+ 70
+0
+ 9
+$USERI4
+ 70
+0
+ 9
+$USERI5
+ 70
+0
+ 9
+$USERR1
+ 40
+0.0
+ 9
+$USERR2
+ 40
+0.0
+ 9
+$USERR3
+ 40
+0.0
+ 9
+$USERR4
+ 40
+0.0
+ 9
+$USERR5
+ 40
+0.0
+ 9
+$WORLDVIEW
+ 70
+1
+ 9
+$SHADEDGE
+ 70
+3
+ 9
+$SHADEDIF
+ 70
+70
+ 9
+$TILEMODE
+ 70
+1
+ 9
+$MAXACTVP
+ 70
+64
+ 9
+$PINSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PLIMCHECK
+ 70
+0
+ 9
+$PEXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$PEXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$PLIMMIN
+ 10
+-0.0
+ 20
+-0.0
+ 9
+$PLIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$UNITMODE
+ 70
+0
+ 9
+$VISRETAIN
+ 70
+1
+ 9
+$PLINEGEN
+ 70
+0
+ 9
+$PSLTSCALE
+ 70
+1
+ 9
+$TREEDEPTH
+ 70
+3020
+ 9
+$CMLSTYLE
+ 2
+Standard
+ 9
+$CMLJUST
+ 70
+0
+ 9
+$CMLSCALE
+ 40
+20.0
+ 9
+$PROXYGRAPHICS
+ 70
+1
+ 9
+$MEASUREMENT
+ 70
+1
+ 9
+$CELWEIGHT
+370
+-1
+ 9
+$ENDCAPS
+280
+0
+ 9
+$JOINSTYLE
+280
+0
+ 9
+$LWDISPLAY
+290
+0
+ 9
+$INSUNITS
+ 70
+4
+ 9
+$HYPERLINKBASE
+ 1
+
+ 9
+$STYLESHEET
+ 1
+
+ 9
+$XEDIT
+290
+1
+ 9
+$CEPSNTYPE
+380
+0
+ 9
+$PSTYLEMODE
+290
+1
+ 9
+$FINGERPRINTGUID
+ 2
+{7664E9B7-DDAC-4E40-A6C4-4BA2274F50FC}
+ 9
+$VERSIONGUID
+ 2
+{AA05654D-61E8-4264-879F-0A0EB2E7F4EE}
+ 9
+$EXTNAMES
+290
+1
+ 9
+$PSVPSCALE
+ 40
+0.0
+ 9
+$OLESTARTUP
+290
+0
+ 9
+$SORTENTS
+280
+127
+ 9
+$INDEXCTL
+280
+0
+ 9
+$HIDETEXT
+280
+1
+ 9
+$XCLIPFRAME
+280
+1
+ 9
+$HALOGAP
+280
+0
+ 9
+$OBSCOLOR
+ 70
+257
+ 9
+$OBSLTYPE
+280
+0
+ 9
+$INTERSECTIONDISPLAY
+280
+0
+ 9
+$INTERSECTIONCOLOR
+ 70
+257
+ 9
+$DIMASSOC
+280
+2
+ 9
+$PROJECTNAME
+ 1
+
+ 9
+$CAMERADISPLAY
+290
+0
+ 9
+$LENSLENGTH
+ 40
+50.0
+ 9
+$CAMERAHEIGHT
+ 40
+0.0
+ 9
+$STEPSPERSEC
+ 40
+24.0
+ 9
+$STEPSIZE
+ 40
+100.0
+ 9
+$3DDWFPREC
+ 40
+2.0
+ 9
+$PSOLWIDTH
+ 40
+0.005
+ 9
+$PSOLHEIGHT
+ 40
+0.08
+ 9
+$LOFTANG1
+ 40
+1.570796326795
+ 9
+$LOFTANG2
+ 40
+1.570796326795
+ 9
+$LOFTMAG1
+ 40
+0.0
+ 9
+$LOFTMAG2
+ 40
+0.0
+ 9
+$LOFTPARAM
+ 70
+7
+ 9
+$LOFTNORMALS
+280
+1
+ 9
+$LATITUDE
+ 40
+37.795
+ 9
+$LONGITUDE
+ 40
+-122.394
+ 9
+$NORTHDIRECTION
+ 40
+0.0
+ 9
+$TIMEZONE
+ 70
+-8000
+ 9
+$LIGHTGLYPHDISPLAY
+280
+1
+ 9
+$TILEMODELIGHTSYNCH
+280
+1
+ 9
+$CMATERIAL
+347
+20
+ 9
+$SOLIDHIST
+280
+0
+ 9
+$SHOWHIST
+280
+1
+ 9
+$DWFFRAME
+280
+2
+ 9
+$DGNFRAME
+280
+2
+ 9
+$REALWORLDSCALE
+290
+1
+ 9
+$INTERFERECOLOR
+ 62
+256
+ 9
+$CSHADOW
+280
+0
+ 9
+$SHADOWPLANELOCATION
+ 40
+0.0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+CLASSES
+ 0
+CLASS
+ 1
+ACDBDICTIONARYWDFLT
+ 2
+AcDbDictionaryWithDefault
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SUN
+ 2
+AcDbSun
+ 3
+SCENEOE
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+VISUALSTYLE
+ 2
+AcDbVisualStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MATERIAL
+ 2
+AcDbMaterial
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SCALE
+ 2
+AcDbScale
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+TABLESTYLE
+ 2
+AcDbTableStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MLEADERSTYLE
+ 2
+AcDbMLeaderStyle
+ 3
+ACDB_MLEADERSTYLE_CLASS
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+DICTIONARYVAR
+ 2
+AcDbDictionaryVar
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+CELLSTYLEMAP
+ 2
+AcDbCellStyleMap
+ 3
+ObjectDBX Classes
+ 90
+1152
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MENTALRAYRENDERSETTINGS
+ 2
+AcDbMentalRayRenderSettings
+ 3
+SCENEOE
+ 90
+1024
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBDETAILVIEWSTYLE
+ 2
+AcDbDetailViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBSECTIONVIEWSTYLE
+ 2
+AcDbSectionViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+RASTERVARIABLES
+ 2
+AcDbRasterVariables
+ 3
+ISM
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBPLACEHOLDER
+ 2
+AcDbPlaceHolder
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+LAYOUT
+ 2
+AcDbLayout
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+TABLES
+ 0
+TABLE
+ 2
+VPORT
+ 5
+8
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+VPORT
+ 5
+23
+330
+8
+100
+AcDbSymbolTableRecord
+100
+AcDbViewportTableRecord
+ 2
+*Active
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+1.0
+ 21
+1.0
+ 12
+0.0
+ 22
+0.0
+ 13
+0.0
+ 23
+0.0
+ 14
+0.5
+ 24
+0.5
+ 15
+0.5
+ 25
+0.5
+ 16
+0.0
+ 26
+0.0
+ 36
+1.0
+ 17
+0.0
+ 27
+0.0
+ 37
+0.0
+ 40
+1000.0
+ 41
+1.34
+ 42
+50.0
+ 43
+0.0
+ 44
+0.0
+ 50
+0.0
+ 51
+0.0
+ 71
+0
+ 72
+1000
+ 73
+1
+ 74
+3
+ 75
+0
+ 76
+0
+ 77
+0
+ 78
+0
+281
+0
+ 65
+0
+146
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LTYPE
+ 5
+2
+330
+0
+100
+AcDbSymbolTable
+ 70
+8
+ 0
+LTYPE
+ 5
+24
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByBlock
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+25
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByLayer
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+26
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+Continuous
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+2F
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+CENTER
+ 70
+0
+ 3
+Center ____ _ ____ _ ____ _ ____ _ ____ _ ____
+ 72
+65
+ 73
+4
+ 40
+2.0
+ 49
+1.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 0
+LTYPE
+ 5
+30
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+HIDDEN
+ 70
+0
+ 3
+Hidden __ __ __ __ __ __ __ __ __
+ 72
+65
+ 73
+2
+ 40
+7.5
+ 49
+5.0
+ 74
+0
+ 49
+-2.5
+ 74
+0
+ 0
+LTYPE
+ 5
+31
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+PHANTOM
+ 70
+0
+ 3
+Phantom ______ __ __ ______ __ __ ______
+ 72
+65
+ 73
+6
+ 40
+2.5
+ 49
+1.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 0
+LTYPE
+ 5
+32
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+DASHED
+ 70
+0
+ 3
+Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _
+ 72
+65
+ 73
+2
+ 40
+0.6
+ 49
+0.5
+ 74
+0
+ 49
+-0.1
+ 74
+0
+ 0
+LTYPE
+ 5
+33
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+DASHDOT
+ 70
+0
+ 3
+Dash dot __ . __ . __ . __ . __ . __ . __ . __
+ 72
+65
+ 73
+4
+ 40
+1.4
+ 49
+1.0
+ 74
+0
+ 49
+-0.2
+ 74
+0
+ 49
+0.0
+ 74
+0
+ 49
+-0.2
+ 74
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LAYER
+ 5
+1
+330
+0
+100
+AcDbSymbolTable
+ 70
+11
+ 0
+LAYER
+ 5
+27
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+0
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+28
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+Defpoints
+ 70
+0
+ 62
+7
+ 6
+Continuous
+290
+0
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+34
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+GEOMETRY
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+35
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+HIDDEN
+ 70
+0
+ 62
+3
+ 6
+HIDDEN
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+36
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+CENTER
+ 70
+0
+ 62
+1
+ 6
+CENTER
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+37
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+PHANTOM
+ 70
+0
+ 62
+6
+ 6
+PHANTOM
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+38
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+DIM
+ 70
+0
+ 62
+2
+ 6
+Continuous
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+39
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+TEXT
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3A
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+HATCH
+ 70
+0
+ 62
+8
+ 6
+Continuous
+370
+13
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3B
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+TITLEBLOCK
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3C
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+CONSTRUCTION
+ 70
+0
+ 62
+250
+ 6
+Continuous
+370
+5
+390
+13
+347
+21
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+STYLE
+ 5
+5
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+STYLE
+ 5
+29
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbTextStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+0.0
+ 41
+1.0
+ 50
+0.0
+ 71
+0
+ 42
+2.5
+ 3
+txt
+ 4
+
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+VIEW
+ 5
+7
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+UCS
+ 5
+6
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+APPID
+ 5
+3
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+APPID
+ 5
+2A
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+ACAD
+ 70
+0
+ 0
+APPID
+ 5
+5F
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+HATCHBACKGROUNDCOLOR
+ 70
+0
+ 0
+APPID
+ 5
+60
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+EZDXF
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+DIMSTYLE
+ 5
+4
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+100
+AcDbDimStyleTable
+ 0
+DIMSTYLE
+105
+2B
+330
+4
+100
+AcDbSymbolTableRecord
+100
+AcDbDimStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+1.0
+ 41
+2.5
+ 42
+0.625
+ 43
+3.75
+ 44
+1.25
+ 45
+0.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+2.5
+140
+2.5
+141
+2.5
+142
+0.0
+143
+0.03937007874
+144
+1.0
+145
+0.0
+146
+1.0
+147
+0.625
+148
+0.0
+ 69
+0
+ 70
+0
+ 71
+0
+ 72
+0
+ 73
+0
+ 74
+0
+ 75
+0
+ 76
+0
+ 77
+1
+ 78
+8
+ 79
+3
+170
+0
+171
+3
+172
+1
+173
+0
+174
+0
+175
+0
+176
+0
+177
+0
+178
+0
+179
+2
+271
+2
+272
+2
+273
+2
+274
+3
+275
+0
+276
+0
+277
+2
+278
+46
+279
+0
+280
+0
+281
+0
+282
+0
+283
+0
+284
+8
+285
+0
+286
+0
+288
+0
+289
+3
+290
+0
+371
+-2
+372
+-2
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+BLOCK_RECORD
+ 5
+9
+330
+0
+100
+AcDbSymbolTable
+ 70
+2
+ 0
+BLOCK_RECORD
+ 5
+17
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Model_Space
+340
+1A
+ 70
+0
+280
+1
+281
+0
+ 0
+BLOCK_RECORD
+ 5
+1B
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Paper_Space
+340
+1E
+ 70
+0
+280
+1
+281
+0
+ 0
+ENDTAB
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+BLOCKS
+ 0
+BLOCK
+ 5
+18
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Model_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Model_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+19
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+BLOCK
+ 5
+1C
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Paper_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Paper_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+1D
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+LWPOLYLINE
+ 5
+3D
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+0.0
+ 20
+0.0
+ 10
+420.0
+ 20
+0.0
+ 10
+420.0
+ 20
+297.0
+ 10
+0.0
+ 20
+297.0
+ 0
+LWPOLYLINE
+ 5
+3E
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+20.0
+ 20
+10.0
+ 10
+410.0
+ 20
+10.0
+ 10
+410.0
+ 20
+287.0
+ 10
+20.0
+ 20
+287.0
+ 0
+LWPOLYLINE
+ 5
+3F
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+230.0
+ 20
+10.0
+ 10
+410.0
+ 20
+10.0
+ 10
+410.0
+ 20
+70.0
+ 10
+230.0
+ 20
+70.0
+ 0
+LINE
+ 5
+40
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+230.0
+ 20
+20.0
+ 30
+0.0
+ 11
+410.0
+ 21
+20.0
+ 31
+0.0
+ 0
+LINE
+ 5
+41
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+230.0
+ 20
+35.0
+ 30
+0.0
+ 11
+410.0
+ 21
+35.0
+ 31
+0.0
+ 0
+LINE
+ 5
+42
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+230.0
+ 20
+50.0
+ 30
+0.0
+ 11
+410.0
+ 21
+50.0
+ 31
+0.0
+ 0
+LINE
+ 5
+43
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+320.0
+ 20
+35.0
+ 30
+0.0
+ 11
+320.0
+ 21
+50.0
+ 31
+0.0
+ 0
+LINE
+ 5
+44
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+365.0
+ 20
+35.0
+ 30
+0.0
+ 11
+365.0
+ 21
+50.0
+ 31
+0.0
+ 0
+LINE
+ 5
+45
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+290.0
+ 20
+20.0
+ 30
+0.0
+ 11
+290.0
+ 21
+35.0
+ 31
+0.0
+ 0
+LINE
+ 5
+46
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+350.0
+ 20
+20.0
+ 30
+0.0
+ 11
+350.0
+ 21
+35.0
+ 31
+0.0
+ 0
+LINE
+ 5
+47
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+275.0
+ 20
+10.0
+ 30
+0.0
+ 11
+275.0
+ 21
+20.0
+ 31
+0.0
+ 0
+LINE
+ 5
+48
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+320.0
+ 20
+10.0
+ 30
+0.0
+ 11
+320.0
+ 21
+20.0
+ 31
+0.0
+ 0
+LINE
+ 5
+49
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+365.0
+ 20
+10.0
+ 30
+0.0
+ 11
+365.0
+ 21
+20.0
+ 31
+0.0
+ 0
+TEXT
+ 5
+4A
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+275.0
+ 20
+57.5
+ 30
+0.0
+ 40
+5.0
+ 1
+ISO A3 MECHANICAL PART DRAWING
+100
+AcDbText
+ 0
+TEXT
+ 5
+4B
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+231.5
+ 20
+46.5
+ 30
+0.0
+ 40
+2.0
+ 1
+DWG NO
+100
+AcDbText
+ 0
+TEXT
+ 5
+4C
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+233.0
+ 20
+40.0
+ 30
+0.0
+ 40
+3.5
+ 1
+TEMPLATE
+100
+AcDbText
+ 0
+TEXT
+ 5
+4D
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+321.5
+ 20
+46.5
+ 30
+0.0
+ 40
+2.0
+ 1
+REV
+100
+AcDbText
+ 0
+TEXT
+ 5
+4E
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+323.0
+ 20
+40.0
+ 30
+0.0
+ 40
+3.5
+ 1
+A
+100
+AcDbText
+ 0
+TEXT
+ 5
+4F
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+366.5
+ 20
+46.5
+ 30
+0.0
+ 40
+2.0
+ 1
+SHEET
+100
+AcDbText
+ 0
+TEXT
+ 5
+50
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+368.0
+ 20
+40.0
+ 30
+0.0
+ 40
+3.5
+ 1
+1/1
+100
+AcDbText
+ 0
+TEXT
+ 5
+51
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+231.5
+ 20
+31.5
+ 30
+0.0
+ 40
+2.0
+ 1
+PART NO
+100
+AcDbText
+ 0
+TEXT
+ 5
+52
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+233.0
+ 20
+25.0
+ 30
+0.0
+ 40
+3.5
+ 1
+
+100
+AcDbText
+ 0
+TEXT
+ 5
+53
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+291.5
+ 20
+31.5
+ 30
+0.0
+ 40
+2.0
+ 1
+MATERIAL
+100
+AcDbText
+ 0
+TEXT
+ 5
+54
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+293.0
+ 20
+25.0
+ 30
+0.0
+ 40
+3.5
+ 1
+
+100
+AcDbText
+ 0
+TEXT
+ 5
+55
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+351.5
+ 20
+31.5
+ 30
+0.0
+ 40
+2.0
+ 1
+SCALE
+100
+AcDbText
+ 0
+TEXT
+ 5
+56
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+353.0
+ 20
+25.0
+ 30
+0.0
+ 40
+3.5
+ 1
+1:1
+100
+AcDbText
+ 0
+TEXT
+ 5
+57
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+231.5
+ 20
+16.5
+ 30
+0.0
+ 40
+2.0
+ 1
+DRAWN
+100
+AcDbText
+ 0
+TEXT
+ 5
+58
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+233.0
+ 20
+11.5
+ 30
+0.0
+ 40
+3.5
+ 1
+
+100
+AcDbText
+ 0
+TEXT
+ 5
+59
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+276.5
+ 20
+16.5
+ 30
+0.0
+ 40
+2.0
+ 1
+CHECKED
+100
+AcDbText
+ 0
+TEXT
+ 5
+5A
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+278.0
+ 20
+11.5
+ 30
+0.0
+ 40
+3.5
+ 1
+
+100
+AcDbText
+ 0
+TEXT
+ 5
+5B
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+321.5
+ 20
+16.5
+ 30
+0.0
+ 40
+2.0
+ 1
+DATE
+100
+AcDbText
+ 0
+TEXT
+ 5
+5C
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+323.0
+ 20
+11.5
+ 30
+0.0
+ 40
+3.5
+ 1
+
+100
+AcDbText
+ 0
+TEXT
+ 5
+5D
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+366.5
+ 20
+16.5
+ 30
+0.0
+ 40
+2.0
+ 1
+COMPANY
+100
+AcDbText
+ 0
+TEXT
+ 5
+5E
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+368.0
+ 20
+11.5
+ 30
+0.0
+ 40
+3.5
+ 1
+Anka-Makine
+100
+AcDbText
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+OBJECTS
+ 0
+DICTIONARY
+ 5
+A
+330
+0
+100
+AcDbDictionary
+281
+1
+ 3
+ACAD_COLOR
+350
+B
+ 3
+ACAD_GROUP
+350
+C
+ 3
+ACAD_LAYOUT
+350
+D
+ 3
+ACAD_MATERIAL
+350
+E
+ 3
+ACAD_MLEADERSTYLE
+350
+F
+ 3
+ACAD_MLINESTYLE
+350
+10
+ 3
+ACAD_PLOTSETTINGS
+350
+11
+ 3
+ACAD_PLOTSTYLENAME
+350
+12
+ 3
+ACAD_SCALELIST
+350
+14
+ 3
+ACAD_TABLESTYLE
+350
+15
+ 3
+ACAD_VISUALSTYLE
+350
+16
+ 3
+EZDXF_META
+350
+2D
+ 0
+DICTIONARY
+ 5
+B
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+C
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+D
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Model
+350
+1A
+ 3
+A3
+350
+1E
+ 0
+DICTIONARY
+ 5
+E
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+ByBlock
+350
+1F
+ 3
+ByLayer
+350
+20
+ 3
+Global
+350
+21
+ 0
+DICTIONARY
+ 5
+F
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+2C
+ 0
+DICTIONARY
+ 5
+10
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+22
+ 0
+DICTIONARY
+ 5
+11
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+ACDBDICTIONARYWDFLT
+ 5
+12
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Normal
+350
+13
+100
+AcDbDictionaryWithDefault
+340
+13
+ 0
+ACDBPLACEHOLDER
+ 5
+13
+330
+12
+ 0
+DICTIONARY
+ 5
+14
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+15
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+16
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+LAYOUT
+ 5
+1A
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+1024
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Model
+ 70
+1
+ 71
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+17
+ 0
+LAYOUT
+ 5
+1E
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 2
+DWG To PDF.pc3
+ 4
+ISO_A3_(420.00_x_297.00_MM)
+ 6
+
+ 40
+0.0
+ 41
+0.0
+ 42
+0.0
+ 43
+0.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+688
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+monochrome.ctb
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+A3
+ 70
+1
+ 71
+1
+ 10
+-0.0
+ 20
+-0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+1B
+ 0
+MATERIAL
+ 5
+1F
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByBlock
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+20
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByLayer
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+21
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+Global
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MLINESTYLE
+ 5
+22
+102
+{ACAD_REACTORS
+330
+10
+102
+}
+330
+10
+100
+AcDbMlineStyle
+ 2
+Standard
+ 70
+0
+ 3
+
+ 62
+256
+ 51
+90.0
+ 52
+90.0
+ 71
+2
+ 49
+0.5
+ 62
+256
+ 6
+BYLAYER
+ 49
+-0.5
+ 62
+256
+ 6
+BYLAYER
+ 0
+MLEADERSTYLE
+ 5
+2C
+102
+{ACAD_REACTORS
+330
+F
+102
+}
+330
+F
+100
+AcDbMLeaderStyle
+179
+2
+170
+2
+171
+1
+172
+0
+ 90
+2
+ 40
+0.0
+ 41
+0.0
+173
+1
+ 91
+-1056964608
+ 92
+-2
+290
+1
+ 42
+2.0
+291
+1
+ 43
+8.0
+ 3
+Standard
+ 44
+4.0
+300
+
+342
+29
+174
+1
+175
+1
+176
+0
+178
+1
+ 93
+-1056964608
+ 45
+4.0
+292
+0
+297
+0
+ 46
+4.0
+ 94
+-1056964608
+ 47
+1.0
+ 49
+1.0
+140
+1.0
+294
+1
+141
+0.0
+177
+0
+142
+1.0
+295
+0
+296
+0
+143
+3.75
+271
+0
+272
+9
+273
+9
+ 0
+DICTIONARY
+ 5
+2D
+330
+A
+100
+AcDbDictionary
+280
+1
+281
+1
+ 3
+CREATED_BY_EZDXF
+350
+2E
+ 3
+WRITTEN_BY_EZDXF
+350
+61
+ 0
+DICTIONARYVAR
+ 5
+2E
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.4 @ 2026-09-21T19:00:16.186887+00:00
+ 0
+DICTIONARYVAR
+ 5
+61
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.4 @ 2026-09-21T19:00:16.215553+00:00
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/templates/iso_a3_pid.dxf b/templates/iso_a3_pid.dxf
new file mode 100644
index 0000000..0518178
--- /dev/null
+++ b/templates/iso_a3_pid.dxf
@@ -0,0 +1,4520 @@
+ 0
+SECTION
+ 2
+HEADER
+ 9
+$ACADVER
+ 1
+AC1024
+ 9
+$ACADMAINTVER
+ 70
+6
+ 9
+$DWGCODEPAGE
+ 3
+ANSI_1252
+ 9
+$LASTSAVEDBY
+ 1
+ezdxf
+ 9
+$INSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$EXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$EXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$LIMMIN
+ 10
+0.0
+ 20
+0.0
+ 9
+$LIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$ORTHOMODE
+ 70
+0
+ 9
+$REGENMODE
+ 70
+1
+ 9
+$FILLMODE
+ 70
+1
+ 9
+$QTEXTMODE
+ 70
+0
+ 9
+$MIRRTEXT
+ 70
+1
+ 9
+$LTSCALE
+ 40
+1.0
+ 9
+$ATTMODE
+ 70
+1
+ 9
+$TEXTSIZE
+ 40
+2.5
+ 9
+$TRACEWID
+ 40
+1.0
+ 9
+$TEXTSTYLE
+ 7
+Standard
+ 9
+$CLAYER
+ 8
+0
+ 9
+$CELTYPE
+ 6
+ByLayer
+ 9
+$CECOLOR
+ 62
+256
+ 9
+$CELTSCALE
+ 40
+1.0
+ 9
+$DISPSILH
+ 70
+0
+ 9
+$DIMSCALE
+ 40
+1.0
+ 9
+$DIMASZ
+ 40
+2.5
+ 9
+$DIMEXO
+ 40
+0.625
+ 9
+$DIMDLI
+ 40
+3.75
+ 9
+$DIMRND
+ 40
+0.0
+ 9
+$DIMDLE
+ 40
+0.0
+ 9
+$DIMEXE
+ 40
+1.25
+ 9
+$DIMTP
+ 40
+0.0
+ 9
+$DIMTM
+ 40
+0.0
+ 9
+$DIMTXT
+ 40
+2.5
+ 9
+$DIMCEN
+ 40
+2.5
+ 9
+$DIMTSZ
+ 40
+0.0
+ 9
+$DIMTOL
+ 70
+0
+ 9
+$DIMLIM
+ 70
+0
+ 9
+$DIMTIH
+ 70
+0
+ 9
+$DIMTOH
+ 70
+0
+ 9
+$DIMSE1
+ 70
+0
+ 9
+$DIMSE2
+ 70
+0
+ 9
+$DIMTAD
+ 70
+1
+ 9
+$DIMZIN
+ 70
+8
+ 9
+$DIMBLK
+ 1
+
+ 9
+$DIMASO
+ 70
+1
+ 9
+$DIMSHO
+ 70
+1
+ 9
+$DIMPOST
+ 1
+
+ 9
+$DIMAPOST
+ 1
+
+ 9
+$DIMALT
+ 70
+0
+ 9
+$DIMALTD
+ 70
+3
+ 9
+$DIMALTF
+ 40
+0.03937007874
+ 9
+$DIMLFAC
+ 40
+1.0
+ 9
+$DIMTOFL
+ 70
+1
+ 9
+$DIMTVP
+ 40
+0.0
+ 9
+$DIMTIX
+ 70
+0
+ 9
+$DIMSOXD
+ 70
+0
+ 9
+$DIMSAH
+ 70
+0
+ 9
+$DIMBLK1
+ 1
+
+ 9
+$DIMBLK2
+ 1
+
+ 9
+$DIMSTYLE
+ 2
+ISO-25
+ 9
+$DIMCLRD
+ 70
+0
+ 9
+$DIMCLRE
+ 70
+0
+ 9
+$DIMCLRT
+ 70
+0
+ 9
+$DIMTFAC
+ 40
+1.0
+ 9
+$DIMGAP
+ 40
+0.625
+ 9
+$DIMJUST
+ 70
+0
+ 9
+$DIMSD1
+ 70
+0
+ 9
+$DIMSD2
+ 70
+0
+ 9
+$DIMTOLJ
+ 70
+0
+ 9
+$DIMTZIN
+ 70
+8
+ 9
+$DIMALTZ
+ 70
+0
+ 9
+$DIMALTTZ
+ 70
+0
+ 9
+$DIMUPT
+ 70
+0
+ 9
+$DIMDEC
+ 70
+2
+ 9
+$DIMTDEC
+ 70
+2
+ 9
+$DIMALTU
+ 70
+2
+ 9
+$DIMALTTD
+ 70
+3
+ 9
+$DIMTXSTY
+ 7
+Standard
+ 9
+$DIMAUNIT
+ 70
+0
+ 9
+$DIMADEC
+ 70
+0
+ 9
+$DIMALTRND
+ 40
+0.0
+ 9
+$DIMAZIN
+ 70
+0
+ 9
+$DIMDSEP
+ 70
+44
+ 9
+$DIMATFIT
+ 70
+3
+ 9
+$DIMFRAC
+ 70
+0
+ 9
+$DIMLDRBLK
+ 1
+
+ 9
+$DIMLUNIT
+ 70
+2
+ 9
+$DIMLWD
+ 70
+-2
+ 9
+$DIMLWE
+ 70
+-2
+ 9
+$DIMTMOVE
+ 70
+0
+ 9
+$DIMFXL
+ 40
+1.0
+ 9
+$DIMFXLON
+ 70
+0
+ 9
+$DIMJOGANG
+ 40
+0.785398163397
+ 9
+$DIMTFILL
+ 70
+0
+ 9
+$DIMTFILLCLR
+ 70
+0
+ 9
+$DIMARCSYM
+ 70
+0
+ 9
+$DIMLTYPE
+ 6
+
+ 9
+$DIMLTEX1
+ 6
+
+ 9
+$DIMLTEX2
+ 6
+
+ 9
+$DIMTXTDIRECTION
+ 70
+0
+ 9
+$LUNITS
+ 70
+2
+ 9
+$LUPREC
+ 70
+2
+ 9
+$SKETCHINC
+ 40
+1.0
+ 9
+$FILLETRAD
+ 40
+10.0
+ 9
+$AUNITS
+ 70
+0
+ 9
+$AUPREC
+ 70
+0
+ 9
+$MENU
+ 1
+.
+ 9
+$ELEVATION
+ 40
+0.0
+ 9
+$PELEVATION
+ 40
+0.0
+ 9
+$THICKNESS
+ 40
+0.0
+ 9
+$LIMCHECK
+ 70
+0
+ 9
+$CHAMFERA
+ 40
+0.0
+ 9
+$CHAMFERB
+ 40
+0.0
+ 9
+$CHAMFERC
+ 40
+0.0
+ 9
+$CHAMFERD
+ 40
+0.0
+ 9
+$SKPOLY
+ 70
+0
+ 9
+$TDCREATE
+ 40
+2461305.9168518516
+ 9
+$TDUCREATE
+ 40
+2458532.153996898
+ 9
+$TDUPDATE
+ 40
+2461305.9168518516
+ 9
+$TDUUPDATE
+ 40
+2458532.1544311
+ 9
+$TDINDWG
+ 40
+0.0
+ 9
+$TDUSRTIMER
+ 40
+0.0
+ 9
+$USRTIMER
+ 70
+1
+ 9
+$ANGBASE
+ 50
+0.0
+ 9
+$ANGDIR
+ 70
+0
+ 9
+$PDMODE
+ 70
+0
+ 9
+$PDSIZE
+ 40
+0.0
+ 9
+$PLINEWID
+ 40
+0.0
+ 9
+$SPLFRAME
+ 70
+0
+ 9
+$SPLINETYPE
+ 70
+6
+ 9
+$SPLINESEGS
+ 70
+8
+ 9
+$HANDSEED
+ 5
+69
+ 9
+$SURFTAB1
+ 70
+6
+ 9
+$SURFTAB2
+ 70
+6
+ 9
+$SURFTYPE
+ 70
+6
+ 9
+$SURFU
+ 70
+6
+ 9
+$SURFV
+ 70
+6
+ 9
+$UCSBASE
+ 2
+
+ 9
+$UCSNAME
+ 2
+
+ 9
+$UCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$UCSORTHOREF
+ 2
+
+ 9
+$UCSORTHOVIEW
+ 70
+0
+ 9
+$UCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$UCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSBASE
+ 2
+
+ 9
+$PUCSNAME
+ 2
+
+ 9
+$PUCSORG
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSXDIR
+ 10
+1.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSYDIR
+ 10
+0.0
+ 20
+1.0
+ 30
+0.0
+ 9
+$PUCSORTHOREF
+ 2
+
+ 9
+$PUCSORTHOVIEW
+ 70
+0
+ 9
+$PUCSORGTOP
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBOTTOM
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGLEFT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGRIGHT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGFRONT
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PUCSORGBACK
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$USERI1
+ 70
+0
+ 9
+$USERI2
+ 70
+0
+ 9
+$USERI3
+ 70
+0
+ 9
+$USERI4
+ 70
+0
+ 9
+$USERI5
+ 70
+0
+ 9
+$USERR1
+ 40
+0.0
+ 9
+$USERR2
+ 40
+0.0
+ 9
+$USERR3
+ 40
+0.0
+ 9
+$USERR4
+ 40
+0.0
+ 9
+$USERR5
+ 40
+0.0
+ 9
+$WORLDVIEW
+ 70
+1
+ 9
+$SHADEDGE
+ 70
+3
+ 9
+$SHADEDIF
+ 70
+70
+ 9
+$TILEMODE
+ 70
+1
+ 9
+$MAXACTVP
+ 70
+64
+ 9
+$PINSBASE
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 9
+$PLIMCHECK
+ 70
+0
+ 9
+$PEXTMIN
+ 10
+1e+20
+ 20
+1e+20
+ 30
+1e+20
+ 9
+$PEXTMAX
+ 10
+-1e+20
+ 20
+-1e+20
+ 30
+-1e+20
+ 9
+$PLIMMIN
+ 10
+-0.0
+ 20
+-0.0
+ 9
+$PLIMMAX
+ 10
+420.0
+ 20
+297.0
+ 9
+$UNITMODE
+ 70
+0
+ 9
+$VISRETAIN
+ 70
+1
+ 9
+$PLINEGEN
+ 70
+0
+ 9
+$PSLTSCALE
+ 70
+1
+ 9
+$TREEDEPTH
+ 70
+3020
+ 9
+$CMLSTYLE
+ 2
+Standard
+ 9
+$CMLJUST
+ 70
+0
+ 9
+$CMLSCALE
+ 40
+20.0
+ 9
+$PROXYGRAPHICS
+ 70
+1
+ 9
+$MEASUREMENT
+ 70
+1
+ 9
+$CELWEIGHT
+370
+-1
+ 9
+$ENDCAPS
+280
+0
+ 9
+$JOINSTYLE
+280
+0
+ 9
+$LWDISPLAY
+290
+0
+ 9
+$INSUNITS
+ 70
+4
+ 9
+$HYPERLINKBASE
+ 1
+
+ 9
+$STYLESHEET
+ 1
+
+ 9
+$XEDIT
+290
+1
+ 9
+$CEPSNTYPE
+380
+0
+ 9
+$PSTYLEMODE
+290
+1
+ 9
+$FINGERPRINTGUID
+ 2
+{A7BD53ED-11FA-44DC-94CD-4208EB90B212}
+ 9
+$VERSIONGUID
+ 2
+{E08D8D46-7798-4863-A73A-C6527F804C81}
+ 9
+$EXTNAMES
+290
+1
+ 9
+$PSVPSCALE
+ 40
+0.0
+ 9
+$OLESTARTUP
+290
+0
+ 9
+$SORTENTS
+280
+127
+ 9
+$INDEXCTL
+280
+0
+ 9
+$HIDETEXT
+280
+1
+ 9
+$XCLIPFRAME
+280
+1
+ 9
+$HALOGAP
+280
+0
+ 9
+$OBSCOLOR
+ 70
+257
+ 9
+$OBSLTYPE
+280
+0
+ 9
+$INTERSECTIONDISPLAY
+280
+0
+ 9
+$INTERSECTIONCOLOR
+ 70
+257
+ 9
+$DIMASSOC
+280
+2
+ 9
+$PROJECTNAME
+ 1
+
+ 9
+$CAMERADISPLAY
+290
+0
+ 9
+$LENSLENGTH
+ 40
+50.0
+ 9
+$CAMERAHEIGHT
+ 40
+0.0
+ 9
+$STEPSPERSEC
+ 40
+24.0
+ 9
+$STEPSIZE
+ 40
+100.0
+ 9
+$3DDWFPREC
+ 40
+2.0
+ 9
+$PSOLWIDTH
+ 40
+0.005
+ 9
+$PSOLHEIGHT
+ 40
+0.08
+ 9
+$LOFTANG1
+ 40
+1.570796326795
+ 9
+$LOFTANG2
+ 40
+1.570796326795
+ 9
+$LOFTMAG1
+ 40
+0.0
+ 9
+$LOFTMAG2
+ 40
+0.0
+ 9
+$LOFTPARAM
+ 70
+7
+ 9
+$LOFTNORMALS
+280
+1
+ 9
+$LATITUDE
+ 40
+37.795
+ 9
+$LONGITUDE
+ 40
+-122.394
+ 9
+$NORTHDIRECTION
+ 40
+0.0
+ 9
+$TIMEZONE
+ 70
+-8000
+ 9
+$LIGHTGLYPHDISPLAY
+280
+1
+ 9
+$TILEMODELIGHTSYNCH
+280
+1
+ 9
+$CMATERIAL
+347
+20
+ 9
+$SOLIDHIST
+280
+0
+ 9
+$SHOWHIST
+280
+1
+ 9
+$DWFFRAME
+280
+2
+ 9
+$DGNFRAME
+280
+2
+ 9
+$REALWORLDSCALE
+290
+1
+ 9
+$INTERFERECOLOR
+ 62
+256
+ 9
+$CSHADOW
+280
+0
+ 9
+$SHADOWPLANELOCATION
+ 40
+0.0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+CLASSES
+ 0
+CLASS
+ 1
+ACDBDICTIONARYWDFLT
+ 2
+AcDbDictionaryWithDefault
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SUN
+ 2
+AcDbSun
+ 3
+SCENEOE
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+VISUALSTYLE
+ 2
+AcDbVisualStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MATERIAL
+ 2
+AcDbMaterial
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+SCALE
+ 2
+AcDbScale
+ 3
+ObjectDBX Classes
+ 90
+1153
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+TABLESTYLE
+ 2
+AcDbTableStyle
+ 3
+ObjectDBX Classes
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MLEADERSTYLE
+ 2
+AcDbMLeaderStyle
+ 3
+ACDB_MLEADERSTYLE_CLASS
+ 90
+4095
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+DICTIONARYVAR
+ 2
+AcDbDictionaryVar
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+CELLSTYLEMAP
+ 2
+AcDbCellStyleMap
+ 3
+ObjectDBX Classes
+ 90
+1152
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+MENTALRAYRENDERSETTINGS
+ 2
+AcDbMentalRayRenderSettings
+ 3
+SCENEOE
+ 90
+1024
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBDETAILVIEWSTYLE
+ 2
+AcDbDetailViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBSECTIONVIEWSTYLE
+ 2
+AcDbSectionViewStyle
+ 3
+ObjectDBX Classes
+ 90
+1025
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+RASTERVARIABLES
+ 2
+AcDbRasterVariables
+ 3
+ISM
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+ACDBPLACEHOLDER
+ 2
+AcDbPlaceHolder
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+CLASS
+ 1
+LAYOUT
+ 2
+AcDbLayout
+ 3
+ObjectDBX Classes
+ 90
+0
+ 91
+0
+280
+0
+281
+0
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+TABLES
+ 0
+TABLE
+ 2
+VPORT
+ 5
+8
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+VPORT
+ 5
+23
+330
+8
+100
+AcDbSymbolTableRecord
+100
+AcDbViewportTableRecord
+ 2
+*Active
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+1.0
+ 21
+1.0
+ 12
+0.0
+ 22
+0.0
+ 13
+0.0
+ 23
+0.0
+ 14
+0.5
+ 24
+0.5
+ 15
+0.5
+ 25
+0.5
+ 16
+0.0
+ 26
+0.0
+ 36
+1.0
+ 17
+0.0
+ 27
+0.0
+ 37
+0.0
+ 40
+1000.0
+ 41
+1.34
+ 42
+50.0
+ 43
+0.0
+ 44
+0.0
+ 50
+0.0
+ 51
+0.0
+ 71
+0
+ 72
+1000
+ 73
+1
+ 74
+3
+ 75
+0
+ 76
+0
+ 77
+0
+ 78
+0
+281
+0
+ 65
+0
+146
+0.0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LTYPE
+ 5
+2
+330
+0
+100
+AcDbSymbolTable
+ 70
+8
+ 0
+LTYPE
+ 5
+24
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByBlock
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+25
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+ByLayer
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+26
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+Continuous
+ 70
+0
+ 3
+
+ 72
+65
+ 73
+0
+ 40
+0.0
+ 0
+LTYPE
+ 5
+2F
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+CENTER
+ 70
+0
+ 3
+Center ____ _ ____ _ ____ _ ____ _ ____ _ ____
+ 72
+65
+ 73
+4
+ 40
+2.0
+ 49
+1.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 0
+LTYPE
+ 5
+30
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+HIDDEN
+ 70
+0
+ 3
+Hidden __ __ __ __ __ __ __ __ __
+ 72
+65
+ 73
+2
+ 40
+7.5
+ 49
+5.0
+ 74
+0
+ 49
+-2.5
+ 74
+0
+ 0
+LTYPE
+ 5
+31
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+PHANTOM
+ 70
+0
+ 3
+Phantom ______ __ __ ______ __ __ ______
+ 72
+65
+ 73
+6
+ 40
+2.5
+ 49
+1.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 49
+0.25
+ 74
+0
+ 49
+-0.25
+ 74
+0
+ 0
+LTYPE
+ 5
+32
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+DASHED
+ 70
+0
+ 3
+Dashed __ __ __ __ __ __ __ __ __ __ __ __ __ _
+ 72
+65
+ 73
+2
+ 40
+0.6
+ 49
+0.5
+ 74
+0
+ 49
+-0.1
+ 74
+0
+ 0
+LTYPE
+ 5
+33
+330
+2
+100
+AcDbSymbolTableRecord
+100
+AcDbLinetypeTableRecord
+ 2
+DASHDOT
+ 70
+0
+ 3
+Dash dot __ . __ . __ . __ . __ . __ . __ . __
+ 72
+65
+ 73
+4
+ 40
+1.4
+ 49
+1.0
+ 74
+0
+ 49
+-0.2
+ 74
+0
+ 49
+0.0
+ 74
+0
+ 49
+-0.2
+ 74
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+LAYER
+ 5
+1
+330
+0
+100
+AcDbSymbolTable
+ 70
+18
+ 0
+LAYER
+ 5
+27
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+0
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+28
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+Defpoints
+ 70
+0
+ 62
+7
+ 6
+Continuous
+290
+0
+370
+-3
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+34
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+PROCESS-PIPING-MAIN
+ 70
+0
+ 62
+1
+ 6
+Continuous
+370
+70
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+35
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+PROCESS-PIPING-SECONDARY
+ 70
+0
+ 62
+2
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+36
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+PROCESS-EQUIPMENT
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+37
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+PROCESS-VALVES
+ 70
+0
+ 62
+3
+ 6
+Continuous
+370
+35
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+38
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+INSTRUMENT-SYMBOL
+ 70
+0
+ 62
+4
+ 6
+Continuous
+370
+35
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+39
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+INSTRUMENT-LINE-SIGNAL
+ 70
+0
+ 62
+4
+ 6
+DASHED
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3A
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+INSTRUMENT-TAG-TEXT
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3B
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+PROCESS-LINE-TEXT
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3C
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+ELECTRICAL-LINE
+ 70
+0
+ 62
+6
+ 6
+DASHDOT
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3D
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+UTILITY-LINE
+ 70
+0
+ 62
+5
+ 6
+PHANTOM
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3E
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+INSULATION-HATCH
+ 70
+0
+ 62
+8
+ 6
+Continuous
+370
+13
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+3F
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+DIM
+ 70
+0
+ 62
+2
+ 6
+Continuous
+370
+18
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+40
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+TEXT-NOTES
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+25
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+41
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+TITLEBLOCK
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+50
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+42
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+CONSTRUCTION
+ 70
+0
+ 62
+250
+ 6
+Continuous
+370
+5
+390
+13
+347
+21
+ 0
+LAYER
+ 5
+51
+330
+1
+100
+AcDbSymbolTableRecord
+100
+AcDbLayerTableRecord
+ 2
+TEXT
+ 70
+0
+ 62
+7
+ 6
+Continuous
+370
+-3
+390
+13
+347
+21
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+STYLE
+ 5
+5
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+ 0
+STYLE
+ 5
+29
+330
+5
+100
+AcDbSymbolTableRecord
+100
+AcDbTextStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+0.0
+ 41
+1.0
+ 50
+0.0
+ 71
+0
+ 42
+2.5
+ 3
+txt
+ 4
+
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+VIEW
+ 5
+7
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+UCS
+ 5
+6
+330
+0
+100
+AcDbSymbolTable
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+APPID
+ 5
+3
+330
+0
+100
+AcDbSymbolTable
+ 70
+3
+ 0
+APPID
+ 5
+2A
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+ACAD
+ 70
+0
+ 0
+APPID
+ 5
+66
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+HATCHBACKGROUNDCOLOR
+ 70
+0
+ 0
+APPID
+ 5
+67
+330
+3
+100
+AcDbSymbolTableRecord
+100
+AcDbRegAppTableRecord
+ 2
+EZDXF
+ 70
+0
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+DIMSTYLE
+ 5
+4
+330
+0
+100
+AcDbSymbolTable
+ 70
+1
+100
+AcDbDimStyleTable
+ 0
+DIMSTYLE
+105
+2B
+330
+4
+100
+AcDbSymbolTableRecord
+100
+AcDbDimStyleTableRecord
+ 2
+Standard
+ 70
+0
+ 40
+1.0
+ 41
+2.5
+ 42
+0.625
+ 43
+3.75
+ 44
+1.25
+ 45
+0.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+2.5
+140
+2.5
+141
+2.5
+142
+0.0
+143
+0.03937007874
+144
+1.0
+145
+0.0
+146
+1.0
+147
+0.625
+148
+0.0
+ 69
+0
+ 70
+0
+ 71
+0
+ 72
+0
+ 73
+0
+ 74
+0
+ 75
+0
+ 76
+0
+ 77
+1
+ 78
+8
+ 79
+3
+170
+0
+171
+3
+172
+1
+173
+0
+174
+0
+175
+0
+176
+0
+177
+0
+178
+0
+179
+2
+271
+2
+272
+2
+273
+2
+274
+3
+275
+0
+276
+0
+277
+2
+278
+46
+279
+0
+280
+0
+281
+0
+282
+0
+283
+0
+284
+8
+285
+0
+286
+0
+288
+0
+289
+3
+290
+0
+371
+-2
+372
+-2
+ 0
+ENDTAB
+ 0
+TABLE
+ 2
+BLOCK_RECORD
+ 5
+9
+330
+0
+100
+AcDbSymbolTable
+ 70
+2
+ 0
+BLOCK_RECORD
+ 5
+17
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Model_Space
+340
+1A
+ 70
+0
+280
+1
+281
+0
+ 0
+BLOCK_RECORD
+ 5
+1B
+330
+9
+100
+AcDbSymbolTableRecord
+100
+AcDbBlockTableRecord
+ 2
+*Paper_Space
+340
+1E
+ 70
+0
+280
+1
+281
+0
+ 0
+ENDTAB
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+BLOCKS
+ 0
+BLOCK
+ 5
+18
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Model_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Model_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+19
+330
+17
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+BLOCK
+ 5
+1C
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockBegin
+ 2
+*Paper_Space
+ 70
+0
+ 10
+0.0
+ 20
+0.0
+ 30
+0.0
+ 3
+*Paper_Space
+ 1
+
+ 0
+ENDBLK
+ 5
+1D
+330
+1B
+100
+AcDbEntity
+ 8
+0
+100
+AcDbBlockEnd
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+ENTITIES
+ 0
+LWPOLYLINE
+ 5
+43
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+0.0
+ 20
+0.0
+ 10
+420.0
+ 20
+0.0
+ 10
+420.0
+ 20
+297.0
+ 10
+0.0
+ 20
+297.0
+ 0
+LWPOLYLINE
+ 5
+44
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+20.0
+ 20
+10.0
+ 10
+410.0
+ 20
+10.0
+ 10
+410.0
+ 20
+287.0
+ 10
+20.0
+ 20
+287.0
+ 0
+LWPOLYLINE
+ 5
+45
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbPolyline
+ 90
+4
+ 70
+1
+ 10
+230.0
+ 20
+10.0
+ 10
+410.0
+ 20
+10.0
+ 10
+410.0
+ 20
+70.0
+ 10
+230.0
+ 20
+70.0
+ 0
+LINE
+ 5
+46
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+230.0
+ 20
+20.0
+ 30
+0.0
+ 11
+410.0
+ 21
+20.0
+ 31
+0.0
+ 0
+LINE
+ 5
+47
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+230.0
+ 20
+35.0
+ 30
+0.0
+ 11
+410.0
+ 21
+35.0
+ 31
+0.0
+ 0
+LINE
+ 5
+48
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+230.0
+ 20
+50.0
+ 30
+0.0
+ 11
+410.0
+ 21
+50.0
+ 31
+0.0
+ 0
+LINE
+ 5
+49
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+320.0
+ 20
+35.0
+ 30
+0.0
+ 11
+320.0
+ 21
+50.0
+ 31
+0.0
+ 0
+LINE
+ 5
+4A
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+365.0
+ 20
+35.0
+ 30
+0.0
+ 11
+365.0
+ 21
+50.0
+ 31
+0.0
+ 0
+LINE
+ 5
+4B
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+290.0
+ 20
+20.0
+ 30
+0.0
+ 11
+290.0
+ 21
+35.0
+ 31
+0.0
+ 0
+LINE
+ 5
+4C
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+350.0
+ 20
+20.0
+ 30
+0.0
+ 11
+350.0
+ 21
+35.0
+ 31
+0.0
+ 0
+LINE
+ 5
+4D
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+275.0
+ 20
+10.0
+ 30
+0.0
+ 11
+275.0
+ 21
+20.0
+ 31
+0.0
+ 0
+LINE
+ 5
+4E
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+320.0
+ 20
+10.0
+ 30
+0.0
+ 11
+320.0
+ 21
+20.0
+ 31
+0.0
+ 0
+LINE
+ 5
+4F
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TITLEBLOCK
+100
+AcDbLine
+ 10
+365.0
+ 20
+10.0
+ 30
+0.0
+ 11
+365.0
+ 21
+20.0
+ 31
+0.0
+ 0
+TEXT
+ 5
+50
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+294.5
+ 20
+57.5
+ 30
+0.0
+ 40
+5.0
+ 1
+ISO A3 P&ID SHEET
+100
+AcDbText
+ 0
+TEXT
+ 5
+52
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+231.5
+ 20
+46.5
+ 30
+0.0
+ 40
+2.0
+ 1
+DWG NO
+100
+AcDbText
+ 0
+TEXT
+ 5
+53
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+233.0
+ 20
+40.0
+ 30
+0.0
+ 40
+3.5
+ 1
+TEMPLATE
+100
+AcDbText
+ 0
+TEXT
+ 5
+54
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+321.5
+ 20
+46.5
+ 30
+0.0
+ 40
+2.0
+ 1
+REV
+100
+AcDbText
+ 0
+TEXT
+ 5
+55
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+323.0
+ 20
+40.0
+ 30
+0.0
+ 40
+3.5
+ 1
+A
+100
+AcDbText
+ 0
+TEXT
+ 5
+56
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+366.5
+ 20
+46.5
+ 30
+0.0
+ 40
+2.0
+ 1
+SHEET
+100
+AcDbText
+ 0
+TEXT
+ 5
+57
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+368.0
+ 20
+40.0
+ 30
+0.0
+ 40
+3.5
+ 1
+1/1
+100
+AcDbText
+ 0
+TEXT
+ 5
+58
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+231.5
+ 20
+31.5
+ 30
+0.0
+ 40
+2.0
+ 1
+PART NO
+100
+AcDbText
+ 0
+TEXT
+ 5
+59
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+233.0
+ 20
+25.0
+ 30
+0.0
+ 40
+3.5
+ 1
+
+100
+AcDbText
+ 0
+TEXT
+ 5
+5A
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+291.5
+ 20
+31.5
+ 30
+0.0
+ 40
+2.0
+ 1
+MATERIAL
+100
+AcDbText
+ 0
+TEXT
+ 5
+5B
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+293.0
+ 20
+25.0
+ 30
+0.0
+ 40
+3.5
+ 1
+
+100
+AcDbText
+ 0
+TEXT
+ 5
+5C
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+351.5
+ 20
+31.5
+ 30
+0.0
+ 40
+2.0
+ 1
+SCALE
+100
+AcDbText
+ 0
+TEXT
+ 5
+5D
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+353.0
+ 20
+25.0
+ 30
+0.0
+ 40
+3.5
+ 1
+1:1
+100
+AcDbText
+ 0
+TEXT
+ 5
+5E
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+231.5
+ 20
+16.5
+ 30
+0.0
+ 40
+2.0
+ 1
+DRAWN
+100
+AcDbText
+ 0
+TEXT
+ 5
+5F
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+233.0
+ 20
+11.5
+ 30
+0.0
+ 40
+3.5
+ 1
+
+100
+AcDbText
+ 0
+TEXT
+ 5
+60
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+276.5
+ 20
+16.5
+ 30
+0.0
+ 40
+2.0
+ 1
+CHECKED
+100
+AcDbText
+ 0
+TEXT
+ 5
+61
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+278.0
+ 20
+11.5
+ 30
+0.0
+ 40
+3.5
+ 1
+
+100
+AcDbText
+ 0
+TEXT
+ 5
+62
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+321.5
+ 20
+16.5
+ 30
+0.0
+ 40
+2.0
+ 1
+DATE
+100
+AcDbText
+ 0
+TEXT
+ 5
+63
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+323.0
+ 20
+11.5
+ 30
+0.0
+ 40
+3.5
+ 1
+
+100
+AcDbText
+ 0
+TEXT
+ 5
+64
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+366.5
+ 20
+16.5
+ 30
+0.0
+ 40
+2.0
+ 1
+COMPANY
+100
+AcDbText
+ 0
+TEXT
+ 5
+65
+330
+1B
+100
+AcDbEntity
+ 67
+1
+ 8
+TEXT
+100
+AcDbText
+ 10
+368.0
+ 20
+11.5
+ 30
+0.0
+ 40
+3.5
+ 1
+Anka-Makine
+100
+AcDbText
+ 0
+ENDSEC
+ 0
+SECTION
+ 2
+OBJECTS
+ 0
+DICTIONARY
+ 5
+A
+330
+0
+100
+AcDbDictionary
+281
+1
+ 3
+ACAD_COLOR
+350
+B
+ 3
+ACAD_GROUP
+350
+C
+ 3
+ACAD_LAYOUT
+350
+D
+ 3
+ACAD_MATERIAL
+350
+E
+ 3
+ACAD_MLEADERSTYLE
+350
+F
+ 3
+ACAD_MLINESTYLE
+350
+10
+ 3
+ACAD_PLOTSETTINGS
+350
+11
+ 3
+ACAD_PLOTSTYLENAME
+350
+12
+ 3
+ACAD_SCALELIST
+350
+14
+ 3
+ACAD_TABLESTYLE
+350
+15
+ 3
+ACAD_VISUALSTYLE
+350
+16
+ 3
+EZDXF_META
+350
+2D
+ 0
+DICTIONARY
+ 5
+B
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+C
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+D
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Model
+350
+1A
+ 3
+A3
+350
+1E
+ 0
+DICTIONARY
+ 5
+E
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+ByBlock
+350
+1F
+ 3
+ByLayer
+350
+20
+ 3
+Global
+350
+21
+ 0
+DICTIONARY
+ 5
+F
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+2C
+ 0
+DICTIONARY
+ 5
+10
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Standard
+350
+22
+ 0
+DICTIONARY
+ 5
+11
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+ACDBDICTIONARYWDFLT
+ 5
+12
+330
+A
+100
+AcDbDictionary
+281
+1
+ 3
+Normal
+350
+13
+100
+AcDbDictionaryWithDefault
+340
+13
+ 0
+ACDBPLACEHOLDER
+ 5
+13
+330
+12
+ 0
+DICTIONARY
+ 5
+14
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+15
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+DICTIONARY
+ 5
+16
+330
+A
+100
+AcDbDictionary
+281
+1
+ 0
+LAYOUT
+ 5
+1A
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 4
+A3
+ 6
+
+ 40
+7.5
+ 41
+20.0
+ 42
+7.5
+ 43
+20.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+1024
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+Model
+ 70
+1
+ 71
+0
+ 10
+0.0
+ 20
+0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+17
+ 0
+LAYOUT
+ 5
+1E
+330
+D
+100
+AcDbPlotSettings
+ 1
+
+ 2
+DWG To PDF.pc3
+ 4
+ISO_A3_(420.00_x_297.00_MM)
+ 6
+
+ 40
+0.0
+ 41
+0.0
+ 42
+0.0
+ 43
+0.0
+ 44
+420.0
+ 45
+297.0
+ 46
+0.0
+ 47
+0.0
+ 48
+0.0
+ 49
+0.0
+140
+0.0
+141
+0.0
+142
+1.0
+143
+1.0
+ 70
+688
+ 72
+1
+ 73
+0
+ 74
+5
+ 7
+monochrome.ctb
+ 75
+16
+ 76
+0
+ 77
+2
+ 78
+300
+147
+1.0
+148
+0.0
+149
+0.0
+100
+AcDbLayout
+ 1
+A3
+ 70
+1
+ 71
+1
+ 10
+-0.0
+ 20
+-0.0
+ 11
+420.0
+ 21
+297.0
+ 12
+0.0
+ 22
+0.0
+ 32
+0.0
+ 14
+1e+20
+ 24
+1e+20
+ 34
+1e+20
+ 15
+-1e+20
+ 25
+-1e+20
+ 35
+-1e+20
+146
+0.0
+ 13
+0.0
+ 23
+0.0
+ 33
+0.0
+ 16
+1.0
+ 26
+0.0
+ 36
+0.0
+ 17
+0.0
+ 27
+1.0
+ 37
+0.0
+ 76
+1
+330
+1B
+ 0
+MATERIAL
+ 5
+1F
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByBlock
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+20
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+ByLayer
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MATERIAL
+ 5
+21
+102
+{ACAD_REACTORS
+330
+E
+102
+}
+330
+E
+100
+AcDbMaterial
+ 1
+Global
+ 2
+
+ 70
+0
+ 40
+1.0
+ 71
+1
+ 41
+1.0
+ 91
+-1023410177
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 44
+0.5
+ 73
+0
+ 45
+1.0
+ 46
+1.0
+ 77
+1
+ 4
+
+ 78
+1
+ 79
+1
+170
+1
+ 48
+1.0
+171
+1
+ 6
+
+172
+1
+173
+1
+174
+1
+140
+1.0
+141
+1.0
+175
+1
+ 7
+
+176
+1
+177
+1
+178
+1
+143
+1.0
+179
+1
+ 8
+
+270
+1
+271
+1
+272
+1
+145
+1.0
+146
+1.0
+273
+1
+ 9
+
+274
+1
+275
+1
+276
+1
+ 42
+1.0
+ 72
+1
+ 3
+
+ 73
+1
+ 74
+1
+ 75
+1
+ 94
+63
+ 0
+MLINESTYLE
+ 5
+22
+102
+{ACAD_REACTORS
+330
+10
+102
+}
+330
+10
+100
+AcDbMlineStyle
+ 2
+Standard
+ 70
+0
+ 3
+
+ 62
+256
+ 51
+90.0
+ 52
+90.0
+ 71
+2
+ 49
+0.5
+ 62
+256
+ 6
+BYLAYER
+ 49
+-0.5
+ 62
+256
+ 6
+BYLAYER
+ 0
+MLEADERSTYLE
+ 5
+2C
+102
+{ACAD_REACTORS
+330
+F
+102
+}
+330
+F
+100
+AcDbMLeaderStyle
+179
+2
+170
+2
+171
+1
+172
+0
+ 90
+2
+ 40
+0.0
+ 41
+0.0
+173
+1
+ 91
+-1056964608
+ 92
+-2
+290
+1
+ 42
+2.0
+291
+1
+ 43
+8.0
+ 3
+Standard
+ 44
+4.0
+300
+
+342
+29
+174
+1
+175
+1
+176
+0
+178
+1
+ 93
+-1056964608
+ 45
+4.0
+292
+0
+297
+0
+ 46
+4.0
+ 94
+-1056964608
+ 47
+1.0
+ 49
+1.0
+140
+1.0
+294
+1
+141
+0.0
+177
+0
+142
+1.0
+295
+0
+296
+0
+143
+3.75
+271
+0
+272
+9
+273
+9
+ 0
+DICTIONARY
+ 5
+2D
+330
+A
+100
+AcDbDictionary
+280
+1
+281
+1
+ 3
+CREATED_BY_EZDXF
+350
+2E
+ 3
+WRITTEN_BY_EZDXF
+350
+68
+ 0
+DICTIONARYVAR
+ 5
+2E
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.4 @ 2026-09-21T19:00:16.231308+00:00
+ 0
+DICTIONARYVAR
+ 5
+68
+330
+2D
+100
+DictionaryVariables
+280
+0
+ 1
+1.4.4 @ 2026-09-21T19:00:16.248961+00:00
+ 0
+ENDSEC
+ 0
+EOF
diff --git a/tests/test_templates.py b/tests/test_templates.py
new file mode 100644
index 0000000..fa49c77
--- /dev/null
+++ b/tests/test_templates.py
@@ -0,0 +1,187 @@
+"""Bundled templates: catalogue, resolution, reproducible build, drawing_new(template=)."""
+
+from __future__ import annotations
+
+import importlib.util
+from pathlib import Path
+
+import pytest
+from fastmcp.exceptions import ToolError
+
+import server
+from engineering.standards.templates import (
+ TEMPLATE_CATALOG,
+ TEMPLATES_DIR,
+ resolve_template,
+ template_rows,
+)
+
+pytestmark = pytest.mark.asyncio
+
+ROOT = Path(__file__).resolve().parents[1]
+NAMES = ("iso_a3_mech", "iso_a1_arch", "iso_a3_pid", "ansi_b_mech", "ansi_d_arch")
+
+
+def _build_module():
+ spec = importlib.util.spec_from_file_location(
+ "build_templates", ROOT / "scripts" / "build_templates.py"
+ )
+ module = importlib.util.module_from_spec(spec)
+ spec.loader.exec_module(module)
+ return module
+
+
+class _Ctx:
+ def __init__(self, backend):
+ self.lifespan_context = {"backend": backend}
+
+ async def info(self, message):
+ pass
+
+ async def warning(self, message):
+ pass
+
+ async def report_progress(self, progress, total):
+ pass
+
+
+# ── catalogue ───────────────────────────────────────────────────────────────
+
+
+def test_catalog_has_the_five_spec_rows():
+ assert tuple(TEMPLATE_CATALOG) == NAMES
+ rows = {spec.name: spec for spec in TEMPLATE_CATALOG.values()}
+ assert (rows["iso_a3_mech"].paper, rows["iso_a3_mech"].layer_set) == ("ISO_A3", "mech")
+ assert (rows["iso_a1_arch"].paper, rows["iso_a1_arch"].layer_set) == ("ISO_A1", "iso13567")
+ assert rows["iso_a1_arch"].settings["annotation_scale"] == "1:50"
+ assert (rows["iso_a3_pid"].paper, rows["iso_a3_pid"].layer_set) == ("ISO_A3", "pid")
+ assert (rows["ansi_b_mech"].paper, rows["ansi_b_mech"].dimstyle) == ("ANSI_B", "ANSI")
+ assert (rows["ansi_d_arch"].paper, rows["ansi_d_arch"].scale) == ("ANSI_D", "fit")
+ assert [spec.title_block for spec in TEMPLATE_CATALOG.values()] == [
+ True,
+ False,
+ True,
+ False,
+ False,
+ ]
+ assert all(spec.orientation == "landscape" for spec in TEMPLATE_CATALOG.values())
+ assert {spec.textstyle for spec in TEMPLATE_CATALOG.values()} == {"ISOCP", "ROMANS"}
+
+
+def test_template_rows_report_files():
+ rows = template_rows()
+ assert [row["name"] for row in rows] == list(NAMES)
+ for row in rows:
+ assert set(row["files"]) == {"dxf", "dwt"}
+ assert row["files"]["dxf"]["path"].endswith(f"{row['name']}.dxf")
+ assert isinstance(row["files"]["dxf"]["present"], bool)
+
+
+def test_resolve_template_bundled_path_and_unknown(tmp_path):
+ path, source = resolve_template("iso_a3_mech", "ezdxf")
+ assert source == "bundled" and path == str(TEMPLATES_DIR / "iso_a3_mech.dxf")
+ path, source = resolve_template("ISO_A3_MECH", "ezdxf")
+ assert source == "bundled"
+ # COM prefers the .dwt twin and says when it fell back to the DXF
+ path, source = resolve_template("iso_a3_mech", "com")
+ assert source in ("bundled", "bundled_dxf")
+ assert path.endswith(".dwt" if source == "bundled" else ".dxf")
+ explicit = tmp_path / "mine.dwt"
+ assert resolve_template(str(explicit), "ezdxf") == (str(explicit), "path")
+ assert resolve_template("sheet.dxf", "com") == ("sheet.dxf", "path")
+ with pytest.raises(
+ ValueError, match="iso_a3_mech, iso_a1_arch, iso_a3_pid, ansi_b_mech, ansi_d_arch"
+ ):
+ resolve_template("iso_a2_mech", "ezdxf")
+ with pytest.raises(ValueError, match="template"):
+ resolve_template("", "ezdxf")
+
+
+# ── the build ───────────────────────────────────────────────────────────────
+
+
+async def test_build_is_deterministic_run_to_run(tmp_path):
+ build = _build_module()
+ first = await build.build_all(tmp_path / "one")
+ second = await build.build_all(tmp_path / "two")
+ assert [row["name"] for row in first] == list(NAMES)
+ for name in NAMES:
+ a = build.normalised_lines(tmp_path / "one" / f"{name}.dxf")
+ b = build.normalised_lines(tmp_path / "two" / f"{name}.dxf")
+ assert a == b, f"{name} differs between two builds"
+ assert all(row["page_setup"]["ok"] for row in first)
+ assert all(row["layers"] for row in first)
+ assert second # the second build is only there to be compared with the first
+
+
+async def test_committed_templates_match_a_fresh_build(tmp_path):
+ """The spec's reproducibility claim — the same comparison the script's --check runs."""
+ build = _build_module()
+ missing = [name for name in NAMES if not (TEMPLATES_DIR / f"{name}.dxf").is_file()]
+ assert not missing, f"bundled templates missing: {missing} — run scripts/build_templates.py"
+ await build.build_all(tmp_path)
+ drifted = build.drifted_names(tmp_path)
+ assert drifted == [], f"templates drifted from the script: {drifted}"
+
+
+# ── drawing_new(template=) ──────────────────────────────────────────────────
+
+
+async def test_drawing_new_from_a_bundled_template(backend):
+ result = await server.drawing_new(template="iso_a3_mech", ctx=_Ctx(backend))
+ assert result["ok"] is True
+ assert result["template"] == {
+ "name": "iso_a3_mech",
+ "path": str(TEMPLATES_DIR / "iso_a3_mech.dxf"),
+ "source": "bundled",
+ }
+ layers = {layer.name for layer in await backend.layer_list()}
+ assert {"GEOMETRY", "DIM", "HIDDEN", "CENTER", "TITLEBLOCK"} <= layers
+ row = (await backend.page_setup_list("A3"))[0]
+ assert row["paper"] == "ISO_A3" and row["orientation"] == "landscape"
+ assert row["plot_style"] == "monochrome.ctb" and row["scale"] == "1:1"
+ sheet = backend._doc.layouts.get("A3")
+ assert any(e.dxftype() == "LWPOLYLINE" for e in sheet), "the ISO 5457 frame is on the sheet"
+ assert float(await backend.system_get_variable("DIMTXT")) == 2.5
+ if hasattr(backend, "dimstyle_create"): # after group S merges
+ assert await backend.system_get_variable("DIMSTYLE") == "ISO-25"
+
+
+async def test_drawing_new_from_the_pid_and_ansi_templates(backend):
+ await server.drawing_new(template="iso_a3_pid", ctx=_Ctx(backend))
+ assert "PROCESS-PIPING-MAIN" in {layer.name for layer in await backend.layer_list()}
+ await server.drawing_new(template="ansi_d_arch", ctx=_Ctx(backend))
+ assert "M-GEOMET-E-N" in {layer.name for layer in await backend.layer_list()}
+ row = (await backend.page_setup_list("D"))[0]
+ assert row["paper"] == "ANSI_D" and row["size_mm"] == [864.0, 559.0] and row["scale"] == "fit"
+ assert (await backend.drawing_settings())["settings"]["decimal_separator"] == "."
+
+
+async def test_drawing_new_unknown_template_is_refused_with_the_names(backend):
+ await backend.entity_create_line(0, 0, 1, 1)
+ before = (await backend.drawing_info()).entity_count
+ with pytest.raises(ToolError, match="iso_a3_mech"):
+ await server.drawing_new(template="iso_a2_mech", ctx=_Ctx(backend))
+ assert (await backend.drawing_info()).entity_count == before, "the refusal replaced nothing"
+
+
+async def test_drawing_new_missing_template_path_is_refused(backend, tmp_path):
+ with pytest.raises(ToolError, match="not found"):
+ await server.drawing_new(template=str(tmp_path / "gone.dxf"), ctx=_Ctx(backend))
+
+
+async def test_drawing_new_from_an_explicit_dxf_path_reports_source_path(backend, tmp_path):
+ await backend.layer_create("MINE", color=3)
+ saved = tmp_path / "mine.dxf"
+ await backend.drawing_save_as(str(saved), "dxf")
+ result = await server.drawing_new(template=str(saved), ctx=_Ctx(backend))
+ assert result["template"]["source"] == "path"
+ assert result["template"]["path"] == str(saved.resolve())
+ assert "MINE" in {layer.name for layer in await backend.layer_list()}
+
+
+async def test_drawing_template_list_tool(backend):
+ result = await server.drawing_template_list(ctx=_Ctx(backend))
+ assert result["ok"] and result["count"] == 5
+ assert [row["name"] for row in result["templates"]] == list(NAMES)
+ assert result["engine"] == "ezdxf"
diff --git a/tests/test_tool_registry.py b/tests/test_tool_registry.py
index b09f14c..1970ce7 100644
--- a/tests/test_tool_registry.py
+++ b/tests/test_tool_registry.py
@@ -495,7 +495,7 @@ async def test_tool_groups_is_byte_identical_to_the_source_declared_grouping():
async def test_tool_group_sizes_are_unchanged():
- """Frozen snapshot of the surface (170 tools, 20 groups).
+ """Frozen snapshot of the surface (171 tools, 20 groups).
Taken before @cad_tool landed at 131 tools; `batch` moved 2 -> 3 when
v1.5.0's `cad_batch` joined `entity_batch_create`/`entity_batch_modify`, and
@@ -521,8 +521,10 @@ async def test_tool_group_sizes_are_unchanged():
`layouts` moved 12 -> 16 when v1.6's SECTION 19 opened with
`page_setup_list` / `page_setup_apply` / `plot_style_list` / `batch_plot`
— all tagged `layout`, which `_GROUP_TAG_PRIORITY` ranks above
- `query`/`export`, so they file with the sheets they set up. Every
- other number here has been unchanged since the snapshot was taken.
+ `query`/`export`, so they file with the sheets they set up. `templates`
+ moved 2 -> 3 when v1.6's `drawing_template_list` joined SECTION 19
+ (tagged `template`, which ranks above `drawing`). Every other number
+ here has been unchanged since the snapshot was taken.
"""
sizes = {label: len(names) for label, names in (await server._tool_groups()).items()}
assert sizes == {
@@ -542,9 +544,9 @@ async def test_tool_group_sizes_are_unchanged():
"premium": 12,
"solids": 5,
"system": 7,
- "templates": 2,
+ "templates": 3,
"transactions": 3,
"validation": 1,
"view": 4,
}
- assert sum(sizes.values()) == 170
+ assert sum(sizes.values()) == 171