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

闲话少说,言归正传。这一节我们通过两个简单和一个相对复杂的例子来了解创建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,将其展开,应该与右图类似:

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

 public class CreateEntityDemo

 {

     Document doc;

     Editor ed;

     Database db;

     public CreateEntityDemo(){}

     public void CreateLine(){}

     public void CreateLayer(){}

     public void CreateLayouts(){}

     private void AddEntToModelSpace(Entity ent){}

 }

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

 public CreateEntityDemo()

 {

     doc = Application.DocumentManager.MdiActiveDocument;

     ed = doc.Editor;

     db = doc.Database;

 }

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

Civil 3D 二次开发 创建AutoCAD对象—— 00 ——的更多相关文章

  1. Civil 3D 二次开发 创建AutoCAD对象—— 01 —— 创建直线

    在方法CreateLine内完成以下代码: 01 public void CreateLine() 02 { 03 PromptPointOptions ppo = new PromptPointOp ...

  2. Civil 3D 二次开发 创建Civil 3D 对象—— 01 —— 创建几何空间点

    这一小节,我们创建派生于CivilCreateEntityDemo的类CivilCreateCogoPoint,来创建几何空间点. 1 创建类并添加字段及方法 首先在项目资源管理器中向本项目中添加类, ...

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

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

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

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

  5. Civil 3D 二次开发 事务

    事务,一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 对于初学者来说,从字面上难以理解什么是事务.下面我试着通过讲述事务的作用及特性来帮 ...

  6. Civil 3D 二次开发 名称模板不能正常工作

    using Autodesk.AECC.Interop.Land; using Autodesk.AECC.Interop.UiLand; using Autodesk.AutoCAD.Applica ...

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

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

  8. Civil 3D 二次开发 翻转曲面高程分析颜色

    不解释,直接上代码及截图. [CommandMethod("RvsSEA")] public void ReverseSurfaceElevationAnalysis() { Ci ...

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

    C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五) 1.创建一个图形对象的步骤如下见上一篇博客(三)2.添加删除实体的工具函数见上一篇博客(四) 3.添加圆的例子(完 ...

随机推荐

  1. 自定义实现moveable button

    实现的效果图: 自定义MVButton,继承自UIButton. 属性声明如下: @property (nonatomic) CGPoint beginPoint; @property (nonato ...

  2. 如何写出没有BUG的代码

    1947年9月9日,美国海军准将 Grace Hopper 在哈佛学院计算机实验室里使用 Mark II 和 Mark III 计算机进行研究工作.她的团队跟踪到 Mark II 上的一个错误,操作人 ...

  3. C#.NET 大型通用信息化系统集成快速开发平台 4.1 版本 - 严格的用户账户审核功能

    整个集团有几万个用户,一个个用户添加是不现实的,只有每个公司的系统管理员添加.或者用户申请帐户,然后有相应的管理员审核,才会更准确一些. 每个公司.分公司.部门的账户情况只有所在公司的管理员是最清楚的 ...

  4. log4j打印堆栈信息

    原文地址:https://blog.csdn.net/xianyu_0418/article/details/6043174 大家都知道,网站在运行的过程中,打印必要的log对记录网站的运行情况.从而 ...

  5. 配置linux-Fedora系统下iptables防火墙

    参考地址:https://blog.csdn.net/zhangjingyi111/article/details/78902820 本篇文章为实验课过程记录,较为简略. 1.查看系统是否安装ipta ...

  6. Python全栈开发之路 【第二篇】:Python基础之数据类型

    本节内容 一.字符串 记住: 有序类型:列表,元组,字符串 ---> 都可迭代: 无序类型:字典,集合 ---> 不可迭代: 特性:不可修改 class str(object): &quo ...

  7. AtCoder Beginner Contest 122 D - We Like AGC (DP)

    D - We Like AGC Time Limit: 2 sec / Memory Limit: 1024 MB Score : 400400 points Problem Statement Yo ...

  8. Codeforces Round #481 (Div. 3)Petya's Exams CodeForces - 978G

    Petya studies at university. The current academic year finishes with nn special days. Petya needs to ...

  9. 堆排、python实现堆排

    一.堆-完全二叉树 堆排序是利用堆这种数据结构而设计的一种排序算法,堆排序是一种选择排序,它的最坏,最好,平均时间复杂度均为O(nlogn),是不稳定排序 堆排序中的堆有大顶堆.小顶堆两种.他们都是完 ...

  10. 我的集合学习笔记--ArrayList

    一,ArrayList 实现自己的ArrayList:主要是添加方法,理解自动扩容机制 代码+注释 package com.amazing.jdk.learn2List.list_08_13; /** ...