C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五)

1、创建一个图形对象的步骤如下见上一篇博客(三)
2、添加删除实体的工具函数见上一篇博客(四)

3、添加圆的例子(完整源代码请加云幽学院免费课yunyun.ke.qq.com

 

[CommandMethod("MKCircle")]
        public void MKCircle()
        {
            //(1)获取当前活动图形数据库
            Database db = HostApplicationServices.WorkingDatabase;
            //(2)新建一个circle对象 
            Point3d cenPt = new Point3d(0, 100, 0); //圆心
            Circle cir= new Circle(cenPt, Vector3d.ZAxis, 100);
      
            //(3)定义一个指向当前数据库的事务处理,以添加直线
            using (Transaction trans = db.TransactionManager.StartTransaction())
            {
                //(3-1)以读方式打开块表..
                BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);

//(3-2)以写方式打开模型空间块表记录
                BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);

//(3-3)将图形对象的信息添加到块表记录中,并返回ObjectId对象.
                btr.AppendEntity(cir);

//(3-4)把对象添加到事务处理中.
                trans.AddNewlyCreatedDBObject(cir, true);

//(3-5)提交事务处理
                trans.Commit();
            }
        }

这个例子非常简单,想学习AutoCAD二次开发(c#、C++等语言)、BIM软件二次开发、Java、python等在线课程的同学,请关注云幽学院的视频课程yunyou.ke.qq.com

原文地址:https://www.cnblogs.com/cjm123/p/8696121.html

时间: 2024-10-26 20:53:58

C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五)的相关文章

Revit 二次开发 自动选中对象

//获取选中对象 [TransactionAttribute(Autodesk.Revit.Attributes.TransactionMode.Manual)] public class setSelectEle : IExternalCommand { public Result Execute(ExternalCommandData commandData, ref string messages, ElementSet elements) { SetSelectionElement(co

Arcengine 二次开发添加右键菜单

最近在搞arcengine 二次开发,遇到了好多问题,也通过网上查资料试着慢慢解决了,把解决的步骤记录下来,有需要帮助的可以看一下,也欢迎各位来批评指正. 想给自己的map application在图层上添加右键菜单,谷歌了一下,找到了解决的方法,原文的地址edndoc.esri.com/arcobjects/9.2/NET/1ED14BF2-A0E3-4e56-A70D-B9A7F7EC7880.htm.然后我根据这个添加了自己的右键菜单,又有一些改动. 效果如图所示(有点简陋),仅仅是简单的

Saiku二次开发获取源代码在本地编译(五)

关于Saiku的二次开发,在本地编译然后启动自己编译好的Saiku服务 Saiku是开源的,从github上能下载源代码,本例中的saiku源码也是从github上找的,然后自己改了一些pom.xml,以及其它调整. 当前提供的saiku版本为 3.9 一.Saiku源码下载 下载saiku源码地址: https://github.com/DFX339/saiku-3.9.git     #这是我改好在本地编译通过的saiku源码 二.Saiku相关jar包下载 在本地编译时需要注意有些jar包

cad二次开发--添加对象到模型空间中

通过实体名来将实体加入到模型空间 AcDbObjectId PostToModelSpace(AcDbEntity *pEnt){ //打开块表 AcDbBlockTable *pBlockTable = NULL; Acad::ErrorStatus es = acdbHostApplicationServices()->workingDatabase() ->getBlockTable(pBlockTable, AcDb::kForRead); //打开块表记录 AcDbBlockTabl

NX二次开发-算法篇-vector函数排序(例子:遍历所有点并排序)

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_ui.h> 5 #include <uf_curve.h> 6 #include <uf_obj.h> 7 #include <uf_part.h> 8 #include <vector> 9 #include <algorithm> 10 11 using namespace std; 12 13 14 UF_initiali

NX二次开发-UFUN高亮显示对象UF_DISP_set_highlight

1 NX11+VS2013 2 3 #include <uf.h> 4 #include <uf_modl.h> 5 #include <uf_disp.h> 6 7 8 UF_initialize(); 9 10 //创建块 11 UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔 12 double Corner_pt[3] = { 0.0, 0.0, 0.0 };//设置原点 13 char *Edge_Len[3] = { &qu

NX二次开发-UFUN获取对象的显示属性(图层,颜色,空白状态,线宽,字体,高亮状态)UF_OBJ_ask_display_properties

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_modl.h> 5 #include <uf_obj.h> 6 7 UF_initialize(); 8 9 UF_FEATURE_SIGN Sign = UF_NULLSIGN;//设置布尔 10 double Corner_pt[3] = {0.0, 0.0, 0.0};//设置原点 11 char *Edge_Len[3] = {"100", &qu

NX二次开发-UFUN查询对象的类型和子类型UF_OBJ_ask_type_and_subtype

1 NX9+VS2012 2 3 #include <uf.h> 4 #include <uf_obj.h> 5 #include <uf_modl.h> 6 #include <uf_part.h> 7 8 UF_initialize(); 9 10 //遍历当前显示部件 11 std::vector<tag_t> SolidVector; 12 tag_t ObjectTag = NULL_TAG; 13 int Type, SubType,

cad二次开发中DBText对象的外框GeometricExtents有问题?

CAD2007版本 acDoc.Editor.WriteMessage( string.Format("[{0:F1},{1:F1},{2:F1}] - [{3:F1},{4:F1},{5:F1}]\n", acText.GeometricExtents.MinPoint.X, acText.GeometricExtents.MinPoint.Y, acText.GeometricExtents.MinPoint.Z, acText.GeometricExtents.MaxPoint.