github HakanSeven12/OpenCADStudio v0.3.4

latest releases: v2026.41, v2026.40.1, v2026.40...
4 months ago

Highlights

  • Hatch-corrupted DWG parse hang fixed. Files with misaligned hatch records that emitted near-INT_MAX boundary_handle_count values spun the parser for tens of seconds per record (>100 s on a 2.5 MB sample). The acadrust fork now caps the count via safe_count; the same file opens in well under a second. Tracking upstream PR: hakanaktt/acadrust#27
  • Sub-pixel objects stay visible + selectable. Entities that projected to under ~5 px no longer drop to nothing — they emit a one-segment stub that preserves the selected highlight across zoom-induced LOD changes, and box_hit / poly_hit fall back to the wire AABB so fill-only greek text (and any future fill-only LOD wires) remain pickable. #19
  • Round-trip DWG metadata browser. DWGPROPS dumps create/update timestamps, fingerprint/version GUIDs, last_saved_by, code_page, menu_name, hyperlink_base, project_name, stylesheet, measurement, proxy_graphics, tree_depth, user-timer, and the five USERI / USERR slots; USERI <1-5> <int> and USERR <1-5> <real> edit those scalar slots and mark the tab dirty.

Header-variable integration

The renderer now honours roughly two dozen previously-ignored fields: PDMODE/PDSIZE (point glyph), ATTMODE (insert attribute visibility), FILLMODE (hatch / wipeout / face3d-fill gate), LWDISPLAY (lineweight toggle), MIRRTEXT (mirror keeps text orientation), EXTMIN/EXTMAX (fit-all fallback), CECOLOR / CELTYPE / CELWEIGHT / CLAYER / CELTSCALE (creation defaults), LUNITS + LUPREC (decimal / scientific / engineering / architectural / fractional formats), INSUNITS + MEASUREMENT (cross-document scale on INSERT), FACETRES (Solid3D / Region / Body LOD scaling).

Entity-field integration

Closes out the audit of every EntityType's top-level public fields. Notable additions:

  • Dimension / DimStyle — full round-trip render: DIMBLK arrows, DIMLDRBLK leader heads, DIMLWD/DIMLWE per-wire weights, DIMTOL/DIMLIM tolerance text emitted at DIMTFAC × DIMTXT height with DIMTOLJ alignment, DIMALT*, DIMCEN center marks, DIMDLE, DIMJUST, DIMTVP, DIMFXL/DIMFXLON, DIMTFILL/DIMTFILLCLR background fill, DIMLTEX/1/2 linetypes, leader_length, ext_line_rotation, attachment_point, horizontal_direction, DIMTXSTY-by-handle.
  • MultiLeader — leader line_color / line_type_handle / line_weight / arrowhead_handle, extend_leader_to_text, text_angle_type / text_direction_negative / text_top/bottom_attachment / text_attachment_direction / text_alignment, block-content rendering via a synthesised Insert, every handle and override surfaced in properties.
  • Table — per-cell border invisible honoured (drop the always-grid pass), style / block / data_version / value_flags / override flags / break_options surfaced.
  • AttributeDefinition / AttributeEntity — text_generation_flags (mirror via width_factor / rotation), horizontal/vertical alignment mapped to Text struct, alignment_point + lock_position, attdef_handle on ATTRIBs, MText-flag / is_multiline / line_count surfaced.
  • Shape — shape_number / relative_x_scale / style_handle in properties.
  • Insert — per-INSERT attributes (ATTRIB entities) now render as part of the block. #20
  • New 3D Mesh SubD render path with face-fan fill, vertex grips, subdivision_level / blend_crease surfaced; Polyline3D / PolygonMesh / PolyfaceMesh / Solid3D / Region / Body / Polyline2D / Hatch / MLine / Viewport / Leader / Tolerance / RasterImage / Wipeout / Underlay / Ole2Frame metadata surfaced for round-trip.

UI

  • Selecting an entity now mirrors its values into the Home-ribbon Layer / Color / Linetype / Lineweight dropdowns (#17), and changing those dropdowns with a selection edits the entities (rather than just creation defaults).
  • Idle CPU dropped from ~2-3 % to near zero — window::frames() only runs while something on screen is animating. (#18)

Fixes

  • Per-frame redraw subscription gated on actual animations (#18)
  • Greek-LOD text fill carries the selection colour so highlight survives zoom past the LOD boundary (#19)
  • lod_stub_wire colour-bakes selection, INSERT attribute rendering for nested blocks (#20)
  • Dimension text format now reads DIMDEC / DIMZIN / DIMLFAC / DIMRND instead of {:.4}
  • Closed-filled triangle arrowheads + DIMTSZ oblique ticks replace the previous open-V two-line stroke

Full Changelog: v0.3.3...v0.3.4

Don't miss a new OpenCADStudio release

NewReleases is sending notifications on new releases.