OpenCADStudio - Release v2026.44 (2026-11-01)
Summary: Moved the drawing database onto the shared OpenCADDocument model with IFCX open/save and converter-based interchange; overhauled dimensions, multileaders, text editing, tables and layer workflows; redesigned the ribbon and command search; expanded the plugin host, automation and MCP surfaces; and delivered broad plotting, import, snapping, localization and performance improvements.
🌟 Notable Release Notes
- Shared Document Model & Interchange: Moved the drawing database onto the shared
OpenCADDocumentmodel, addedIFCXopen/save, and routed additional formats through registered converters. Before a save that would drop converter-reported content, the app lists the losses and lets you return or continue. (Contributed by @HakanSeven12) - Dimension and Annotation Overhaul: Completed the
DIMcommand family withDIMOVERRIDE,DIMDISASSOCIATE,DIMREASSOCIATE,DCDISPLAY,DIMREGEN,DIMCENTER,DIMINSPECT,DIMTMOVE,DIMBREAKand style application; saved dimension pictures, annotative sizing, flip-arrow flags and user-arrow blocks now round-trip. (Contributed by @ramox81 and @HakanSeven12) - Multileader Overhaul: Added full
MLEADERcommand prompts, layer and property editing, grips, edit and align/collect workflows, block-content placement, add/remove leader actions and safe explosion. (Contributed by @ramox81 and @HakanSeven12) - MTEXT Editor Rewrite: The editor now patches the raw MTEXT source, with superscript/subscript buttons, one-sided
^stacks, glyph-box and fraction fixes, typing in the height/oblique/width/tracking fields, undo/redo, and arc-aligned text spacing, alignment and reading direction. (Contributed by @turbuczn and @HakanSeven12) - Ribbon and Command Search Redesign: Rebuilt the ribbon, menus and command search, including key tips, language-following labels, saved layer states in the layer dropdown, and search that offers only commands that exist. (Contributed by @MarcelP102, @HakanSeven12 and @saadmooh)
- Tables and Data Extraction: Added table property grips, command-line table workflows, an Annotate tables panel, cell text fonts, table-copy pictures and extraction table sizing and format parity. (Contributed by @ramox81 and @insanedps)
- Layer Workflows: Added
LAYWALKand the non-modal LayerWalk pallet,LAYISO/LAYUNISO, nested-attributeLAYMGR,COPYTOLAYER,HATCHLAYER/XREFLAYER, per-viewport layer colour and active-viewport columns. (Contributed by @KarimJerbi, @lpotharn, @HakanSeven12 and @insanedps) - Plugin Host and API 14: Plugins no longer need the host's compiler or codec commit, and the host gained filtered/paged entity queries, one undo step across messages, shared-memory sizing, headless worker-thread requests, REST
document_idtargeting, system-variable reads and bundled plugin installation. Plugin class objects with host-evaluated display descriptors and class parameter schemas extend the parametric surface through API v16. (Contributed by @HakanSeven12 and @schoeller) - Automation and MCP: Added intent tools for common agent workflows, an
MCPnode_graphop backed by a standalone graph engine, schema-digest pinning and conformance checks, andprint_allautomation. (Contributed by @KarimJerbi and @HakanSeven12) - Plotting and File Fidelity: Plots print at true size, plot-to-file opens the viewer, layout page setups report 1:1, PDF import joins segments by endpoint lookup, DGN reads every element of large meshes, and STEP export merges coplanar triangles into one planar face. (Contributed by @HakanSeven12 and @ramox81)
- Performance and Localization: Indexed hatch boundary edges, cached grid overlays per pane, memoized rendered labels, indexed paper views once per epoch, and streamed STL and de-quadratic STEP grouping, alongside refreshed Hungarian, Turkish, Arabic and French strings. (Contributed by @KarimJerbi, @ramox81, @turbuczn and @saadmooh)
🚀 New Features
Document Model & File Interchange
- Shared Model Migration: Moved the drawing onto the shared
OpenCADDocumentmodel and adopted its drawing variables, image/wipeout geometry, codec explode paths and hatch areas. (Contributed by @HakanSeven12) - IFCX Open and Save: Added
IFCXopen/save carrying blocks, texts, ellipses, solids and stored dimension pictures. (Contributed by @HakanSeven12) - Converter Interchange: Open and save supported external formats through registered converters, with an explicit review of content a conversion cannot preserve. (Contributed by @HakanSeven12)
- Drawing Properties (
DWGPROPS): Added a Drawing Properties dialog with a read-only General tab, an editable Summary tab and a custom-property table; OK stores one undo step and save formats that cannot carry properties warn first. (Contributed by @sclMAX) - Recovery Diagnostics: Recovery reports name the acadrust commit the reader was built from. (Contributed by @HakanSeven12)
- Save Format: Saving keeps the format of the drawing's own file. (Contributed by @HakanSeven12)
Dimensions, Text & Multileaders
- Dimension Commands: Added
DIMOVERRIDE,DIMDISASSOCIATE,DIMREASSOCIATE,DCDISPLAY,QPMODE,DIMREGEN,DIMCENTER,DIMINSPECT,DIMBREAKprompts andDIMSTYLEapplication, with dedicated ribbon rows and inspection values. (Contributed by @ramox81 and @HakanSeven12) - Dimension Pictures and Sizing: Saved pictures match line breaks and two-line angles, annotative sizes follow the scale's own ratio, flip-arrow flags draw and save, and user-arrow blocks are honored. (Contributed by @HakanSeven12)
- DIMTMOVE and Overrides:
DIMTMOVEmeasures text only when the user placed it, angular text width and baselineDIMDLIbehave, and overrides rewrite in place and accept BYBLOCK/BYLAYER colours. (Contributed by @ramox81) - Multileader: Added command prompts, layer, properties, grips, edit, align/collect, block content from the content base point, lowest-free leader index, context-menu add/remove leader, and explosion. (Contributed by @ramox81 and @HakanSeven12)
- Text Editor: Edit the raw MTEXT source, superscript/subscript buttons, one-sided stacks, height/oblique/width/tracking typing, input method in the preview, Ctrl+Z/Y, and command-line font/size in Options. (Contributed by @turbuczn and @HakanSeven12)
- Arc-Aligned Text: Added spacing, alignment and reading-direction controls. (Contributed by @HakanSeven12)
- Fields: Object, block and text properties resolve in the codec, additional formats and point coordinates are kept, custom drawing properties resolve, and a field text opens its field for editing. (Contributed by @ftaski and @HakanSeven12)
- Style Import: Import text and dimension styles from another drawing, repointing dimension styles as a paste does and translating the imported strings. (Contributed by @turbuczn)
Tables, Blocks & Constraints
- Table Workflows: Added table property grips, command-line table commands, an Annotate tables panel, cell text fonts, table-copy pictures and extraction table sizing and format parity. (Contributed by @ramox81 and @insanedps)
- Block Editor: Parameter previews now draw polar as a dashed circle with an arrowed arc, XY drives from its endpoint, rotation takes a base angle, alignment defaults to perpendicular, grip counts and labels are asked, Lookup appears in the action list, and visibility/lookup pickers float in Test Block. (Contributed by @KarimJerbi and @HakanSeven12)
- Constraints: Added dedicated geometric constraint command names, tangency and parallel picks that hold the first line, repeat-last, dimensional-form conversion, invalid-pick refusal and flagged-constraint names on entity reads. (Contributed by @KarimJerbi)
- Associative Path Arrays: Added associative path arrays with
ARRAYPATHDIVIDE/MEASURE methods and member extension dictionaries and reactors. (Contributed by @HakanSeven12 and @insanedps) - ATTSYNC and Attributes:
ATTSYNCreaches dynamic references through their definition, and attribute definitions and values stay consistent through insert, copy and edit. (Contributed by @HakanSeven12 and @insanedps)
Layers, Selection & Navigation
- Layer Walk:
LAYWALKopens the non-modal pallet with wildcard filters, hold, purge, layer-state capture, zoom to extents and selection. (Contributed by @KarimJerbi) - Layer Isolation: Added
LAYISO/LAYUNISOwith lock-only and fade behavior, plus localized icons. (Contributed by @lpotharn) - Layer Tools: Added
COPYTOLAYER,HATCHLAYER,XREFLAYER, nested-attributeLAYMGR, per-viewport layer colour and active-viewport columns. (Contributed by @HakanSeven12 and @insanedps) - Selection and Snapping:
SELECTSIMILARsettings andSELECTSIMILARMODE,OSNAPZelevation projection, Nearest off by default, nearest-snap under the cursor, OSNAP capture-radius range and snap markers in Drafting Settings. (Contributed by @HakanSeven12 and @insanedps) - Navigation: CATIA and FreeCAD navigation styles, Alt+click ViewCube to set UCS, Shift axis lock, Shift during middle-button pan,
Ctrl+Rnext viewport,CHSPACEtarget prompts andZOOM Windowignoring snaps. (Contributed by @HakanSeven12)
Interface, Options & Platform
- Ribbon and Menus: Redesigned ribbon, menus and command search, key tips, language-following labels, saved layer states in the dropdown, and classic menu placement. (Contributed by @MarcelP102, @HakanSeven12 and @saadmooh)
- Options and Dialogs: Support-files folder, Restore Defaults, command-line font/size,
Cmd+,on macOS,RENAME,PURGE, a start-page template picker and Options returning to Options. (Contributed by @HakanSeven12) - Colour and Appearance: Recently picked colours, index-colour picking, canvas-aware colour 7, Windows typographic font families and background-following block-editor ink. (Contributed by @HakanSeven12)
- Quick Properties and Docking: Draggable Quick Properties with
QPLOCATION, one-line layer names andCtrl+1for tucked-away panels. (Contributed by @HakanSeven12) - Keyboard:
Ctrl+Vpastes command-line rows during dynamic input,Ctrl+Wtoggles selection cycling, and letters after digits become dynamic-input keywords. (Contributed by @HakanSeven12)
Plugins, Automation & MCP
- Plugin API 14: Plugins no longer need the host's compiler or codec commit. (Contributed by @HakanSeven12)
- Plugin Parametric Classes: Added plugin class objects with host-evaluated display descriptors, a host parametric display/sample surface, class parameter schemas and the properties pair (API v14–v16). (Contributed by @schoeller)
- Plugin Host: Filtered/paged entity queries, one undo step across messages, shared-memory sizing, headless worker-thread requests, REST
document_id, numeric/point system-variable reads, bundled plugin installs andDocumentTabClosed. (Contributed by @HakanSeven12) - Plugin UI: Plugin dialogs and panels use SVG icons with a translated Add row. (Contributed by @yztink)
- MCP: Intent tools for common agent workflows, a
node_graphop on a standalone graph engine, schema-digest pinning and conformance checks, andprint_allautomation. (Contributed by @KarimJerbi and @HakanSeven12) - Automation: Requests act on the
document_idthey are given, report each op's outcome, and fail opens instead of waiting on the recovery prompt. (Contributed by @HakanSeven12 and @mvanhorn)
Plotting, Import, 3D & Performance
- Plotting: True-size printing, plot-to-file viewer launch, 1:1 layout page setups,
VSEDGECOLOR, and transparency and lineweight behavior. (Contributed by @HakanSeven12) - Import/Export: PDF segment joining, large DGN mesh elements, coplanar STEP triangles, AppImage
.zsyncmetadata, and codec-backed explode for polylines, hatches and MTEXT. (Contributed by @HakanSeven12) - 3D and Rendering:
PRESSPULLpicks edge-on faces, live sections clip point clouds, thick CIRCLE/ARC extrusion draws in wireframe, huge circles tessellate finely, and imageless materials share GPU resources. (Contributed by @HakanSeven12) - Performance: Indexed hatch boundary edges, per-pane grid caches, memoized i18n labels, one-pass paper view indexes, pre-solve propagation, streamed STL and de-quadratic STEP grouping. (Contributed by @KarimJerbi)
- Localization: DIM/TEXT/LAYISO prompts and unit names across locales, a Hungarian refresh, and Turkish, Arabic and French strings. (Contributed by @turbuczn, @ramox81 and @saadmooh)
🐛 Bug Fixes
Blocks, Attributes & Dynamic References
- Block Dialogs and Export: Print the block dialog base point at the drawing precision, open
WBLOCKwith no source set, export a complete drawing header, scope the defaultINSERTblock to its drawing, and show the live conversion mode as the prompt default. (Contributed by @KarimJerbi) - Block Editor Records: End every block definition and rebuilt representation after its body, answer an empty block name instead of ignoring OK, and count the references in the close prompt. (Contributed by @KarimJerbi)
- Parameter Authoring: Drive XY from its endpoint, draw the rotation preview from the base angle, let rotation take a base angle, and ask for grip counts and labels. (Contributed by @KarimJerbi)
- Lookup and Visibility: Name an empty cell as the fault it is, leave a cell that matches no row empty, keep unmatched table/lookup rows marked, offer a way out when OK refuses a table, and float the Test Block pickers. (Contributed by @KarimJerbi)
- Dynamic Properties: Keep the dynamic value list opaque and its keys out of the viewport, give every row its own id, print values at the drawing precision and in the drawing's units, hide the definition's internal records, and let Escape revert a pending cell edit. (Contributed by @KarimJerbi and @HakanSeven12)
- Selection and Session State: Rebuild selected grips and the panel after every edit, keep block reads and writes consistent during an editor session, and report evaluated dynamic references on their definition. (Contributed by @KarimJerbi and @HakanSeven12)
Dimensions, Text & Multileaders
- Dimension Rendering: Redraw every saved picture with
DIMREGEN, keep pictures correct after grip edits and undo, and match line breaks and two-line angles. (Contributed by @HakanSeven12) - Dimension Placement: Measure text only when the user placed it, honor angular text width, and apply baseline spacing and typed origins. (Contributed by @ramox81)
- Multileader Content: Place block content from the content base point, take the lowest free leader index, and describe explosion behavior without naming other programs. (Contributed by @ramox81 and @HakanSeven12)
- MTEXT Editing: Fix glyph boxes with tabs, centre fractions, mask stroke text, and avoid a panic on a cut-short width code. (Contributed by @turbuczn)
- Text and Attribute Display: Wrap long attribute widths, keep stroke text crisp when zoomed, and preserve inline index colours when exploding MTEXT. (Contributed by @insanedps)
- MTEXT Save Loss: Refuse saves and exports that drop MTEXT data unless allowed, and ask before an older DWG/DXF target drops it. (Contributed by @turbuczn)
- Fields: Preserve a reopened field's additional format. (Contributed by @ftaski)
Geometry, Snapping & Selection
- TRIM and FILLET: Crossing
TRIMon a polyline cuts only where an edge crosses, multilines trim again, block contents work as cutting edges, a polyline arc segment fillets as its arc, and two polylines at their end segments join into one. (Contributed by @HakanSeven12 and @lpotharn) - Wide Polylines: Close joints where a line meets an arc, skip tangent joints in bevels, and avoid panics on short dashed wires. (Contributed by @HakanSeven12)
- Snapping: Add OSNAP From, offer the nearest snap under the cursor, keep Nearest off by default, project snaps with
OSNAPZ, and reject behind-eye projections in picking and snapping. (Contributed by @HakanSeven12 and @insanedps) - Selection: Keep
SELECTIONPREVIEWvisible while a selection box is drawn, make a trembling click still pick a grip, and keep a block editor selection window's objects. (Contributed by @HakanSeven12) - Clip and View: Place an
XCLIPboundary through its transform, keep viewport resizing anchored on the sheet, and reject off-target alignment flips. (Contributed by @HakanSeven12 and @sclMAX) - Curves and Solids: Tessellate huge circles finely when they bypass the analytical path, and snap solid corners inside blocks and in freshly opened drawings. (Contributed by @HakanSeven12)
Layers, Interface & Options
- Layers: Refresh locked-layer rendering, keep nested attributes through
LAYMGR, leave saved transparency alone forLAYISOlock-only, and take typing as soon as the layer list opens. (Contributed by @lpotharn, @insanedps and @HakanSeven12) - Menus and Ribbon: Open the last menu under its title, keep only existing commands in search, and follow a language change. (Contributed by @HakanSeven12 and @saadmooh)
- Dialogs and Options: Return to Options when a dialog opened from it closes, keep the save-warning list scrollable, and keep the context-menu Repeat label showing the command rather than its internal hand-off. (Contributed by @HakanSeven12 and @BjornFidder)
- Docking and Colours: Keep layer names on one line, show tucked-away panels with
Ctrl+1, and keep colour 7 swatches in step with the canvas. (Contributed by @HakanSeven12) - Fonts: Fall back from missing Swiss 721 to a same-width Helvetica clone, resolve typographic Windows font families, and treat built-in SHX fonts as never missing. (Contributed by @HakanSeven12)
Files, Plotting & Rendering
- Plot Output: Print plots at true size, open plot-to-file output in the viewer, show a Layout page setup at 1:1, and keep PDF short dashes and the plot-setup list width correct. (Contributed by @HakanSeven12 and @insanedps)
- Import and Export: Join PDF segments by endpoint lookup, read every data element of a large DGN mesh, merge coplanar STEP triangles, and write periodic DXF splines in clamped form. (Contributed by @HakanSeven12)
- Recovery and Audit: Recover DWG ACIS data through the API, stop treating a
SORTENTSTABLE's sort handles as declared handles, and keep the format of the drawing's own file on save. (Contributed by @mvanhorn and @HakanSeven12) - Rendering: Keep viewport frame colours correct, batch wipeout updates, and keep copied
SELECTSIMILARresults intact. (Contributed by @insanedps) - Packaging: Embed AppImage update information and upload its
.zsyncfile. (Contributed by @HakanSeven12)
Automation, Plugins & Web
- Automation: Act on the
document_ideach REST request names, fail opens instead of waiting on the recovery prompt, and report each op's outcome. (Contributed by @HakanSeven12 and @mvanhorn) - Plugins: Join plugin-opened record writes to undo scopes, refresh selected grips after plugin edits, and report
DocumentTabClosedwhen a tab closes without saving. (Contributed by @schoeller and @HakanSeven12) - Web: Avoid a service worker in a sandboxed iframe and disable MSAA for canvas geometry. (Contributed by @HakanSeven12)
- MCP: Repin the tool-schema digest after schema-changing actions and check every core tool and title in conformance. (Contributed by @HakanSeven12)
- Localization: Translate DIM, TEXT and LAYISO prompts in every locale, fix unit names that read as other words, and keep Arabic and French center-object strings correct. (Contributed by @ramox81 and @saadmooh)
👥 Contributors
Thanks to everyone who contributed code, reviews, translations, testing and issue reports for v2026.44:
- ramox81 (@ramox81) — dimension commands and pictures, multileader workflows, tables, data extraction and localization. (32,595 lines)
- Karim Jerbi (@KarimJerbi) — block editor and dynamic references, constraints, LayerWalk, MCP intent tools and performance. (27,743 lines)
- Hakan Seven (@HakanSeven12) — shared document model, IFCX and converters, plugin host, plotting, snapping and interface. (24,506 lines)
- turbuczn (@turbuczn) — MTEXT editor rewrite, text and style import, save-loss prompts and Hungarian localization. (16,498 lines)
- Sebastian (@schoeller) — plugin parametric display, custom class objects and API v14–v16 class parameter schemas. (14,954 lines)
- Marcel (@MarcelP102) — ribbon, menus and command-search redesign. (12,649 lines)
- insanedps (@insanedps) — reactors, clipboard integrity, tables, layers and rendering fixes. (5,555 lines)
- yztink (@yztink) — plugin dialogs and panels. (4,057 lines)
- sclMAX (@sclMAX) —
DWGPROPS, Z-axis tracking, alignment Flip and viewport benchmarks. (2,593 lines) - ftaski (@ftaski) — FIELD object properties and additional formats. (1,762 lines)
- Francesco Fantoni (@hvfrancesco) — dimension and preview precision at UTM coordinates. (1,070 lines)
- Jeshuuu (@Jeshuuu) —
UNISOLATEOBJECTSvisibility. (955 lines) - lpotharn (@lpotharn) — layer isolation commands, locked-layer rendering and block-boundary trimming. (749 lines)
- jespinolao (@jespinolao) — hatch boundary-loop handling. (377 lines)
- Bjorn Fidder (@BjornFidder) — save-warning list scrolling. (183 lines)
- silvioteston (@silvioteston) —
MATCHPROPpreselected source. (175 lines) - saadmooh (@saadmooh) — ribbon language change and Arabic/French strings. (159 lines)
- Matt Van Horn (@mvanhorn) — automation open failure and DWG ACIS recovery. (107 lines)
- Maarten Vroegindeweij (@DutchSailor) — Open Infra Studio registry entry and consent-based analytics loader. (7 lines)