11.1. Features and Changelog
A summary of all features available in IQcad, followed by a changelog of recent releases. This manual is for IQcad 2026.
11.1.1. Changelog
11.1.1.1. 2026-11-01
11.1.1.1.1. Manual
Licensing — the license manager, and the commands in IQcad Basic, Pro, Civil, Point Cloud and Drone. See Licensing.
Check for Updates — Help checks the signed manifest and downloads one archive of the program folder. Confirming the update closes IQcad. A helper extracts that archive onto the program folder and starts IQcad again. See Licensing.
11.1.1.2. 2026-10-29
11.1.1.2.1. Files
DXF tables, meshes and styles — a table saved to DXF is now an
ACAD_TABLE, with its text height and cell margin in aTABLESTYLE. The grid, the cell text and the rotation come back. A polyface mesh is saved as aMESHon R2000 and R2018. A multiline style and a multileader style are written and read, including a custom Standard multiline. R12 export is unchanged. See Exporting and Importing.
11.1.1.3. 2026-10-28
11.1.1.3.1. Point Cloud
Drone Survey DEM from LAS/LAZ — Load DEM also builds a grid from a LAS or LAZ point cloud. Choose ground (class 2), every class, or one class, and keep the lowest or the average Z in each cell. The cell size is stored with the session. See Drone Survey.
11.1.1.3.2. Files
Esri JSON import — File > Import > GeoJSON also reads an ArcGIS feature-set JSON file, including a download from maps.ktimatologio.gr. The file’s
wkidis the source CRS. A Κτηματολόγιο extract is EPSG:2100, so leave the drawing CRS at 2100 and the Greek Grid metres stay on the grid. Each ring, including holes, is a closed polyline on theLAYERattribute.KAEKbecomes the entity name andAREAthe description. GeoJSON files still come in from WGS 84, and export still writes GeoJSON. See Exporting and Importing.
11.1.1.4. 2026-10-26
11.1.1.4.1. Point Cloud
Drone Survey — DRONESURVEY (alias
DSV) opens from the Point Cloud menu and ribbon. Load a GeoTIFF DEM, drape an orthophoto, pick survey points, breaklines and boundaries, sample a regular or low-pass grid, build a TIN and contours, and send them into the drawing as civil points, 3D polylines and a surface. Sent points go into a point group on the surface definition. Named sessions are stored in the IQZ. Orbit, pan, zoom, walk and fly are in the same window.
11.1.1.5. 2026-09-07 — version 1.5.10.385
11.1.1.5.1. DWG
Native DWG is now the default — the in-process reader and writer handle R2000, R2004, R2007, R2010, R2013 and R2018 with no external converter and no temporary DXF. LibreDWG and the ODA File Converter stay in the fallback chain for the versions the native engine does not read. Choose the backend in File > Settings > DWG > Reader Backend.
Save version — the target version for DWG output is set once, in File > Settings > DWG > Save Version (default R2018).
Survey export modes — File > Settings > DWG > Survey objects chooses how COGO points and TIN surfaces leave the drawing: as genuine Civil 3D objects (
AeccDbPointsNode,AeccDbSurfaceTin,AeccDbFace,AeccDbAlignment, listed in the Civil 3D Prospector), as points + surface with labels (the default: POINT, TEXT and 3DFACE geometry any CAD can read), as geometry only, or not at all.ACIS write — REGION, 3DSOLID and BODY are now written as well as read. R2000–R2010 get encrypted SAT; R2013 and R2018 get the SAB prototype section, so a solid opened here and saved again is still the same solid.
New encoders — 2D polylines and their vertices, ATTDEF, polygon meshes, a Standard table style, and proxy headers. 61 object decoders in total; Civil 3D parcels and alignments now decode.
SHAPE —
AcDbShapeentities are read and drawn, with the glyph stroked from the style’s shapefile.Verbatim round-trip — a drawing opened and saved again without being edited is re-emitted byte for byte.
11.1.1.5.2. Civil
Sites — a Civil 3D-compatible named topology container. Parcels and grading groups always belong to a site (
Site 1by default); alignments may belong to one or stay in the top-level collection. Right-click the Prospector’s Sites node for Create Site…, or an alignment for Move to Site….Alignment defaults — a new alignment is named
Alignment_1,Alignment_2, … (one past the highest such number in the drawing) byALIGNMENT,ALIGNFROMPOLYLINEand the PI editor’s New button. The default PI layer (C-ROAD-{Name}-PI) is now magenta and the offset-axis layer (C-ROAD-{Name}-OAX) lilac (210, 170, 255) instead of yellow, and the built-in Standard alignment style shows the PI tangent lines.Import points from another drawing — the Point Manager toolbar gains Import from Drawing: pick an
.iqzor.ixmlfile, tick the point groups to bring in (or _All Points for everything), and they are merged into the current drawing. Only the survey database section of the file is read, so large drawings open quickly. Clashing point numbers are reassigned above both drawings and reported.Spot Elevation Dot point style — a new built-in point style: a small dot marker with the elevation value as the only label. Older drawings gain it on load next to the other presets.
Editable civil object layers — Civil › Civil Settings… › Layers gains a grid of every civil object component with its layer group, suffix, resulting layer pattern and colour. Rename a layer by typing in the Group or Suffix cell, click the swatch to pick a colour, or Reset Layers to return to the built-in table. Only the overrides are stored in the drawing, so untouched components keep following the defaults.
Hide and restore TIN triangles —
SURFHIDETRI(SHT) hides triangles by clicking inside them;SURFSHOWTRI(SWT) brings them all back. Hidden faces are kept in the surface edit log, not deleted, and surfaces read from a Civil 3D DWG arrive with their hidden faces already flagged.Alignment report sketches — ALIGNMENTREPORT (
ALR) now opens with a plan sketch of the alignment: tangents, numbered PIs, element boundaries with their stations, and lines, arcs and spirals in distinct colours. An alignment with a design profile also gets a profile sketch with grade lines, PVIs, BVC/EVC marks and high/low points. The PVI table gains grade in, grade out and algebraic difference columns, and a new Vertical Curve Data section lists BVC/EVC, K value, external distance and the high or low point of every vertical curve.
11.1.1.5.3. Plotting
Profile views plot to PDF — a layout viewport that shows a profile view now prints it: grid, datum, sampled and design profiles, PVI markers and labels, axis labels, the strip stack, title and border, at the same size and position as on screen. Before, the viewport plotted only the profile’s outline.
Alignments plot through their style — a layout exported to PDF now renders an alignment exactly as the layout viewport shows it: centerline, offset axis, station ticks and labels, direction arrows, PI markers, PI lines and the PI detail tables, each following the alignment style and the alignment’s component layers, with the plot style table applied. Previously only the bare centerline was written, whatever the style said.
PI detail tables on layouts — the tables were drawn in white, which vanished against the white sheet of a layout viewport. They now take the PI layer colour, or the style’s PI marker colour, like the markers and PI lines, so they show on layouts and on paper.
11.1.1.5.4. Documentation
New chapters: Blocks and Attributes, Layouts, Viewports and Printing, DWG Compatibility, Application Settings, Sites, and The Blade Runner Script Editor.
The DWG export and import sections were rewritten — they still described the external-converter flow that the native engine replaced.
The Layers chapter now describes the twelve-column Layer Manager (On, Frozen, Locked, Transparency, Plot Style, Plot, Description) and the ribbon layer dropdown with its state icons.
11.1.1.6. 2026-09-02
11.1.1.6.1. Selection
Overlapping objects — when several objects sit under the pick box (corridor linework on an alignment, stacked polylines, …) a gold two-square badge appears at the cursor. Click opens a pick list (type, name, layer); hover a row to preview, click the row or press Enter to select, Esc to cancel. Clicking the same spot again, or Alt+click, still cycles to the next object without starting a move. Ctrl+drag still pans.
SELECTIONCYCLING — new system variable (
0= off,1= badge only,2= badge and list, the default). Toggle with Ctrl+Shift+W (a negative value remembers the last on-mode). Ctrl+W still closes the drawing.
11.1.1.6.2. Culverts
Culvert Report — CULVERTREPORT (
CULVRPT) writes a PDF of a selected culvert: identity, plan sketch with numbered stake-out points, cross and long sections, a volumes table, and an X/Y/Z coordinates table. Civil → Culverts → Culvert Report on the menu and ribbon.
11.1.1.6.3. Files
Recent files — saving a new untitled drawing with Save or Save As now adds the file to the recent-files list.
11.1.1.6.4. Corridors
Auto-rebuild on by default — new corridors rebuild automatically when the alignment or assembly changes (
CORRIDORAUTOstill toggles it). Previously the default was off.
11.1.1.7. 2026-08-24
11.1.1.7.1. Draw
WIPEOUT — (alias
WO) new command that masks an area of the drawing with a polygon filled in the background colour, hiding the geometry beneath it without erasing it. Draw → Wipeout on the menu and the Wipeout button on the Draw ribbon tab under Shapes.Three modes, matching AutoCAD:
pick the polygon corners and right-click to close (the default);
Polylineconverts a pre-selected closed polyline, optionally erasing it. A polyline with arc (bulged) segments is refused, because a wipeout boundary is straight-sided and the mask would not cover the same area;Framesturns the outline of every wipeout in the drawing on or off. This is drawing-wide, stored in the newWIPEOUTFRAMEsystem variable (0= off, the default).
WIPEOUT import — wipeouts now read from DWG as well as DXF, on all six supported versions. The clip boundary is transformed out of image space into world coordinates, so a wipeout authored in AutoCAD lands at the right place and size.
TOLERANCE import — geometric tolerance frames (GD&T feature control frames) now read from DWG as well as DXF, on all six supported versions, and are drawn as a proper boxed frame: one box per cell, divided on the
%%vseparators.Previously a tolerance was imported as a plain text object holding the raw string, so the drawing showed literal gibberish such as
{\Fgdt;j}%%v{\Fgdt;n}0.05instead of a frame.AutoCAD writes the GD&T symbols as font escapes into
gdt.shx, which IQCAD cannot read. The 20 symbols are mapped to their Unicode equivalents for display — position, diameter, perpendicularity, the material-condition circles and so on. A symbol with no Unicode equivalent shows its code letter, so nothing disappears silently. The original string is kept untouched and is what gets written back out, so a round-trip through IQCAD loses nothing. Tolerances also save to and load from.iqzdrawings.Layer on/off, frozen, locked and plot state on import — layers now come in with the state the file actually records. Previously every layer loaded switched on, whatever the drawing said, so a drawing whose hidden layers were part of how it reads — construction lines, an underlay, a superseded revision — opened with everything visible at once.
Applies to DWG (all six supported versions) and DXF. Two related faults were fixed at the same time:
in DXF, a layer that was switched off and carried a true colour came in visible, because the off state was only checked when no true colour was present;
the do not plot flag was neither read nor written, so it was lost both on import and on export.
Layer state already survived saving to
.iqz; it now survives a DXF export as well. Exporting to DWG still does not carry layer state.Circles drawn on a tilted plane — a circle whose plane is not the drawing’s XY plane (one drawn in a rotated UCS, or on the side of a 3D object) now lands where AutoCAD puts it, and is drawn standing in its own plane instead of lying flat. Previously its position was read as though its local coordinates were world coordinates, which could place it hundreds of units away.
The plane survives export to DXF and saving to
.iqz. Text on a tilted plane is not covered yet.Mirrored ellipses placed correctly — an ellipse that a drawing stores mirrored was moved to the wrong side of the drawing on DXF import. In one real file this put it about 28,000 units from the identical ellipse directly above it. DWG and DXF import now agree on these.
Mirrored arcs from DWG — arcs stored mirrored came in unmirrored from DWG files, while the same drawing read from DXF was correct. Both now agree. Arcs standing on a tilted plane are still not supported.
Hatch transparency on import — a hatch read from DWG or DXF now keeps the transparency it was given, instead of coming in fully opaque. Exporting to DXF writes it back, including a fill that lives on a polyline rather than on a hatch object of its own.
A hatch whose transparency is set to ByLayer — which is AutoCAD’s default — now follows its layer, and keeps following it: changing the layer’s transparency updates the hatch, rather than the value being fixed at the moment the drawing was opened. ByBlock follows the layer too.
Layer transparency itself was being read and written on the wrong scale: AutoCAD’s 50 % came in as 45 %, and 50 % went out as 55 %. Values read from DXF files written by older IQCAD versions will therefore shift slightly; values from AutoCAD are now correct.
Exporting to DWG does not yet carry transparency.
11.1.1.8. 2026-08-22
11.1.1.8.1. Linux
Wayland startup crash fixed — on a Wayland desktop the program died while building the main window, inside the Qt binding’s X11 display lookup (the OpenGL canvas needs it and the binding dereferences a null pointer when no X11 interface exists). IQcad now selects the
xcbplatform plugin itself when the session is Wayland, an X display is reachable andQT_QPA_PLATFORMis not already set. An explicitQT_QPA_PLATFORMis respected as before.
11.1.1.9. 2026-08-07
11.1.1.9.1. Super Tools
New Super Tools menu and ribbon tab for Express/CadTools-style drawing helpers. Commands are grouped under Cleanup and Polylines split buttons (and matching menu submenus). Full chapter: Super Tools in the user manual.
FLATTEN moved — still
FLATTENon the command line, but the UI entry is now Super Tools → Cleanup (no longer under Modify menu / Modify ribbon “More”).PLSIMPLIFY — (alias
PLSIM) Douglas–Peucker vertex reduction on selected 2D and 3D polylines. Prompts for a deviation tolerance (default0.01, remembered for the session). 2D uses XY deviation; 3D uses true 3D. Arc bulges densify then clear; spline-fit is cleared. Undoable. Ribbon / menu: Super Tools → Polylines.PLGETZ — (alias
PGZ) sample elevations from a surface or point cloud along selected paths. Supports lines and multi-select. Sample mode Vertices (default) / Interval / Both; Vertex interval (default1) is asked only when Interval or Both is selected. Missing samples set Z = 0. 2D polylines are replaced by 3D polylines; 3D polylines and lines (vertices mode) update Z in place; densified lines become 3D polylines. Undoable. Super Tools → Polylines → Get Z….BESTFITLINE — (alias
BFL) best-fit 3D line (PCA) through vertices of the multi-selection (points, lines, polylines). Creates a new LINE spanning the point set. Undoable. Super Tools → Polylines → Best Fit Line….
11.1.1.10. 2026-08-05
11.1.1.10.1. User interface
Layer dropdown state icons — every row of the ribbon Layer dropdown (Home tab) now shows a bulb (On/Off), a sun/snowflake (thawed/frozen) and a padlock (unlocked/locked), as in the AutoCAD layer control. Click an icon to toggle the state; the list stays open so several layers can be changed in one visit. Freezing the current layer is refused with a status-bar message. The Layer Manager, if open, updates at once.
11.1.1.10.2. Drawing performance & engine indexes
Large drawings (many surfaces, alignments, polylines, point clouds, and civil entities) spend less time on full-document scans during pick, OSNAP, prospector rebuilds, civil commands, and export.
Document index — the canvas keeps non-owning type side-lists and name maps (
TDocumentIndex): surfaces, alignments, corridors, point clouds, parcels, gradings, survey points, culverts, XLines, CAD points, polylines, profile views, section sheets, block inserts, plus handle and civil name maps for O(log N) resolve.Civil Prospector — tree rebuild, style grids, and surface naming walk the type lists instead of every entity in the drawing.
Commands & dialogs — profile views, section sheets, earthwork, LandXML export, PC sections, grading cleanup, corridor spawn cleanup, alignment/volume reports, surface style apply, corridor dialogs, and block insert count/rename use the lists or
Find*ByName/FindPointCloudByHandleInt.TRIM ALL — cutting-edge candidates come from a spatial query around the object being trimmed (padded bounding box); EXTEND ALL still considers the full document so distant boundaries remain valid.
OSNAP — geometry helpers and the multi-tier search path live in dedicated units (
UCADOsnapMath,UCADOsnapEngine); aperture queries use the spatial index and always include infinite XLines.Surfaces — sequential elevation query prep and cheaper tombstone compaction on TIN local edits; band-legend stacking uses
SurfaceList.``QueryWorldRegion`` — public canvas API for world-AABB spatial candidates (used by TRIM and proximity picks).
No user-facing command names or file formats change; behaviour of pick/OSNAP/trim is intended to match previous results with less work on large files.
CAD primitives lists —
LineList/CircleList/ArcListfor GIS export and line-based picks without scanning civil-heavy drawings; point-cloud deviation-from-surface colouring resolves the target surface viaFindSurfaceByName(hot path on draw).Tunnel and PC section lists —
TunnelSectionLineListandPointCloudSectionList; PDF tunnel deviation overlays and PC section auto-names no longer walk the full object list.Layout viewports —
ViewportListspeeds activate-by-click, plot viewport passes, DXF layout staging, and IQML clip-entity resolve on paper-space layouts.Plot / PDF — elevation-band legend surface lookup uses
SurfaceList; layout PDF no longer rebuilds the viewport frozen-layer set from every model entity (uses the viewport’s own list).Load / inspector — IQML dependency reconnect and legacy profile migration resolve alignments and surfaces by name map; DXF insert bbox update walks
InsertListonly.Index rebuild — rebuilding type side-lists after bulk load is linear in entity count (no per-add duplicate scan); grading resolve is O(log N) via a name map.
Surface SURFUNDO memory — undoing surface edits frees the mesh snapshot storage after restore (large TINs keep less peak memory).
Layout PDF — paper-space non-viewport entities and viewports are rendered in separate passes (viewports via
ViewportList).Survey point sync —
SyncSurveyPointsToCanvasandUpdateSurveyPointsFromDBwalkSurveyPointListonly (not the full document) when building existing-number sets and pushing DB fields.Window / crossing selection —
SelectObjectsInRectusesQueryWorldRegionso large drawings only test entities near the drag rectangle (same locked/hidden filters as before).Layout viewport paint — model content inside paper-space viewports is drawn from a spatial candidate set for the viewport’s model window (matches the main 2D
CollectVisibleapproach).Layout / window PDF — viewport and model-window plot passes query spatial candidates (rotation uses a diagonal pad so corners stay covered).
3D visible set —
CollectVisibleObjectsin 3D mode prefilters with an expanded spatial XY query, then frustum-tests candidates (falls back to a full frustum walk when nearly the whole drawing is in view).IQML reconnect — dependency rewire after load walks
ProfileViewList/SectionViewList/SectionSheetList/CorridorList/GradingListonly.3D hidden-line PDF — mesh and edge export use
Mesh3DList/Edges3DListinstead of scanning every entity.``SectionViewList`` — new type side-list for section views.
``TextList`` —
TCADTextside-list (SVG export and style audits).Scene extents cache — one pass for
IncludeInZoomExtentsAABB; shared byZoomExtents, layout viewport fit, DXF layout staging, drawing statistics, SVG viewBox, and 3D near/far (TryGetZoomExtents).Draw order — bring/send selection uses an O(N) partition rebuild instead of O(S·N)
IndexOf+Move.Handle counter —
SyncHandleCounteruses max handle tracked during handle-map rebuild/add (no second full scan).SVG export — writes from type lists (points/lines/circles/arcs/ polylines/text).
DXF paper space — viewports written from
ViewportList.Entity name map —
FindByNamerebuilds from type side-lists (named polylines/civil/etc.), not every mesh face.3D billboards — shaded-mode billboard groups use the per-paint visible set (spatial/frustum culled) instead of the full object list.
Point-style refresh —
RefreshObjectPointDefaultspushes to CAD primitive type lists only (not faces/meshes).Bulk bbox / REGEN —
EndLoadandRegenAllupdate bounding boxes (and caches on REGEN) in parallel when entity count ≥ 2000 (UParallel/mtprocs).Print zone extents — template drawing-zone fit uses
TryGetZoomExtentsinstead of a full object walk.Layer membership — each
TLayertracks entities assigned to it;RemoveLayerreassigns only those members (not the full drawing); drawing statistics layer counts use membership size.Layer name lookup —
FindLayeruses a sorted name map (rebuilt when layer names change viaLayerNameEpoch).SURFCLEAREDITS memory — clearing the surface edit log also frees the SURFUNDO mesh snapshot (peak TIN memory after commit).
Block name map —
FindBlock/ insert resolve use a sorted name map (O(log N) instead of scanning every block definition).DXF export handles — seed from the canvas handle counter (no full model-space handle scan); block definitions still scanned.
EndLoad layer membership — re-registers entities on their layers after bulk import so
RemoveLayermembership stays correct.SelectAll — adds only entities on unlocked/renderable layers via membership lists (skips locked/frozen layers wholesale).
Purge / AUDIT — used-name collection and audit walk layer membership + type lists instead of a flat full-object style filter.
EXTEND ALL — boundary candidates from line/circle/arc/polyline/ xline type lists (not every 3DFACE in the drawing).
Drawing statistics by type — tallies via layer membership.
11.1.1.11. 2026-08-03
11.1.1.11.1. Parcel vertex names
Survey-style corner names — every parcel corner now carries a drawing-wide vertex name (prefix + running number, e.g.
A1,A2, …); the sequence continues across every parcel in the drawing, and a corner shared by two adjacent parcels always carries the same name on both sides.Automatic on creation —
CREATEPARCELnames every new corner; older drawings keep their corners unnamed until repaired withPARCELCHECK.Editable per vertex — the Object Inspector’s Geometry › Vertex row for a parcel now shows Index / Name / X / Y / Bulge. Renaming a shared corner updates the neighbouring parcel live; an empty name is rejected; a name already used elsewhere gets a command-line warning instead of a blocking dialog.
Grip-drag behaviour — pulling a shared corner apart leaves the name with the vertex that stayed put and issues the moved corner a fresh number; dragging a corner onto another parcel’s named corner adopts that name.
Labels, tables and reports — a new Vertex Labels group on the parcel style’s Labels tab (Vertex Names Visible toggle + a civil label style picker; new built-in Parcel Vertex label style) draws the names on screen and in PDF plots; the built-in Property parcel style shows them by default.
PARCELTABLEand thePARCELREPORTHTML report now list corner names instead of a bare1..Nindex, falling back to the index when unnamed.``PARCELCHECK`` becomes a check-and-fix hub — reworked with Report (read-only listing of duplicate vertices, unnamed vertices, mismatched shared corners, and duplicate names), Fix (repairs all of the above; offers to set the drawing’s vertex prefix), and reNumber (confirmation-guarded full drawing-wide re-sequence). The previous duplicate-vertex cleanup is now part of Fix.
Vertex names and the per-drawing prefix round-trip through
.iqzsaves and DXF export/import.
11.1.1.12. 2026-08-02
11.1.1.12.1. Point cloud Elevation Tracker
``PCELEVTRACK`` — a point cloud counterpart to the surface Elevation Tracker: toggle it from the Point Cloud ribbon tab or menu (or the command line) for a live readout of the nearest point in every visible point cloud under the cursor, sharing the same overlay box as the surface tracker. No averaging or interpolation — the reading is always a real measured point.
11.1.1.12.2. Elevation band picker
Generate Bands from Surface now opens a small dialog instead of silently guessing a surface: a Surface dropdown lists every surface in the drawing (preselected to one already using the style being edited), with Min elevation / Max elevation boxes pre-filled from that surface’s actual range and editable to an exact figure before generating.
11.1.1.12.3. Parcel styles
Parcel Style Editor — boundary, fill and label settings for parcels are now organised in a dedicated style editor (Format › Parcel Styles… or the Civil Style Manager), matching the surface and alignment style editors; styles persist in the drawing (
.iqz).Four built-in presets — Standard, Property, Easement, ROW — plus Empty, selectable via the parcel’s StyleName property.
11.1.1.13. 2026-08-01
11.1.1.13.1. Command-line suggestion popup
AutoCAD-style autocomplete — typing at an idle command prompt now opens a popup listing matching commands (name, aliases, description), ranked exact match first, then prefix, then substring. Navigate with Up/Down, run with Enter or a click, fill without running with Tab, dismiss with Esc. Always on, no setting required; it steps aside during an active tool’s own sub-prompts.
11.1.1.14. 2026-07-31
11.1.1.14.1. Drawing Properties
Drawing statistics report — a new File › Drawing Utilities › Properties… dialog presents a read-only, collapsible tree of what the current drawing contains: entity counts by type; layers with their per-layer entity count and on/off, frozen and locked state, colour and linetype; block definitions with their reference counts; text, dimension, multiline and point styles and linetypes; a civil breakdown (surfaces with TIN point/triangle counts, DEM surfaces, alignments, corridors, gradings, culverts); and a model summary (totals, extents, units, file info).
Copy / Save — the report can be copied to the clipboard or saved to a text file for QA and hand-over.
Command line — the same report prints to the command line with the
DWGPROPScommand (aliasDRAWINGPROPS).
11.1.1.14.2. Retained geometry display mode (experimental)
Faster pan/zoom on very large drawings — an optional display mode batches static wireframe geometry into GPU buffers and projects it on the GPU, so panning and zooming a drawing with hundreds of thousands to millions of entities (for example an exploded surface with 1M+ 3D faces) no longer re-projects every vertex on the CPU each frame.
Culling + level of detail — only the visible parts are drawn when zoomed in, and a point-cloud-style level of detail draws far-away geometry as subsampled points, so the view stays responsive at any zoom.
Commands —
RETAINEDGEOMETRY ON/OFF(aliasRETAINED) toggles it,RETLODtunes the level-of-detail look, andRETAINEDSTATSprints diagnostics. Off by default; it does not change normal rendering and is intended for reviewing very large drawings.
11.1.1.15. 2026-07-23
11.1.1.15.1. Corridor section styles (Corridor v1.3 Phase 4)
Named corridor section styles — a per-drawing style library (built-ins Standard and Monochrome) now drives the appearance of both model-space section views (
TAECC_SECTIONVIEW) and generated section sheets (TAECC_SECTIONSHEET); a view/sheet references a style by name, defaulting to Standard when blank or missing.Material fills — each course shape resolves solid or hatch fill through a per-material override list (pattern name, scale, angle, colour — e.g.
ANSI31), falling back to the material’s colour from the drawing’s material library, then to a per-row-kind default.Per-row-kind outlines + silhouette — independent outline colours for Lane/Shoulder/Median/Curb/Sidewalk/Slope/Generic course shapes, plus a dedicated pen for the corridor’s outer silhouette.
Annotations — four style-toggled additions: width/slope labels (
W=… s=…%) on top-surface segments; point marks + names; a per-station area block (cut/fill/excavation + per-material areas); a material legend (per view, or one per sheet with the new per-sheet option).Section View Styles editor — new category in the Civil Style Manager: style list with New/Duplicate/Rename/Delete (Standard protected), and View/Ground/Corridor/Annotations/Preview tabs, the last rendering a live sample through the real section renderer.
Monochrome — a plot-ready built-in: black pens, white background, and hatch fills for all seven default materials.
Styles persist in the drawing (IQML); no legacy migration is required (assemblies and corridor sections were not previously released).
11.1.1.15.2. Conditional rows, ditch and benching (Corridor v1.3 Phase 5)
Per-row Cut/Fill condition — a new Cond grid column (Always/Cut/Fill); a conditional row contributes geometry, area, and section shapes only at stations where the corridor resolver decides that side is actually in the matching state, probed once at the daylight hinge — the losing branch contributes nothing anywhere. The editor preview draws both branches schematically (dashed orange for cut, dashed green for fill) so a conditional design can be reviewed without building a corridor.
Ditch row kind — a new trapezoidal Ditch row (+Ditch button), Depth/BottomWidth (0 = V-ditch)/ForeSlope in the grid, BackSlope in the row params dialog; authored Cut-only by default. It springs from the excavation edge, its rising backslope becomes the cut daylight’s starting slope, and its invert extends the excavation-to-formation envelope.
Benching — Slope rows gain per-branch MaxHeight/BenchWidth/ BenchSlope (row params dialog, double-click a P column); tall daylights break into outward-draining lifts (named
DL.B1,DL.B1E, …) instead of one continuous face; a 20-lift cap flags the station Ungraded. The preview shows one schematic bench jog per enabled branch.Excavation-edge daylight hinge (bug fix) — both the cut and fill daylight now spring from the true end of excavation (the outer bottom corner of the outermost course stack) instead of the shoulder’s finished top edge, closing a gap where a widened subbase or taper foot previously stuck out past the daylight line; a connector link closes the Top chain down the stack face. Sides without course stacks fall back to the previous anchor unchanged.
Upgraded standard templates — all six shipped templates now carry a Cut-only ditch (0.5 m/0.5 m/1:2/1:1.5) and benching (5 m lifts, 1.5 m benches, 4%) on both branches before the closing Slope row. On Urban-2x3.5+walks and Urban-Boulevard the ditch ends up behind the sidewalk (no shoulder to place it after) — unusual practice, worth reviewing per project.
Condition, ditch, and bench parameters persist in
.iqal/IQML as an additive extension of the existing v2 schema.
11.1.1.16. 2026-07-22
11.1.1.16.1. Pavement structures (Corridor v1.3 Phase 2)
Multi-course pavement stacks — Lane, Shoulder, and Sidewalk rows now carry an ordered stack of courses instead of one
PaveDepth. Each course is a parametric shape (material, width, thickness, per-side edge treatment) attached with a 9-point anchor (TL/TC/TR/ML/MC/MR/BL/BC/BR) to an earlier point — by default the row’s top link or the previous course, or explicitly to any other structure in the assembly (cross-row anchoring, e.g.LaneL.Subbase.BR). Tapered edges produce widening course feet; wider/centered courses useSelfPt=TC/TargetPt=BC.Drawing-level material library — every drawing now has its own material library (name + colour), opened via the new Materials… button in the Assembly Editor, seeded with seven defaults (Asphalt Wearing, Asphalt Binder, Asphalt Base, Base (crushed stone), Subbase, Concrete, Drainage gravel). Each course references a material by name.
Per-material quantities + excavation-to-formation —
BUILDCORRIDORnow prints, after the cut/fill/net line, an Excavation (to formation) volume (ground above the datum surface) and a per-material quantity table integrated along the whole corridor.Datum at the true bottom of the stack — the datum surface now follows the outer bottom corners of a row’s last course (the deepest course by template convention), folding in the Phase-1 M1 fix so Curb/Median/Generic rows correctly advance the datum chain and chain starts always resolve a proper bottom corner.
``.iqal``/``.iqml`` XML v2 — the assembly library and drawing formats gain a
<Materials>block and per-course<Course>elements (rootversion="2"). Files saved as v1 (including a v1<AssemblyLibrary>embedded in an older.iqml) still load: a legacyPaveDepthrow migrates to a single course named ‘Pavement’.Regenerated standard library —
standard-roads.iqalships with real course stacks: lanes carry 4 cm wearing + 6 cm binder + 25 cm base (stepped, W+0.6 m) + 30 cm subbase (tapered 1:1, W+1.2 m); shoulders carry 5 cm wearing + 25 cm base + 30 cm subbase; sidewalks carry 5 cm concrete + 10 cm base.Courses…/Materials… editor dialogs — the Assembly Editor gains a Courses… button per side (lane/shoulder/sidewalk rows) for a per-row course grid with Add/Delete/Move, and the Materials… button for the drawing’s material list with a colour picker.
11.1.1.16.2. Assembly editor display (Corridor v1.3 Phase 3)
Material-colored preview — course shapes fill with their material’s library color (curb/median use fixed fallbacks); course outlines draw as thin grey lines; recoloring a material updates the preview and thumbnails immediately.
Annotations — width and cross-slope above each pavement row, cut/fill slope ratios at daylight points, with automatic decluttering below 40 px.
Dual daylight branches — both the cut (dashed) and fill (solid) branches draw schematically from the hinge.
Thumbnail template list — the assembly combo is replaced by an owner-drawn thumbnail list with per-assembly caching.
Course highlighting — selecting a row in the Courses dialog outlines that course in the preview.
Mirror auto-rename — mirroring a side now renames the copied rows by swapping the trailing L/R suffix (appending it when absent); only true residual name collisions are refused.
Manual images regenerated with the new rendering.
11.1.1.17. 2026-07-21
11.1.1.17.1. Alignment from 3D polyline with vertical profile
ALIGNFROMPOLYLINE — ALIGNFROMPOLYLINE (
AFP) now also accepts 3D polylines. When the picked polyline’s vertices carry differing elevations (a 3D polyline with real elevations, or a 2D polyline with per-vertex Z), the command asksCreate vertical profile from vertex elevations? [Yes/No] <Yes>and, on Yes,Vertical curve length <0>: the alignment’s vertical profile is built with one PVI per polyline vertex, the given vertical curve length applied to every interior PVI (0 keeps an angular profile; lengths are clamped so neighbouring curves never overlap). Each PVI is placed at the station where its vertex projects onto the finished alignment, so profile elevations line up with station queries even where corner curves cut inside the sketched polyline. Flat polylines keep the old horizontal-only flow. The resulting profile can be viewed and refined with CREATEPROFILEVIEW and DESIGNPROFILE.Scripting — Python
create_alignment_from_polylinegains optionaluse_z/vcurve_lenarguments, and Pascal scripts get the newCreateAlignmentFromPolylineZ(polyHandle, radius, name, vcurveLen)function.
11.1.1.17.2. Graphical alignment vertex editing
ADDPI / DELPI / EDITPI / ADDPVI / DELPVI — five new Civil commands to add, delete or edit alignment PIs on the canvas and to add or delete design-profile PVIs inside a profile view, one click per vertex, each click (or edit) a single undo step. ADDPI prompts once, after the alignment pick, for a default curve radius (and, if greater than 0, a spiral length and type); the defaults apply to every PI clicked in that run, and Enter through the prompts gives sharp radius-0 PIs. EDITPI lets you click an interior PI to change its curve radius and spiral, offering the current values as defaults; end PIs are refused since they have no curve.
11.1.1.18. 2026-07-20
11.1.1.18.1. Slope Path traces along a sketched polyline
SLOPEPATH reworked — SLOPEPATH (
SLP) no longer asks for a start and destination point: you now sketch the route as a 2D/3D polyline (or pre-select one) and its vertices become waypoints. The command chains a maximum-slope gradient path through every waypoint across the surface, merges collinear runs, keeps the sketch, and reports lengths, climb and descent, per-leg status and a per-vertex slope list.
11.1.1.19. 2026-07-19
11.1.1.19.1. Seven new modify commands
BREAK — (alias
BR) breaks an entity between two points. Pick the object (the pick point is the first break point), then “Specify second break point or [First point]:” — typeFto re-pick the first point, or@to break at a single point with no gap. Lines, arcs and polylines split into two entities (or are shortened at an end); a circle becomes an arc; closed polylines become one open polyline.JOIN — (alias
J) joins lines, arcs and polylines. Collinear touching lines merge into one line; touching arcs on the same circle merge into one arc; other touching chains merge into a polyline. Reports “N object(s) joined into M.”ALIGN — (alias
AL) aligns objects using one or two source/destination point pairs: the first pair translates, a second pair adds rotation, with an optional final scale step.DIVIDE — (alias
DIV) places point entities dividing an entity into 2–32767 equal segments.MEASURE — (alias
ME) places point entities along an entity at a fixed interval, starting from the end nearest the pick point.FLATTEN — sets Z = 0 on the selected objects, or the whole drawing if nothing is selected.
ARRAY — (alias
ARR) creates a rectangular, polar or path array of the selected objects.BREAK is fully undoable in a single step, and JOIN preserves arc curvature (bulge) exactly when building a polyline from mixed line/arc chains.
All seven commands are available from the Modify menu, a second “More” pane on the Modify ribbon tab, and the command line.
11.1.1.19.2. Command changes
ALIGNMENT alias renamed — the alias of ALIGNMENT is now
ALG(wasALIGN). The namesALIGNandALare now used by the new object-align command (see above).
11.1.1.20. 2026-07-18
11.1.1.20.1. AutoCAD-style ViewCube
New 3D navigation ViewCube — a corner navigation cube (top-right by default) that mirrors the current 3D view. Click a face for a straight orthographic view, an edge for a 45° view or a corner for an isometric view, each with a smooth animated transition. Drag the cube to free-orbit, hover to highlight the zone under the cursor, and use the Home button to return to the default isometric view.
Compass ring — an N/E/S/W ring around the base of the cube turns with the view; click a cardinal to snap to that side view.
Options — toggle it from the View ribbon, or set its visibility, corner position and size persistently under Settings ▸ ViewCube (the same options the UCS gizmo has).
11.1.1.20.3. Slope Path (max-slope gradient line)
New Slope Path command — SLOPEPATH (
SLP) traces a 3D polyline from a start point A to a destination B across a terrain surface so that no segment exceeds a maximum slope you specify — the reconnaissance “gradient line” used to find an alignment path up or down grade. It prompts for the max slope (%) and a step length (auto-defaulted from the surface size), then you pick A and B; the path climbs or descends automatically and snaps its final vertex to B.Terrain source — uses a selected (or the drawing’s only) surface, or, if none is present, triangulates a temporary surface on the fly from selected contour polylines, 3D faces or points.
Output & report — draws one 3D polyline draped on the terrain and reports the vertex count, 3D and plan length, total climb and descent, the steepest segment, and whether it reached B, stalled short of it, or ran off the surface; it warns if the closing segment (or any segment) exceeds the requested slope. Reachable via Civil ▸ Surfaces ▸ Slope Path (Gradient Line).
11.1.1.21. 2026-07-15
11.1.1.21.1. 3D Object Viewer
New 3D Object Viewer — isolate the selected objects (surfaces, gradings, culverts, 3D polylines) in a separate, read-only window and view them in true 3D: orbit / pan / zoom, six display modes, per-object show/hide and double-click isolate, and hover-to-inspect (elevation, slope %, aspect and area for TIN faces; part name for culvert parts). Open with OBJVIEW (
OBJECTVIEWER), the View ribbon Obj Viewer button, or the canvas right-click.Live update — the viewer tracks its objects by handle and re-renders automatically when you edit them in model space, keeping the camera angle and any hidden/shown state; a Live toggle disables it, and Reload re-syncs to the current selection or refreshes the objects already shown.
Double-sided, smooth surfaces — surfaces are rendered two-sided with smooth per-vertex normals, so a TIN no longer drops triangles when rotated. Navigation: left-drag pans, right-drag orbits, middle-drag pans, the wheel zooms.
11.1.1.21.2. Culverts (parametric box culverts)
New Culvert module — CULVERT (
CULV) builds a reinforced-concrete box culvert as a dynamic 3D civil object swept along a flow-line polyline: box barrel (segmented), bottom/top slabs and haunches, subbase and protection layers, inlet/outlet headwalls, splayed wing walls with footings and aprons, and an optional fall (drop) chamber — each a solid part on its own layer, with a computed concrete volume.Tabbed editor — double-click a culvert (or CULVERTEDIT,
CULVEDIT) to edit box, wing, fall-chamber and material parameters with a live cross/long schematic and a live quantities table; Load / Save.cvttemplates and Import legacy GCulvert files.Sections & quantities — CULVERTSECTION (
CULVSEC) cuts a dimensioned 2D cross- or longitudinal section; CULVERTQUANTITIES (CULVQTY) reports concrete volumes by component and material and places a quantities table.
11.1.1.22. 2026-07-10
11.1.1.22.1. Grading (site-grading pads)
New Grading module — design a graded pad by projecting cut/fill slopes from a footprint polyline at a design elevation out to a target surface, producing a graded terrain surface and earthwork cut/fill volumes. GRADING (
GRD) opens the Grading dialog. Supports flat / footprint-vertex-Z / drainage pad elevation; separate cut & fill outslopes entered as a ratio (3:1) or grade (%); auto cut-vs-fill per side; and height-triggered benching for cut and fill (width + interval) with an optional bench cross-slope back-drain.Dynamic, self-drawing object — a grading owns and draws its own geometry (graded TIN, daylight line, bench lines) with no stray entities, and auto-rebuilds live when you grip-drag its footprint or edit a criterion in the Object Inspector (toggle Auto rebuild off for very large pads and rebuild on demand with BUILDGRADING).
Volume balance — GRADINGBALANCE (
GRDB) solves the pad design elevation for a target net volume (default 0 = balanced earthwork).Extract Surface — GRADINGEXTRACT (
GRDX) clones the graded surface into a standaloneAECC_SURFACEfor downstream use.Show/Hide and Lock — a grading has Visible and Locked properties and prospector toggles, consistent with surfaces and alignments. Locked civil objects (surfaces, alignments, parcels, points, gradings) are now excluded from selection — a locked object cannot be clicked, window-selected or moved; unlock it from its Civil Toolspace node.
See the Grading section in the Civil chapter.
11.1.1.23. 2026-07-08
11.1.1.23.1. Earthwork volume report for comparison surfaces (VOLUMEREPORT / VOLREPORT)
Volume report from a diff surface — a comparison (diff) surface built by SURFDIFF / PCDIFF can now be turned into a printable HTML earthwork report: cut, fill and net volumes, cut/fill/total areas, deviation statistics (min/max/mean/RMS
dz), and a per-deviation-band breakdown with areas, signed volumes and area shares. Every figure is integrated directly from the diff surface’s own triangulation, so the report is self-contained and works on any saved diff surface even after the source surfaces are gone; the band table matches the surface’s on-screen style.Four entry points — Civil › Surfaces › Volume Report…, the Earthwork Volume Report ribbon button, the Volume Report action on a selected diff surface in the Object Inspector, and an offer to open the full report right after a compare. Command VOLUMEREPORT (alias
VOLREPORT). See Comparing Surfaces and the Surfaces command table.
11.1.1.24. 2026-06-08
11.1.1.24.2. Plugin SDK — in-window dockable panels (API 1.5)
Dockable plugin panels — a plugin (and Python/PascalScript) can now dock a panel inside the IQcad main window instead of opening a floating window.
IIqHostUI.CreatePanel(andiqcad.create_panel/CreatePanelfrom scripting) returns the sameIIqFormbuilder asCreateForm, but its widgets live as a tab in a docked strip on the right of the window, between the canvas and the Object Inspector. The strip appears when the first panel docks and hides when its last tab closes; closing a tab firesOnFormClosed. The control and event surface is identical to a floating form.New ``dockdemo`` sample (Pascal + C twin) is the docked twin of
formdemo. See Docking a panel.
11.1.1.25. 2026-06-07
11.1.1.25.1. Plugin SDK — live tool windows (API 1.4)
Live, non-modal tool windows — the SDK gains
IIqHostUI.CreateFormreturning anIIqFormbuilder. A native plugin (and Python/PascalScript) can open a host-owned, non-modal window, add controls (buttons, the input editors as live controls, a label, and a read-only list), retain handles to them, and mutate them at runtime — all without linking the GUI toolkit. Controls are reached through one kind-checkedIIqControlhandle, and the plugin reacts to user input via anIIqFormSinkit implements (OnButtonClicked/OnValueChanged/OnFormClosed, fired on the main thread and boundary-guarded). The host owns the window; stale handles go inert after it closes.New ``formdemo`` sample (Pascal + C twin) demonstrates a live window whose Add button reads a spin value and updates a list and label live. See Live tool windows.
11.1.1.25.2. Plugin SDK — parameter dialogs and rich message box (API 1.3)
Host-built parameter dialogs — the SDK gains
IIqHostUI.CreateDialogreturning anIIqDialogbuilder: a plugin describes fields (text, multi-line, integer, float, boolean, choice, file, folder, colour), callsExecute, and reads the values back with typed getters. The host creates and owns every widget, so a native plugin can show a real parameter dialog without linking the GUI toolkit.IIqHostUI.MessageBoxis now a rich message box (caption, button set, icon, returned result).Same dialogs from scripting — Python (
iqcad.create_dialog/iqcad.message_box) and PascalScript (TScriptDialog/CreateDialog/MessageBox) expose the same parameter dialog and rich message box, sharing the host’s dialog engine.New ``dialogdemo`` sample (Pascal + C twin) demonstrates building a parameter dialog and drawing the chosen shape. See Parameter dialogs and message boxes.
11.1.1.25.3. Native plugin SDK
Native plugin SDK (API 1.2) — IQcad can now be extended with native compiled plugins (
.dll/.so/.dylib) that add commands, drawing operations, civil operations, and event handlers exactly like built-in features. Plugins use a COM-style vtable ABI (cdecl, no managed types) so they can be written in Free Pascal, C, C++, or any language with a C FFI, and distributed as binaries. See Plugins (Native SDK) for the full design, two step-by-step tutorials, the manifest format, the bundled samples, and the complete interface reference.Plugin Manager — PLUGINS (alias
PLUGINMANAGER; ribbon Tools → Scripting → Plugins) lists discovered plugins and lets you enable/disable/reload them. Plugins are disabled by default and require a one-time trust consent before they load, since a native plugin runs with full process privileges. Enabled/consented state persists insettings.jsonand autoloads on the next launch.Ten worked samples — five Free Pascal plugins each with a C twin (hello, geom, entsel, events, civilui), forming a learning path under
cad/plugins/samples/.
11.1.1.25.4. Scripting and command-line improvements
Debug log for plugins and scripting — with
"debugLog": trueinsettings.json, plugin lifecycle (discover / load / activate / deactivate), command registration, and everyHost.Logcall are written toiqcad_debug.log, along with script output (categoriesPlugin/Script).illDebugmessages go only to the log; info/warning/error also appear on the command line.HELP lists plugin commands — HELP now ends with a Loaded plugin commands section so users can see which external commands a plugin has added. Each command is also announced on the command line when its plugin loads.
Command aliases fixed for plugin/script commands — typing a plugin or script command’s alias (e.g.
RCforRECOLOR) now dispatches correctly.
11.1.1.26. 2026-06-01
11.1.1.26.1. Section Sheet dialog (CREATESECTIONSHEETDLG / CSSD)
Create Section Sheet dialog — CREATESECTIONSHEETDLG (alias
CSSD) replaces the ribbon Civil → Section Sheet button with a two-tab modal dialog that gathers all parameters at once before asking for an insertion point. Settings tab: alignment, one or more surfaces each with a per-surface line color, station interval, left/right width, optional station range (From / To), columns and rows per sheet, optional cut/fill base and comparison surfaces with cut/fill colors. Advanced display tab: vertical exaggeration, grid major/minor X·Y intervals, grid colors, auto-fit elevation band (or manual datum/top), show area labels, and title. Per-surface colors, cut/fill colors, grid settings, title, and station range are persisted in.iqzand survive alignment edits and resample (older files load with default palette and default display settings).CSS command-line wizard retained — the existing CREATESECTIONSHEET (alias
CSS) wizard is unchanged and continues to work for scripting and power users.
11.1.1.27. 2026-05-31
11.1.1.27.1. DEM to editable TIN, and a Civil ribbon DEM group
DEM → editable TIN — DEMTOTIN (alias
D2T) resamples a DEM surface into a new editable TIN at a chosen cell size, leaving the DEM intact. You can convert the whole DEM or a region (rectangle or closed polyline), with an optional decimation tolerance; the working grid tightens to the region so a small high-detail area does not hit the whole-DEM cell cap.Civil ribbon DEM group — the Civil ribbon tab gains a DEM group with buttons for IMPORTDEM, DEMTOTIN, CLOUDSURFACE, and EXPLODECONTOURS — the DEM commands are no longer command-line only.
11.1.1.27.2. Surface source-type provenance and DEM contours
Surface source type — every surface now records where it came from (Survey Points, Point Cloud, DEM, LandXML, Merged, or Derived), set when it is created and persisted in the drawing. The label is shown by SURFACEPROPERTIES and next to each surface in the Civil Toolspace tree, so a DEM and a point-cloud comparison surface are no longer indistinguishable. Drawings saved before this release infer a sensible type on load.
Contours from DEM surfaces — grid-backed DEM surfaces now generate contours by marching squares run directly on the elevation grid (no triangulation, NoData-aware, decimated for speed). They render through the normal surface style (
ContourVisible+ major/minor intervals), exactly like a TIN surface’s contours.Extract contours to polylines — EXPLODECONTOURS (alias
EXC) turns any surface’s contours into editable polyline entities on<Name>-Contour-Major/-Minorlayers, ready for drafting or DXF export.
11.1.1.28. 2026-05-30
11.1.1.28.1. DEM cross-sections, point-cloud comparison, and ortho backdrop
Import GeoTIFF DEMs as surfaces — IMPORTDEM (alias
IDEM) reads a GeoTIFF elevation raster natively (uncompressed, Deflate or LZW; Float32 or Int16; strips or tiles) and adds it as a grid-backed surface, georeferenced from the GeoTIFF’s own tags. The DEM is sampled by section sheets exactly like a TIN (bilinear interpolation, no triangulation), so cross-sections along an alignment can be taken straight from a DEM. NoData/void cells return honest gaps rather than fabricated ground; the CRS is reported but not reprojected.DEM surfaces persist in the drawing — a DEM survives save and reopen by re-decoding from its source
.tif(a warning is shown if the file has moved).Point-cloud comparison surfaces — CLOUDSURFACE (alias
CLS) bins a loaded point cloud’s ground points into a min-Z grid surface (Cloud_<name>) so it can be overlaid on the DEM in a section sheet with cut/fill between the two — validating a DEM against survey data. Falls back to all points (and suggests PCGROUND) when the cloud has no ground classification.Large orthophoto backdrops display — gigapixel JPEG orthophotos attached with IMAGEATTACH now decode at reduced scale instead of rendering as a white placeholder; combine with DRAWORDER → Back to drape an ortho under the plan.
11.1.1.29. 2026-05-26
11.1.1.29.1. Tunnel Section Viewer merged into Point Cloud Sections Along Alignment
Standalone Tunnel Section Viewer retired — the separate viewer window and its ribbon entry have been removed. All its capabilities — angular-bin filtering, plane-mode toggle, and tunnel section placement — are now native to the Point Cloud Sections Along Alignment viewer (PCSECTIONS) under the Tunnel radio button.
Full tunnel filter panel — Tunnel mode now exposes all eleven filter controls in the viewer: selection rule per bin (Outermost / Innermost / Median / Percentile), angular bin width, min / max radius, minimum points per bin, percentile, plane proximity %, invert-skip zone, min / max elevation cutoff, and radial gap threshold.
Shared toolbar controls — a Plane combo (Vertical / Perpendicular) and an Absolute Z checkbox are available in both Ground and Tunnel modes. Absolute Z flips the Y axis between CL-relative ΔZ and absolute world Z without recomputing the point data; toggling it resets pan/zoom so the new extents are visible. Perpendicular plane mode in Ground mode is a placeholder — it shows a warning and falls back to the vertical slice.
Axis info strip — a six-cell band above the station slider shows X / Y / Z / Dir / Grade / R for the active station and updates on every scrub.
SheetKind discriminator — the
TAECC_PointCloudSectionSheetentity now carries aSheetKindfield (Ground / Tunnel). Tunnel sheets store theTAECC_TunnelSectionLinehandles and the eleven tunnel filter parameters separately; cell thumbnails render the actual cross-section profile using a PCA-derived local frame. Both kinds round-trip through IQML and the compact streaming format; legacy IQZ files load as Ground.Inspector — the Object Inspector exposes a read-only SheetKind field on the sheet proxy.
Re-sample for tunnel sheets — the Re-sample action on a tunnel sheet re-fits every section using the stored filter parameters.
Bug fixes —
Vertical-mode tunnel placement in
PlaceTunnelSectionsAlongAlignmentwas double-counting the alignment Z (off by the alignment elevation in world units); the reconstructed section was placed at twice the correct height. Fixed.Absolute Z painting: grid labels were offset from the actual data points by
AlignmentZpixels. Fixed — labels now align with data.Tunnel sheet cell rendering was producing a thin diagonal line instead of the cross-section profile. The cell now fits the tunnel profile to the cell rectangle via a PCA-derived local frame.
Catmull-Rom spline ghost control points: Z was hard-coded to 0, causing massive Z overshoot for polylines anchored at high world Z (most visibly: sliver/empty tunnel sheet thumbnails). Z is now extrapolated the same way as X and Y.
11.1.1.30. 2026-05-24
11.1.1.30.1. Point Cloud Sections Along Alignment — pick insertion point on canvas
Generate sheet pick-on-canvas — the Point Cloud Sections Along Alignment viewer’s Generate sheet… button used to ask for the sheet insertion X/Y through two
InputBoxdialogs. It now hides the viewer, switches the main canvas into a one-shot pick mode (status bar reads “Pick insertion point (Esc to cancel):”), and creates the sheet at the point you click. Object snap is honoured, so endpoint / midpoint / intersection snaps work for sheet placement. Press Esc or right-click on the canvas to cancel — the viewer reappears with a “Sheet generation cancelled.” message and no sheet is added.Locale fix as a side effect — the old
InputBoxpath parsed the typed coordinates withStrToFloatDef, which is locale-sensitive and silently corrupted Greek-locale input (comma vs. dot decimal). The new pick path has no string parsing at all, eliminating the locale hazard.Reusable canvas primitive — the change adds a new public
TCADCanvas.BeginPointPick(ACallback)/CancelPointPickAPI, mirroring the existingBeginBoundaryPickpattern. Future dialogs that need to solicit a single world-coordinate pick can reuse this primitive instead of opening their own coordinate input dialogs.
11.1.1.31. 2026-05-08
11.1.1.31.1. Surface build pipeline — algorithms + filters + dialog
Per-surface build settings — every
TAECC_SURFACEnow owns aTSurfaceBuildSettingsobject that captures the triangulation algorithm and four optional cleanup filters (MaxEdgeLength, MinTriangleArea, MaxSlope, MaxAspectRatio) plus a Clip to outer boundary toggle. All filters default off so existing surfaces are unaffected; users opt in via the new dialog. Settings round-trip through IQML and are re-applied automatically on everyCREATESURFACEandREBUILD. Loading an IQML file does not re-apply the filters — the saved geometry is preserved.SURFBUILDSETTINGS /
SBS— new command opens an all-code dialog with the algorithm dropdown and one row per filter (checkbox + numeric input, greyed out when disabled). Dialog has[Reset][Apply Now][Cancel][OK];Apply Nowapplies filters in place and keeps the dialog open for iterating threshold values. Reachable from the Surfaces menu, ribbon, and Civil Prospector right-click on a surface.Constrained Delaunay — new algorithm option
taConstrainedDelaunay. Runs the standard Bowyer-Watson sweep and then forces every breakline polyline and outer/hole boundary segment into the TIN as constrained edges, so ridges, ditches, road centrelines, and boundary loops survive subsequent local edits and Delaunay flips. Uses the existing breakline / boundary-reconform infrastructure under the hood.Gridded TIN — new algorithm option
taGriddedTIN. When the input points form a regularNX × NYlattice (within 1 mm), the surface is built by emitting two triangles per cell with a Z-aware diagonal split (the diagonal whose endpoints are closer in Z is preferred — smoother contours where ridges cross cells). ~10× faster than Bowyer-Watson on lattice-aligned data; falls back to Bowyer-Watson with a warning if the points are not on a grid.SURFREGRID /
SRG— new command resamples an existing irregular surface onto a regular grid. Default cell size = median edge length of current TIN. Cells outside the existing surface footprint sample to NaN; cells with three valid corners emit a single triangle (preserves the boundary outline). Hard cap at 25 M cells refuses pathological cell-size choices with a clear error.SURFDELETELONGEDGES /
SDLE— new command for ad-hoc cleanup outside the build pipeline (e.g. on a TIN imported from LandXML or 3DFACEs that we can’t rebuild). Walks every unique edge, removes those longer than the user threshold, undoable as one step viaSURFUNDO. Stats line showsmin / median / 95th / maxso the user can pick a sensible threshold;>50%-of-edgesconfirmation prompt prevents fat-fingered deletes.
11.1.1.31.2. Point cloud → surface pipeline
PCGROUND /
PCG— new slope-based ground classifier. Two-pass cell-grid algorithm: pick the lowest-Z point per cell as a ground seed, validate against 3×3-neighborhood minimum (drops rooftop low points), promote seeds to LAS class 2, then accept every other point whose slope from its nearest seed is below the user threshold. Vendor LAS classifications are preserved — only points currently at class 0 (Created) or 1 (Unclassified) are touched. Defaults: cell = 5 m, max slope = 45°.PCSURFACE /
PCSURF— new command builds aTAECC_SURFACEfrom a point cloud filtered to ground-only points (or all points viaA). Voxel-decimates dense clouds before triangulation; defaults to Gridded TIN so the lattice fast path engages automatically when the cloud is grid-aligned. Reachable from Point Cloud menu, ribbon, and right-click context.
11.1.1.31.3. 3DFACE import / convert
FACE2SURFACE /
F2S— bulk-convert3DFACEentities in the drawing into a singleTAECC_SURFACE. Welds shared corners withDeduplicateAndRemapTIN(1 µm tolerance) so a topographic export of N independent triangles collapses to roughly N/2 unique points and N triangles.ADDDXFFACES /
ADF— new command streams a DXF file for its 3DFACE entities and merges them straight into a target surface, without ever materialising TCADFace entities on the canvas. Lets a 1.5 GB / 4 M-face topographic export land directly inside the surface object. Civil Prospector’s surface popup gains an Add 3D Faces from DXF… entry.Surface popup wiring — Civil Prospector right-click on a surface name now has a context menu with the surface name as a header and the new commands as items (Add 3D Faces, Build Settings, Resample to Grid, Filter Long Edges, etc.).
11.1.1.31.4. Surface editing improvements
SURFDELETELINE /
SDLrewritten — now runs as a continuous loop (click edges one after another, right-click or Enter to finish) and supports a window-pick mode (typeWthen click two corners; every TIN edge with both endpoints inside the rectangle is removed in one batch viaEditDeleteLinesoSURFUNDOcan revert the lot). A dashed cyan rectangle rubber-bands between the two clicks for visual feedback.TINDeleteLine — real removal — fixed a long-standing UX trap where
TINDeleteLineactually swapped the edge with the opposite quadrilateral diagonal (and silently no-op’d on boundary edges) instead of removing it. Single-clickSDLnow physically removes the edge and the triangles touching it, leaving a hole.SURFSWAPEDGE/SESis the explicit command for the swap operation.
11.1.1.31.5. Performance / precision fixes
2D-mode LOD for 3DFace + PolyfaceMesh — previously these entities were excluded from sub-pixel dot-LOD because their XY-projected bbox can lie in 3D-orbit views. The exclusion now applies only in 3D mode; 2D plan view collapses sub-pixel 3DFaces to a single
SetPixelcall. The 4.2 M-faceTRIGWNA.DXFimport is now navigable in 2D pan/zoom.Contour precision at large coordinates —
UploadContoursnow derives the GL local origin from the contour bbox centre when the triangle VBO hasn’t been uploaded yet. Previously theGLfloatcast at world coords ~4.4×10⁶ (EGSA87 / UTM) lost ~0.5 m of precision and contour lines snapped to a coarse grid; the visible stair-step zigzag at large Eastings/Northings is now gone.
11.1.1.32. 2026-05-02
11.1.1.32.1. Zoom to Object + multi-scan PTS import
Zoom to Object — new
ZOOMOBJECTcommand frames a single picked entity in the viewport with a small margin, computed from the entity’s bounding box. The same action is exposed in the Civil Prospector right-click menu on Surface, Alignment and Profile View nodes (the Point Cloud node already had its own octree-based Zoom To). Implemented as a newTCADCanvas.ZoomToObjectmethod that all four call sites share.PTS multi-scan import — the Leica PTS reader now reads every scan in a multi-scan file (
count1/ points /count2/ points / …). Previously the loop broke at the first scan’s declared count, silently dropping every later scan. After consuming a scan’s declared point count, a single-integer line is recognised as the next scan’s count and parsing continues; if the inter-scan integer is missing, the reader leniently keeps appending point lines. All scans are merged into a single point cloud cache.
11.1.1.33. 2026-05-01
11.1.1.33.1. Surface — breaklines, 3D editing, GL fixes
Breaklines — polylines can now be attached to a surface as forced (constrained) edges.
SURFADDBREAKLINE/SABconsumes the current selection or prompts for one; the Civil Prospector’s Definition popup gains an Add Breakline… entry; each surface shows a Breaklines (N) node with a per-entry right-click Delete. Breakline geometry is kept on its own component layer (defaultC-TOPO-{Name}-BRKL, magenta) and can’t be flipped by a later swap-edge / delete-line operation. Visual style (visibility, colour, weight, linetype, LT scale) is configurable on a new Breaklines tab in the Surface Style editor.Edge swap — the convexity test in
TINSwapEdgewas rewritten so swaps no longer fail silently when the local triangulation winding put the opposite vertex on the “wrong” side of the diagonal. New triangles are always emitted in CCW order.3D wireframe rendering — in any rotated 3D view, the whole TIN now renders correctly under pan / zoom / orbit. The previous render used a screen-rect XY grid which dropped triangles outside the projected XY rectangle even when they were inside the camera frustum.
GPU mesh cache — captures the dirty marker before
GetMesh3D, so the cache invalidates correctly after any edit. Previously, edits were rendered only after a coincidental cache miss (display-mode switch, etc).Contour labels — skip the LCL text pass on GL contexts so labels at oblique angles no longer appear doubled (same fix pattern as the tunnel DR-label fix).
Edit log —
Add LineandDelete Lineoperations now appear in the log and round-trip through save/load. Individual entries can be deleted via right-click on the Edit Log node in the Civil Prospector tree.
11.1.1.33.2. LandXML enrichment
Surfaces now round-trip through LandXML with their full IQcad-level detail. In addition to points and faces, the writer emits:
<Boundaries>(outer + island) with inline NEZ point lists.<BreakLines>carrying every breakline polyline.<Feature code="IQcadEdits">per surface with the edit log.Top-level
<Feature code="IQcadPointGroups">capturing the survey database’s groups + point-number membership.<Feature code="IQcadSourceGroups">per surface listing the source point groups, so the Definition tree repopulates on reimport.
The reader handles both the legacy point-ID and the new inline-NEZ
<PntList3D> formats and parses every new Feature. Polylines
already attached to a surface as breaklines are no longer
re-exported as separate alignments.
11.1.1.33.3. Civil Settings
The surface object-layer table gains an 8th row:
Surface / Breakline / TOPO / BRKL (magenta, Continuous). The
Civil Settings → Object Layers dialog picks the row up
automatically.
11.1.1.33.4. Documentation
E57 (ASTM E2807) is now documented as a supported point-cloud
import / export format alongside LAS / LAZ / XYZ / PTS / PLY.
Requires the libE57CWrapper runtime library next to the
executable; absent it, the format is silently disabled.
11.1.1.34. 2026-04-30
Shapefile import / export — new entries under Files → Import / Export and the corresponding ribbon panes. Drawings can now be exchanged with QGIS, ArcGIS and GDAL. See Exporting and Importing for details.
11.1.1.35. 2026-04-25
11.1.1.35.1. DXF / DWG round-trip
Full dimension round-trip —
DIMSTYLEandSTYLEtables now read and write every typed field plus an opaque tail for forward compatibility (~80 dimvars).DIMENSIONentities round-trip with per-subtype defpoints, oblique angle, horizontal direction, attachment, line-spacing style/factor, source-block reuse, and per-dim overrides viaACAD_DSTYLExdata. The NILA reference drawing now round-trips 14/14 DIMSTYLE, 14/14 STYLE, and 1457/1457 DIMENSION entities.ATTRIB / ATTDEF preservation — block attributes and block-template attribute definitions survive a full DXF round-trip including invisible placeholders, empty-text placeholders, tag names, prompt strings, flag bits (invisible / constant / verify / preset), text style, width factor, oblique angle, horizontal/vertical alignment and the second alignment point. NILA round-trips 3420/3420 ATTRIB entities and the full ATTDEF schema for every editable block.
MULTILEADER (MLEADER) round-trip — read native
MULTILEADERrecords by walking the nestedCONTEXT_DATA/LEADER/LEADER_LINEblocks and reconstructing aTCADMultileaderwith tip / anchor / text / arrow size / dogleg length / text height preserved. Writer emits a realMULTILEADER(subclassAcDbMLeader) record instead of decomposing to LINE/SOLID/TEXT primitives. Inline MText escape codes (\fArial|b0|...;) strip cleanly when rendering single-line leader text.Generic xdata + APPID auto-registration — third-party application data attached to entities via DXF codes 1001..1071 is now preserved verbatim through import/export. The APPID table auto-registers every unique APPID name found in any entity’s xdata so AutoCAD / BricsCAD accept the data on read.
MINSERT array rendering —
INSERTentities with column count > 1 or row count > 1 now tile the block contents over the fullColumnCount × RowCountgrid at the configured spacing, matching AutoCAD’s MINSERT convention (rotated, scale-independent spacing). Bounding box and hit testing cover all cells.OCS extrusion (Arbitrary Axis Algorithm) — INSERT, ARC, CIRCLE, ELLIPSE, TEXT, LWPOLYLINE, and POINT entities encoded with extrusion vector
(0, 0, -1)(common for mirrored entities in AutoCAD-written DXF) are converted to WCS via the AAA at read time so they render at the correct mirrored position instead of the opposite side of the drawing. Surfaced on NILA where two of four arrows in each diffuser cell were rendering at wrong positions.Nested block matrix composition —
TCADInsert.RebuildCachecomposes parent and child transforms as a 2×2 linear matrix instead of trying to compress them back intoScaleX/ScaleY/Rotation. Handles arbitrary nesting depth with any combination of rotation, non-uniform scale, reflection (mirror), and shear. Fixed the case where mirrored parents (e.g.scale(-1, 1)+rot(180)) produced arrows at the wrong angle inside nested diffuser blocks.Full INSERT / BLOCK / ATTRIB code coverage — every DXF group code the spec calls out is now read, written, and survives
IQML/IQZround-trip:INSERT:43Z-scale,70/71/44/45MINSERT params, plus210/220/230extrusion (handled via AAA).BLOCK:70flag bits (anonymous / xref / overlay),1xref path,4description.ATTRIB:7style,41width factor,51oblique,72/74H/V alignment,11/21/31second alignment point.
DXF table coverage — the LTYPE table now emits user-defined linetypes from the canvas in addition to the hardcoded standard set, preserving custom linetype references on round-trip. LAYER, STYLE, DIMSTYLE, and BLOCK_RECORD tables already round-trip the common path (color, true color, lineweight, plot style, transparency, frozen, locked, fixed-length text style, full dimstyle vars).
Handle stability (Phase 4) — entity handles (DXF code 5) and owner pointers (code 330) are preserved on import so external references (xref targets, dimension associations, ATTRIB→INSERT linkage, layout viewport ownership, third-party cross-references) round-trip without breaking. Canvas
SyncHandleCounteradvances the auto-allocator past the highest preserved handle so newly created entities don’t collide.
11.1.1.35.2. Editing UI
Dimension Style Editor preview — the live preview pane was rewritten as an AutoCAD-faithful 2 × 2 grid of sample dimensions (linear, aligned, radius, angular). Honours the full set of editable fields: arrow heads / sizes, ext-line offset and extend, dim-line and ext-line colors, suppress flags, center-mark size, prefix / suffix, alternate units, tolerances, text height (scaled by
OverallScale), text fill colour, and the angular format (decimal degrees / DMS / grad / radian) — every change in the editor reflects on the next paint.Dimensions ribbon pane — 11 buttons covering linear, aligned, rotated, radius, diameter, angular, ordinate, arc-length, jogged, baseline, and continued dimensions, all wired through the existing command-line dispatch.
Dimension Style Manager extension — the editor’s tabs cover all ~80
TCADDimStylefields across seven AutoCAD-style tabs (Lines, Symbols, Text, Fit, Primary Units, Alternate Units, Tolerances).Properties inspector — dimension Advanced category — exposes ObliqueAngle, HorizDir, TextRotation, Attachment (1..9), LineSpaceStyle, LineSpaceFactor, SourceBlockName, OverrideCount.
11.1.1.35.3. IQML / IQZ
Comprehensive IQML coverage — every new entity field added in this release survives a full
DXF → IQML → DXFround-trip in both the DOM and the streaming I/O paths: text style / alignment / width / oblique / align-point / attrib-tag / prompt / flags, insert ScaleZ and MINSERT params, block flags / xref / description, owner pointer and generic xdata.Streaming chop bug fixed —
LoadFromIQMLmatched the first<Entities>element when chopping out the top-level entities section, but block definitions also contain<Entities>children. The chop now matches<Entities count="..."specifically so block contents survive an IQML reload.
11.1.1.35.4. Civil engineering
Section sheet from canvas selection — the
CSS(CREATESECTIONSHEET) command now prompts the user to click an alignment object and one-or-more surface objects on the canvas instead of typing names at the command line. A new Civil > Sections ribbon pane exposes a Section Sheet button that dispatches the same command.Civil DXF export — alignments, profile views, section views, and section sheets now export to DXF as drawable primitives:
TAECC_ALIGNMENTwrites a 3D polyline centerline with properAcDbEntity/AcDb3dPolylinesubclass markers and per-vertexAcDbVertex/AcDb3dPolylineVertexmarkers.TAECC_PROFILEVIEWemits a frame rectangle plus one polyline per sampled profile and design profile, withNaNgaps split into separate polyline segments instead of being bridged by a phantom line dropping toZ = 0. Title text is included.TAECC_SECTIONVIEWemits a frame plus one polyline per surface section and a station label.TAECC_SECTIONSHEETrenders each grid cell inline (frame + sections + station label) so the entire sheet survives a DXF round-trip even though the hostTAECC_SECTIONVIEWinstances aren’t placed on the canvas.
Profile view Z-elevation strip — two extra label rows below the bottom axis show the design and ground elevations at every major station tick (
Design/Ground), matching the AutoCAD Civil 3D profile-view convention.NaN(gap) elevations are skipped.Civil label colours follow the canvas — profile-view and section-view axis labels, station / offset / Z-strip labels, and titles now use a canvas-aware colour: white on IQcad’s dark model canvas, black inside paper-space viewports. The previous behaviour routed through
EffectiveColor, which produced black-on-black text whenever the civil layer was assignedclBlack.Civil DXF text colour — exported civil labels emit ACI 7 (
BYLAYERautomatic) plus an explicit 24-bit white via DXF code420 = $00FFFFFFso BricsCAD (which ignores ACI 7 forTEXT) still renders them white on its dark model background.
11.1.1.36. 2026-04-04
Point cloud support — import, export, and display large point clouds (hundreds of millions of points). Supported formats: LAS, LAZ, XYZ/CSV, PTS/PTX, PLY. Octree-based LOD with adaptive threshold. Six colour modes.
.iqpcbinary cache for fast reload. Background export with progress bar.LAZ read/write — full LASzip 3.5 DLL integration for compressed LAS files. Read and write with proper struct alignment and inventory tracking.
Elevation clipping —
PCCLIPcommand filters visible points by Z range. Useful for viewing floors, isolating terrain, or inspecting cross-sections.Prospector delete — right-click a point cloud in the Prospector for Delete (with confirmation, undoable via Ctrl+Z).
Portable IQZ paths — point cloud source file saved as relative path, cache file as filename only. Projects can be moved between folders.
Display fix — fixed critical rendering bug where only ~1/3 of the cloud was visible (vertex Z exceeded glOrtho clip range).
11.1.1.37. 2026-04-02
Binary DXF support — DXF import and export now support both ASCII and binary DXF formats. Export dialog offers five options: ASCII R2018/R2000/R12 and Binary R2018/R2000. Binary files are auto-detected on import.
GeoJSON import/export — import and export GeoJSON files via File > Import and File > Export or the Output ribbon. Supports points, lines, polygons, and all Multi* geometry types. CRS transformation with 9 EPSG presets.
KML/KMZ import/export — import and export KML and KMZ files. KMZ archives are handled transparently. Features grouped into Folders by layer name on export.
MTEXT editor improvements — double-click on MTEXT opens the editor dialog. Bold/Italic/Underline/Strikethrough toolbar buttons now toggle correctly. The Object Inspector Content property shows a
[...]button to open the editor.Inspector window selection fix — fixed a crash (GPF) when using window selection to select multiple objects.
Rotated viewport cross grid — grid crosses now rotate with the viewport rotation instead of staying horizontal. Crosses outside the viewport boundary are properly clipped.
Grid text properties — new TextOffsetX, TextOffsetY (mm) and TextStep properties control the position and density of coordinate labels at grid intersections. TextStep=2 labels every other cross in both X and Y.
PDF export: grid text and outer border — grid coordinate labels at intersections and the outer border rectangle are now included in PDF export.
PDF export: rotated viewports — PDF export now correctly renders rotated viewport content matching the on-screen layout view.
11.1.1.38. 2026-03-30
LOD rendering system — screen-space aware rendering for drawings with 100K–1.4M+ entities. Sub-pixel entities (< 1.5px) drawn as colored dots; ellipse tessellation adapts from 8–72 segments based on screen radius; spline points decimated when < 1px apart; hatch fill suppressed below 10px; civil point labels hidden below 5px.
Surface LOD — three-layer optimization for surfaces with 1M+ triangles: (A) sub-pixel triangle culling before coordinate transforms; (B) √N×√N spatial render grid for viewport-aware iteration; (C) bitmap cache for instant pan drag (zero triangle processing during interaction).
Selection performance — SelectAll uses O(1) flag check instead of O(n) IndexOf. 140K entities: 14.7s → 0.5s.
Ribbon reorganization — new View tab (Navigate, Display, Select panes moved from Home); Clipboard pane moved from Modify to Home; Erase removed from Home (in Modify).
Full benchmark — 14 entity types × 10K each. Reports per-type creation speed, operation timings (Repaint, Zoom Extents, Select All), and grand total.
11.1.1.39. 2026-03-29
Blender-style gizmo rotation rings — 3 colored rings for constrained axis rotation.
Point group commands — ADDTOGROUP, REMOVEFROMGROUP, CREATEGROUP for managing groups from the canvas.
Right-click context menu — select points, right-click to add to group instantly.
Association highlighting — selecting profile/section views highlights associated surfaces and polylines.
Label style editor fix — Tunnel and Parcels categories added; DR label text scaling corrected.
PDF export unified — single PLOTPDF command with overwrite prompt.
UI reorganization — Explode to Modify; Mesh/Surface conversions to Civil > Surfaces.
Tunnel test improvements — CivilScale 100, ISO axes linetype, acadiso.lin in resources.
11.1.1.40. 2026-03-28
UCS Gizmo — interactive 3D navigation gizmo replacing the flat 2D UCS icon. Click an axis to snap the view; drag background to orbit. Depth-sorted rendering with cone arrowheads and semi-transparent background circle. Configurable corner, size, and opacity in Settings.
3D rendering — rulers auto-hide in 3D mode; 3D crosshair with colored axes (red X, green Y, blue Z); zoom-at-mouse-point and pan in 3D mode; fixed entity clipping (spatial index uses ScreenToWorld3D).
Polyface Mesh (
TCADPolyfaceMesh) — shared vertex pool + face index array. DXF import (POLYLINE flag 64), DXF export, IQML serialization, wireframe rendering, grip editing (<500 vertices).ACIS Pass-Through (
TCADAcisEntity) — opaque round-trip for 3DSOLID, REGION, BODY, SURFACE and subtypes. Stores raw SAT data, renders as labeled placeholder. Preserves Civil 3D data.MESH2SURFACE (
M2S) — convert polyface mesh to TIN surface.SURFACE2MESH (
S2M) — convert TIN surface to polyface mesh.EXPLODE — implemented for polyface mesh (produces 3DFace entities).
Civil label style fixes — all built-in label styles updated to paper-mm TextHeight values; constructor default changed from 1.0 to 2.5 mm.
UI — Draw menu: Polyface Mesh. Modify menu: Mesh to Surface, Surface to Mesh, Explode. Ribbon: Convert pane. Test menu: AddSampleEntities includes polyface mesh and ACIS samples.
SpkToolbar ribbon — migrated from IQRibbon to SpkToolbar with 5 built-in themes (Office 2007 Blue/Silver/Black, Windows 10, Metro Light). Theme selection is persisted in settings.json.
Per-tab command line history — each drawing tab now maintains its own command history, so switching tabs restores the command context for that drawing.
Parcel entity (
TAECC_PARCEL) — closed boundary polygons with computed area/perimeter, user data fields, 4 built-in styles (Standard, Property, Easement, ROW).CREATEPARCELcommand. Full IQML and LandXML I/O support.Unified CAD Style Manager — single window for Text, Dimension, Table, Multiline, Point, and Plot styles with embedded editors.
Unified Civil Style Manager — single window for Point, Surface, Tunnel Section Line, Alignment, Parcel, and Label styles with embedded editors.
Point Style Editor redesign — checkbox-based marker shape selection replacing the old grid picker.
Help tab — new ribbon tab with links to documentation, keyboard shortcuts reference, and About dialog.
11.1.1.41. 2026-03-27
Cross-section system — multi-surface cross-sections perpendicular to alignments with cut/fill computation and earthwork volumes.
CREATESECTIONSHEET (
CSS) — interactive command to create section sheets from alignment + surfaces with grid layout.EARTHWORKVOLUMES (
EWV) — earthwork volume table using average end area method.Multi-surface model — each section can show multiple surface profiles with cut/fill computed between any two selected surfaces.
Dependency reconnection — profile views and section views now reconnect to source entities after save/load.
Prospector — added “Section Sheets” root node.
11.1.1.42. 2026-03-25
CSTRANSFORM (
CST) — global coordinate transformation using common/control points. Supports Helmert 2D, Affine 2D, and Polynomial degree 1/2/3 with least-squares adjustment and residual analysis.RUBBERSHEET (
RBS) — local non-uniform rubber-sheet transformation. Linear (Delaunay piecewise affine) and Smooth (Thin Plate Spline) modes.Object Inspector redesigned — now uses TVirtualStringTree with collapsible categories, owner-drawn combo editors (colour swatches, linetype patterns, lineweight previews), multi-selection support (“Varies” display), value type colour-coding, keyboard navigation, human-friendly property labels.
Selection filter — combo at the top of the inspector limits picks to a specific entity type.
Quick Access Toolbar — New, Open, Save, Save As, Undo, Redo, Properties toggle.
Layout persistence — panel sizes saved to settings.json.
IQZ compressed format — gzip-compressed IQML as default save format.
11.1.1.43. 2026-03-23
Point Manager paste — paste tab-separated text (from Excel) into the Point Manager to create survey points.
11.1.1.44. 2026-03-22
Hatch system variables — 20 AutoCAD-compatible HP* variables.
Hatch transparency — per-entity HatchBackgroundColor and HatchTransparency.
Drawing Variables dialog — System Variables grid tab with editable values and Scope column.
Tunnel section line styles — separate overbreak/underbreak hatch patterns; scanline-based hatch rendering.
11.1.1.45. 2026-03-21
Codebase audit — 122 findings resolved across core engine, entity system, and civil/AEC subsystem.
DXF locale fix —
DXFFloat()helper ensures valid DXF on non-English systems.Scale/Rotate overrides — Circle, Ellipse, Text, MText, Multileader, Arrow now update entity-specific fields on transform.
Block insert caching — eliminates 10K+ allocations per frame for block-heavy drawings.
Entity class registry — runtime registration for all 24 entity types.
Selection manager — extracted from TCADCanvas into separate unit.
11.1.1.46. 2026-03-19
3D wireframe view —
3DORBIT/ORBITcommand with arcball rotation,PLANandVPOINTcommands.VIEWTWIST / ALIGNVIEW / PLANVIEW commands.
Elevation banding — colour ramps (green-to-red, blue-to-red, grayscale) on TIN surfaces.
Civil linetypes — configurable linetypes for surface, alignment, and tunnel section line style components.
Alignment Style Editor — new dialog for editing alignment display styles.
11.1.1.47. 2026-03-18
TSOPTIMIZE / TSOPT command — optimize tunnel section line fit using Nelder-Mead simplex minimizer. Five optimization levels.
Trim/Extend — now supports arc, polyline, ellipse, and spline entities.
Chamfer — second distance defaults to first distance.
Hatch fill engine — pattern-based and solid hatch generation.
Spatial index — grid-based spatial index for viewport-culled rendering.
Background tasks — parallel infrastructure with modal progress dialog.
11.1.1.48. 2026-03-16
OFFSET command — full implementation with phantom preview and
OFFSETDISTsystem variable.ERASE enhancement — prompts “Select objects:” when nothing selected.
Cursor modes — full crosshair / pickbox-only based on context.
Escape key — priority-based cancel (command > tool > selection).
OSNAP for edit commands — MOVE, COPY, ROTATE, SCALE, OFFSET use OSNAP when picking points.
dmZoneExtremes — new DR display mode for Tunnel Section Lines.
11.1.2. Drawing & Editing
All CAD entity types: Line, Polyline, Circle, Arc, Ellipse, Spline, Rectangle, Polygon, Text, MText, Hatch, Image, Table, Dimensions, Multileader, Multiline, XLine, Point, 3D Face, 3D Polyline, Bezier, Arrow
Grip editing, move, copy, rotate, scale, mirror, offset, explode
Trim, extend, chamfer, fillet
PEDIT (polyline vertex editing — close, join, width, vertex edit, spline, decurve, reverse)
Block creation, insertion, in-place editing (BEDIT/BCLOSE), Block Manager
Drawing order (front, back, above, below)
Undo/redo per drawing
Multiple drawing tabs (MDI)
PURGE (layers, blocks, styles, linetypes), AUDIT, RECOVER
11.1.3. Civil / AEC
Survey Points — import/create with style-driven markers and labels; Point Manager with paste, lock, transform, renumber, group management
TIN Surfaces — Bowyer-Watson triangulation, contours (Chaikin smoothing), spot elevations, boundary clipping, decimation, surface editing commands (add/delete/move points, swap edges, add/remove lines, raise/lower), elevation banding, contour label placement
Tunnel Section Lines — measured cross-section deviation analysis with DR labels, smart display modes (All, ZoneExtremes, Threshold, Interval), area hatch, style-driven rendering, TSOPTIMIZE fit optimization
Horizontal Alignments — tangents, circular curves, spiral (clothoid) transitions; PI-based creation, station labelling, style-driven rendering
Cross-Sections — multi-surface section sampling perpendicular to alignments, section views with cut/fill shading, section sheets with grid layout, earthwork volumes (average end area method)
Coordinate Transformations — CSTRANSFORM (Helmert, Affine, Polynomial) and RUBBERSHEET (Linear, Smooth TPS) with common point management, residual analysis, and transformation reports
Civil Toolspace / Prospector — tree view with surfaces, points, sections, alignments, and property grid
Civil Settings — units, coordinate system (182 EPSG), transformation, ambient settings, abbreviations
LandXML — import/export for surfaces, survey points, and alignments
11.1.4. Styles
Text Style Editor
Dimension Style Manager + Editor (5 property areas)
Table Style Editor (Title/Header/Data tabs)
Multiline Style Editor
Point Style Editor (19 marker shapes + named library)
Surface Style Editor (3 tabs: Border & Triangles, Contours, Contour Labels)
Tunnel Section Line Style Editor (measured line, deviation/hatch, center/labels/DR display)
Alignment Style Editor (centerline, ticks, PI markers, arrows)
Alignment Label Style Editor (stations, PI data, curve data)
Civil Label Style Editor (unified system for all civil label types)
Plot Style Tables (CTB)
11.1.5. Layout & Printing
Multiple layouts per drawing with paper-space viewports
Viewport border: ticks, ladder, crosses with coordinate labels
Viewport grid, north arrow, scale bar
Page setup: paper size, orientation, margins
Print dialog with layout selector
PDF export (single layout, all layouts, or from layout tab right-click)
Plot style tables (CTB)
Viewport setup (MVSETUP), clipping (VPCLIP), fade (VPFADE)
11.1.6. File I/O
Native IQZ (compressed) and IQML (uncompressed) formats with streaming writer for large files
DXF export (R12 / R2000) and import
DWG export/import (via LibreDWG or ODAFileConverter)
SVG export
Image export (PNG, BMP)
PDF export
LandXML import/export dialog
Recent Files menu (up to 10 entries, persisted)
11.1.7. User Interface
Ribbon toolbar with Home, Draw, Modify, Annotate, Civil, Output tabs
Quick Access Toolbar (QAT) with Save As and Properties toggle
AutoCAD-style command line with aliases
Object Inspector (TVirtualStringTree-based, categorized, multi-select, owner-drawn combos, keyboard navigation)
Selection filter by entity type
Layer Manager
Civil Toolspace / Prospector panel with property grid
Status bar with progress indicator
Dark theme editor dialogs
Layout persistence (panel sizes saved to settings.json)
Keyboard shortcuts
3D orbit view, viewpoint presets, view twist