我从.cel文件中创建了一个共享单元到我的dgn中,但发现只有几何图形,材质信息丢失,如何用代码将.cel文件中的材质拷贝到dgn文件中呢。我试图用如下代码完成,但发现当关闭Dgn然后再打开就又没有材质了。不知为何。
PaletteInfo[] palettes = MaterialManager.GetPalettesInDgnLib(cellDgnFile); MaterialTable table = MaterialManager.GetActiveTable(dgnModel); foreach (PaletteInfo palette in palettes) { table.AddPalette(palette); }MaterialManager.SaveTable(table);
您的.cel文件里边,给元素赋材质的时候使用Attach的方式,不要使用Assign。Attach是将材质附加到元素上了,而Assign是将材质关联到层上了,所有在此层下的元素都会被附上此材质。
cel文件是做好的标准文件,不能任意改动。我用MS自带的创建共享单元工具就可以将材质一起加载到当前Dgn文件中。要如何实现呢?
能否提供一下您的单元文件,我这边刚刚试了结果就像我上边说的,Attach的材质才会自动带过去。