diff --git a/Alice b/Alice index fe6137f6..ac4cc938 160000 --- a/Alice +++ b/Alice @@ -1 +1 @@ -Subproject commit fe6137f6b32ba81e7da976ce0b0ea22650a20732 +Subproject commit ac4cc93877173e343b8afa00fa511232345fc3f5 diff --git a/Docs/screenshots/home_workbench.png b/Docs/screenshots/home_workbench.png new file mode 100644 index 00000000..96bc1fff Binary files /dev/null and b/Docs/screenshots/home_workbench.png differ diff --git a/README.ja.md b/README.ja.md index a39eeb0e..373c1129 100644 --- a/README.ja.md +++ b/README.ja.md @@ -1,3 +1,16 @@ +

+ SolidDesigner +

+ + +

+ License + C++ + Kernel + UI + Platform +

+ # SolidDesigner **パラメトリック CAD、高忠実度 CAE、トポロジー最適化のためのオープンソース・プラットフォーム — シミュレーション駆動設計と AI アシストを統合。** @@ -17,6 +30,7 @@ ## Table of Contents - [ビジョンとスコープ](#vision--scope) +- [製品概要](#product-overview) - [同梱内容](#whats-in-the-box) - [プロジェクト構成とアーキテクチャ](#project-layout--architecture) - [コア概念](#core-concepts) @@ -49,6 +63,25 @@ SolidDesigner は、**フルスタックかつエンジニアリング品質** --- +## Product Overview + +SolidDesigner(ブランド:**Breptera**)は、再利用可能な **Alice** プラットフォーム上に構築された、**デスクトップ/ワークベンチ指向**の CAD アプリケーションです。 + +

+ SolidDesigner Home Workbench +

