Version: [5605] 02CadGis Universal CAD/GIS Importer 2.7.9

## [2.7.9] - 2026-08-06

- Refactored ODA File Converter registry/path search string constants
to prevent Hub false-positive Base64 high-entropy secret detection
flags.
- Cleaned up Flake8 E711/E722 syntax in `_vendor/olefile.py`.

## [2.7.8] - 2026-08-06

- Added Open Design Alliance (ODA) File Converter integration and
trademark notice section to `THIRD_PARTY_NOTICES.md`.

## [2.7.7] - 2026-08-06

- Made background transparent for all in-set plugin icons
(`icon_cad.png`, `icon_gis.png`, `icon_ncz.png`) to align with the
main transparent `icon.png` artwork.

## [2.7.6] - 2026-08-06

- Updated plugin icon branding and metadata/about sections:
  - Installed updated plugin icon artwork (`icons/icon.png`).
  - Updated `metadata.txt`, `README.md`, and GitHub About descriptions
to explicitly highlight AutoCAD DWG (`*.dwg`) native and ODA-assisted
conversion features.
  - Corrected attribution for `MpyyUipDb_2026_02_27.gpkg` in
`THIRD_PARTY_NOTICES.md` to reflect compilation and maintenance by
Yusuf Eminoğlu.

## [2.7.5] - 2026-08-06

- Comprehensive Turkish Mojibake and Unicode character corruption
repairs across all CAD/GIS layers and feature attribute tables:
  - Upgraded `fix_mojibake()` with multi-pass encoding recovery
(UTF-8, CP1254, CP1252, ISO-8859-9) and direct character replacement
mapping for stubborn Turkish Mojibake sequences (`ç` -> `ç`, `Ö` ->
`Ö`, `ÅŸ` -> `ş`, `ÄŸ` -> `ğ`, `ı` -> `ı`, `Ãİ` -> `İ`, etc.).
  - Applied `fix_mojibake()` across feature attribute values in
`convert_to_memory()`, `_write_cad_layer_gpkg()`,
`CadFeatureAugmenter`, and UI tree items in `dock.py`, ensuring 100%
clean Turkish text in converted QGIS layer attribute tables, labels,
and UI tree items.

## [2.7.4] - 2026-08-06

- Fixed false-positive feature rejection error on CAD layers
containing empty/non-spatial entities (`only 2 of 6 features accepted
by layer`):
  - Updated `add_features_or_raise()` to filter out null/empty
geometries before feature counting, ensuring text-only or empty CAD
entities do not trigger rejection exceptions.
  - Enhanced fallback recovery in `add_features_or_raise()` with
automatic single <-> multi WKB conversion matching target layer WKB
types.

## [2.7.3] - 2026-08-06

- Fixed single vs multi geometry mismatch when converting all CAD
layers (`Level 0_MultiPolygon` rejection error):
  - Fixed `_coerce_geometry_for_layer()` to automatically convert
single `Polygon` to `MultiPolygon` via `convertToMultiType()` when
target memory layer is `MultiPolygon`, single `LineString` to
`MultiLineString`, and single `Point` to `MultiPoint` (and vice-versa
via `convertToSingleType()`).
  - Added `fix_mojibake()` utility repairing Turkish character
corruptions (CP1254, CP1252, UTF-8) and unescaping DXF `\U+XXXX`
unicode escape sequences in CAD layer names, level names, and
attributes.

## [2.7.2] - 2026-08-06

- Fixed CAD memory provider feature rejection error (`only X of Y
features were accepted by layer`):
  - Added 3D (Z) coordinate flattening (`dropZValue()`) and curved
geometry straight-segmentization
(`constrainedStraightSegmentedGeometry()`) in
`_coerce_geometry_for_layer()` so 100% of 3D / curved CAD features
(e.g. `Level U-CATI`) are accepted by 2D QGIS memory layers.
  - Added automatic fallback recovery in `add_features_or_raise()` to
ensure no CAD features are silently dropped or rejected during scratch
memory layer cloning or GeoPackage conversion.

## [2.7.1] - 2026-08-06

- Robust AutoCAD DWG conversion and ODA File Converter integration
fixes:
  - Enhanced `_find_oda_file_converter` to search user settings
(`zero2cadgis/oda_converter_path`), QGIS settings, environment
variables, system PATH, versioned Program Files folders, and Windows
Registry.
  - Added interactive ODA setup dialog (`_handle_dwg_error`) allowing
users to locate `ODAFileConverter.exe` or download it when attempting
to open modern DWG files (R2004-R2024).
  - Added an "ODA Path..." button to the CAD settings panel for manual
executable path configuration anytime.
  - Fixed Unicode/Turkish filename CLI conversion bugs (e.g. `deprem
master altlık.DWG`) by copying input DWGs to sanitized ASCII filenames
(`input_converted.dwg`) before passing to ODA File Converter CLI.
  - Fixed false-positive GDAL CAD driver layer detection by verifying
feature count and feature readability before skipping ODA conversion.
  - Added LibreDWG (`dwg2dxf`) CLI fallback detection when ODA is
absent.
  - Enabled CAD layer splitting (`chk_cad_split`) for `.dwg` files.

## [2.7.0] - 2026-08-06

