提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|行业资讯|编辑:吴秋红|2024-05-17 13:54:43.310|阅读 4 次
概述:本指南解释了如何在您的项目中加载和初始化HOOPS Exchange以供使用。确保您已经按照上一个教程中所示配置了项目。
# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>
初始化HOOPS交换
本指南解释了如何在您的项目中加载和初始化以供使用。确保您已经按照上一个教程中所示配置了项目。
HOOPS Exchange是一个通过C API使用的库,以头文件和二进制文件的形式提供。主二进制文件是一个名为A3DLIBS.dll、libA3DLIBS.so或A3DLIBS.dylib的共享库,具体取决于您的操作系统。对于iOS,它是一个名为A3DLIBS.a的静态库。
要加载C语言库,您可以在应用程序构建期间链接它,也可以在运行时使用LoadLibrary (Windows)或dlopen(GNU编译器)等系统调用手动加载它。使用显式加载方法。
交换标头
在您的程序中,负责初始化HOOPS Exchange的源文件必须包含头文件A3DSDKLoader.h。只有一个源文件应加载HOOPS Exchange,并且它应包含A3DSDKLoader.h。其他项目文件可以包含单个源文件(如A3DSDKConvert.h),或使用一劳永逸的A3DSDKIncludes.h来包含整个API。
Linux和macOS开发人员请注意:HOOPS Exchange使用动态加载。如果您在Linux或macOS上使用HOOPS Exchange,请确保您的编译器配置了HAVE_DLFCN_H预处理器标志,并使用链接器选项链接到DLFCN -ldl。
加载库
要加载库,请使用库文件夹的路径调用函数A3DSDKLoadLibrary。例如:
A3DBool loaded = A3DSDKLoadLibraryA(PATH_TO_A3DLIBS_DIR); if (loaded) { // HOOPS Exchange Loaded}
提供许可证
加载库后,第一个调用的函数是A3DLicPutUnifiedLicense().此函数提供库运行所需的许可证密钥:
A3DStatus result = A3DLicPutUnifiedLicense(HOOPS_LICENSE); if (result == A3D_SUCCESS) { // License provided}
如果在没有有效许可证的情况下进行任何API调用,则会返回A3D_INVALID_LICENSE。
初始化库
HOOPS Exchange的初始化是执行内部初始化的库端操作。A3DDllInitialize()使用主要版本号和次要版本号进行调用。使用A3D_DLL_MAJORVERSION和A3D_DLL_MINORVERSION指定与头文件相同的版本。例如:
A3DStatus result = A3DDllInitialize(A3D_DLL_MAJORVERSION, A3D_DLL_MINORVERSION); if (result == A3D_SUCCESS) {// HOOPS Exchange initialized}
初始化是一项一次性操作。如果多个程序加载相同的HOOPS Exchange二进制文件,则初始化是共享的。该函数A3DDllIsInitialized()检查库是否已经初始化。
终止库
当您的应用程序完成后,请调用A3DDllTerminate()以处置任何使用的资源。每个应用程序应该调用一次,并且应该与对 的调用配对A3DDllInitialize()。
卸载库
要卸载库,请使用A3DSDKUnloadLibrary().这会将所有函数指针重置为0并卸载库文件。
A3DSDKUnloadLibrary()
代码示例
下面是一个用C编写的最小工作示例,演示了如何初始化HOOPS Exchange:
#define INITIALIZE_A3D_API #includeint main(int argc, char* argv[]) { // Load the library A3DBool loaded = A3DSDKLoadLibraryA(PATH_TO_A3DLIBS_DIR); assert(loaded); // Initialize and terminate if not already done A3DBool must_initialize = !A3DDllIsInitialized(); if (must_initialize) { A3DStatus result = A3DLicPutUnifiedLicense(HOOPS_LICENSE); assert(result == A3D_SUCCESS); result = A3DDllInitialize(A3D_DLL_MAJORVERSION, A3D_DLL_MINORVERSION); assert(result == A3D_SUCCESS); } // HOOPS Exchange ready to use! if (must_initialize) { A3DDllTerminate(); } // Unload the library A3DSDKUnloadLibrary() return EXIT_SUCCESS; }
包含INITIALIZE_A3D_API宏以提供必要的功能。请记住仅将其包含在一个源文件中,以避免多重定义错误。
特别规则
对于iOS版本,HOOPS Exchange提供HOOPS Parasolid Bridge作为扩展库。它允许HOOPS Exchange和Parasolid之间的转换。在iOS上将HOOPS Exchange与Parasolid Bridge一起使用时,定义A3DAPI_NO_IOS_HEPB_STUB宏以避免链接器错误问题。
#define A3DAPI_NO_IOS_HEPB_STUB #include// HOOPS Exchange Initialization
A3DSDKLoader.h头文件提供函数并定义函数指针。确保仅将其包含在一个源文件中以避免错误。
HOOPS ExchangeLoader类
对于C++应用程序,您可以使用该类HOOPSExchangeLoader来简化HOOPS Exchange的初始化和处置。该类确保HOOPS Exchange在其生命周期内进行初始化,并在实例超出范围时自动释放。
慧都科技是Tech Soft 3D-HOOPS在中国区的唯一增值服务商,负责与试用,咨询,销售,技术支持,售后,旨在为企业提供一站式的3D开发解决方案。如果您的企业目前也有、的需求,欢迎咨询在线客服申请3D 轻量化引擎的60天免费试用。
↓↓扫码添加客服微信,及时获取“HOOPS技术”支持↓↓
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn
通过提供强大的3D CAD数据访问工具并适用于桌面、移动和Web的高级环境3D可视化发动机,HOOPS在提升造船设计和制造流程的效率方面发挥了重要作用。
HOOPS Luminate在汽车行业中的应用具有广泛的潜力和深远的影响。它通过提供高效的3D可视化、虚拟装配与拆解、性能分析、客户定制等功能,帮助汽车制造商在设计、生产和销售过程中提升效率、降低成本并提高产品质量。
在不断发展的软件开发世界中,使工具和框架与最新的平台版本保持同步至关重要,欢迎查阅~
全球航运业对国际贸易至关重要,全球 90% 以上的商品通过海运运输。准确监控和控制这些集装箱的移动对于维持高效的供应链至关重要。手动输入集装箱号码是这一程序的关键部分,它带来了相当大的挑战,例如人为错误和效率低下。
强大的工业级3D渲染引擎,为您打造出众的工程应用程序
HOOPS Exchange更快、更准确的CAD数据转换工具包,3D数据格式转换首选解决方案。
HOOPS Communicator工业级高性能3D渲染引擎,专注于Web端工程图形渲染。
HOOPS Publish让您的应用可将3D数据以原生3D PDF、HTML和标准CAD格式进行发布。
EVGET Demo Box工业级3D桌面端开发框架,助力CAD数据转换、可视化和3D PDF、HTML数据发布
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@cahobeh.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