十五年专注于
液压缸筒生产

全国咨询热线:
400-086-9833

   热门关键词修理 加工 活塞杆 缸筒 不锈钢

无标题文档

天圆液压产品中心

当前位置:主页 > 行业资讯 >

.NET平台的液压站AutoCAD二次开拓

时间:2017-06-22 08:01来源:天圆网站 作者:天圆液压 点击:
本文基于AutoCAD 2006新推出的.NET API为器材,先容了在.NET平台下对AutoCAD举办二次开拓的技能,并与今朝常用的VBA、ObjectARX作了比拟。同时接头了怎样补充.NET API某些不敷的成果。 当前AutoCAD的二次开拓器材首要有:VisualLisp、VBA和ObjectARX等。其

    }

4..NET API的初始化与破除

public void Initialize() {
      //破除操纵
    btr.Close();
……
//遍历块表记录
    btr.Close();//封锁块表记录
    public static void AddLineCmd()
    当前AutoCAD的二次开拓器材首要有:VisualLisp、VBA和ObjectARX等。个中,VisualLisp与VBA较为简朴,出格是VBA,行使利便且开拓速率较快,但其成果对比ObjectARX有所不敷,尤其是扑面向工具的成果支持欠好。而ObjectARX基于VC平台,在C++的支持下,其成果很是强盛,可以很好地运用各类面向工具技能,但其弱点是发开速率较量慢,同时对开拓职员的手段要求较高。

    line.Close();//封锁该直线
    Database db = HostApplicationServices.WorkingDatabase;//获适合前事变空间的数据库
}

在ObjectARX中,“acrxEntryPoint”函数是ARX措施的载入点,措施的初始化和破除均可在该函数中举办。而在.NET API中则起首必要将初始化代码封装在一个类中,同时该类必要压制实现
BlockTableRecord btr = (BlockTableRecord)bt[BlockTableRecord.ModelSpace].Open(OpenMode.ForWrite);

    using Autodesk.AutoCAD.DatabaseServices;
同时,为加速加载速率,可在MyARX.cs的文件头插手以下语句:

由此可见,上述语句与在VC下的开拓很是相同,其进程都是先获得数据库,然后依次打开块表、块表记录,接着添加实体,最后封锁块表、块表记录。值得留意的是finally语句,无论try块中的语句是否产生非常,finally块中的语句城市被执行,从而确保封锁块表和块表记录的操纵会被执行。

using Autodesk.AutoCAD.ApplicationServices;
BlockTable bt = (BlockTable)db.BlockTableId.Open(OpenMode.ForRead);
}
    }

    //由ObjectId获得ActiveX中的AcadObject工具
finally {
    try {
}

    本文基于AutoCAD 2006新推出的.NET API为器材,先容了在.NET平台下对AutoCAD举办二次开拓的技能,并与今朝常用的VBA、ObjectARX作了比拟。同时接头了怎样补充.NET API某些不敷的成果。

一、基于.NET的开拓


    }

这样在加载措施时AutoCAD将直接通过MyARX中的Initialize语句举办初始化,同时注册MyARX中的呼吁。不然,AutoCAD将搜刮dll中全部的类以找到实现IExtensionApplication接口的类举办初始化,如找不到则不举办初始化。同样,通过CommandClass属性,AutoCAD也会直接到MyARX类中搜刮要注册的呼吁。当措施中包括的类数量较多时,通过ExtensionApplication和CommandClass这两个属性可明显地加速措施的加载速率。

    IExtensionApplication接口。该接口包括Initialize与Terminate两个函数。个中Initialize认真加载措施时的初始化操纵,Terminate则认真举办卸载措施时的破除操纵。代码如下:

    finally {

然后在要行使.NET API的类中添加以下语句以引用.NET API的定名空间。必要添加的语句如下:

2..NET API与传统ObjectARX的首要区别

    bt.Close();
    using Autodesk.AutoCAD.Runtime;
}

namespace ARXExample {
(责任编辑:admin)

分享按钮
------分隔线----------------------------