Civil 3D 二次开发 创建AutoCAD对象—— 00 ——
不积跬步无以至千里,不积小流无以成江海。虽然创建一条直线、添加一个图层这样的小程序没有什么实际意义(内部命令很简单就可以完成),但对于初学二次开发的您来说,这可是一大步,这一步跨出去,您就跨进了二次开发的大门。
闲话少说,言归正传。这一节我们通过两个简单和一个相对复杂的例子来了解创建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 ——的更多相关文章
- Civil 3D 二次开发 创建AutoCAD对象—— 01 —— 创建直线
在方法CreateLine内完成以下代码: 01 public void CreateLine() 02 { 03 PromptPointOptions ppo = new PromptPointOp ...
- Civil 3D 二次开发 创建Civil 3D 对象—— 01 —— 创建几何空间点
这一小节,我们创建派生于CivilCreateEntityDemo的类CivilCreateCogoPoint,来创建几何空间点. 1 创建类并添加字段及方法 首先在项目资源管理器中向本项目中添加类, ...
- Civil 3D 二次开发 创建Civil 3D 对象—— 00 ——
本节中我们通过创建几何空间点.曲面和采样线了解Civil 3D对象的创建方法.因Civil 3D对象的创建方法相比AutoCAD对象创建要简单的多,比如创建一个几何空间点,最简单的情况采用一行代码(没 ...
- 学习 Civil 3D二次开发从哪儿开始?
1.1 从哪儿开始 对于多数的工程设计人员,不完全具备上节所述的各种条件.对于Civil 3D的应用可能比较熟悉:但对于计算机语言,只限于上学时所学的一点基础知识,步入工作岗位后与计算机语言基本无缘: ...
- Civil 3D 二次开发 事务
事务,一般是指要做的或所做的事情.在计算机术语中是指访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 对于初学者来说,从字面上难以理解什么是事务.下面我试着通过讲述事务的作用及特性来帮 ...
- Civil 3D 二次开发 名称模板不能正常工作
using Autodesk.AECC.Interop.Land; using Autodesk.AECC.Interop.UiLand; using Autodesk.AutoCAD.Applica ...
- Civil 3D 二次开发 新建CLR项目出现错误C2143
新建CLR项目出现错误C2143 按照Objectarx Training创建.net混合项目,编译时出现一下错误: 原因不明: 解决方法: 在Stdafx.h文件中添加: #define WIN32 ...
- Civil 3D 二次开发 翻转曲面高程分析颜色
不解释,直接上代码及截图. [CommandMethod("RvsSEA")] public void ReverseSurfaceElevationAnalysis() { Ci ...
- C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五)
C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五) 1.创建一个图形对象的步骤如下见上一篇博客(三)2.添加删除实体的工具函数见上一篇博客(四) 3.添加圆的例子(完 ...
随机推荐
- 在.NET Framework中慎用DirectoryInfo.GetFiles方法
.NET Framework中的DirectoryInfo.GetFiles方法,可以在一个文件夹下通过通配符找出符合条件的文件. 我们首先在文件夹C:\DemoFolder下定义两个文件:demo. ...
- mysqldump 和mysqlbinlog
一.mysqldump 1.备份test库 #mysqldump -uroot -p' test >test.sql 2.备份 -B参数 ' -B test >test_B.sql --B ...
- 02-安装linux系统
安装linux系统 需要准备的软件: 1.VMware-workstation-full-14.1.1.28517.exe 2.CentOS-6.5-x86_64-bin-DVD1.iso镜像文件 第 ...
- js总结:对于字符串的切割截取和合并
1.函数:split() 功能:使用一个指定的分隔符把一个字符串分割存储到数组 例子: str=”jpg|bmp|gif|ico|png”; arr=str.split(”|”); //arr是一个包 ...
- alibaba druid
FAQ · alibaba/druid Wikihttps://github.com/alibaba/druid/wiki/FAQ sql 连接数不释放 ,Druid异常:wait millis 40 ...
- 简述HTTP协议
引言 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网服务器传输超文本到本地浏览器的传送协议.HTTP 是基于 TCP/IP 协议通信协议 ...
- js手机短信验证
贴代码之前,我们先讲一下这里我们用到的技术主要有1个.setInterval(),这个方法可以实现倒计时的效果. css: .weui_btn_disabled.weui_btn_default { ...
- linux 安装ssh以及ssh用法与免密登录
想要免费登录就是把本地机器的id_rsa_pub的内容放到远程服务器的authorized_keys里面 一.配置yum和hosts文件 配置hosts文件: 命令:vi /etc/hosts 在文件 ...
- mysql sql执行计划
查看Mysql执行计划 使用navicat查看mysql执行计划: 打开profile分析工具: 查看是否生效:show variable like ‘%profil%’; 查看进程:show pro ...
- ssm项目跨域访问
最近使用ssm开发了一个项目,为了项目的开发速度,采用的是前后端同时开发,所以前端文件没有集成在项目中,最后在调试时涉及到了跨域.跨域的解决方法很多,我采用的是最简单的一种,代码如下: 新建一个过滤器 ...