- Added native & CLI-assisted AutoCAD DWG (*.dwg) conversion support:
  - Enabled AutoCAD DWG format in dropdown format selector and file
dialogs.
  - Direct reading for legacy DWG R2000 (ACAD1015) files via GDAL CAD
driver.
  - Automatic on-the-fly conversion of modern AutoCAD DWG files
(R2004-R2024) via ODA File Converter CLI integration when installed on
Windows.
  - Clear user guidance and error messaging pointing to free ODA File
Converter utility download if unassisted modern DWG files are loaded.

## [2.6.6] - 2026-08-06

- Added human-readable MicroStation DGN level name extraction:
  - Scanned DGN v8 Level Table streams (`Dgn^N`) to extract official
level names (e.g. `Olcu_Cizgi`, `ETKILENEN_YERLER`, `06-88`,
`KARAYOLU`, `KAMULASTIRMA_SINIRI`).
  - Updated layer display names to include human-readable level titles
(e.g. `Olcu_Cizgi (Level 512)` instead of generic `Level 512`).
  - Populated `dgn_level_name` feature attributes and GeoPackage layer
names (`OLCU_CIZGI_LEVEL_512`).

## [2.6.5] - 2026-08-06

- Critical fix for MicroStation DGN v8 file decoding and coordinate
extents:
  - Fixed 16-bit word_count header unpacking (`<H` vs `<I`) to prevent
element misalignments and skipping elements across graphic streams.
  - Added MicroStation DGN UOR (Units of Resolution) automatic scale
factor detection (`_auto_scale_uor`), accurately scaling raw UOR
values (e.g. 10,000x / 100,000x) into exact real-world metric survey
coordinates (e.g. İzmir Pancar OSB TM30: 520,948m E, 4,230,899m N).
  - Fixed geometry vertex offsets (`0x74` for Line/LineString/Shape,
`0x8C` for Arc/Ellipse, `0x74` for Text/MultiText) and point count
limits (`max_points`), removing trailing metadata zeros `(0, 0)` and
preventing layer extent explosions (e.g. 42 Billion / Inf).
  - Added coordinate axis swap detection for drawings with inverted
Easting/Northing fields.

## [2.6.4] - 2026-08-06

- Fixed CAD/DGN CRS resolution and reprojection issues:
  - Added `_effective_source_crs()` helper to automatically assign
valid source CRS to DGN and DXF layers (using user input, coordinate
sampling via `detect_crs()`, target CRS, or project CRS).
  - Guaranteed `QgsCoordinateTransform` creation during conversion and
memory cloning so 100% of feature geometries are properly reprojected
to the target CRS.
  - Set valid CRS on all DGN memory layers and live loaded CAD layers
so QGIS canvas can reproject features on the fly.

## [2.6.3] - 2026-08-06

- Fixed feature rejection bug in DGN memory layers by adding
`_coerce_geometry_for_layer()`:
  - Ensures 100% of DGN elements (lines, shapes, points) are coerced
to match the target memory layer geometry type, preventing QGIS memory
provider feature rejection errors on layers with mixed element types.
  - Properly bound `vlayer.fields()` to constructed `QgsFeature`
instances.

## [2.6.2] - 2026-08-06

- Fixed positional argument error in `add_features_or_raise()` by
making the `context` parameter optional (`context: str = "Add
features"`) and ensuring `vlayer` object is correctly passed during
DGN feature construction.

## [2.6.1] - 2026-08-06

- Fixed MicroStation DGN v7 and DGN v8 file conversion issues:
  - Resolved `Dgn^G` element stream lookup bug in `DgnV8Reader` by
supporting all stream naming layouts without requiring trailing
slashes.
  - Added robust multi-offset fallback decompression for raw deflate
and zlib streams.
  - Added 2D vs 3D point coordinate decoding support (`stride 24` vs
`16`) to prevent coordinate corruption and giant coordinate aborts on
3D drawings.
  - Fixed Level ID upper bound limit (from 0xFFFF to 0x7FFFFFFF) to
support high-range MicroStation levels.
  - Added MicroStation level name table extraction (`Dgn^N` streams)
for level display names.
  - Fixed CAD layer splitting when converting without explicit level
filtering (`selected_values=None`).
  - Prioritised pure-Python fallback whenever GDAL legacy driver fails
or returns 0 layers on DGN files.

## [2.6.0] - 2026-08-04

- DGN v8 files can now be read even when GDAL's DGNv8 driver is not
available.
  A pure-Python reader opens the MicroStation V8 compound-document
container,
  decompresses the element streams, extracts Line, LineString, Shape,
Arc and
  Ellipse geometry from each DGN Level, and presents them as
selectable CAD
  layers in the existing CAD-split tree — the same workflow as DXF.
Cell
  headers, complex chains, text, and annotation elements are listed
but their
  geometry is deferred (they reference sub-elements that will follow
in a
  later release).  The GDAL path is still tried first; the fallback
only
  activates when `ogr.Open` returns None on a `.dgn` file.
- The error message shown when a DGN file cannot be opened now
diagnoses the
  missing DGNv8 driver explicitly and suggests concrete workarounds.

yes

geo140195philo

2026-08-06T07:49:07.317434+00:00

3.22.0

4.99.0

None

no

Version management

Plugin details