43 次重大版本发布

0.49.0 2024 年 3 月 21 日
0.48.0 2023 年 12 月 15 日
0.47.0 2023 年 6 月 20 日
0.42.0 2023 年 3 月 27 日
0.9.0 2022 年 7 月 25 日

#323数学 类别中

Download history 68/week @ 2024-04-08 62/week @ 2024-04-15 69/week @ 2024-04-22 42/week @ 2024-04-29 61/week @ 2024-05-06 85/week @ 2024-05-13 105/week @ 2024-05-20 61/week @ 2024-05-27 124/week @ 2024-06-03 85/week @ 2024-06-10 109/week @ 2024-06-17 84/week @ 2024-06-24 35/week @ 2024-07-01 5/week @ 2024-07-08 50/week @ 2024-07-15 36/week @ 2024-07-22

135 每月下载量
11 Crates(9 个直接使用)使用

0BSD 许可证

84KB
2K SLoC

Fornjot

博客 | 社区 | 贡献指南

关于

Fornjot 是一个 早期阶段的 CAD 内核,使用 边界表示(b-rep),用 Rust 编程语言编写。

作为一个 CAD 内核,项目的主要目标是提供 一个坚实的开发基础,无论用于专用工具、扩展 Fornjot 功能的第三方库,还是功能齐全的 CAD 应用程序。

在这样做的时候,Fornjot 遵循以下原则

  • 专注于 机械 CAD 应用,如 3D 打印、加工、木工;而不是其他用例,如建筑或电子。
  • 优先考虑 可靠性而非功能。你可以做到的事情要么按预期工作,要么导致明确的可操作错误。
  • 维护 Rust 中直接定义模型的友好 API。这意味着首先编写代码的 CAD 建模(或 Code-CAD)是原生支持的。
  • 通过启用第三方 API,支持 其他语言中的首先编写代码的 CAD 建模

Fornjot 仍在开发中,并不总是能满足这些雄心。尽管如此,这些是项目遵循的优先事项。

更多信息,请 查看网站

赞助商

Fornjot 由以下人员支持:@MitchellHansen@webtrax-oz@seanjensengrey@reivilibre@lthiery@ahdinosaur@martindederer@bollian@sucaba@nullstyle@tachiniererin@HalfVoxel@MattOslin@jminer@voxpelli@U007D@guillaumechauvat@mayfieldiv@bglw@hansihe@romixlab@krl 以及 我的其他赞助者。感谢你们!

请考虑 支持我,以帮助 Fornjot 长期可持续发展。

目录

状态

Fornjot 可以用于简单的模型(请参阅 示例),但目前尚缺乏更高级功能。正在努力改变这一点。

概述

Fornjot 拥有模块化架构,允许您选择使用其中的哪些部分。它由以下库组成

  • fj:导出以下所有 crate 的综合 API。
  • fj-math:Fornjot 其他部分使用的数学原语。
  • fj-interop:允许其他 crate 互操作的基本类型,而无需相互依赖。
  • fj-core:核心原语及其在原语上运行的代码。
  • fj-export:将 Fornjot 模型导出到外部数据格式。
  • fj-viewer:显示 Fornjot 模型。
  • fj-window:用于与 fj-viewer 一起使用的简单窗口抽象。

用法

Fornjot 是一组 Rust 库(见上面列表)。如何使用这些库的官方文档是它们的参考文档。每个库的 crates.io 页面(见上面列表)链接到这些文档。

如果您想使用 Fornjot 在 Rust 中创建特定模型,最佳起点是这个存储库中的 示例模型

  • 要显示一个模型,运行 cargo run -p cuboid(将 cuboid 替换为您想要显示的模型的名称)。
  • 要导出模型,请运行cargo run -p cuboid -- --export model.3mf(将cuboid替换为你想要导出的模型的名称;可选地将3mf替换为其他支持的文件格式)。
  • 要查看完整的CLI选项,请运行cargo run -p cuboid -- --help(所有模型都具有相同的CLI接口,所以它们之间不会有太大的差异)。

社区

如果你对Fornjot感兴趣,请考虑加入我们的社区。我们非常希望你能加入我们!

请访问网站上的社区页面获取我们的联系方式!

参与进来

如果你想要帮忙,只需在GitHub仓库中fork一个项目,然后提交一个pull request

如果你不知道要做什么,请查看good first issues。如果你需要更多的指导,请查看贡献指南或直接提问

许可证

此项目是开源的,根据Zero Clause BSD License(0BSD,简称)许可。这意味着你可以无限制地使用它,但不能因问题而追究作者的责任。

有关详细信息,请参阅LICENSE.md

依赖关系

~7.5MB
~155K SLoC