SolidCraft

Download en Installatie

Windows

  • Download en voer de installer uit.
  • Beschikbaar voor ARM64 en 32-bit pc's, of als een portable zip-bestand dat zonder installatie werkt.
  • Let op: Indien SmartScreen een waarschuwing geeft, kies dan voor 'Meer informatie' en vervolgens 'Toch uitvoeren'.

macOS

  • Open het disk image en sleep SolidCraft naar de Applicaties-map (ondersteunt Apple Silicon en Intel).
  • Let op: Klik bij de eerste keer met de rechtermuisknop op SolidCraft in Applicaties en kies 'Open'.

Linux

  • Download het AppImage, maak het uitvoerbaar en open het.
  • Installatie is ook mogelijk via .deb (Ubuntu, Debian, Mint), .rpm (Fedora, openSUSE) of Flatpak.
  • Installatie via Snap: sudo snap install solidcraft.
  • Voor ARM64 zijn AppImage, .deb en .rpm beschikbaar.

Web

  • De applicatie kan direct in de browser worden gebruikt zonder installatie.

Status en Documentatie

De software bevindt zich in een vroeg stadium, maar is bruikbaar voor eenvoudige onderdelen. Van de 76 publieke referentiedelen komen er 75 overeen met hun analytische of via FreeCAD berekende volume, oppervlakte, zwaartepunt en bounding box (zie docs/oracle.md).

  • Documentatie: Het "SolidCraft book" bevat de gebruikershandleiding, ontwikkelaarshandleiding en referentie voor commando's.
  • Features: Een overzicht van beschikbare commando's staat in docs/features.md.
  • Roadmap: Plannen en huidige status zijn te vinden in ROADMAP.md.
  • Bugs: Openstaande zaken en bugs worden bijgehouden in de GitHub issues.

Functionaliteiten

Schetsen en Constraints

  • Schetsen: Mogelijk op oorsprongsvlakken, offset-vlakken of vlakke zijden. Ondersteunde elementen zijn onder andere lijnen, rechthoeken, cirkels, bogen, polygonen, slots, ellipsen, fit/control splines, conics en tekst. Daarnaast zijn er functies voor constructiegeometrie, projectie, trimmen, fillets en chamfers.
  • Constraint Solver: Maakt gebruik van een eigen solver. Punten worden exact geplaatst via constructie (loci-intersecties en rigid-cluster decompositie). De rest wordt opgelost via Levenberg–Marquardt.
  • Ondersteunde constraints: Coincident, punt op curve, horizontaal/verticaal, parallel, loodrecht, tangent, kromming (G2), gelijk, concentrisch, collinear, middenpunt, symmetrie en fix.
  • Dimensies: Lineair, uitgelijnd, horizontaal, verticaal, punt-naar-lijn, straal, diameter, hoek, booglengte en slotlengte, aangestuurd door parameters.
  • Interactie: Over-constraining bewerkingen worden geweigerd; volledig gedefinieerde geometrie wordt zwart. Slepen lost de schets per frame op en bouwt het model opnieuw op zodra het slepen stopt.

Parametrische Features en Tijdlijn

Er is een parametrische tijdlijn waarop features kunnen worden bewerkt, onderdrukt, hernoemd, herordend of verwijderd. Ondersteunde features zijn:

  • Extrude, revolve, sweep, loft.
  • Fillet/chamfer, shell, draft.
  • Gaten, schroefdraad, patterns, mirror, split, combine, move.
  • Constructiegeometrie.

Parameters en Configuraties

Ondersteuning voor unit-aware expressies (bijv. 2 * width + 5 mm, angle / 2), geordende regels, feature-onderdrukking en materiaalinstellingen per body.

Assemblages

Assemblages ondersteunen geneste componenten en occurrences, joints, motion studies, contact sets, interferentie en massa-eigenschappen die rekening houden met het materiaal.

Plaatwerk (Sheet Metal)

Functies voor flanges, hems, fold/unfold/refold, materiaaluitsparingen, flat patterns, ondiepe prismatische pockets, exacte DXF-outlines (lijn/boog/cirkel) en buigtabellen.

