没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:吴秋红|2023-07-11 09:53:26.667|阅读 109 次
概述:本文介绍了如何用3D转换工具HOOPS Exchange与LibConverter进行流缓存导出,希望对您有所帮助~
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
如果您正在使用,您可能想在生成流缓存模型之前利用的高级功能和转换选项。
如何使用
如您所知,LibConverter是HOOPS Communicator软件包中包含的一个简单的API,converter.exe实际上就是使用这个API。
项目mini_converter是使用该API的良好开端:
HOOPS_Communicator\authoring\converter\example\sample_projects\mini_converter
CAD文件——[HOOPS Exchange C API]——PRC ModelFile——[LibConverter]——SCS文件
实现这个工作流程最重要的API是在LibConvert中:
bool Communicator::Importer::Load (void * modelFile )
实施
您需要做的是:
要初始化和使用,您可以查看HOOPS Exchange包中的ImportExport示例。
类A3DSDKHOOPSExchangeLoader使API的使用更容易,我们在编程指南1中,展示了如何使用它:
A3DSDKHOOPSExchangeLoader sHoopsExchangeLoader(_T(HOOPS_BINARY_DIRECTORY)); A3DImport sImport(acSrcFileName); // see A3DSDKInternalConvert.hxx for import and export detailed parameters CHECK_RET(sHoopsExchangeLoader.Import(sImport));
调用导入函数后,PRC缓冲区将在sHoopsExchangeLoader.m_psModelFile中。
因此,您可以像这样使用以后的LibConverter:
SC_Import_Options importOptions; importer.Load(sHoopsExchangeLoader.m_psModelFile); SC_Export_Options exportOptions; // Export SSC exporter.WriteSC(nullptr, output.c_str(), exportOptions);
样本
使用A3DSDKHOOPSExchangeLoader这种结构隐藏了对API的实际调用,这使得它更简单。但如果你只是做直接调用,那它不适合你,因为它需要更多的包含。
下面是一个示例来演示上述实现:
#include "libconverter.h" using namespace Communicator; ///TODO: Add the Additional include directory = "[...]/HOOPS_Exchange_Publish_2022_XX\include" #define INITIALIZE_A3D_API #include#include using namespace std; int main(int argc, char* argv[]) { ///TODO: the license variable is not used, you may pass "" as the first argument. ///USAGE: ./mini_converter "" "CAD/FILE/INPUT.CAD" "PATH/TO/SCS.SCS" string input, output; // Obtain the input and output filenames size_t n = 1; // Skip verb if (n < argc) input = argv[n++]; if (n < argc) output = argv[n++]; // Initiliaze HOOPS Exchange ///TODO: REPLACE THE PATH TO BIN\\WIN64_VC140 A3DStatus iRet; if (!A3DSDKLoadLibrary("HOOPS_Exchange_Publish_2022_SP1_U1\\bin\\win64_v140")) return A3D_ERROR; ///TODO: I'm using directly the HOOPS_LICENSE variable defined in hoops_license.h. The license you generate on our developer zone is unified, //that means it works with HOOPS COmmunicator, HOOPS Exchange, LibConverter, etc... A3DLicPutUnifiedLicense(HOOPS_LICENSE); A3DInt32 iMajorVersion = 0, iMinorVersion = 0; iRet = A3DDllGetVersion(&iMajorVersion, &iMinorVersion); if (iRet != A3D_SUCCESS) return iRet; iRet = A3DDllInitialize(A3D_DLL_MAJORVERSION, A3D_DLL_MINORVERSION); if (iRet != A3D_SUCCESS) return iRet; // Import A3DAsmModelFile* m_psModelFile; A3DRWParamsLoadData m_sLoadData; A3D_INITIALIZE_DATA(A3DRWParamsLoadData, m_sLoadData); m_sLoadData.m_sGeneral.m_bReadSolids = true; m_sLoadData.m_sGeneral.m_bReadSurfaces = true; m_sLoadData.m_sGeneral.m_bReadWireframes = true; m_sLoadData.m_sGeneral.m_bReadPmis = true; m_sLoadData.m_sGeneral.m_bReadAttributes = true; m_sLoadData.m_sGeneral.m_bReadHiddenObjects = true; m_sLoadData.m_sGeneral.m_bReadConstructionAndReferences = false; m_sLoadData.m_sGeneral.m_bReadActiveFilter = true; m_sLoadData.m_sGeneral.m_eReadingMode2D3D = kA3DRead_3D; m_sLoadData.m_sGeneral.m_eReadGeomTessMode = kA3DReadGeomAndTess; m_sLoadData.m_sGeneral.m_eDefaultUnit = kA3DUnitUnknown; m_sLoadData.m_sTessellation.m_eTessellationLevelOfDetail = kA3DTessLODMedium; m_sLoadData.m_sAssembly.m_bUseRootDirectory = true; m_sLoadData.m_sMultiEntries.m_bLoadDefault = true; m_sLoadData.m_sPmi.m_bAlwaysSubstituteFont = false; m_sLoadData.m_sPmi.m_pcSubstitutionFont = (char*)"Myriad CAD"; iRet = A3DAsmModelFileLoadFromFile(input.c_str(), &m_sLoadData, &m_psModelFile); if (iRet != A3D_SUCCESS) return iRet; // HERE YOU CAN PROCESS m_psModelFile WITH HOOPS EXCHANGE ADVANCED FUNCTION Converter converter; // License Registration converter.Init(HOOPS_LICENSE); Importer importer; // Import Initialization if (!importer.Init(&converter)) return EXIT_FAILURE; //Import the PRC buffer directly SC_Import_Options importOptions; // Import if (!importer.Load(m_psModelFile)) return EXIT_FAILURE; Exporter exporter; // Export Initialization if (!exporter.Init(&importer)) return EXIT_FAILURE; SC_Export_Options exportOptions; // Export Stream Cache Model //export SCS if (!exporter.WriteSC(nullptr, output.c_str(), exportOptions)) return EXIT_FAILURE; return EXIT_SUCCESS; }
使用该工作流,您可以完全访问m_sLoadData(导入选项)。它比converter.exe包含更多参数。您还可以在导出前对模型进行处理(例如,缝合修复BRep)。
------------------2023 HOOPS Exchange专场峰会火热报名中 -----------------
2023 HOOPS Exchange专场峰会 • 中国场
--------------------------------------------------------------------------------------------------------------------------
慧都科技是Tech Soft 3D-Hoops在中国区的唯一增值服务商,负责HOOPS试用,咨询,销售,技术支持,售后,旨在为企业提供一站式的3D开发解决方案。更多信息,请访问(HOOPS Platform、CEETRON SDKS中国区独家代理)。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@fc6vip.cn
在工业数字化和智能制造的进程中,设备互联、系统集成和数据安全是每个企业绕不开的话题。
随着人工智能(AI)的迅速发展,如何让AI系统与外部工具、数据源和服务顺畅协作,成为了技术开发中的一大挑战。模型上下文协议(MCP)为AI系统之间提供了标准化的连接方式,而SmartBear API Hub则为开发者提供了强大的工具集,帮助简化MCP开发过程,提升系统的可靠性和可扩展性。本文将深入探讨如何通过SmartBear API Hub高效应对MCP开发中的各种挑战,从而助力开发者构建更加稳
在功能安全领域,软件开发需满足严格的验证与确认要求。传统模式下,一般需要组合多种工具来完成不同阶段的测试。作为一款专注于代码质量和功能安全的自动化测试工具,Parasoft C/C++test 提供了静态分析、单元测试、覆盖率验证等能力的集成化测试解决方案,该工具通过TÜV SÜD权威认证,能够帮助企业系统化落实功能安全要求,降低合规难度。
在功能安全项目中,开发工具可信度是认证审核的关键。工具鉴定通常伴随巨大的工作量、复杂的文档和较高的项目风险。传统流程中,团队需耗费大量资源完成工具鉴定测试与认证文档准备。作为专注于代码质量和功能安全的自动化测试工具,Parasoft C/C++test 凭借“预认证背书”与“自动化认证工具包”的相结合,将复杂工作转化为标准化测试流程,从根本上帮助企业降低合规风险与成本。
强大的工业级3D渲染引擎,为您打造出众的工程应用程序
HOOPS Exchange更快、更准确的CAD数据转换工具包,3D数据格式转换首选解决方案。
HOOPS Communicator工业级高性能3D渲染引擎,专注于Web端工程图形渲染。
HOOPS Publish让您的应用可将3D数据以原生3D PDF、HTML和标准CAD格式进行发布。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@fc6vip.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