Files
OneCAD-Draft/changelogs/v2026.39.md
T
Karim Jerbi 535710e5d1 docs: add comprehensive per-release changelogs and master index
- Add root CHANGELOG.md as master index with executive release summaries
- Add dedicated changelogs for last 4 releases (v2026.38, v2026.39, v2026.40/40.1 unified, v2026.41) and unreleased
2026-10-13 15:35:24 +01:00

13 KiB

OpenCADStudio - Release v2026.39 (2026-09-27)

Summary: Milestone release featuring the initial Python Host Model plugin architecture, full dimensional and geometric parametric constraint parity (Linear, Aligned, Angular, Radial, Diameter), interactive Block Definition (BLOCK/BMAKE) and Write Block (WBLOCK) dialogs, command-line autocomplete execution on Enter, individual block attribute grips, the XCLIP boundary clipping tool, redesigned PDF/XREF underlay integration panels, interactive plugin command previews, trackpad gesture navigation (pan and pinch-to-zoom), major rendering & tessellation performance optimizations, and robust metric drawing template defaults.


🌟 Notable Release Notes

  • Python Host Model & Plugin Architecture: Introduced the foundational Python plugin execution model, embedding an isolated Python runtime host with CAD entity data structures, automation APIs, and lifecycle bindings. (Contributed by @felixriestra)
  • Block Creation & WBLOCK Dialogs: Implemented interactive Block Definition dialogs (BLOCK/BMAKE) with on-screen entity sequencing, base point pickers, unit settings, and the standalone WBLOCK dialog for writing blocks to external files. (Contributed by @KarimJerbi)
  • Command-Line Autocomplete & Architecture Modularization: Pressing Enter now immediately executes the highlighted autocomplete pre-selection. Completely refactored the 11,500-line monolithic command driver into clean, decoupled domain modules. (Contributed by @KarimJerbi)
  • Parametric Constraints Parity: Delivered complete geometric and dimensional constraint toolsets including Linear, Aligned, Angular, Radial, and Diameter constraints, constraint conversion (DELCONSTRAINT), and dynamic constraint bar display. (Contributed by @ramox81)
  • Individual Block Attribute Grips & Tracking: Added individual grip markers on each block attribute definition and dual-vector intersection locks during object tracking (OTRACK). (Contributed by Claude)
  • Tessellation & Pipeline Performance: Optimized polyline arc tessellation sampling, bypassed wide fills on thin polylines, memoized constraint glyphs behind epochs, capped selection grips at 4096, and eliminated redundant wire distance calculations. (Contributed by @KarimJerbi)
  • Boundary Clipping (XCLIP): Implemented the XCLIP command, allowing users to define polygonal and rectangular clipping boundaries for external references and block inserts. (Contributed by @ramox81)
  • Trackpad Navigation Gestures: Added native trackpad gesture recognition supporting smooth two-finger panning and pinch-to-zoom. (Contributed by @swit33)
  • PDF & XREF Attachment Parity: Redesigned the PDF and XREF attachment dialogs with live scale/rotation previews, layer visibility overrides, and context ribbon tabs. (Contributed by @ramox81)

🚀 New Features

Blocks & Definitions

  • Block Definition Dialog (BLOCK/BMAKE): Added the standard Block Definition dialog with on-screen sequencing, base point coordinate pickers, retain/convert/delete actions, and unit settings. (Contributed by @KarimJerbi)
  • Write Block Dialog (WBLOCK): Added the WBLOCK dialog allowing users to export objects, entire drawings, or existing blocks to separate files. (Contributed by @KarimJerbi)
  • Individual Block Attribute Grips: Each visible block attribute now displays its own grip marker for independent position and orientation adjustments. (Contributed by Claude)
  • Shared Dialog Button & Form Radio Builders: Migrated dialogs across the application to consistent shared UI builders with theme-aware styling. (Contributed by @KarimJerbi)
  • Block Window Localization: Added multi-language localized strings for block creation dialogs and measurement units. (Contributed by @KarimJerbi)

Command Line & Drafting

  • Autocomplete Execution on Enter: Pressing Enter with an active autocomplete pre-selection now executes the highlighted command instantly. (Contributed by @KarimJerbi)
  • Dual-Vector OTRACK Intersection Locks: Visual object tracking draws both projection vectors simultaneously at ray intersections. (Contributed by Claude)
  • XLINE and RAY Direction Grip Stretch: Moving the directional pass-through grip on infinite lines and rays now applies stretch semantics rather than displacing the base origin. (Contributed by @KarimJerbi)
  • Metric Drawing Defaults: Initialized new drawings using standardized ISO metric template defaults (meters/millimeters) and proper dimension styles. (Contributed by @ramox81)
  • Page Setup Import (PSETUPIN): Supported importing named page setups across drawings via JSON and drawing database exchanges. (Contributed by @lalomalvi)
  • Raster Image Pixel Dimensions: Displayed exact pixel width and height metadata for attached raster image references. (Contributed by @ramox81)

Plugin System Extensions

  • Interactive Plugin Previews: Plugins can now emit transient graphic preview entities during active user interaction steps. (Contributed by @yztink)
  • Command Execution from Plugins: Added run_command capability enabling plugins to invoke built-in CAD commands programmatically. (Contributed by @yztink)
  • Plugin Layer Property Access: Exposed granular layer table read and write APIs to plugin scripts. (Contributed by @yztink)
  • Repeatable Plugin Commands: Enabled repeating the last-executed plugin command upon pressing Enter or Space. (Contributed by @yztink)

