请问有没有设置下图这个地理坐标系的API呢,对用户来说每次都手动设置有些麻烦,还容易忘掉。
有的。请查看命名空间Bentley.GeoCoordinatesNET下的DgnGCS。GCS就是Geographic Coordinate System(地理坐标系)的缩写。
能否给出一段设置地理坐标系的C#示例代码呢?我尝试用 DgnGCS gcs = DgnGCS.FromModel(Session.Instance.GetActiveDgnModelRef(), true),但是返回的gcs为null。
1. 在您的C# 项目中引用Bentley.GeoCoord2.dll和Bentley.DgnGeoCoord2.dll两个动态链接库
2. 用如下代码可为当前模型创建中国的CGCS2000地理坐标系。
using Bentley.GeoCoordinatesNET; private static void CreateGCS() { DgnModel dgnModel = Session.Instance.GetActiveDgnModel(); DgnGCS myGCS = new DgnGCS("CGCS2000-E.LL", dgnModel); myGCS.ToModel(dgnModel, true, true, true, true); }
MS学习资源:
MicroStation Wednesday视频分享
深入探讨MicroStation DGN基本概念系列
一步步学习MicroStation CE Addin开发
一步步学习MicroStation CE MDL开发
Answer Verified By: peng li
我使用的软件版本为OpenRail Disigner 2021, C#的DgnGCS构造方法中没有您写的这个。
请问除了升级软件之外还有其它方法吗
我这里的定义如下:
您所示的这个函数中的DgnModelRef *不是Bentley.DgnPlatformNET下的,是Bentley.DgnPlatform下的。需要您的C# 项目得支持指针(即支持unsafe编程)才行,然后调用dgnModel.GetNative().ToPointer()可以获得该指针。
最简单的办法就是先升级一下软件,看是否有我调用的这个构造函数了。