+ +**ユーザー向けの目標** + +- **Creo/NX 風ワークフロー**:ワークベンチ、リボンコマンド、ドッキングパネル、MDI ビューポート。 +- **パラメトリック基盤**:フィーチャ履歴ツリー、スケッチ/拘束、リビルド&再生成パイプライン(WIP)。 +- **エンジニアリング優先**:材料、荷重/境界条件、メッシュ制御、解析結果を運べる **CAD データモデル**(計画)。 +- **カーネルに裏付けられたジオメトリ**:既定の B‑Rep と可視化は **OpenCascade (OCCT)**。プラットフォーム層ではマルチバックエンド描画をサポートします。 + +> 上のスクリーンショットは現在の UI 方向性(Home Workbench + 学習/探索パネル)を示します。プレアルファ段階のためレイアウトは短いサイクルで変化します。 + +--- + ## What’s in the Box - **基盤サブモジュール(“Alice”)**を含む、モダンな C++17/20 コードベース。 @@ -156,77 +189,107 @@ https://hananiah.atlassian.net/jira/software/c/projects/AL/boards/3 ## Build & Run -### Prerequisites (indicative) +このリポジトリには、`../SolidDesigner_Build/` にビルドツリーを生成する **ワンクリックのビルドスクリプト**が同梱されています。 + +### Prerequisites (current) -- **CMake ≥ 3.22** -- **C++17/20** ツールチェーン(MSVC v143、Clang 15+、または GCC 11+) -- **Qt 5**(UI 用。計画中/ヘッドレスツールをビルドする場合は任意) -- **Eigen**(数学)、**fmt**、**spdlog** -- **OpenCascade(OCC)**(B-Rep の主ジオメトリバックエンド。将来的に差し替え可能にする想定) -- **(任意)** VTK/OCCT 表示、CGAL/Gmsh/TetGen メッシング、OpenMP/TBB 並列化、CUDA GPU パス +- **CMake ≥ 3.31** + - Windows:リポジトリに `ToolChain/cmake` として同梱(`AutoGenerateVsProject.bat` が利用) + - Linux:新しめの CMake をシステムにインストール(または独自ツールチェーンを使用) +- **C++17 ツールチェーン**:MSVC v143 / GCC 11+ / Clang 15+ +- **Qt 5.15.x**(Core, Gui, Widgets, Network, Quick, Qml) +- **OpenCascade (OCCT) SDK**:OCCT Viewer バックエンド用(下記 SDK レイアウト参照) -> 正確なバージョンやオプションは変わる可能性があります。最新のビルドノートは JIRA/Wiki を参照してください。 +### Windows (Visual Studio 2022, x64) -### Get the source +1. サブモジュール込みでクローン: ```bash git clone --recurse-submodules https://github.com/hananiahhsu/SolidDesigner.git cd SolidDesigner -# --recurse-submodules を忘れた場合 -git submodule update --init --recursive ``` -### Windows (MSVC, x64) +2. 実行: -```bash -cmake -S . -B build -G "Visual Studio 17 2022" -A x64 ^ - -DCMAKE_INSTALL_PREFIX=%CD%/install ^ - -DSD_WITH_QT=ON ^ - -DSD_WITH_OCC=ON +- `AutoGenerateVsProject.bat`(`../SolidDesigner_Build/SolidDesigner.sln` を生成して Visual Studio を起動) -cmake --build build --config Release --parallel -cmake --install build --config Release -``` +3. Visual Studio で `Release|x64` 構成をビルドし、`SolidDesigner` を実行します。 + +### Linux (Makefiles) -### Linux (GCC/Clang + Ninja) +実行: ```bash -cmake -S . -B build -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=$PWD/install \ - -DSD_WITH_QT=ON \ - -DSD_WITH_OCC=ON - -cmake --build build --parallel -cmake --install build +./SolidDesignerForLinux.sh ``` -アプリの実行(パスは環境により異なる場合があります): +このスクリプトは `Unix Makefiles` で構成・ビルドし、`../SolidDesigner_Build/` に出力します。 + +> 注意:現状スクリプトは `-DCMAKE_GENERATOR_PLATFORM=x64` を渡していますが、これは Visual Studio 向けのオプションであり Linux では無視される場合があります。問題が出る場合は次の「Manual CMake」で構成してください。 + +### Manual CMake (recommended when customizing toolchains) ```bash -# Windows -install/bin/SolidDesigner.exe +cmake -S . -B ../SolidDesigner_Build -G "Ninja" -DCMAKE_BUILD_TYPE=Release +cmake --build ../SolidDesigner_Build --parallel +``` -# Linux -./install/bin/SolidDesigner +### Third‑party SDK layout (OCCT) + +OCCT Viewer バックエンドは、OpenCascade SDK が次の場所にエクスポートされていることを前提とします: + +``` +Externals/3rdParty/sdk///occt +``` + +既定の `` 値(上書き可能): + +- Windows:`msvc2022-x64-md` +- Linux:`linux-x64` + +CMake から上書きできます: + +- `-DSD_3P_PLATFORM=...` +- `-DSD_3P_CFG=Debug|Release` +- または、`OpenCASCADEConfig.cmake` を含むフォルダへ `-DOpenCASCADE_DIR=...` を直接指定します。 + +### Qt + +UI ターゲットは現在 **Qt 5** を使用しています(CMake 内で `Qt5::Core`、`Qt5::Widgets`、`Qt5::Quick/Qml` 等)。 +Windows では一部モジュールが `Qt5.15.x` 向け `CMAKE_PREFIX_PATH` を既定設定している場合があります。必要に応じてローカルの Qt インストールに合わせて調整してください。 + +# --recurse-submodules を忘れた場合 + +すでにクローン済みのリポジトリで、次を実行してください: + +```bash +git submodule update --init --recursive ``` --- ## Dependencies -本プロジェクトは **モジュラー設計**で、多くのサードパーティ依存は任意(プラグイン化/差し替え)です。 +本プロジェクトはモジュラー構成です。いくつかのライブラリは **リポジトリ内に同梱(vendored)**され、いくつかは **外部 SDK** として導入します。 + +### Open-source Stack & Licenses + +| ライブラリ | 用途 | 位置 | ライセンス(上流) | +|---|---|---|---| +| **OpenCascade (OCCT)** | B‑Rep カーネル + OCCT Viewer バックエンド | `Alice/Core/Runtime/AliceRenderBackendOCCViewer` | LGPL‑2.1 with OCCT exception(上流) | +| **Qt 5 (Widgets/Quick/Qml)** | デスクトップ UI(リボン、パネル、ダイアログ) | `Designer/UI/*`, `Alice/UI/QFrameWork/*` | GPL/LGPL/Commercial(Qt) | +| **spdlog** | ロギングバックエンド | `Alice/Core/Foundation/AliceBasicTool/*SpdLog*` | MIT | +| **fmt** | 文字列フォーマット | `Alice/Core/Foundation/AliceBasicTool/*Fmt*` | MIT | +| **Open Sans** | リボン用フォントアセット | `Alice/UI/QFrameWork/AliceRibbon/OpenSans` | Apache‑2.0 | +| | | | | +| | | | | -- **Geometry**:OpenCascade(デフォルト)。将来のカーネル差し替えに備えた抽象化。 -- **Math**:Eigen -- **I/O**:fmt -- **Logging**:spdlog(バックエンド)、“Alice” 内の統一診断ファサード -- **UI**:Qt 6(widgets/QtQuick — TBD) -- **Meshing**:OCCT メッシャ、Gmsh、TetGen(アダプタ計画) -- **Solvers**:内製 FEA/CFD、外部ソルバへのアダプタ(将来) -- **Visualization**:OCCT/VTK(計画) +> **ライセンス注意**:SolidDesigner は **GPLv3** ですが、組み込み/必須の依存には LGPL/MIT/Apache が含まれます。バイナリ配布時は各上流ライセンスの条件(動的リンク義務、告知、ソース提供など)に従ってください。 -`-DSD_WITH_=ON/OFF` の CMake オプション(`CMakeLists.txt` 参照)でモジュールを切り替えます。 +### Optional / planned adapters (not required for a minimal build) + +- **OGRE / OSG / VTK / Skylark** の描画バックエンドはプラットフォームモジュールとして存在します(`Alice/Core/Runtime/AliceRenderBackend*`)。ただし追加 SDK が必要な場合があり、まだ進化中です。 +- **メッシング/ソルバ**(FEA/CFD/最適化)は設計・実装が進行中で、アダプタは段階的に導入されます。 --- @@ -321,9 +384,6 @@ CAD/CAE/CFD/最適化の分野に貢献している開発者・研究者の皆 ## FAQ -**商用ツール(Creo など)にどれくらい近いですか?** -コアワークフローでの同等性を目指しつつ、モダンでオープンなアーキテクチャを採用します。現時点では pre-alpha で、機能の多くは WIP です。 - **スクリプト API はありますか?** Python API は計画中です。内部の足場はありますが、公開 API は今後整備します。 diff --git a/README.md b/README.md index ff02e9e8..fc7634e2 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,25 @@ -# SolidDesigner +

