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日 |
#1405 in 数学
115KB
2.5K SLoC
Fornjot
关于
Fornjot是一个 早期的CAD内核,使用 边界表示(B-rep),用Rust编程语言编写。
作为一个CAD内核,该项目的主要目标是提供 一个稳固的基础,供开发者在此基础上构建,无论是为特定工具、扩展Fornjot功能集的第三方库,还是功能齐全的CAD应用程序。
在这样做的时候,Fornjot遵循以下原则
- 关注 机械CAD应用程序,如3D打印、加工、木工;而不是其他用例,如建筑或电子。
- 优先考虑 可靠性而不是功能。你可以做的任何事情都应该按预期工作,或者产生一个明确且可操作的错误。
- 保持 Rust中直接定义模型的友好API。这意味着代码优先的CAD建模(或代码-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
:所有以下包的重导出的一体化 API。fj-math
:Fornjot 其他部分使用的数学原语。fj-interop
:允许其他包互相操作的基本类型,而不依赖于彼此。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
替换为其他支持的文件格式)。 - 要查看完整的命令行选项,请运行
cargo run -p cuboid -- --help
(所有模型都有相同的命令行接口,因此它们之间不应有太大差异)。
社区
如果您对 Fornjot 感兴趣,请考虑加入我们的社区。我们非常欢迎您加入我们!
请访问网站上的 社区页面 获取我们的联系方式!
参与进来
如果您有兴趣帮忙,只需fork GitHub 仓库中的一个,并提交一个 pull request。
如果您不知道要做什么,请查看 good first issues
。如果您需要更多指导,请查看 贡献指南,或者直接提问!
许可证
该项目是开源的,遵循 零条款 BSD 许可证(0BSD,简称)。这基本上意味着您可以对其进行任何操作,没有任何限制,但您不能追究作者的任何责任。
有关详细信息,请参阅 LICENSE.md。
依赖项
~10MB
~201K SLoC