不积跬步无以至千里,不积小流无以成江海。虽然创建一条直线、添加一个图层这样的小程序没有什么实际意义(内部命令很简单就可以完成),但对于初学二次开发的您来说,这可是一大步,这一步跨出去,您就跨进了二次开发的大门。

闲话少说,言归正传。这一节我们通过两个简单和一个相对复杂的例子来了解创建AutoCAD对象的基本过程。为了增加面向对象程序设计的印象,本节实例的代码比AutoCAD managed .NET developer’s guide 中的例子稍微复杂一些,希望我能为您讲解明白。

首相利用向导创建项目,之后向项目中添加类,示例代码中类名为CreateEntityDemo。

接下来为类添加三个字段:

Document doc;

Editor ed;

Database db;

这三个字段是在各方法中经常用到的。添加字段的同时注意using相应的命名空间,VS会给出相应的提示,只要用鼠标点击即可。

再接下来创建几个方法:

public CreateEntityDemo(){}

public void CreateLine(){}

public void CreateLayer(){}

public void CreateLayouts(){}

private void AddEntToModelSpace(Entity ent){}

第一个方法CreateEntityDemo是类的构造函数,我们将在这个构造函数中初始化刚才添加的3个字段;第二个方法CreateLine将用来创建一条直线;第三个方法CreateLayer将创建一个图层;第四个方法CreateLayouts将创建多个布局及视口;第五个方法

5‑1 类图

AddEntToModelSpace将实体添加到模型空间,将在CreateLine中调用。编写创建视口代码过程中,还会出现更多的方法,为了简单明了,在此暂不列出。

在解决方法资源管理中,选中项目,单击鼠标右键,从右键菜单中选择查看→查看类图,找到类CreateEntityDemo,将其展开,应该与右图类似:

让我们回到文本编辑器,您的代码应该与下面代码类似:

01 public class CreateEntityDemo02 {03     Document doc;04     Editor ed;05     Database db;06     public CreateEntityDemo(){}07     public void CreateLine(){}08     public void CreateLayer(){}09     public void CreateLayouts(){}10     private void AddEntToModelSpace(Entity ent){}11 }

我们现在完成类的构造函数,注意此方法与其他方法的不同,其他方法除了public或private关键字外,还有类型修饰符,例如void、bool、double等等,而构造函数只有public修饰符。在方法内部添加以下代码,对三个字段进行初始化。

01 public CreateEntityDemo()02 {03     doc = Application.DocumentManager.MdiActiveDocument;04     ed = doc.Editor;05     db = doc.Database;06 }

至此,本节示例的准备工作就完成了,接下来就让我们完成其他的方法。首先让我来创建一条直线。

转载于:https://www.cnblogs.com/myzw/p/6924183.html

Civil 3D 二次开发 创建AutoCAD对象—— 00 ——相关推荐

  1. Civil 3D 二次开发 创建Civil 3D 对象—— 00 ——

    本节中我们通过创建几何空间点.曲面和采样线了解Civil 3D对象的创建方法.因Civil 3D对象的创建方法相比AutoCAD对象创建要简单的多,比如创建一个几何空间点,最简单的情况采用一行代码(没 ...

  2. 学习 Civil 3D二次开发从哪儿开始?

    1.1 从哪儿开始 对于多数的工程设计人员,不完全具备上节所述的各种条件.对于Civil 3D的应用可能比较熟悉:但对于计算机语言,只限于上学时所学的一点基础知识,步入工作岗位后与计算机语言基本无缘: ...

  3. AutoCAD.net/Map 3D/AIMS/MapGuide/Civil 3D二次开发学习指南

    作者:杜长宇 Autodesk Infrastructure Map Server(AIMS)/MapGuide API二次开发学习指南 Autodesk Infrastructure Map Ser ...

  4. Civil 3D 二次开发 新建CLR项目出现错误C2143

    新建CLR项目出现错误C2143 按照Objectarx Training创建.net混合项目,编译时出现一下错误: 原因不明: 解决方法: 在Stdafx.h文件中添加: #define WIN32 ...

  5. [新书推荐]Autodesk地理信息系统解决方案——FDO、MapGuide、AutoCAD® Map 3D二次开发指南...

    MapGuide及其相关技术一直缺乏中文资料,针对这种现状,最近Autodesk上海研究院出版了一本新书,系统的介绍了Autodesk地理信息系统解决方案,包括FDO.MapGuide.Map3D等等 ...

  6. c++ Arx二次开发创建椭圆和样条曲线

    一.本节课程 c++ Arx二次开发创建椭圆和样条曲线 二.本节要讲解的知识点 1.如何应用C++ ARX二次开发创建椭圆(对AcDbEllipse类的构造函数的直接封装和根据外接矩形来创建椭圆) 2 ...

  7. NX二次开发-UFUN设置对象(点线面体)的颜色UF_OBJ_set_color

    NX二次开发-UFUN设置对象(点线面体)的颜色UF_OBJ_set_color NX9+VS2012#include <uf.h> #include <uf_obj.h> # ...

  8. C++ ARX二次开发-创建三维实体

    二.本节课程 C++ ARX二次开发-创建三维实体 二.本节要讲解的知识点 1.arx提供的三类创建三维实体的方法:创建标准形状的实体.拉伸面域创建实体.旋转面域创建实体的例子. 2.布尔运算的使用例 ...

  9. C#ArcEngine二次开发——创建与调用AOI书签

    基于ArcEngine10.2和VS2012进行C#ArcEngine二次开发 创建与调用AOI书签 在如图所示的程序主窗体菜单栏中添加一个菜单项"创建书签",其控件名为" ...

最新文章

  1. Spring Boot + MyBatis + Druid + PageHelper 实现多数据源并分页
  2. 关于无人驾驶商业化现状的一个小研究
  3. css京东购物车静态页面实现
  4. 【Linux系统编程】I/O多路复用select、poll、epoll的区别使用
  5. 1008 Elevator (20 分)_13行代码AC
  6. 129. Sum Root to Leaf Numbers
  7. 如何在bootstrap轮播中调整图像大小
  8. JavaSE学习--面向对象
  9. fatal error: alsa/asoundlib.h: 没有那个文件或目录
  10. 手机工商银行怎么转账_通过工行手机银行如何开通对外转账功能?
  11. Exif信息 处理图片上传时翻转问题
  12. 【测开方法论】测开平台pk心得-抉择
  13. 【工艺】 CNC(数控机床)加工工艺
  14. window media player 内部应用程序出错
  15. 在Unity中实现基于粒子的水模拟(二:开始着色)
  16. SpringBoot集成Dubbo
  17. 命令行设置RTC alarm
  18. 小白如何从零开始打造一台DIY脑控智能机器人
  19. WEBERP测试实录:一 webERP安装
  20. 计算机网络-----TCP三次握手相关面试题扩展

热门文章

  1. 卧槽!成就了Java,开发框架排第一,你还是不够了解它!
  2. 记一次由Redis分布式锁造成的重大事故,避免以后踩坑!
  3. ELK教程2:Kibana的安装
  4. 我必须得告诉大家的MySQL优化原理
  5. 目标检测入门和实现思路!
  6. 28岁女博士生被骂“学术媛”,只因在网上分享自己牛津年级第一成绩毕业......
  7. 推荐一位在BAT大厂工作的技术+美女双料博主
  8. MIT霸气护学生:你换导师,我替你买单!
  9. 结构最清晰的Yolov3 head和loss实现完全解析
  10. 北大陈平原教授:写出优秀的学术论文,“小题大做”是关键