使用.NET开发AutoCAD——C#/AutoCAD 2018/ObjectArx/二次开发入门(二)
1、开发环境配置:
(1)安装AutoCAD2018;
(2)安装VS2015;
(3)安装ObjectARX 2018类库;
(4)安装ObjectARX 2018 .NET开发向导(ObjectARXWizards.msi)。
2、利用向导新建一个ObjectARX项目:File>NEW>project,在项目名称输入yunyou.ke.qq.com,确定。

3、确定后弹出如下对话框:

4、确定后生成项目:

5 、向导自动添加两个类,一个继承IExtensionApplication接口,这个是dll的入口,cad会从这个类加载程序做一些初始化的操作;另外一个可以写自定义的一些cad命令。
6、添加COM库的应用。

7、在“myplugin”中补充如下的命名空间引用。
using Autodesk.AutoCAD.Windows;
using AutoCAD;//com库
8、myplugin.cs代码修改如下:
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Windows;
using AutoCAD;//com库
// This line is not mandatory, but improves loading performances
[assembly: ExtensionApplication(typeof(yunyou.ke.qq.com_1.MyPlugin))]
namespace yunyou.ke.qq.com
{
// This class is instantiated by AutoCAD once and kept alive for the
// duration of the session. If you don't do any one time initialization
// then you should remove this class.
public class MyPlugin : IExtensionApplication
{
void IExtensionApplication.Initialize()
{
//加载dll的时候执行相关加载操作
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("\n加载 云幽学院 yunyou.ke.qq.com\n");
load();
}
void IExtensionApplication.Terminate()
{
//这个是推出时执行
Document doc = Application.DocumentManager.MdiActiveDocument;
doc.LockDocument(DocumentLockMode.NotLocked, "", "", false);
}
private void load()
{
//这里添加一个工具条,添加一个按钮绑定下面的MyCommand命令
//这个是通过com组件实现需要引用cad的两个com组件.
AcadMenuGroups menugroups = (AcadMenuGroups)Application.MenuGroups;
AcadToolbar toolbar = menugroups.Item().Toolbars.Add("云幽学院 yunyou.ke.qq.com");
AcadToolbarItem item = toolbar.AddToolbarButton(toolbar.Count, "MyCommand", "云幽学院MyCommand", "MyCommand\n");
item.SetBitmaps("16x16.bmp", "32x32.bmp");
toolbar.Dock(AcToolbarDockStatus.acToolbarDockTop);
}
}
}
7、Mycommand.cs
using System;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.DatabaseServices;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.EditorInput;
// This line is not mandatory, but improves loading performances
[assembly: CommandClass(typeof(yunyou.ke.qq.com_1.MyCommands))]
namespace yunyou.ke.qq.com_1
{
// This class is instantiated by AutoCAD for each document when
// a command is called by the user the first time in the context
// of a given document. In other words, non static data in this class
// is implicitly per-document!
public class MyCommands
{
// Modal Command with localized name
[CommandMethod("MyGroup", "MyCommand", "MyCommandLocal", CommandFlags.Modal)]//特性标识,标识这个是cad命令
public void Init()
{
Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
ed.WriteMessage("云幽学院 yunyou.ke.qq.com\n");
}
}
}
10、调试,在项目属性中,设置调试->启动外部程序,指定cad的启动路径,指定工作目录为当前程序的生成目录,既可调试。这里每次调试后,都要在启动cad后,通过netload命令加载dll,避免复杂调试、用自己的程序启动AutoCAD 并加载自己开发应用程序等高级方法请见云幽学院的视频课程 yunyou.ke.qq.com 。
使用.NET开发AutoCAD——C#/AutoCAD 2018/ObjectArx/二次开发入门(二)的更多相关文章
- VC++开发AutoCAD 2018/objectARX 用向导新建项目无法新建的问题
话说笔者最近想用新机子上装的AutoCAD ObjectARX 2018来进行二次开发,兴致勃勃安装了ARX API和向导, 然后打开VS2015,新建项目,无法新建. 折腾了一下,还是没有解决,后面 ...
- C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五)
C#/AutoCAD 2018/ObjectArx/二次开发添加圆对象的的例子(五) 1.创建一个图形对象的步骤如下见上一篇博客(三)2.添加删除实体的工具函数见上一篇博客(四) 3.添加圆的例子(完 ...
- C#/AutoCAD 2018/ObjectArx/二次开发添加删除实体的工具函数(四)
1.添加删除实体 C# ObjectARX二次开发添加删除实体是非常容易主要代码如下: 添加实体: objId = btr.AppendEntity(entity); trans.AddNewlyCr ...
- C#/AutoCAD 2018/ObjectArx/二次开发添加图形对象步骤和添加直线的例子(三)
1.创建一个图形对象的步骤如下(1)得到创建对象的图形数据库:(2)在内存中创建实体类的一个对象:(3)定义一个指向当前数据库的事务处理:(4)打开图形数据库的块表:(5)打开一个存储实体的块表记录( ...
- AutoCAD二次开发-使用ObjectARX向导创建应用程序(HelloWorld例子)
AutoCAD2007+vs2005 首先自己去网上搜索下载AutoCAD2007的ARX开发包. 解压后如下 打开后如下 classmap文件夹为C++类和.net类的框架图,是一个DWG文件. d ...
- AutoCad 二次开发 .net 之创建Table
我使用了COM对象来在cad2018中创建table表格,需要的ObjectArx开发包可以在官网上下载,并且需要使用.netframework4.6的库才行. 项目里除了引用常规的Cad开发dll, ...
- 利用C#进行AUTOCAD的二次开发
众所周知,对AutoCAD进行二次开发用到的主要工具有:ObjectArx,VBA,VLisp.但它们的优缺点是显而易见的:ObjectArx功能强大,编程效率高,但它的缺点是编程者必须掌握VC++, ...
- AutoCAD二次开发——AutoCAD.NET API开发环境搭建
AutoCAD二次开发工具:1986年AutoLisp,1989年ADS,1990年DCL,1993年ADS-RX,1995年ObjectARX,1996年Active X Automation(CO ...
- 1,下载和部署开发环境--AutoCAD二次开发
环境需求为: AutoCAD 2020版 ObjectARX SDK 下载地址:https://www.autodesk.com/developer-network/platform-technolo ...
- AutoCad 二次开发 文字镜像
AutoCad 二次开发 文字镜像 参考:https://adndevblog.typepad.com/autocad/2013/10/mirroring-a-dbtext-entity.html 在 ...
随机推荐
- 无法连接MySQL
1.错误描述 Error No. 2003 Can't connect to MySQL Server on 'localhost' (10061) 2.错误原因 打开任务管理器,关闭了m ...
- .net core 环境安装失败,错误:0x80072EE2
安装[DotNetCore.1.0.1-VS2015Tools.Preview2.0.3.exe]失败,提示这个界面 查看log发现,发现猫腻,然后copy下链接,用迅雷手动下载[AspNetCore ...
- STL(set_pair)运用 CF#Pi D. One-Dimensional Battle Ships
D. One-Dimensional Battle Ships time limit per test 1 second memory limit per test 256 megabytes inp ...
- 新建.Net Core应用程序后引用项一直黄色感叹号怎么办?
我们在vs中创建.Net Core应用程序后,引用项可能出现黄色感叹号,正常情况下,这种黄色感叹号时能在项目创建成功之后迅速消失的,可也有些时候一直不消失,怎么办? 我们可以选中异常的项目,然后右键菜 ...
- 内置函数:filter函数
功能: filter函数用于过滤序列,将满足条件的元素取出来构成新的序列. 用法: filter(function, iterable) 接受两个参数,第一个函数为过滤函数(返回True后者False ...
- 让安卓app支持swf的一个播放器,和自己编写的音乐管理程序
jcenter方式导入 在需要用到这个库的module中的build.gradle中的dependencies中加入 dependencies { compile 'com.yhd.hdswfplay ...
- 手把手教你用webpack3搭建react项目(开发环境和生产环境)(一)
开发环境和生产环境整个配置源码在github上,源码地址:github-webpack-react 如果觉得有帮助,点个Star谢谢!! (一)是开发环境,(二)是生产环境. 一.首先创建packag ...
- TC命令流量控制测试(针对具体IP和具体进程)
TC命令流量控制测试 这里测试系统为Linux操作系统,通过简单的TC命令来实现对带宽的控制. 1对具体IP地址的流量控制 这里采用iperf来进行带宽的测试,首先在服务器和客户端都安装上iperf软 ...
- 【Webpack的使用指南 02】Webpack的常用解决方案
说是解决方案实际上更像是webpack的插件索引. 写这一篇的目的是为了形成一个所以,将来要用时直接来查找即可. 索引目录 1.自动构建HTML,可压缩空格,可给引用的js加版本号或随机数:html- ...
- 什么是tcp/ip
在了解Tcp /Ip之前.我们需要了解几个名词的含义: 什么是IP? IP层接收由更低层(网络接口层例如以太网设备驱动程序)发来的数据包,并把该数据包发送到更高层---TCP或UDP层:相反,IP层也 ...