FileFormat
obj 格式规范:
stl 格式规范:
https://docs.fileformat.com/cad/stl/
Main
-
导入 aspose,Aspose.3D for Java API是为创建、编辑、操作和保存3D格式而构建的。它使Java应用程序能够与3D文档连接,而无需在计算机上安装任何软件包。
-
aspose Api 文档:
https://reference.aspose.com/3d/java/
-
aspose 开发指南:
https://docs.aspose.com/3d/zh/java/
- 推荐使用 22.9 的版本,尝试 23.1 的版本还有问题
-
aspose Api 文档:
<repositories>
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-3d</artifactId>
<version>22.9</version>
</dependency>
</dependencies>
- 实现 obj 转换为 stl
Scene s1 = new Scene();
// 导入obj
s1.open("1.obj");
// 导入stl
s1.save("1.stl");
-
计算 stl 的面法线
- aspose 20.7 以上版本新增导入时重新计算法线的选项
StlLoadOptions stlLoadOptions = new StlLoadOptions();
// 20.7 以上版本新增导入时重新计算法线的选项
stlLoadOptions.setRecalculateNormal(true);
s1.open("1.stl", stlLoadOptions);
s1.save("1.stl");
Others
WithOut Files
MemoryStream res_stream = new MemoryStream();
MemoryStream res = new MemoryStream();
// 导入obj
Scene s1 = new Scene();
s1.open(new MemoryStream(Files.readAllBytes(Path.of("1.obj"))));
// 导出 stl 到 stream,并将锚点归0,方便下次导入
StlSaveOptions stlSaveOptions = new StlSaveOptions();
stlSaveOptions.setEncoding(StandardCharsets.UTF_8);
s1.save(res_stream, stlSaveOptions);
res_stream.seek(0,0);
// 导入 stl 并计算法线
StlLoadOptions stlLoadOptions = new StlLoadOptions();
stlLoadOptions.setEncoding(StandardCharsets.UTF_8);
stlLoadOptions.setRecalculateNormal(true);
s1.open(res_stream, stlLoadOptions);
// 导出 stl
s1.save(res, stlSaveOptions);
String resString = new String(res.getBuffer(),0, res.getSize());
版权声明:本文为qcwlmqy原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。