Build Codecov Platforms Swift 5.1 License Mastodon

Screenshot

介绍

ShapeScript 是一种混合脚本/标记语言,用于创建和操作 3D 几何图形,使用诸如拉伸或“车削” 2D 路径以创建实体 3D 形状,以及 CSG(构造实体几何)将这些形状彼此组合或相减等技术。

ShapeScript 也是 ShapeScript MaciOS 应用程序使用的脚本语言。

ShapeScript 基于 Euclid 实现,Euclid 是一个用 Swift 编写的跨平台 3D 建模库。 您可以使用 ShapeScript 构建的任何内容都可以在 Swift 中使用 Euclid 以编程方式复制。

如果您想支持 Euclid 和 ShapeScript 语言的开发,请考虑购买 ShapeScript for Mac 或 iOS 的副本(应用程序本身是免费的,但有一个应用内购买来解锁某些功能)。

Mac App Store App Store

安装

ShapeScript 打包为 Swift 框架,它本身依赖于 Euclid 框架,该框架的副本包含在此存储库中。

要使用 CocoaPods 安装 ShapeScript 框架,请将以下内容添加到您的 Podfile

pod 'ShapeScript', '~> 1.8'

要使用 Carthage 安装,请将此添加到您的 Cartfile

github "nicklockwood/ShapeScript" ~> 1.8

要使用 Swift Package Manager 安装,请将其添加到 Package.swift 文件中的 dependencies: 部分

.package(url: "https://github.com/nicklockwood/ShapeScript.git", .upToNextMinor(from: "1.8.0")),

该存储库还包括适用于 iOS 和 macOS 的 ShapeScript Viewer 应用程序,这是 Mac 和 iOS 应用商店上提供的完整 ShapeScript 应用程序的精简版本。 目前无法使用 CocoaPods、Carthage 或 Swift Package Manager 安装或运行这些应用程序,但您可以通过打开包含的 Xcode 项目并选择 Viewer (Mac)Viewer (iOS) 方案来运行它们。 对于 Linux,请参阅用法说明 below。

注意: ShapeScript Viewer 需要 Xcode 11+ 才能构建,并在 macOS 10.13+ 或 iOS 14+ 上运行。

用法 (Mac)

尝试 ShapeScript 的最佳方法是运行 ShapeScript Viewer 应用程序(见上文)。

打开应用程序后,您可以从“文件”菜单创建一个新的 ShapeScript 文档,或从“帮助”菜单打开一个示例项目。

ShapeScript 不包含内置编辑器。 相反,在 ShapeScript Viewer 中打开形状文件后,您可以从“编辑”菜单中选择“在编辑器中打开 (Cmd-E)”,以在您选择的文本编辑器中打开源文件。

ShapeScript Viewer 将跟踪对源文件的更改,并在您编辑时实时更新。

有关更多信息,请查看帮助部分

用法 (Linux)

ShapeScript 为 Linux 机器提供了一个命令行界面。 您可以从发布页面下载最新的 CLI 版本。

您还可以使用 Mint 安装或运行 ShapeScript CLI。 如果安装了 Mint,您可以使用以下命令运行 ShapeScript

$ mint run nicklockwood/ShapeScript@main

或者,要从源代码自行构建该工具,您需要安装最新的 Swift 工具链,然后运行以下命令

$ git clone https://github.com/nicklockwood/ShapeScript
$ cd ShapeScript
$ swift build -c release

与 GUI 应用程序一样,ShapeScript CLI 不包含编辑器。 使用您选择的文本编辑器创建您的 .shape 文件,然后将其传递给 CLI,如下所示

shapescript myfile.shape

这将运行该文件并报告任何错误。 成功后,它将打印有关模型的一些信息。 要导出模型,请添加第二个参数,其中包含您要导出 STL(立体光刻)文件的路径

shapescript myfile.shape myfile.stl

贡献

如果您对如何使用该库有疑问,或者认为您可能发现了错误,请随时在 Github 中打开一个 issue。

如果您希望为文档或代码本身做出改进,那太好了! 但请在提交 pull request 之前阅读 CONTRIBUTING.md 文件。

鸣谢

ShapeScript 框架和应用程序主要是 Nick Lockwood 的工作成果。