+ SolidDesigner +

-## [English](README.md) | [日本語](README.ja.md) | [Français](README.fr.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Русский](README.ru.md) -**An open‑source platform for parametric CAD, high‑fidelity CAE, and topology optimization — with simulation‑driven design and AI assistance.** +

+ License + C++ + Kernel + UI + Platform +

+ +

+ Open-source, engineering-grade platform for parametric CAD and simulation-driven design
+ Feature-based modeling • CAE-ready data model • Optimization-first architecture +

+ + +## [English](README.md) | [日本語](README.ja.md) | [Français](README.fr.md) | [Deutsch](README.de.md) | [Español](README.es.md) | [Русский](README.ru.md) -> Goal: a professional‑grade system comparable to Creo Parametric that supports solid/surface modeling, assembly, drafting, structural mechanics, CFD, multiphysics, and optimization — where simulations can drive the design itself. +> Goal: a professional‑grade system that supports solid/surface modeling, assembly, drafting, structural mechanics, CFD, multiphysics, and optimization — where simulations can drive the design itself. --- @@ -19,6 +34,7 @@ ## Table of Contents - [Vision & Scope](#vision--scope) +- [Product Overview](#product-overview) - [What’s in the Box](#whats-in-the-box) - [Project Layout & Architecture](#project-layout--architecture) - [Core Concepts](#core-concepts) @@ -26,6 +42,7 @@ - [Roadmap](#roadmap) - [Build & Run](#build--run) - [Dependencies](#dependencies) + - [Open-source Stack & Licenses](#open-source-stack--licenses) - [Getting Started](#getting-started) - [Plugin & Scripting](#plugin--scripting) - [Data & File Formats](#data--file-formats) @@ -51,6 +68,25 @@ SolidDesigner aims to be a **full‑stack, engineering‑grade** CAD/CAE platfor --- +## Product Overview + +SolidDesigner (brand: **Breptera**) is a **desktop, workbench‑oriented** CAD application built on the reusable **Alice** platform. + +

