诸位老师,
用microstaion打开dwg,二维图纸文件。
我想把他保存成2d的dgn文件,可以手动执行 文件 -》 export -》2d 来实现
现在想用c#完成,
代码如下:
// 打开dwg
string SEED = "d:\xxxxxxxxx\xxx.dwg"
BM.DesignFile file;file = app.CreateDesignFile(SEED, “d:\xxxxxxx\xxxx_new.dwg”, true);
//保存为dgn
MsdDesignFileFormat msddf = MsdDesignFileFormat.msdDesignFileFormatV8; file.SaveAs("d:\xxxxxxx\xxxxx.dgn", false, msddf);
dgn文件可以成功生成,但是这个文件不是2d的,
和手工执行的生成的文件不一致。
我搜了相关api,没有找到export相关的接口。
在saveas函数这里,也没找到相关选项设置。
望指教,多谢。
设置一下如下的两个配置变量看看是否有效果。不需要再进一步Export to 2D了,直接DWG SaveAs DGN后就能成2D的DGN。
n您可以在保存为dgn文件以后,再在程序中打开保存的dgn文件,然后获取到3D Model之后,获取Model中的所有元素将其转换为2D元素,然后创建一个2DModel,把转换后的元素保存到2D Model中。我着有一段将2D元素转换为3D的,您可以仿照着写成转换2D的:
unsafe public static void TestConvertEleTo3D() { ArcElement arcEle = ele1 as ArcElement; arcEle.ConvertTo3d(10000); byte[] eleHandle = arcEle.ElementHandle; fixed(byte* modelRef= &eleHandle[16]) { long* modelRefP = (long*)modelRef; (*modelRefP) = Session.Instance.GetActiveDgnFile().FindLoadedModelById( Session.Instance.GetActiveDgnFile().FindModelIdByName("3DModel")).GetNative().ToInt64(); } arcEle.AddToModel(); return; }
多谢老师指教,我这就去实验一下。
多谢老师指教,我也去试验一下。
多谢老师,我来试验一下。