40个重大版本
0.46.0 | 2023年5月8日 |
---|---|
0.44.0 | 2023年4月25日 |
0.42.0 | 2023年3月27日 |
0.29.0 | 2022年12月19日 |
0.9.0 | 2022年7月25日 |
#10 in #code-cad
324每月下载量
用于 3 个crate(2个直接)
370KB
8K SLoC
Fornjot
关于
Fornjot是一个旨在创建一个 下一代、以代码为主的CAD应用 的 早期项目。因为 世界需要另一个CAD程序。
关于项目的目标,请 查看网站。
赞助商
Fornjot 由以下人员支持:@webtrax-oz,@reivilibre,@lthiery,@ahdinosaur,@martindederer,@bollian,@rozgo,@nullstyle,@tachiniererin,@sucaba,@Kethku,@jessebraham,@seanjensengrey,@MattOslin,@benwis,@happysalada,@jminer,@jeevcat,@voxpelli,@U007D,@guillaumechauvat,@MitchellHansen,@mayfieldiv,@ksindi,以及 我的其他赞助者。谢谢!
请考虑 支持我,帮助 Fornjot 持续发展。
目录
状态
Fornjot 正在积极开发,但仍然是实验性的。目前的工作重点是为用户提供一套稳定的 CAD 基础功能集。
如果您对 Fornjot 感兴趣并考虑使用它,您应该完全预计到会立即遇到限制。除非您愿意为其开发做出贡献,否则最好是等一年或十年,等待其成熟。有关当前限制和未来可能实现的功能改进的更多信息,请 查看开放问题。
有关项目的长期方向,请参阅 路线图。
特性
Rust 优先的 CAD
模型被定义为 Rust 代码。为了确保编译速度快,它们被单独编译,并作为插件加载到 Fornjot 应用程序中。
use fj::syntax::*;
#[fj::model]
pub fn model(
#[param(default = 1.0, min = inner * 1.01)] outer: f64,
#[param(default = 0.5, max = outer * 0.99)] inner: f64,
#[param(default = 1.0)] height: f64,
) -> fj::Shape {
let outer_edge = fj::Sketch::from_circle(fj::Circle::from_radius(outer));
let inner_edge = fj::Sketch::from_circle(fj::Circle::from_radius(inner));
let footprint = outer_edge.difference(&inner_edge);
let spacer = footprint.sweep([0., 0., height]);
spacer.into()
}
这是 spacer 模型 的代码。
基本建模功能
目前,Fornjot 支持基本的 2D 形状(由线段、圆以及它们之间有限的组合制成的草图),并将这些 2D 形状沿直线路径扫掠以创建 3D 形状。
短期到中期的主要优先事项是提供 CSG 支持、更灵活的草图和更灵活的扫掠(沿圆或螺旋线)。长期计划是继续添加更高级的 CAD 建模功能,以支持更复杂的三维模型和工作流程。
支持主流桌面平台
截至本文撰写时,Fornjot 在 Linux、Windows 和 macOS 上运行。该项目主要在 Linux 上开发,因此其他平台可能会存在错误。如果您想帮忙,定期在 Windows 和 macOS 上测试并报告错误是一个好方法。
短期到中期,计划增加对 Web 平台的支持,以便 Fornjot 可以在浏览器中运行。长期计划是另外支持主流移动平台。
导出为 3MF & STL
支持将模型导出为3D打印所使用的3D制造格式 (3MF) 和STL格式。
用法
安装
Fornjot使用Rust语言来定义模型,因此需要安装Rust工具链才能使用Fornjot。
要安装Fornjot,您有以下几种选择
- 从最新版本下载二进制文件。
- 自己编译最新版本:
cargo install fj-app
- 从本仓库编译开发版本:
cd 路径/to/仓库; cargo install --path crates/fj-app
虽然Fornjot应用程序是一个图形应用程序,它可以打开窗口并显示您的模型的3D视图,但它目前只能通过命令行启动。下面的说明假定您已经在您的路径中某个地方安装了Fornjot应用程序,其名称为fj-app
。
Mac OS
如果您下载的是最新版本的二进制文件,在本地计算机上运行时需要注意以下两个问题。
- Mac会提示“fj-app-x86_64-apple-arwin”不能打开,因为它来自未知开发者。
解决方案是:打开Mac系统偏好设置。在偏好设置界面中,点击打开安全性与隐私。在安全性与隐私界面中,点击通用。在呼叫设置面板中,点击仍要打开按钮。在弹出的窗口中,点击打开按钮。
- 无法打开文档“fj-app”。文本编码Unicode (UTF-8) 不适用。
解决方案是:在终端中输入以下命令(我们建议将文件名改为fj-app)
chmod a+x fj-app
通过Nix
在子目录./nix
中有一个Nix flake,其中包含一个devshell环境(通过nix develop
或nix-shell
)和包fj-app
。可以通过启用flake的nix在nix run github:hannobraun/Fornjot?dir=nix
中运行/测试,或者在与./nix
目录中的传统nix一起,使用nix-build
。
定义模型
模型是依赖于fj
库的Rust库,它们使用该库来定义几何形状。此外,它们需要作为动态库进行构建。只需使用models/
目录中的示例作为模板来定义自己的。
查看模型
要查看模型,请运行
fj-app my-model
这通常会在my-model/
目录中编译和加载模型。如果有一个配置文件(fj.toml
),它可能会定义一个默认路径来加载模型,该路径与当前工作目录不同。这在Fornjot仓库中是这种情况。
按住鼠标左键并移动鼠标旋转模型。按住鼠标右键并移动鼠标移动模型。使用鼠标滚轮缩放。
通过按下 1
来切换模型渲染。通过按下 2
来切换网格渲染。通过按下 3
来切换调试数据渲染。
导出模型
要导出模型到文件,请运行
fj-app my-model --export my-model.3mf
文件类型根据文件扩展名选择。3MF 和 STL 都受支持。
模型参数
模型可以定义可被覆盖的参数。这可以通过使用 --parameters
参数来完成
fj-app my-model --parameters "width=3.0,height=5.0"
社区
如果您对 Fornjot 感兴趣,请考虑加入社区。我们非常希望您能加入我们!
请访问网站上的 社区页面 获取我们的位置信息!
参与其中
如果您想帮忙,只需fork GitHub 上的一个仓库并提交一个 pull request 即可
如果您不知道要做什么,请查看 good first issues
。要了解当前优先事项的概述,请查看 开放里程碑。
许可证
本项目是开源的,根据 Zero Clause BSD 许可协议 (0BSD,简称) 许可。这意味着您可以无任何限制地使用它,但不能对作者因问题承担责任。
有关详细信息,请参阅 LICENSE.md。
依赖项
~10–16MB
~206K SLoC