+ SolidDesigner Home Workbench +

+ +**User-facing goals** + +- **Workflow**: workbenches, ribbon commands, dockable panels, and MDI viewports. +- **Parametric foundation**: feature history tree, sketches/constraints, rebuild & regeneration pipeline (WIP). +- **Engineering-first**: CAD data model designed to carry **materials, loads/BCs, mesh controls, and analysis results** (planned). +- **Kernel-backed geometry**: default B‑Rep and visualization via **OpenCascade (OCCT)**; multi‑backend rendering is supported at the platform level. + +> The screenshot above reflects the current UI direction (Home Workbench + discovery/learning panel). The exact layout evolves quickly during pre‑alpha. + +--- + ## What’s in the Box - A modern C++17/20 codebase with a **foundation submodule (“Alice”)**. @@ -160,78 +196,99 @@ Detailed design docs live in **Confluence** (access required). A public subset l ## Build & Run -### Prerequisites (indicative) +This repo ships **one-click build scripts** that generate a build tree under `../SolidDesigner_Build/`. -- **CMake ≥ 3.22** -- **C++17/20** toolchain (MSVC v143, Clang 15+, or GCC 11+) -- **Qt 5 (for UI; planned/optional if building headless tools) -- **Eigen** (math), **fmt**, **spdlog** -- **OpenCascade (OCC)** for B‑Rep (primary geometry backend; alternatives pluggable in future) -- **(Optional)** VTK/OCCT visualization, CGAL/Gmsh/TetGen for meshing, OpenMP/TBB for parallelism, CUDA for GPU paths +### Prerequisites (current) -> Exact versions and options may evolve; consult JIRA/Wiki for up‑to‑date build notes. +- **CMake ≥ 3.31** + - Windows: repo bundles CMake under `ToolChain/cmake` (used by `AutoGenerateVsProject.bat`) + - Linux: install a recent system CMake (or use your own toolchain) +- **C++17 toolchain**: MSVC v143 / GCC 11+ / Clang 15+ +- **Qt 5.15.x** with modules: Core, Gui, Widgets, Network, Quick, Qml +- **OpenCascade (OCCT) SDK** for the OCCT viewer backend (see SDK layout below) -### Get the source +### Windows (Visual Studio 2022, x64) + +1. Clone with submodules: ```bash git clone --recurse-submodules https://github.com/hananiahhsu/SolidDesigner.git cd SolidDesigner -# If you forgot --recurse-submodules -git submodule update --init --recursive ``` -### Windows (MSVC, x64) +2. Run: -```bash -cmake -S . -B build -G "Visual Studio 17 2022" -A x64 ^ - -DCMAKE_INSTALL_PREFIX=%CD%/install ^ - -DSD_WITH_QT=ON ^ - -DSD_WITH_OCC=ON +- `AutoGenerateVsProject.bat` (generates `../SolidDesigner_Build/SolidDesigner.sln` and opens Visual Studio) -cmake --build build --config Release --parallel -cmake --install build --config Release -``` +3. Build the `Release|x64` configuration in Visual Studio, then run `SolidDesigner`. + +### Linux (Makefiles) -### Linux (GCC/Clang + Ninja) +Run: ```bash -cmake -S . -B build -G Ninja \ - -DCMAKE_BUILD_TYPE=Release \ - -DCMAKE_INSTALL_PREFIX=$PWD/install \ - -DSD_WITH_QT=ON \ - -DSD_WITH_OCC=ON - -cmake --build build --parallel -cmake --install build -**Headless/CI builds**: If you don't have Qt available, disable the GUI target with `-DSD_BUILD_DESIGNER=OFF`. +./SolidDesignerForLinux.sh ``` -Run the app (paths may differ): +This script configures and builds using `Unix Makefiles` and outputs to `../SolidDesigner_Build/`. + +> Note: the script currently passes `-DCMAKE_GENERATOR_PLATFORM=x64`, which is a Visual Studio option and may be ignored on Linux toolchains. If you hit issues, run CMake manually (next section). + +### Manual CMake (recommended when customizing toolchains) ```bash -# Windows -install/bin/SolidDesigner.exe +cmake -S . -B ../SolidDesigner_Build -G "Ninja" -DCMAKE_BUILD_TYPE=Release +cmake --build ../SolidDesigner_Build --parallel +``` + +### Third‑party SDK layout (OCCT) -# Linux -./install/bin/SolidDesigner +The OCCT viewer backend expects OpenCascade SDK exported to: + +``` +Externals/3rdParty/sdk///occt ``` +Default `` values (can be overridden): + +- Windows: `msvc2022-x64-md` +- Linux: `linux-x64` + +You can override from CMake: + +- `-DSD_3P_PLATFORM=...` +- `-DSD_3P_CFG=Debug|Release` +- or directly point `-DOpenCASCADE_DIR=...` to the folder containing `OpenCASCADEConfig.cmake`. + +### Qt + +The UI targets currently use **Qt 5** (e.g. `Qt5::Core`, `Qt5::Widgets`, `Qt5::Quick/Qml` in CMake). +On Windows, some modules set a default `CMAKE_PREFIX_PATH` for `Qt5.15.x`; adjust it to your local Qt install if needed. + --- ## Dependencies -This project is **modular**: most third‑party libraries are optional or pluggable. +The project is modular: some libraries are **vendored in-tree**, while others are expected as **external SDKs**. -- **Geometry**: OpenCascade (default); abstractions allow future kernels -- **Math**: Eigen -- **I/O**: fmt -- **Logging**: spdlog (backend), unified diagnostics facade in “Alice” -- **UI**: Qt 6 (widgets/QtQuick — TBD) -- **Meshing**: OCCT mesher, Gmsh, TetGen (adapters planned) -- **Solvers**: in‑house FEA/CFD; adapters to external solvers (future) -- **Visualization**: OCCT/VTK (planned) +### Open-source Stack & Licenses -Use `-DSD_WITH_=ON/OFF` CMake options (see `CMakeLists.txt`) to toggle modules. +| Library | Used for | Where | License (upstream) | +|---|---|---|---| +| **OpenCascade (OCCT)** | B‑Rep kernel + OCCT viewer backend | `Alice/Core/Runtime/AliceRenderBackendOCCViewer` | LGPL‑2.1 with OCCT exception (upstream) | +| **Qt 5 (Widgets/Quick/Qml)** | Desktop UI (ribbon, panels, dialogs) | `Designer/UI/*`, `Alice/UI/QFrameWork/*` | GPL/LGPL/commercial (Qt) | +| **spdlog** | Logging backend | `Alice/Core/Foundation/AliceBasicTool/*SpdLog*` | MIT | +| **fmt** | String formatting | `Alice/Core/Foundation/AliceBasicTool/*Fmt*` | MIT | +| **Open Sans** | UI font assets for ribbon | `Alice/UI/QFrameWork/AliceRibbon/OpenSans` | Apache‑2.0 | +| | | | | +| | | | | + +> **License note**: SolidDesigner is **GPLv3**, but some embedded/required dependencies are LGPL/MIT/Apache. When distributing binaries, you must comply with each upstream license (dynamic linking obligations, notices, source availability, etc.). + +### Optional / planned adapters (not required for a minimal build) + +- **OGRE / OSG / VTK / Skylark** render backends exist as platform modules (`Alice/Core/Runtime/AliceRenderBackend*`) but may require additional SDKs and are still evolving. +- **Meshing / solvers** (FEA/CFD/optimization) are under active design; adapters will be introduced incrementally. --- @@ -326,9 +383,6 @@ Special thanks to contributors and researchers in CAD/CAE/CFD/optimization. ## FAQ -**How close is this to production tools like Creo?** -The aspiration is parity for core workflows with a modern, open architecture. Today the project is pre‑alpha; many capabilities are WIP. - **Is there a scripting API?** A Python API is planned. Early internal scaffolding exists; public API is forthcoming.