Bestanden en Export

  • Eigen formaat: Design containers (.solidcraft) met lossless binary mesh payloads. Plain JSON wordt ondersteund voor openen, 'Opslaan als' en export.
  • Export: STEP (AP242 met bodysnamen, kleuren en componenten), IGES 5.3 (manifold solid B-reps), 3MF, STL (binary/ASCII) en OBJ.
  • Import: STEP (AP203/AP214/AP242 solids, assemblies, units, namen, kleuren) en IGES (manifold solid B-reps of trimmed/bounded surfaces) als basis-feature. 3MF, STL en OBJ worden geïmporteerd als mesh-bodies.
  • Mesh conversie: "Convert Mesh" reconstrueert gesloten onderdelen met een constante sectie als parametrische solids.

Interface en Tools

Desktop Applicatie

Gebouwd met egui en wgpu. Bevat een toolbar met workspace-tabs, browser, tijdlijn, 3D-viewport (met as-weergave en navigatiebalk), schetstools, feature-dialogen en een command palette. Er is een JSON-lines controlekanaal aanwezig voor aansturing door agents en tests.

Headless CLI (solidcraft-cli)

Hiermee kunnen commando-scripts worden uitgevoerd, metingen worden gedaan (volume, oppervlakte, zwaartepunt), export worden gedaan, PNG-snapshots worden gemaakt en referentie-recepten worden afgespeeld.

AI Agents (MCP)

solidcraft-cli mcp fungeert als een Model Context Protocol server op stdio.

  • Headless: Draait een eigen design-sessie.
  • Connected: Met --connect 127.0.0.1:PORT stuurt het de actieve desktop-app aan.
  • Tools: listcommands, execute, batch, inspectdesign, measure, bodytopology, setparameter, screenshot, export, undo, redo, new_design, open, save.

Hardwareondersteuning

SolidCraft detecteert 3Dconnexion SpaceNavigator of SpaceMouse via de multi-axis HID interface.

  • Windows/Linux: Ondersteuning voor pan, zoom en rotatie van de 3D-view.
  • Linux specifieke setup: Vereist een udev-regel voor toegang tot /dev/hidrawN (bijv. SUBSYSTEM=="hidraw", ATTRS{idVendor}=="256f", TAG+="uaccess").

Technische Details

Build en Run

cargo run --release -p solidcraft -- --sample          # Desktop app met voorbeelddeel
cargo run --release -p solidcraft-cli -- commands      # Commando register
cargo run --release -p solidcraft-cli -- run examples/bracket.json --out bracket.step
cargo run --release -p solidcraft-cli -- snapshot examples/bracket.json --out bracket.png
cargo run --release -p solidcraft -- part.step          # Open STEP-bestand als nieuw design
cargo run --release -p solidcraft-cli -- eval part.step # Meet geïmporteerd STEP-bestand
cargo xtask ci                                          # fmt, clippy, tests, assets, layers, wasm

Scripting

Een script is een JSON-lijst van commando's:

{
  "commands": [
    {"command": "sketch.create", "params": {"plane": "XY"}},
    {"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [40, 30]}},
    {"command": "solid.extrude", "params": {"distance": 20}},
    {"command": "solid.fillet", "params": {"edges": [[0, 0, 10]], "radius": 3}}
  ]
}

Architectuur

LaagCratesRol
L0geomVectoren, vlakken, profielen, meshes en hun metingen
L1sketch, kernel, renderConstraint solver en profielen; B-rep kernel boundary; view math en CPU rasterizer
L2docParameters, expressies, feature tijdlijn en incrementele evaluatie
L3ioDesign-bestanden, export (STL/OBJ/STEP/3MF), import (STEP en 3MF/STL)
L4engineDe sessie en het commando register
L5ui-egui, mcpDesktop front-end; MCP server (headless of bridged)
Appssolidcraft, solidcraft-cliDesktop app, headless CLI

Licentie en Juridische Informatie

SolidCraft is beschikbaar onder de MIT of Apache-2.0 licentie. De software is ontwikkeld volgens clean-room regels; code en assets van derden behouden hun eigen licenties.

SolidCraft is onafhankelijk. Het gedrag is ontworpen op basis van publieke documentatie, algemene CAD-conventies en gebruikersfeedback. SolidCraft is niet gelieerd aan, gesponsord door of onderschreven door Autodesk. Autodesk en Fusion zijn handelsmerken van Autodesk, Inc.