1.概述
ODA(Open Design Alliance)库架构如下:
产品体系如下:
ODA的产品体系越来越壮大,包括主流BIM格式SDK、Viewer、Cloud、数据交换等,每个模块需要单独购买,并提供“源码服务”。
2.是否可控?
值得注意的是并不是全部的代码开放,比如kernel库,其中对于底层的几何数据结构、几何算法等均没有提供源码服务,只有头文件和使用样例。
- 容器,如:OdVector.h;
- 几何数据结构,如:GePoint3d.h、GeNurbSurface.h,即使非常基础的点和向量类都不提供源码;
- 渲染,如:BrepRenderer.h、BrepRendererImpl.h,渲染也是核心,能都给你了?
- 几何算法,如:ModelerGeometry、BmBooleanOperationsUtils;
- 实体造型算法,如:OdBrepModeler,包括各种类型实体的造型,如拉伸、旋转、放样、直纹等;
......
那么解析rvt、dwg、dgn等格式的代码你能拿到吗?
同样,给你代码下载权限的是使用ODA核心库的应用代码,rvt等格式的解析生成代码,格式组织是没有开放下载权限的。
ODA:基础和核心的东西必须掌握在手中,防止被卡脖子~ 哦,防止不能卡XX的脖子
3.参考
1、这个链接说明了样例等需要依赖哪些库(应该是没有源码的库),
Determining which Libraries to Use
2、下图中的exe、lib基本上都没有源码,但这些都是ODA自己开发的,只是没有提供源码服务,大部分都是最核心的几何内核、基础工具、授权检查之类的内容;
而ThirdParty中的库基本上都是开源的第三方库,如rapidjson、tinyxml等,不用ODA提供源码我们也能找到;
4.小结
这也就解释了为什么有时候ODA样例程序渲染数据正确,而我们用相同的库却可能有错误,但离开ODA(即使宣称拥有源码)我们无法处理,只能依赖ODA解决。因为比较核心内容并没有开发给你,你只是拿到了应用(使用ODA库的应用)代码!
从技术和商业角度也能理解ODA的行为,认不认可就是另外一回事了,除非有额外更好的选择才可能有意义。
当然使用ODA仍旧是很多公司的首选,毕竟快、综合成本低、可靠(至少目前可靠,短期内也不会有风险......)。
所以购买了ODA库,拥有对应源码,就自主可控了吗?
公众号:geometrylib,欢迎交流。