STL 有多个缩写,如“标准三角语言”和“标准镶嵌语言”,是立体光刻 CAD 软件的原生文件格式。STL 文件仅描述三维物体的表面几何形状,不包含颜色、纹理或其他属性。要查看 STL 文件,您需要使用以下任一应用程序(即 Microsoft 3D Viewer、Microsoft Print 3D、IMSI TurboCAD Pro、GOM Inspect 等)。其中一些应用程序需要支付许可费用,如果收件人使用的是移动设备,则很难查看这些文件并提供快速反馈。因此,一个快速可行的解决方案是将它们转换为光栅图像格式,例如 BMP。现在让我们讨论使用 REST API 在 C# 中将 STL 转换为 BMP。

CAD 文件处理 API

Aspose.CAD Cloud 是我们基于 REST 的 API,提供缩放、旋转、翻转、编辑 CAD 图纸的功能,甚至可以将 AutoCAD 图纸导出为其他受支持的格式,例如图像 (BMP、PNG、JPG) 和固定布局(PDF 作为矢量和光栅)。有关更多详细信息,请访问 支持的文件格式。由于 API 是根据 REST 架构开发的,因此我们可以将其整合到桌面、移动、Web 和基于云的应用程序中。

为了进一步方便我们的客户,我们创建了特定于编程语言的 SDK,以便您获得您喜欢的编程语言中的所有功能/能力。本文将重点介绍 Aspose.CAD Cloud SDK for .NET 的使用。现在,为了使用 SDK,我们需要首先在系统上安装它。有关详细信息,请访问 如何安装 Aspose.Cloud SDK

使用 C# 将 STL 转换为 BMP

请按照以下说明转换云端已有的 STL 文件,并将生成的 BMP 保存在云存储中。PostDrawingBmp 用于转换操作。

  • 首先,创建 File.Createclass 的实例,并传递 ClientID 和 ClientSecret 详细信息作为参数。
  • 其次,创建一个 BmpOptionsDTO 类的对象,我们可以在其中提供转换操作的属性。
  • 第三,通过提供输入 STL 文件名和 BmpOptionsDTO 对象作为参数来创建 PostDrawingBmpRequest 类的实例。
  • 现在调用 PostDrawingBmp(…) 方法来启动转换操作。
  • 最后,使用 File.Create 对象将 Stream 实例保存为文件。
// 完整示例和数据文件请前往https://github.com/aspose-cad-cloud/aspose-cad-cloud-dotnet
// 从 https://dashboard.aspose.cloud/ 获取客户端凭据
string clientSecret = "d757548a9f2558c39c2feebdf85b4c44";
string clientID = "4db2f826-bf9c-42e7-8b2a-8cbca2d15553";

// 创建CADApi对象
CadApi cadApi = new CadApi(clientSecret,clientID);

// 输入 FBSTL 文件的名称
String inputFileName = "galeon.stl";
// 生成的文件格式
String newFormat = "bmp";
// 结果文件的名称
String newFileName = "Converted.bmp";

try
{
    // 创建实例 
    BmpOptionsDTO bmpOptionsDTO = new BmpOptionsDTO();
    
    // 创建实例 PostDrawingBmp class while providing input 
    // STL 文件名和 BmpOptionsDTO 对象作为参数
    var response = new PostDrawingBmpRequest(inputFileName, bmpOptionsDTO);
    // 启动转换操作
    var responseStream = cadApi.PostDrawingBmp(response);
    
    saveToDisk(responseStream, @"C:\Users\shahbnay\Downloads\" + newFileName);
}catch (Exception ex)
{
    Console.WriteLine("error:" + ex.Message + "\n" + ex.StackTrace);
}

// 自定义方法将流内容保存为文件对象
static void saveToDisk(Stream responseStream, String resultantFile)
{
    var fileStream = File.Create(resultantFile);
    responseStream.Seek(0, SeekOrigin.Begin);
    responseStream.CopyTo(fileStream);
    fileStream.Close();
}

上述示例中使用的示例文件可以从 galeon.stlconverted.bmp 下载。

使用 cURL 将 STL 转换为 BMP

由于我们的 API 采用 REST 架构,因此可以通过任何平台上的 cURL 命令轻松访问它们。但是,前提条件是根据 Aspose.Cloud 仪表板 上指定的 ClientID 和 Client Secret 详细信息生成 JWT 访问令牌。请执行以下命令来生成 JWT 令牌。

curl -v "https://api.aspose.cloud/connect/token" \
-X POST \
-d "grant_type=client_credentials&client_id=4ccf1790-accc-41e9-8d18-a78dbb2ed1aa&client_secret=caac6e3d4a4724b2feb53f4e460eade3" \
-H "Content-Type: application/x-www-form-urlencoded" \
-H "Accept: application/json"

有关更多详细信息,您可以考虑访问如何使用客户端 ID 和客户端密钥获取 JWT 令牌

现在我们已经获得了 JWT 令牌,请执行以下命令将 STL 文件转换为 BMP 格式并将输出保存在指定位置。

curl -X GET "https://api.aspose.cloud/v3.0/cad/galeon.stl/saveAs/bmp" \
-H  "accept: application/json" \
-H  "authorization: Bearer <JWT Token>" \
-o Converted.bmp

结论

我们讨论了一些非常简单的步骤,说明如何在不使用任何第三方组件的情况下将 STL 文件转换为 BMP 光栅图像。此外,整个转换操作都是在云中执行的,不会对本地系统造成负担。由于我们的 SDK 是在 MIT 许可下开发的,因此可以从 GitHub 下载完整的源代码。如果您遇到任何问题,或者有任何相关疑问,请随时通过 免费产品支持论坛 与我们联系。

相关文章

我们还建议您访问以下链接来了解: