我自己绘制了一个椭球体作为一个shared cell元素放在一个cel文件的model中,。
应该是你老的DGN文件中已经存在该SharedCell的定义,但这个定义和你新的SharedCell定义不同造成的。
当DGN文件中已经存在同名SharedCell定义时,不会从CEL库中再取得最新的单元定义了。
问题是,我新建一个dgn文件,使用mdlSharedCell_create,mdlSharedCell_makeSureDefExists,mdlSharedCell_setRange等将这个三维椭球体的cel放置在我新建的dgn文件中,就不会成功。处理二维的没问题;
但是如果新建一个dgn文件,提前使用MS自带额放置cell工具,将椭球体cell元素先attach进来,然后放置对应的shaerdcell(勾选使用sharedcell),再使用代码就可以正常建模了;
Work smart, not just work hard!
mdlSharedCell_create创建的是一个共享单元的实例元素,创建后您再调用一下mdlSharedCell_setDefinitionId设置一下这个实例引用哪个共享单元定义元素。这个共享单元定义元素用mdlSharedCell_find去找一下,如果找不到的话就要先创建一下了。
看看你的cell制作的时候是不是用了参数化实体,有参数化的cell貌似是没法创建共享单元的
Answer Verified By: Grant Zhang
牛!