Hakan SevenandClaude Sonnet 4.6 19bb846c50 fix: dimension line geometry and DXF rotation unit mismatch
append_linear_dimension() applied the same perp offset to both d1 and d2,
but only d2 is guaranteed to be at the definition_point level; d1 must be
projected independently onto the dimension line, otherwise non-collinear
first/second points produce a parallelogram instead of a rectangle.

Fix: compute dim_line_pos = def.dot(perp) and project each endpoint
separately so the dimension line is always parallel to axis.

Additionally, the acadrust DXF reader stores LinearDimension.rotation from
group code 50 (degrees) without converting to radians, while DWG and our
own annotation commands store it in radians.  Add a post-load fixup in
load_file() that converts the rotation to radians for DXF files so
tessellation can call cos/sin uniformly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-26 16:57:23 +03:00
2026-03-22 20:27:23 +03:00
2026-03-22 14:53:51 +03:00

H7CAD

resim

A CAD application for 2D/3D drawing and design, built with Rust.

Features

  • 2D drafting and 3D modeling
  • DXF file import/export
  • GPU-accelerated rendering via WebGPU
  • Snap and annotation tools
  • Modular ribbon interface (Home, Annotate, Insert, View, Manage)

Installation

Flatpak (Linux)

Download H7CAD.flatpak from the latest release, then:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install H7CAD.flatpak
flatpak run io.github.HakanSeven12.H7CAD

Build from Source

Requirements: Rust 1.75+

git clone https://github.com/HakanSeven12/H7CAD.git
cd H7CAD
cargo build --release
./target/release/H7CAD

License

GPL-3.0-only — see LICENSE

S
Description
OneBSpace rebrand of OpenCADStudio -> OneCAD Draft (2D drafting / 3D modeling studio) + native Odoo Documents integration (open/save/write-back). Member of the OneCAD family. Upstream: opencadstudio-upstream. Addon: one_cad_draft.
Readme GPL-3.0
249 MiB
0 Stars 1 Watchers 0 Forks
Languages
Rust 70.8%
Fluent 27.8%
WGSL 0.5%
Python 0.3%
TypeScript 0.2%
Other 0.2%