C# ObjectArx AutoCAD二次开发(转帖)
http://www.cnblogs.com/houlinbo/p/3325898.html
1.开发基本资料准备
用Vs2010进行Autocad 2010开发,首先下载ObjectArx 2010 SDK。
http://download.autodesk.com/akdlm/esd/dlm/objectarx/ObjectARX_2010_Win_64_and_32Bit.exe
2.使用Visual Studio .NET来创建一个新的类库工程
(1)建立类库项目
启动Visual Studio.NET,选择”文件>新建>工程”(File> New> Project)。在新建工程对话框中选择工程类型为”Visual C#工程”,然后选择“windows”>”类库”模板,点击确定按钮来创建工程。
(2)添加引用
在项目引用中添加acdbmgd.dll和acmgd.dll,默认位置在c:/ObjectARX 2010/inc-win32下。
添加引用后,展开引用,单击AcDbMgd和AcMgd,将其属性复制到本地分别改为False,否则可能会出现编译错误。
AutoCAD 2010 采用 .Net Framework 3.5 版本,Vs 2010 创建默认工程采用.Net Framework 4.0 版本,必须将目标框架改为Net Framework 3.5 。修改方法:菜单 项目>ClassLibrary1属性>应用程序>框架属性,选择 .Net Framework 3.5 就可以了。
(3) 导入命名空间。
如:
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
(4) 加入自定义命令
新建HelloWorld的自定义AutoCAD 命令,可以这么做:
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using Autodesk.AutoCAD.ApplicationServices;
- using Autodesk.AutoCAD.EditorInput;
- using Autodesk.AutoCAD.Runtime;
- namespace ClassLibrary1
- {
- public class Class1
- {
- [CommandMethod("HelloWorld")]
- public void HelloWorld()
- {
- Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
- ed.WriteMessage("Hello World");
- }
- }
- }
该命令在当前命令行显示 Hello World。
3. 编译和调试
(1)手动加载
点击生成>生成解决方案,编译完成。
要加载生成的DLL文件,必须用Netload命令。在AutoCAD命令行输入Netload,选择 ClassLibrary1.dll 就可以加载了。
在命令行输入 HelloWorld 命令,就可以看到其执行效果了。
Netload加载的程序不能卸载,要想再调试只能退出Autocad,然后重新编译、加载。
(2)自动加载
菜单 项目>ClassLibrary1属性>调试>启动操作,选择启动外部程序,程序名为AutoCAD.exe ,默认安装位置在c:/Program Files/AutoCAD 2010/acad.exe;命令行参数设置 /nologo /b "d:/ClassLibrary1/ClassLibrary1/bin/debug/start.scr" 。
start.scr 文件是自己编写的autocad运行脚本文件,该文件是文本文件,添加一行文本:netload "d:/ClassLibrary1/ClassLibrary1/bin/debug/ ClassLibrary1.dll"
这样我们就可以直接运行调试了。
(3)调试
按照以上步骤运行后,不支持断点调试,我们还应修改acad.exe.config.xml文件,该文件在c:/Program Files/AutoCAD 2010/下,增加一行 <supportedRuntime version="v2.0.50727"/>内容。修改后的acad.exe.config.xml的内容如下:
<configuration>
<startup>
<supportedRuntime version="v2.0.50727"/>
</startup>
<!--All assemblies in AutoCAD are fully trusted so there's no point generating publisher evidence-->
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
C# ObjectArx AutoCAD二次开发(转帖)的更多相关文章
- AutoCAD二次开发-使用ObjectARX向导创建应用程序(HelloWorld例子)
AutoCAD2007+vs2005 首先自己去网上搜索下载AutoCAD2007的ARX开发包. 解压后如下 打开后如下 classmap文件夹为C++类和.net类的框架图,是一个DWG文件. d ...
- 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 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层
AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层 AutoCad 二次开发 .net 之层表的增加 删除 修改图层颜色 遍历 设置当前层我理解的图层的作用大概是把 ...
- AutoCad 二次开发 文字镜像
AutoCad 二次开发 文字镜像 参考:https://adndevblog.typepad.com/autocad/2013/10/mirroring-a-dbtext-entity.html 在 ...
- AutoCad 二次开发 jig操作之标注跟随线移动
AutoCad 二次开发 jig操作之标注跟随线移动 在autocad当中,我认为的jig操作的意思就是即时绘图的意思,它能够实时的显示出当前的操作,以便我们直观的感受到当前的绘图操作是什么样子会有什 ...
- 我的AutoCAD二次开发之路 (一)
原帖地址 http://379910987.blog.163.com/blog/static/33523797201011184552167/ 今天在改代码的时候,遇到了AddVertexAt方法的用 ...
- Autocad中使用命令来调用python对Autocad二次开发打包后的exe程序
在Autocad中直接调用Python二次开发程序是有必要的,下面介绍一种方法来实现这个功能: 其基本思路是:先将二次开发的程序打包为可执行程序exe,然后编写lsp文件,该文件写入调用exe程序的语 ...
- 承接 AutoCAD 二次开发 项目
本人有多年的CAD开发经验,独立完成多个CAD二次开发项目.熟悉.net及Asp.net开发技术,和Lisp开发技术. 现在成立了工作室,独立承接CAD二次开发项目.结项后提供源码及开发文档,有需要的 ...
随机推荐
- js 刷新页面
Javascript刷新页面的几种方法:1 history.go(0)2 window.location.reload() window.location.reload(true) 3 locatio ...
- ASP.NET的内置对象 —— Request 对象
Request 对象最大的用途在于提交表单信息. (可获取页面间传递的值.客户端的 IP 地址等) 3.2.2 获取页面间传送的值 获取页面传送参数值是 Request 对象最广泛的应用之一. ASP ...
- struts2整合axis2后,访问不到wsdl,被struts2拦截的解决办法
在struts2中整合axis2后,访问wsdl的时候显示404 not found There is no Action mapped for action name xxxxxxxx. 解决办法 ...
- 一篇关于oracle psu的文章(转)
Oracle Database PSU/CPU Posted on 2011-07-28 16:27 dbblog 阅读(2569) 评论(0) 编辑 收藏 1. 什么是PSU/CPU?CPU: Cr ...
- [Vue warn]: Invalid prop: custom validator check failed for prop "xxx".问题
在用vue+ui框架(iview.elementui等)做项目,会遇到这种问题 这样的,点那都报错,千辛万苦的付出,却找不到问题在哪 其实很简单,报错都显示出那个组件的问题了 ‘<Form&g ...
- kill prefix hemi hexa hepta holo input 1
1● hemi 0.5 2● hexa 6 3● hepta 7 4● holo 100%
- ShellExecute函数的问题
情境:自己写了一个loading画面,定时器到时间后调用shellexecute函数调用真正的程序. 问题:调用时出错,说找不到dll资源,但是用鼠标双击确可以打开. 经过分析之后,应该是路径的问题, ...
- 【令人振奋】【转】微软潘正磊谈DevOps、Visual Studio 2013新功能、.NET未来
日前,微软开发平台事业部全球资深副总裁潘正磊(Julia Liuson)从美国总部回到北京参加TechEd2013,在大会现场,潘正磊接受了CSDN的访谈,对于微软研发团队如何运用DevOps模式.对 ...
- DevExpress v17.2新版亮点—.NET Reporting篇(一)
用户界面套包DevExpress v17.2日前终于正式发布,本站将以连载的形式为大家介绍各版本新增内容.本文将介绍了.NET Reporting v17.2 的新功能,快来下载试用新版本! All ...
- 使用MyEclipse将HTML5移动项目迁移到PhoneGap(一)
MyEclipse开年钜惠 在线购买低至75折!立即开抢>> [MyEclipse最新版下载] 一.创建一个新的PhoneGap应用程序项目 PhoneGap应用程序项目的结构与HTML5 ...