我被要求解决用 Visual C++ 编写的 CAD 应用程序在尝试将绘图导出为 PDF3D 时出现的内存使用问题。
导出特征对于简单模型或仅复杂模型的一部分表现良好,但对于整个复杂模型则不然。
我们使用 U3D sourceforge 项目来创建 U3D 对象;将其插入 PDF 后。有问题的是对象创建部分。
U3D sourceforge 项目是一个用 C++ 构建的库,也可在 C++ 中使用,该库自 2007 年以来就已消亡,文档质量很差,并且其示例集合还远远不够!在项目的TODO列表中还说明它有内存问题!
所以我被要求从两个方面来解决这个问题:
维护U3D代码。
更改应用程序与 U3D 库交互的方式。
他们还说 2. 边更好,因为它在我们的控制之下。
当我试图解决这个问题时,我得到了两个结论:
我强烈怀疑 U3D 方法 EncodeX 是造成内存误用的原因。
我尝试对应用程序与库交互的方式进行很多小更改(更改压缩参数、标志等),每次结果都是内存过度分配。
所以问题是:是否值得继续使用这个库?它的代码读起来并不愉快......或者也许出于相同目的查看其他库可能是个好主意?
我没有探索它们,但我正在认真考虑切换到 VCGlib 或 libharu...如果您知道这很好,请提出其他建议。
其他替代方案是:使用 Visual Technologies PDF3D 导出器,其成本不可接受,或者开发我自己的 U3D 导出器实现,其缺点是 U3D 功能集非常有限,而且它可能会“没有为预期的最后期限做好准备。
因此,将这些选项视为禁止的。
我真的需要帮助来决定什么是最好的。
提前致谢,
塞尔吉奥
一些评论:
VCGlib - 不相关,MeshLab 依赖 VCGlib 来实现核心功能,但对于 U3D 导出命令行工具,使用从文本格式转换为 U3D 的工具,该工具来自 sf U3D 库。
libharu - 可以将 3D 模型嵌入到其 PDF 输出中,而不是创建模型(U3D 或 PRC 文件)。
另一种选择是输出另一种 Adobe 3D PDF 格式 PRC。
Acrobat SDK 具有伪代码形式的格式描述。
基于该 PRC 输出在 Asymptote 工具中实现。
如果您有兴趣,可以在 sourceforge 上找到它,并在 Asymptote 论坛上提问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)