Repository navigation
OpenCADStudio - Release v2026.45 (2026-11-08)
Summary: Rebuilt the Layer Manager with in-drawing layer filters and a shared selection-filter engine; overhauled tables with cell styles, in-place editing and fill grips; added the Quad cursor menu with a plugin quad surface; expanded dynamic block authoring with Flip parameters, ordered action follow-ups and a Parameters Manager; advanced HATCH island/boundary handling, annotative scale and complex linetypes; added
COMPARE,BURST,XBIND,PREVIEW/PUBLISHand SVG import; and delivered broad performance work on TRIM, OSNAP/OTRACK, viewports and large drawings.
🌟 Notable Release Notes
- Layer Manager and Filters: Rebuilt the Layer Manager (filter tree beside the table, mockup rows and eyes, narrow pallet, columns, import from another drawing) with nested filters stored in the drawing, wildcard/property filters applied from the search, layer groups,
-LAYTRANS,-LAYERSTATE/LAS andXBIND. (Contributed by @turbuczn, @KarimJerbi and @insanedps) - Quick Select and FILTER: Advanced selection filter with window, pattern help, states and live match count, saved filters in the drawing or a file, and
'FILTER/'QSELECTinside a running command. (Contributed by @turbuczn) - Tables Overhaul: Table style cell styles with starting tables and insert-from-style; cell picking, grips, fill grips, a Table Cell ribbon tab, in-place editing, insert N rows/columns, break and fill; typed values checked against the cell's data type, with dates, currency/percent, thousands separators and two-digit year handling; wrapped text grows rows;
TABLECONTENTkept in step. (Contributed by @ramox81 and @insanedps) - Quad Cursor Menu (API v15): Entity-aware cursor menu with per-type panels and a plugin quad surface; plugin host hardened (NullHost document access, boot-ack observability, channel-ready dispatch). (Contributed by @schoeller and @yztink)
- Dynamic Block Authoring: Flip parameters end-to-end and their coupled caches migrated across edits; ordered action follow-ups with retained-branch evaluation; value sets for linear, XY, polar and rotation parameters; naming and label prompts at placement; lookup tables keep a blank next-value row; nested reference properties and visibility states edited in batches; the Parameters Manager edits rows and filters in place. (Contributed by @KarimJerbi, with Save Block crash recovery from @Ch4rlos)
- HATCH and GRADIENT: Command-line keywords, draw and path modes, shared arc options, a full Hatch panel, boundary path flags and forms, picked regions keep nested islands, island selection follows the circle start rule, Normal skips unflagged islands, ANGLE first in bundled patterns. (Contributed by @ramox81 and @jespinolao)
- Annotation Scale and Complex Linetypes: Model-space linetypes honour
MSLTSCALE; viewports honourPSLTSCALE; annotative attributes, dimensions and objects follow the current scale and the layout's own setting; a drawing opens at its saved scale; dashes keep their length in a scaled INSERT; multileader/dimension blocks, wide polylines and complex linetypes draw on block children; aligned linetypes fit every whole period per run. (Contributed by @silvioteston and @jespinolao) - New Commands and Parity:
COMPARE(modified objects, settings and a CSV report),BURST,XBIND,PREVIEW(SVG),PUBLISH/-PAGESETUP/EXPORTPDF,-LAYTRANS/-LAYERSTATE,-FIELD,SCALELISTEDIT,ANNOUPDATE,SELECT/SELECTPREVIOUS,LOGFILEON/LOGFILEOFF,JOIN(collinear runs become a polyline; a line source reports the lines joined),GROUPrename/members at the command line,OBJECTSCALE,SCALE/ROTATEwith aCopyoption,SPLFRAMEfor spline-fit 3D polylines,TEXTEDITMODE/DIMOVERRIDEthrough the shared variable prompt,DIMSCALE/DIMDEC/DIMLFACat the command line. (Contributed by @HakanSeven12, @KarimJerbi and @ramox81) - Packaging and Releases: Windows and Linux ARM64 and Intel macOS builds; managed mode for hosted installs with a start folder and SIGTERM recovery; the website's download page links the latest release's files;
.desktopentry written when registering as a handler. (Contributed by @HakanSeven12 and @Nozzit) - Command-Line Drafting Parity:
MEASUREGEOMquick start, Area/Volume chains andCLose;OFFSETcurrent-settings line,Through/Erase/Layer,OFFSETGAPTYPE, Exit/Multiple/Undo;MATCHPROPSettings window, named plot styles, centre-line preview andMATCHMODEabove 32 bits;REVCLOUDchords and grips;WIPEOUTreference prompts and editable properties; a word after a variable's value prompt answers it; commands accepted from suggestions or typed with arguments are echoed; refused input prints as a plain line; solid geometry bounds are reported fromMEASURE. (Contributed by @ramox81 and @mvanhorn) - Workspace, CUI and Tool Windows: Customize User Interface with your own ribbon panels, a Classic workspace and Classic toolbars, Quick Access Toolbar customization and floating ribbon panels, dockable tool palettes, windows of their own for dialogs, keyboard-driven menus, and type-to-search in dropdown lists. (Contributed by @MarcelP102, @HakanSeven12 and @KarimJerbi)
- Interaction and Editing: Double-click edits in paper space and viewports;
Ctrl+Tab/Ctrl+Shift+Tabswitch drawings; image drop; softer shaded-view lighting; dialogs open beside another dialog. (Contributed by @HakanSeven12) - Performance: Spatial indexes in TRIM (cutter index, block boundaries, hover cuts), faster large-drawing interaction, viewport pointer latency and block-stub expansion, first click after a paste, OSNAP/OTRACK candidate hysteresis, faster
LAYOFF, fewer re-tessellation passes. (Contributed by @gianlucafiore, @martijn3BM, @mechpanos, @Nozzit, @insanedps, @HakanSeven12 and @KarimJerbi)
🚀 New Features
Tables
- Table Cell Styles: dialog, starting tables, insert-from-style;
TABLE <option>as one line; cell data types with dates, currency/percent, separators and two-digit years; wrapped text grows rows. (@ramox81) - Cell Grips and Editing: row/column labels, ranges, Tab, in-place editing, N rows/columns placed without the editor, break and fill, top/left grips move the shared neighbour edge, Table Cell ribbon tab with nine alignments, grip resizes redraw. (@insanedps)
TABLECONTENTSync: a table's copy follows its edits. (@insanedps)
Layers and Selection
- Layer Filters: filters match on the shared engine; used/unused/selected-object scopes;
FILTER <name>and saved filters in the drawing; nested tree; import layers from another drawing. (@turbuczn) - Layer Tools: named layer sets and groups;
-LAYTRANSstandards mapping;-LAYERSTATEand LAS files;LAYMRGfor several sources with a confirm; per-objectLAYOFF;LAYERFILTER;COPYTOLAYERpicks the destination after the objects; layer dropdowns reveal and highlight the selected object's layer; new layers take the picked layer's look; merge into a layer. (@KarimJerbi, @insanedps, @turbuczn, @silvioteston and @HakanSeven12) - Selection:
SELECT/SELECTPREVIOUSwith a remembered set; group picks report the group;STRETCHShift+click removes an object;Ctrlcycles a hot polyline grip; MTP/M2P hot grips; dragged grips stay put with a rubber band; spline-fit 2D and 3D dotted frames;SPLFRAMEfor spline-fit 3D polylines;GROUPDISPLAYMODEcentre grip and extents box. (@ramox81, @silvioteston and @insanedps) - Associative Arrays: arrow grips for counts and spacings; COPY Array with a Fit option; a copied associative array is an array of its own — including copies of arrays of attributed blocks; zoom extents count items drawn as stubs. (@insanedps)
Blocks and Attributes
- Parameter Authoring: value sets (None/List/Increment) for linear, XY, polar and rotation; name/label/description prompts at placement; a blank lookup row for the next value; chained actions named at authoring; ordered follow-up lists with retained branches; a written parameter value moves the reference it was set on. (@KarimJerbi)
- Flip Parameters: validated Flip targets, transported axes, reflection frames, coupled Flip evaluation and cache migration. (@KarimJerbi)
- Parameters Manager: docks above the authoring palettes, opens from the command and ribbon, edits rows in place, filter/search narrows the list, header column menu, glyph per measured kind, expression filter; lookup and visibility rows stay listed while the graph will not take an edit. (@KarimJerbi)
- Attributes: one form when
ATTDIAis on;-ATTEDIThandle and tag rename; swap a string in values from the command line; INSERT attribute visibility underATTMODE; values read as children with their own geometry. (@KarimJerbi and @dhy365-creator) - Copies and Explode: copies of an array of attributed blocks are arrays of their own;
BURSTkeeps attribute values as text;EXPLODEbreaks multilines into their lines;ATTREDEFredefines a block's attributes from a reference. (@insanedps, @KarimJerbi and @travisjhughes)
Viewing, Sheets and Interchange
- Viewports: VPORTS configuration list, three-viewport layouts, hover outline,
VPMAX/VPMIN, named VPORTS configurations,VPSCALE/VPLOCK, metre drawings restore physical viewport scales. (@insanedps, @KarimJerbi, @jespinolao and @gianlucafiore) - Sheets and Plot:
PREVIEWrenders the page as SVG;-PAGESETUPnamed setups;PUBLISHnamed sheets into one PDF;EXPORTPDFnamed file per layout or all; plot to PDF folder, naming and DPI; annotation scale applied to model-space dash patterns; literal1:1paper label preferred. (@KarimJerbi, @HakanSeven12, @silvioteston and @gianlucafiore) - MLEADER and Dims: MLEADER labels stay precise far from the origin; a leader of type None draws only its content; text background fill switches with code 292; multileader balloons and annotative dimension text follow the annotation scale (
SETVARexposes annotation scale, visibility and hatch variables);REVCLOUDpath-length chords, settings, grips and a Revision Cloud split button on Annotate > Markup;DIMSCALE,DIMDECandDIMLFACat the command line. (@jespinolao, @ramox81, @HakanSeven12, @silvioteston and @KarimJerbi) - Interchange and Save: SVG/SVGZ import (
SVGIN, drag and drop); Copy as SVG;.ifccadpreferred over.ifcx(still supported); autosave copies live in a folder of their own; lossy DXF export prunes dangling references;BEDITSave Block writes its recovery copy at once; DGN V8 reads every model element stream. Block previews restored for transform, placement and clipboard commands. (@felixriestra, @HakanSeven12, @BjornFidder, @Ch4rlos, @silvioteston and @KarimJerbi) - Fields and Text:
Ctrl+Finserts a field at the caret; Insert Field into a formula; fields of fields reopen;-FIELDscript form; MTEXT editor follows the text style and names where each value comes from; two-column text style manager with a live preview and usage; the font list sits under its field and is coloured; the Apply summary lists every changed style with counts; full symbol list in two columns; typed\U+XXXX; paragraph spacing;\C256runs in the layer colour; an SHX font's missing character draws its stand-in; a written line stays in its drawing; SHX big fonts pick the code page; arc-aligned text drawn as text. (@ftaski, @jespinolao, @turbuczn, @KarimJerbi, @HakanSeven12 and @ramox81)
Automation and MCP
- Node Graph: nodes for every object the drawing commands make — Hatch, Multiline, Multileader, Helix, Radius/Diameter dimensions, Rectangle, Polygon, Donut, Revision Cloud, Modify and Model — plus Objects By Type. (@HakanSeven12)
- MCP:
entities_creategives Inserts attribute values by tag;set_propertiestakes colour as a number or RGB; matchprop_settings schema digest; scripted attribute placements answered in form; attribute values read as children with their own geometry. (@silvioteston and @HakanSeven12) - Registry and Docs: Commands Reference; Terén plugin in the registry; 3D solid icons, VAR badge, command synonym and alias icon resolution. (@felixriestra, @pabloxbezx and @HakanSeven12)
🐛 Bug Fixes
- Save and Interchange: dangling handles pruned from acknowledged lossy DXF exports; DWG-only
DIMCONTAINER2kept across DXF round trips; image reactors and association dependencies retained; a minimized window skips the thumbnail screenshot; block cache previews restored for transform, placement and clipboard; evaluated dynamic block origins preserved on open. (@KarimJerbi and @silvioteston) - Blocks and Attributes: inserted references get their declared attributes; bare references fill from the definition; a copied reference keeps its identity; a copy into another drawing still carries its definition, styles and object graph; the attributed marker follows the definition body; visibility states keep the first state fully visible and leave other objects alone; the explodable flag decides; value lists anchor to their grip; a picked lookup is nearest the click. (@KarimJerbi)
- Constraints: erasing geometry takes its dimension and parameter; fixed objects hold grip drags; an angular or corner edit turns its side without stretching; labels stay complete from creation. (@KarimJerbi)
- Snapping and Picking: points behind the eye are never pick targets; a typed point off the screen picks nothing; a typed point otherwise picks the object under it; OSNAP hysteresis verified by candidates; timed hover acquisition survives fast pointer updates; continuous running snap. (@HakanSeven12, @gianlucafiore and @ramox81)
- Hatch: the cull box of small fills far from the origin holds; a picked region keeps every island nested inside; loops picked by island style follow their path flags. (@jespinolao and @ramox81)
- MTEXT: size grips point the way they drag and width stays positive; the corner preview clears when the editor opens; paragraph spacing in text heights. (@insanedps, @jespinolao and @turbuczn)
- Wipeouts: a wipeout hides the model-space grid and axes; one grip per corner;
Framesregenerates correctly; image adjustment is read-only. (@insanedps and @KarimJerbi) - Viewports:
DRAWORDERreorders model space inside a viewport; a far view centre goes through f64 view axes; non-annotative dynamic blocks stay visible in layout viewports; layout sheet origin follows the page-setup margins. (@jespinolao, @silvioteston and @gianlucafiore) - Properties: decimal readouts round a tie away from zero; the Parameters visibility toggle refreshes after it changes; the Values label pads like the other rows; a typed value applies on Tab and click-away, not only Enter. (@ramox81, @insanedps and @turbuczn)
- Tables and Ribbon: clamp panic fixed on minimum-size rows;
TABLE <option>runs as one line; tables redraw after grip resizes; Quick Properties and lists release command focus; ribbon layer colours editable. (@HakanSeven12, @insanedps and @emrahoksak) - Dimensions and Linetypes: dimension pictures re-solve in
DIMREGENwithDIMUPDATE; arrow-tip grips on linear/aligned dimensions;DIMEXE/DIMEXOdrawn in the preview; linetype dashes laid out per run and fitted around closed paths; wide polylines keep their bands; annotative dashes keep their length on scaled inserts. (@KarimJerbi, @insanedps and @silvioteston) - MLINE, FILLET and CHAMFER: multilines explode to their elements with colour, linetype and miter factor; a polyline arc fillets as its arc; two polylines join at end segments; zero-distance chamfers leave no zero-length line; FILLET refuses a radius longer than the line; FILLET defaults the radius to 0. (@travisjhughes, @sclMAX, @HakanSeven12, @KarimJerbi and @ramox81)
- Windows and Menus: dialogs open in windows of their own; tool windows keep frame-driven ticks; palette close buttons show without hovering; unsaved-changes dialogs use neutral buttons; Enter on the command line; windows return to the right screen; OLE pictures with y-up show upright; arc-aligned text drawn as text; the status bar coordinates pill keeps its widest width. (@HakanSeven12, @ramox81 and @jespinolao)
- Localization: Czech and
.ftltranslations updated; variable value prompts share one translated catalog entry; arc-option prompts carry catalog keys in every locale; Turkish and table-cell strings fixed. (@dwbmb, @city-1921, @ramox81, @HakanSeven12 and @KarimJerbi)
👥 Contributors
Thanks to everyone who contributed code, reviews, translations, testing and issue reports for v2026.45:
- Karim Jerbi (@KarimJerbi) — dynamic block authoring and evaluation, Parameters Manager,
BURST/XBIND, tool palettes,COMPAREfollow-ups, save integrity and release reviews. (67,512 lines) - Hakan Seven (@HakanSeven12) — CUI and Classic toolbars, Node graph, MCP, arc-aligned text,
DIMcommand-line variables,ARRAYEDIT, plugin host follow-ups. (55,137 lines) - ramox81 (@ramox81) — table cell styles and formats, HATCH/GRADIENT,
MEASUREGEOM,OFFSET,MATCHPROP,SELECT,REVCLOUD/WIPEOUT, grips, tool windows. (34,166 lines) - turbuczn (@turbuczn) — Layer Manager, layer filters and the Quick Select/FILTER engine, text styles and MTEXT follow-ups. (26,715 lines)
- insanedps (@insanedps) — table grips, ribbon and cell editing, VPORTS configuration list, associative arrays,
LAYMRG, dimension arrow grips. (9,409 lines) - silvioteston (@silvioteston) — annotative scale,
MSLTSCALE/PSLTSCALEand complex linetypes,STRETCHShift+click, Ctrl grip cycling, clipboard previews. (9,379 lines) - dwbmb (@dwbmb) — Czech translations. (9,197 lines)
- Sebastian (@schoeller) — plugin host (quad menu, boot-ack observability, channel-ready dispatch, plugin grips). (8,146 lines)
- Marcel (@MarcelP102) — Quick Access Toolbar and floating ribbon panels (phase 2, PR #2435). (7,255 lines)
- martijn3BM (@martijn3BM) — large-drawing scene performance. (2,692 lines)
- gianlucafiore (@gianlucafiore) — TRIM, OSNAP and OTRACK performance and stability; metre layout scales. (2,022 lines)
- Felix Riestra (@felixriestra) — SVG/SVGZ import and the Commands Reference. (1,121 lines)
- Jesus (@jespinolao) — MLEADER, MTEXT spacing and
\C256runs, hatch island flags, far view centre. (1,110 lines) - Bjorn Fidder (@BjornFidder) —
.ifccaddefault and IFCCAD wording. (988 lines) - ftaski (@ftaski) — Insert Field into formulas and Ctrl+F field insertion. (977 lines)
- city-1921 (@city-1921) — zh-TW localization. (938 lines)
- Travis Hughes (@travisjhughes) — multiline explode and miter factor. (802 lines)
- Panos (@mechpanos) — viewport pointer latency and resident-set performance. (528 lines)
- emrahoksak (@emrahoksak) — ribbon layer colour swatches. (401 lines)
- Carlos Quiroga (@Ch4rlos) —
BEDITSave Block crash recovery. (261 lines) - sclMAX (@sclMAX) — chamfer zero-distance fix. (246 lines)
- Nozzit (@Nozzit) — build performance and the Linux
.desktophandler entry. (221 lines) - Matt Van Horn (@mvanhorn) — solid geometry bounds in measure. (202 lines)
- Harvey_AI_365 (@dhy365-creator) — INSERT attribute visibility under
ATTMODE. (114 lines) - yztink (@yztink) — NullHost document access non-panicking. (43 lines)
- pabloxbezx (@pabloxbezx) — Terén plugin in the registry. (5 lines)