Microstation二次开发——画直线

MicroStationBentley 工程软件系统有限公司在建筑、土木工程、交通运输、加工工厂、离散制造业、政府部门、公用事业和电讯网络等领域解决方案的基础平台。最近学习Bentley  系列软件发现该系列软件做线性工程极其方便,且该系列大都数软件都基于Microstation平台进行开发的 。Microstation二次开发有三种方法,一是利用VBA进行开发,二是利用C#进行开发叫Addins,三是利用C++进行开发叫MDL。MDL相对来说开发难度较大,但是能够实现的功能也更多。如果用C#开发,借助Visual Studio和.NET平台,开发环境配置非常方便。

本人尝试利用C#进行开发来实现在MicroStation软件中画直线

开发平台:VS2017 .NET Framework 4.7

软件:MicroStation CE(Update 14)

添加动态链接库:

…\MicroStation\Bentley.DgnDisplayNet.dll

…\MicroStation\Bentley.DgnPlatformNET.dll

…\MicroStation\Assemblies\ECFramework\Bentley.EC.Persistence3.dll

…\ MicroStation\Assemblies\ECFramework\Bentley.ECObjects.Interop3.dll

…\MicroStation\Assemblies\ECFramework\Bentley.ECObjects3.dll

…\MicroStation\Assemblies\ECFramework\Bentley.ECSystem3.dll

…\MicroStation\Assemblies\ECFramework\Bentley.General.1.0.dll

…\MicroStation\Bentley.GeometryNET.dll

…\MicroStation\Bentley.GeometryNET.Common.dll

…\MicroStation\Bentley.GeometryNET.Structs.dll

…\MicroStation\Assemblies\Bentley.Interop.MicroStationDGN.dll

…\MicroStation\Assemblies\Bentley.MicroStation.dll

…\MicroStation\Assemblies\Bentley.MicroStation.Interfaces.1.0.dll

…\MicroStation\Assemblies\Bentley.MicroStation.Ribbon.dll

…\MicroStation\Assemblies\Bentley.MicroStation.WPF.dll

…\MicroStation\Assemblies\ECFramework\Bentley.Platform.dll

…\MicroStation\Assemblies\ECFramework\Bentley.UI.dll

…\MicroStation\Assemblies\ECFramework\Bentley.Windowing.dll

…\MicroStation\ustation.dll

主类代码:

using System.Windows.Forms;

using Bentley.Interop.MicroStationDGN;

using Bentley.MstnPlatformNET;

using Bentley.MstnPlatformNET.InteropServices;

namespace ClassLibrary2

{

    internal sealed class MyAddin : AddIn

    {

        public static MyAddin Addin = null;

        private MyAddin(System.IntPtr mdlDesc) : base(mdlDesc)

        {

            Addin = this;

        }

        protected override int Run(string[] commandLine)

        {

            Bentley.Interop.MicroStationDGN.Application app = Utilities.ComApp;

            Point3d startPoint = app.Point3dZero();

            Point3d endPoint = app.Point3dOne();

            LineElement line = app.CreateLineElement2(null, startPoint, endPoint);

            app.ActiveModelReference.AddElement(line);

            return 0;

        }

    }

}

你可能感兴趣的:(Microstation二次开发——画直线)