DXF Viewer 1.5.0.0
Описание
DXF Viewer is a lister plugin (WLX) for Total Commander to display DXF/DWG files as interactive 2-D views using GDI+.The DXF Viewer plugin is based on the libdxfrw C++ library from LibreCAD with additional patches applied.
Supported file formats:
- DXF (Drawing Exchange Format)
- DWG (Drawing)
Features:
- 2-D GDI+ rendering of DXF/DWG geometry
- TrueType font support for TEXT/MTEXT rendering
- Mouse interaction: left-drag to pan, wheel to zoom
- Ctrl+left-drag to zoom to selection
- Right-click context menu for layer visibility control
- Double-click to fit view
- Keyboard navigation: arrow keys for panning, +/- for zoom, Home to reset view
- Copy to clipboard
- Dark mode support
- Background file loading
Что нового
- added entity hover highlight: green semi-transparent overlay around hovered entity
- added handle-based bbox aggregation for HATCH hover highlight
- added click-to-cycle through overlapping entities by left click
- improved LWPOLYLINE hit test: per-segment distance (straight + bulge arc) instead of bbox only
- added hit test for LWPOLYLINE in block primitives
- added Aligned (halign=3) text: height and angle now computed from alignment points
- added Fit (halign=5) text: width scale and angle computed from alignment points
- added text generation flags (code 71): backward and upside-down mirroring
- added XCLIP (SPATIAL_FILTER) entity support for block reference clipping (INSERT)
- changed resize behavior: re-fit drawing to viewport on every resize
- fixed Fit (halign=5) text bounding box to account for width scale
- fixed ATTDEF rendering: ATTRIB values from INSERT now override the ATTDEF default text
- fixed ATTDEF standalone display: show TAG instead of default VALUE (raw ATTDEF in modelspace)
- fixed MINSERT: expand grid (colcount × rowcount) into individual INSERT primitives
- fixed HATCH spline boundary: evaluate B-splines via De Boor's algorithm instead of raw control points
- fixed solid HATCH boundaries: outer fill combined with inner holes via FillMode::Alternate instead of overlapping polygons
- fixed MTEXT caret encoding (^c)
- fixed MTEXT default width: prevent spurious word-wrap from 1-unit default width
- fixed TEXT rendering transform order: mirror, scale, then rotate — fixes condensed rotated text shearing
- fixed TEXT rotation sign: restored correct GDI+ RotateAt direction for clockwise text rotation
- fixed TEXT width factor (group code 41): now properly populated from DXF data for non-Aligned/Fit text, supporting condensed/expanded text
- fixed MTEXT word distribution for wide layout rects: distribute words evenly across the full layout rectangle instead of left-clustering
- fixed MTEXT vertical text (flow direction Top-to-Bottom): characters stack vertically in columns with proper column advance
- fixed Aligned and Fit text position: baseline now starts at basePoint instead of midpoint
- libdxfrw: added SPATIAL_FILTER object raw data capture
- libdxfrw: fixed DXF CLASS record parsing to skip malformed records
o Version 1.4.0.0 (19.06.2026)
- added MESH (AcDbSubDMesh) entity wireframe rendering
- added DIMARC entity support
- added MTEXT paragraph alignment (\pq formatting code)
- added MTEXT Unicode codepoint escape (\U+XXXX)
- added MTEXT non-breaking space (\~ renders as U+00A0)
- fixed ellipse bounding box using minor axis length
- fixed SPLINE rendering to prefer control points over fit points when both are present
- fixed MTEXT line spacing to use AutoCAD convention (factor × 5/3 × height)
- improved MTEXT rendering with paragraph alignment and word-wrapping for width-constrained text
- libdxfrw: added initial DWG 2013/2018 format support
- libdxfrw: added TOLERANCE entity read/write support
- libdxfrw: added proxy graphics decoding for legacy DWG blocks
- libdxfrw: added MESH (AcDbSubDMesh) decode and polyline face rendering
- libdxfrw: added AcDbSurface family dispatch for DWG read coverage
- libdxfrw: added SHAPE entity DWG encode and write API
- libdxfrw: added HELIX entity DWG read and encode
- libdxfrw: added OLE2FRAME entity DWG encode (R2000+)
- libdxfrw: added IMAGE encode with imagedefreactor and display properties
- libdxfrw: added GROUP entity members emitted as hard pointers
- libdxfrw: added LEADER block-color, annotation, and direction/offset groups
- libdxfrw: added LAYOUT object read from OBJECTS section for paper-space tab names
- libdxfrw: added block-attribute ATTRIBs read/write on INSERT entities
- libdxfrw: added ATTRIB field-length (code 73) and valign (code 74) read/write
- libdxfrw: added DICTIONARY, GROUP, SCALE, MLINESTYLE, SUN, WIPEOUTVARIABLES, RASTERVARIABLES, DICTIONARYVAR object readers
- libdxfrw: added PLOTSETTINGS full field set read/write (shared with LAYOUT prefix)
- libdxfrw: added DIMSTYLE handle and R2007/R2010 members with dedup
- libdxfrw: added UCS full DWG parse (origin/axes/elevation/orthoType)
- libdxfrw: added MINSERT column/row/spacing grid DWG write
- libdxfrw: added lossless raw-passthrough for unmodeled ENTITIES and OBJECTS
- libdxfrw: added collision-free handle allocator with $HANDSEED emission
- libdxfrw: added CLASSES records for unmodeled custom entities and objects
- libdxfrw: added entity invisibleFlag (code 60) DWG read/write
- libdxfrw: added entity reactor/xdict handle persistence
- libdxfrw: fixed MTEXT group-3/1 chunking on codepoint boundaries (DBCS-safe)
- libdxfrw: fixed POINT xAxisAngle (code 50) degree/radian conversion
- libdxfrw: fixed LTYPE dash pattern rendering (one style handle per dash)
- libdxfrw: fixed HATCH boundary spline interpolation and per-loop boundary handles
- libdxfrw: fixed DWG R2004+ section read buffer model and LZ77 decompression
- libdxfrw: fixed LZ77 AC18 bit-3 offset extension (opcodes 0x12-0x1F)
- libdxfrw: fixed DWG IMAGE clip boundary type (code 71) handling
- libdxfrw: fixed IMAGE/XRECORD truncation hardening and diagnostic logging
- libdxfrw: fixed DIMENSION rotation guard and R2010 gate
- libdxfrw: fixed CIRCLE/ARC thickness and extrusion emission in DXF
- libdxfrw: fixed SORTENTSTABLE handle-stream desync
- libdxfrw: fixed OLE2FRAME trailing RC byte to prevent handle-stream desync
- libdxfrw: fixed DXF entity material (347) and plotstyle (390) version gating
- libdxfrw: fixed CLASSES CRC mismatch as warn-only instead of whole-drawing-fatal
- libdxfrw: fixed LWPolyline copy/assign to carry vertexnum and reset build pointer
- libdxfrw: fixed broken pre-2004 entity-chain link no longer fails BLOCKS
- libdxfrw: fixed LAYOUT viewportCount bounded before reserve (corrupt-input DoS)
- libdxfrw: fixed handle-wrap assertion via HandleAllocator
- libdxfrw: fixed DWG codepage mapping for non-Western locales (Cyrillic, Chinese, Japanese, Korean)
- libdxfrw: fixed LAYOUT viewport_count bit-length decoding for AC1018+ files
- libdxfrw: fixed MLINESTYLE per-element linetype index version gate for R2000–R2013 files
- libdxfrw: fixed raw-net numeric-group capture corruption on DXF read
- libdxfrw: fixed raw-net binary-chunk capture and reactor owner mis-latch on DXF read
- libdxfrw: fixed POLYLINE_MESH smooth M/N subdivision density discarded on DWG read
- libdxfrw: fixed DimOrdinate coordinate-type flag bit alignment (X/Y ordinate type)
- libdxfrw: fixed ATTRIB/ATTDEF lockPosition read version gate (R2007+)
- libdxfrw: fixed DWG header key names for DIMADEC/DIMFRAC
- libdxfrw: fixed IMAGEDEF pixel dimensions discarded on DWG read
- libdxfrw: improved DWG file parsing robustness (CRC validation, buffer bounds, truncation checks)
o Version 1.3.0.0 (14.06.2026)
- added status bar toggle (press B) with zoom, viewport and entity information
- added IMAGE/IMAGEDEF entity support (raster image references)
- fixed HATCH boundary collection for lines, circles, polylines, and arcs
- fixed ACAD_TABLE entity rendering
- improved MTEXT rendering with GDI+ word-wrapping for width-constrained text
- libdxfrw: added ACAD_TABLE entity dispatch
- libdxfrw: fixed MTEXT Embedded Object (code 101) handling
- libdxfrw: fixed HATCH arc complementary angle conversion for CW arcs
- libdxfrw: fixed HATCH DWG pattern line angle/offset to use world-frame convention
o Version 1.2.1.0 (03.06.2026)
- fixed: optimize rendering performance
- fixed HATCH pattern lines
- libdxfrw: fixed reading pattern lines from DWG file
o Version 1.2.0.0 (01.06.2026)
- added TrueType font support using XDATA font family names
- fixed ByBlock and ByLayer color inheritance for entities on layer "0" in blocks
- fixed: optimize rendering performance
- fixed MLINE justification (offset positioning for Top/Bottom styles)
- fixed 3D projection for circles, arcs, ellipses, 3DFACE, LWPolyline
- fixed: keep center point invariant on +/- zoom
- improved line type rendering with global LTSCALE, dot support, and custom patterns
- libdxfrw: added ATTDEF, 3DSOLID entity dispatch and ACDSDATA section parsing
- libdxfrw: fixed HELIX entity parsing to capture entity-level properties
- libdxfrw: fixed parsing HATCH pattern definition lines
- libdxfrw: improved load performance
o Version 1.1.0.0 (27.05.2026)
- added right-click context menu for layer visibility toggle
- added zoom-to-selection via Ctrl+Left-drag
- added layer visibility filtering for block (INSERT) entities
- added auto-discovery of layers not defined in the LAYER table
- fixed layer "0" entities in blocks to correctly inherit INSERT layer
- libdxfrw: fixed DIMENSION block name resolution with offset-based handles
- libdxfrw: fixed Dynamic Block name resolution for INSERT entities
- libdxfrw: fixed entity visible property from invisible flag
- libdxfrw: fixed out-of-bounds access and buffer checks
o Version 1.0.2.0 (25.05.2026)
- added support for MLINE/XLINE
- fixed Unicode path issue
- fixed: do not reset zoom on resize
- improved HATCH support
- improved heuristic on initial zoom scale
- rebuilt with patched libdxfrw from LibreCAD
- libdxfrw: added wide-string file path support
- libdxfrw: fixed DWG codepage mapping for non-Western encodings
o Version 1.0.1.1 (22.05.2026)
- rebuilt with patched libdxfrw
o Version 1.0.1.0 (21.05.2026)
- added DWG (Drawing) file format support
- added font family matching for text rendering
- added true color (24-bit) support for entities and layers
- added solid fill rendering for HATCH
- fixed line weight rendering
- fixed MTEXT formatting codes leaking into displayed text
- fixed arc direction rendering
- fixed text width estimation for multi-byte (CJK) characters
- libdxfrw: fixed text encoding corruption when viewing multiple DWG files
o Version 1.0.0.1 (19.05.2026)
- first public version
- built with libdxfrw, win-iconv