48次重大发布
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.2.0 | 2021年7月7日 |
#822 in 数学
在 4 crates 中使用
1.5MB
14K SLoC
Fornjot
关于
Fornjot是一个使用边界表示(b-rep)的 早期CAD内核,用Rust编程语言编写。
作为一个CAD内核,项目的主要目标是提供一个 坚固的基础,供开发者在上面构建,无论是特殊用途的工具、扩展Fornjot功能集的第三方库,还是功能齐全的CAD应用程序。
在此过程中,Fornjot遵循以下原则:
- 专注于 机械CAD应用,如3D打印、加工、木工;而不是其他用例,如建筑或电子。
- 优先考虑 可靠性而非特性。你可以做任何事情,要么按预期工作,要么产生清晰且可操作的错误。
- 保持 友好的API,以便直接在Rust中定义模型。这意味着优先支持代码优先的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
。如果您需要更多指导,请查看贡献指南,或直接询问!
许可证
本项目是开源项目,遵循零条款BSD许可证(0BSD,简称)。这意味着您可以自由使用它,没有任何限制,但您不能因问题追究作者的责任。
有关详细信息,请参阅LICENSE.md。
依赖项
~32–68MB
~1M SLoC