老师,同事的V8i版本的代码中有一个mdlKISolid_getKernelEntity函数,我想改成CE的,在msmsolid.fdf文件中没有找到对应的函数,去V8i的mskisolid.fdf文件也没有找到mdlKISolid_getKernelEntity这个函数。请问这个函数CE版本应该用哪个?
v8i SDK也没有这个函数,问问你的同事看这个函数是怎么来的。
他刚从kisolid.lib中搜到的。
该函数为未公开函数,虽然可以在LIB中找到,但在公开的.h或.fdf中找不到。我查找了内部资料,该函数的作用是将KIBODY转成BODY。
那么什么是KIBODY呢?在V8i时代,MS内部支持ParaSolid和ACIS两套三维实体建模内核,而mdlKISolid_xxx函数能同时支持这两套内部,所以取名KI,即Kernel Independent(不依赖内核的)。而到了CE时代,MS舍弃了ACIS内核,采用单三维实体建模内核ParaSolid(注意,不是单三维建模内核,而是单三维实体建模内核。MSCE仍然有三个三维建模内核:实体、B样条曲线和网格面)。所有的mdlKISolid函数都改成了mdlSolid,同时,又用C++类封装了一套更好用的SolidUtil类。
再回到您这个函数,由于没有了多三维实体内核,这个函数也就失去了存在的意义。在CE中并不需要mdlSolid_getKernelEntity。
MS学习资源:
MicroStation Wednesday视频分享
深入探讨MicroStation DGN基本概念系列
一步步学习MicroStation CE Addin开发
一步步学习MicroStation CE MDL开发
Answer Verified By: chenxuan chen