Performance & Architecture

  • Polyline Arc Tessellation Performance: Optimized polyline arc sampling and eliminated expensive wide fill mesh generation for zero-width/thin polylines. (Contributed by @KarimJerbi)
  • Analytical Instancing & Wire Partitioning: Streamlined render environment resolution, skipped wire distance calculations for solid lines, and optimized handle parsing. (Contributed by @KarimJerbi)
  • Selection Grip Cap & Epoch Memoization: Capped total displayed selection grips at 4096 and memoized constraint-glyph layout positions behind constraints_epoch. (Contributed by @KarimJerbi)
  • Statusbar Epoch Caching: Cached layout and scale derived properties behind change epochs for smooth frame pacing. (Contributed by @KarimJerbi)
  • Driver & Kernel Modularization: Decomposed monolithic 11,500-line command driver into domain modules, extracted reusable clipboard and matchprop kernels, and unified table/block merge copies. (Contributed by @KarimJerbi)

🐛 Bug Fixes

Geometry, Snapping & Boundary Detection

  • Plan-View Trim Segment Skipping: Skipped zero plan-view polyline segments in TRIM to prevent clipping failures. (Contributed by Claude)
  • Attribute Filter Refactoring: Streamlined attribute filter logic in insert entity handlers. (Contributed by @dasmatus)
  • Boundary Detection for Infinite Rays/XLINEs: Clipped unbounded sources, rays, and XLINEs to finite view extents during face detection and associative hatch refreshes. (Contributed by @KarimJerbi)
  • Units Settings in DIST Output: Enforced user precision and drawing units settings on DIST command readout. (Contributed by @KarimJerbi)
  • Property Operator Snapshot Leak: Converted chprop choices to standardized property ops, eliminating a CTB memory snapshot leak. (Contributed by @KarimJerbi)
  • Direct Distance Entry without Dynamic Input: Ensured typed direct distances commit accurately along polar tracking angles when dynamic input is disabled. (Contributed by @yztink)
  • 3D Shell Command Crash: Resolved an edge-case crash when selecting complex solid shells in the SHELL command. (Contributed by @ramox81)

Viewport & Plotting

  • Viewport Wide Polyline Plot Widths: Corrected stroke width scaling for wide polyline segments plotted inside scaled viewports. (Contributed by @Chrisyeh1983)
  • Dimension Arrowhead Export: Fixed missing and clipped arrowheads during vector dimension export. (Contributed by @ThaiLe-gt)
  • Plot Preview Test Isolation: Isolated plot preview tests from host environment display server dependencies. (Contributed by @lalomalvi)
  • Text Fallback Empty Outlines: Prevented empty or missing font outlines from generating zero-area bounding artifacts. (Contributed by @swit33)
  • ViewCube Visibility Toggle: Fixed ViewCube rendering states to honor viewport visual style visibility toggles. (Contributed by @yztink)

UI, Automation & Platform

  • Command Line Duplicate Paste: Prevented duplicate text insertion when pasting clipboard text into the command-line interface. (Contributed by @yztink)
  • Missing Font Prompt Hardening: Prevented recursive dialog prompts when encountering drawings referencing multiple missing SHX fonts. (Contributed by @lalomalvi)
  • Automation Task Dispatch: Fixed task dispatching to prevent orphan task registrations in automation pipelines. (Contributed by @helenkwok)
  • Batch Line Tail Trimming: Corrected tail trimming issues during batch geometry creation. (Contributed by @buyun14)
  • API Documentation & Specs: Documented native and web automation build targets and API endpoints. (Contributed by @helenkwok, @buyun14, and @huaninstratech)

👥 Contributors

Huge thanks to all contributors to v2026.39:

  • Hakan Seven (@HakanSeven12) — Upstream geometry kernel and codec synchronization, core application architecture.
  • Felix Riestra (@felixriestra) — Python Host Model plugin architecture, Python C-bindings and runtime lifecycle.
  • ramox81 (@ramox81) — Parametric constraints (Linear, Aligned, Angular, Radial), XCLIP, PDF/XREF underlays, metric defaults.
  • Karim Jerbi (@KarimJerbi) — Block definition dialogs (BLOCK/BMAKE/WBLOCK), Enter autocomplete execution, command driver modularization, polyline arc tessellation & rendering pipeline performance, grip stretch for XLINE/RAY, statusbar & glyph caching.
  • Claude (Claude Opus / Sonnet) — Block attribute individual grips, OTRACK dual-vector intersection locks, plan-view trim segment filtering.
  • yztink (@yztink) — Plugin interactive previews, plugin command execution, direct distance entry, command line paste fix.
  • Chris Yeh (@Chrisyeh1983) — Viewport wide polyline plot stroke width fixes.
  • Alexey Bagno (@swit33) — Trackpad pan and pinch gestures, text font fallback outlines.
  • Luis Martinez (@lalomalvi) — PSETUPIN page setup import, missing font prompt hardening, plot preview test isolation.
  • Matus Mastena (@dasmatus) — Attribute filtering logic refactoring.
  • Thai Le (@ThaiLe-gt) — Dimension arrowhead vector export fix.
  • Helen Kwok (@helenkwok) — Automation task dispatching and web build documentation.
  • buyun14 (@buyun14) — Batch line geometry trimming and automation docs.
  • Huan Le (@huaninstratech) — Automation API specification and build scripts.