613d6cf99debebc7aec89eb893dd8b688c15ec66
MultiLeader and Table were ignoring most of the styling and content fields that the parser populated. Bring both up to file-driven render: MultiLeader - line_color: leader stroke / arrow colour with ByBlock/ByLayer fallback - line_type_handle: dashed leader via line_types lookup by handle - line_weight (ml.line_weight): per-leader pixel width override - arrowhead_handle: arrow shape resolved through the dim arrow emitter (Closed Filled / Open / Dot / Origin / Box / Datum / Tick / None) - extend_leader_to_text: continue the leader past the landing to the text insertion point - text_angle_type: Horizontal forces 0, Optimized clamps to a readable half-plane, ParallelToLastLeaderLine keeps the stored direction - text_direction_negative: adds π to the rotation - text_alignment: drives the horizontal anchor when more specific than the context's text_attachment_point - text_attachment_direction + text_top_attachment + text_bottom_attachment: Vertical mode uses the top / bottom attachment values chosen from the first root's direction.y sign - has_block_contents + block_content_handle + block_content_location + block_rotation + block_scale + block_content_color: synthesise an Insert and explode it through the standard tessellator so block- content MultiLeaders render their referenced block - style_handle, arrowhead_handle, line_type_handle, text_style_handle, block_content_handle, property_override_flags, text_align_in_ipe, block_scale, block_rotation, extend_leader_to_text, text_direction_negative, text_top_attachment, text_bottom_attachment surfaced in the Properties panel Table - Per-cell borders: drop the always-grid pass, walk the cells and emit each border honouring its `invisible` flag with dedup so shared edges aren't doubled - table_style_handle, block_record_handle, data_version, value_flags, override_flag / override_border_* flags, break_options / break_flow_direction / break_spacing, normal surfaced in the Properties panel Co-Authored-By: Claude Opus 4.7 <[email protected]>
H7CAD
A CAD application for 2D drafting and 3D modeling, built with Rust. Reads and writes DWG and DXF files natively.
Features
File Formats
- DWG read/write (R13 through R2018)
- DXF read/write (R13 through R2018)
- STL export (
STLOUT/EXPORTSTL) - STEP AP203 export (
STEPOUT) - OBJ import (
IMPORTOBJ) - PDF export (plot layouts to PDF)
- WBLOCK — write selected entities or a block to an external file
- XREF — attach, reload, and auto-resolve external references
2D Drafting
| Command | Description |
|---|---|
LINE, PLINE, RECTANG, POLYGON |
Basic geometry |
CIRCLE, ARC, ELLIPSE, SPLINE |
Curves |
HATCH, HATCHEDIT |
Hatch fills with pattern, scale, angle editing |
OFFSET, TRIM, EXTEND, FILLET |
Modify geometry (supports lines, arcs, ellipses, polylines, splines) |
BREAK, STRETCH, LENGTHEN |
Shape editing |
ARRAY, MIRROR, MOVE, COPY, ROTATE, SCALE |
Transformations |
EXPLODE |
Explode blocks, dimensions, polylines, mlines |
DDEDIT |
Double-click text editing |
MASSPROP |
Area, perimeter, centroid of selected entities |
3D Modeling
| Command | Description |
|---|---|
BOX, SPHERE, CYLINDER |
Solid primitives |
EXTRUDE, REVOLVE |
Profile-based solids |
LOFT |
Ruled-surface loft through cross-sections |
SWEEP |
Sweep a profile along a path |
ARRAY3D |
3D array |
| ACIS tessellation | Renders 3DSOLID, REGION, and BODY entities |
Annotations & Dimensions
- Dimensions: Linear, Aligned, Angular, Radial, Diameter, Ordinate — with full
DIMSTYLEsupport (DIMASZ,DIMSCALE,DIMEXO,DIMEXE, and more) - Text:
MTEXT,TEXT,DTEXTwith font browser (STYLE DIALOG) - Leaders:
MLEADERwith straight and spline path types;MLEADERSTYLEmanager - Tolerances: GD&T feature control frames
- Tables:
TABLEentity render;TABLESTYLEmanager - MLine:
MLINEentity withMLSTYLEmanager andEXPLODEsupport
Paper Space & Layouts
- Multi-tab layout system with model space and unlimited paper space tabs
- Viewport projection: Model content correctly projected into paper-space viewport rectangles
- Camera persistence: View position and zoom saved per layout; restored on file open and tab switch
- Correct paper size: Physical paper dimensions read from embedded PlotSettings (not drawing limits)
- Inline MSPACE overlay — enter a viewport with double-click; edit model entities in place
VPORTS— preset viewport configurations (single, 2H, 2V, 4-way)LAYOUTMANAGER/LAYOUTPANEL— GUI layout managerPLOTSTYLEPANEL/STYLESMANAGER— plot style table editor (CTB/STB)PRINT— send layout to system printer
Blocks & References
INSERTwith attribute prompting (ATTREQ)ATTEDIT— edit block attribute values interactivelyREFEDIT/REFCLOSE— in-place block reference editingXREF— attach, reload, and resolve external DWG/DXF referencesDATAEXTRACTION— export entity property data to CSV
Snapping & Precision
- Object snaps: Endpoint, Midpoint, Center, Node, Quadrant, Intersection, Perpendicular, Tangent, Nearest, Insertion, and more
- Ellipse arc endpoints, LWPolyline arc midpoints, Hatch boundary points
- Object Snap Tracking (
OTRACK/F11) - Polar Tracking with configurable angle increment
- Dynamic Input overlay (
DYNMODE/F12) - Grid snap with adaptive spacing
- Command history navigation (↑ / ↓)
Rendering
- GPU-accelerated via WebGPU (wgpu)
- 4× MSAA anti-aliasing
- Orthographic and perspective camera
- ViewCube with face/edge/corner snapping
- Wide polylines: LWPolyline and Polyline2D filled strokes
- Raster images: GPU-textured quad pipeline (
IMAGEcommand) - Wipeout: Solid fill masking
- Complex linetypes: Text and shape elements rendered in linetype patterns
- White/black entity colors adapt to background luminance
- Per-viewport background color (
BACKGROUND) - Visual style selector (Wireframe, Shaded, etc.)
- X-ray ghost pass for selected wires occluded by geometry
UI
- Modular ribbon interface — Home, Insert, Annotate, View, Manage, Layout
- Command line with autocomplete and history
- Layer Manager with per-viewport freeze columns
- Properties panel
COLORSCHEME— runtime theme switchingSHORTCUTS— keyboard shortcuts panelSPLINEDIT— close, open, reverse spline control points- UCS icon with 3D foreshortening and axis labels
Installation
Linux (AppImage)
Download H7CAD-*-linux-x86_64.AppImage from the latest release, then:
chmod +x H7CAD-*-linux-x86_64.AppImage
./H7CAD-*-linux-x86_64.AppImage
No installation required — runs directly on any modern Linux distribution.
Windows
Download H7CAD.exe from the latest release and run it directly.
Build from Source
Requirements: Rust 1.75+
git clone https://github.com/HakanSeven12/H7CAD.git
cd H7CAD
cargo build --release --bin H7CAD
./target/release/H7CAD
License
GPL-3.0-only — see LICENSE
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.
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%