# amcax-daemon **Repository Path**: accelerator_v8/amcax-daemon ## Basic Information - **Project Name**: amcax-daemon - **Description**: AMCAX-Daemon, showcases how to build a CAX software based on AMCAX geometry kernel. - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2024-09-23 - **Last Updated**: 2024-12-22 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 九韶精灵 简介 [](./README.md) [](./README.zh_cn.md) **版本 1.0.3** 九韶精灵展示了九韶几何内核支持的一些基本功能。 内核支持更多更丰富的功能,但目前九韶精灵中还暂未使用。 请注意,此项目并不包含 AMCAX 几何内核的使用许可证,您需要到[九韶官网](https://amcax.net/)自行申请许可证。 ## 目录 - [如何使用](#如何使用) - [用户界面](#用户界面) - [创建 / 删除 / 移动几何对象](#创建-删除-移动几何对象) - [修改几何对象](#修改几何对象) - [持久化几何对象](#持久化几何对象) - [辅助功能](#辅助功能) - [如何构建](#如何构建) - [前提条件](#前提条件) - [步骤](#步骤) - [教程](#教程) - [代码结构概述](#代码结构概述) - [创建几何对象](#创建几何对象) - [修改几何对象](#修改几何对象-1) - [持久化几何对象](#持久化几何对象) - [已知问题](#已知问题) - [许可证](#许可证) - [联系我们](#联系我们) ## 如何使用 ### 用户界面 - 九韶精灵的各项操作区域  ### 创建 / 删除 / 移动几何对象 - 要创建一个新的几何对象 激活 **BRep** 选项卡并选择对象类型,然后: - 对于面类型:按顺序点击渲染区域,指定多个点,完成后按 `回车` - 对于其他类型:将会出现一个对话框,在对话框中指定几何对象的参数并点击 `确认` - 要删除对象,选择对象并按 `删除` 键。 - 要移动对象,选择对象,按住鼠标左键,移动到目标点,然后释放按钮 ### 修改几何对象 - 要编辑对象,左侧有编辑工具栏,从工具栏中选择操作类型,依次选中要操作的对象并按 `回车` 键确认操作。 ### 持久化几何对象  - **保存**:将对象以 `*.amcax` 格式保存,这是 AMCAX 的专有格式,支持 TMSpline, SubD, BRep。 - **另存为**:将对象以 `*.amcax`,`*.stp` `*step` 格式保存。 - **保存选中**:可以选择将对象以 `*.amcax`,`*.stp` `*step` 格式保存。 - 上述所有相关功能都位于`文件`菜单下。 ### 辅助功能 - 改变视角 - 旋转:按住右键并移动以调整 - 平移:按下左/右/上/下键调整 - 撤销/重做 ## 如何构建 ### 前提条件 - CMake 3.27 + - Visual Studio 2019 - 扩展: Qt VS Tool (请配置 Qt Versions) - QT 5.15.2 - 添加 qmake 路径(例如:D:\Qt\5.15.2\msvc2019_64\bin)到 `PATH` 环境变量。 - [九韶几何内核](https://amcax.net/) 3.6.1 ### 步骤 - 设置环境变量 **CMAKE_PREFIX_PATH=%YOUR_QT_INSTALL_DIR%\\msvc2019%YOUR_CPU_ARCH%\\lib\\cmake** 例如: `d:\\qt\\5.15.2\\msvc2019\_64\\lib\\cmake\\` - 添加九韶几何内核库 解压库并将其放在此项目根文件夹的相应位置。文件夹结构应如下所示: ```text Amcax-Daemon |----------AMCAX |----------|----------include |----------|----------lib |----------|----------bin |----------Resources |----------Src |----------third_party |----------... |----------CMakeLists.txt ``` - 打开 "Visual Studio 2019" 并选择 `continue without code`,导航到 `File` -> `Open` -> `CMake...` 然后打开此项目的 `CMakeLists.txt` 文件。 - 构建 - 将 AMCAX/bin 中的文件夹(`Debug` & `Release`)复制到项目的输出文件夹中。 - 运行 AmcaxDaemon.exe ## 教程 ### 代码结构概述 AMCAX daemon 的代码结构如下。
图三: 代码结构
它基于 AMCAX Kernel SDK 和 OpenGL。从底层到上层: - [`Operation`](./Src/Operation/)文件夹中是一些辅助类,它们直接调用内核 SDK 的 API 来创建几何对象,[`ObjectDraw`](./Src/ObjectDraw/)目录下是利用 OpenGL 绘制目标对象的类; - [`Object`](./Src/Object/)目录中提供了内核集合对象的包装类,这些包装类使用`Operation`和`ObjectDraw`目录中相应的类来支持对几何对象的操作和图形展示。 - [`Core`](./Src/Core/)目录中包含了一个`DataManager`,用于管理所有创建好的几何对象,以及`UndoManager`用于支持“撤销/重做”,而`ACAMFile`中则实现了几何对象的持久化。 - [`Windows`](./Src/Windows/)目录包含与用户交互相关的类,目前利用 libqglviewer 进行相机/投影相关的坐标轴变换。 ### 创建几何对象 使用 AMCAX 内核创建对象非常简单: ```cpp std::vector