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 命令,可以这么做:

[c-sharp] view plaincopy

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using Autodesk.AutoCAD.ApplicationServices;
  6. using Autodesk.AutoCAD.EditorInput;
  7. using Autodesk.AutoCAD.Runtime;
  8. namespace ClassLibrary1
  9. {
  10. public class Class1
  11. {
  12. [CommandMethod("HelloWorld")]
  13. public void HelloWorld()
  14. {
  15. Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;
  16. ed.WriteMessage("Hello World");
  17. }
  18. }
  19. }

该命令在当前命令行显示 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>

时间: 2024-08-05 21:18:20

C# ObjectArx AutoCAD二次开发(转帖)的相关文章

AutoCAD二次开发-使用ObjectARX向导创建应用程序(HelloWorld例子)

AutoCAD2007+vs2005 首先自己去网上搜索下载AutoCAD2007的ARX开发包. 解压后如下 打开后如下 classmap文件夹为C++类和.net类的框架图,是一个DWG文件. docs帮助文件 inc引用的头文件 lib引用的库文件 redistrib其他引用的库文件 samples例子 utils其他东西 打开utils 上面几个是头文件和库文件 ObjARXWiz这个文件夹是向导(2012以后的版本就没有了,要去官网单独下载,不和开发包在一起) 打开后如下 直接双击安装

AutoCAD二次开发&mdash;&mdash;AutoCAD.NET API开发环境搭建

AutoCAD二次开发--AutoCAD.NET API开发环境搭建 AutoCAD二次开发--AutoCAD.NET API开发环境搭建 AutoCAD二次开发工具:1986年AutoLisp,1989年ADS,1990年DCL,1993年ADS-RX,1995年ObjectARX,1996年Active X Automation(COM),1997年VBA,1998年Visual Lisp,2006年.net API(DLL). 趋势和方向:AutoCAD.net API(AutoCAD20

1,下载和部署开发环境--AutoCAD二次开发(2020版)

教程说明: 本教程为2019年10月开始编撰,使用CAD官方最新版本的软件和库.对旧版本仍有参考价值. 本教程中使用的各种软件版本为官方指定匹配版本. 本教程需要你拥有编程基础,对于普通编程常识不再敷述.当然,你可以留言提问. 环境需求为: AutoCAD 2020版 ObjectARX SDK 下载地址:https://www.autodesk.com/developer-network/platform-technologies/autocad/objectarx-license-downl

.NET AutoCAD二次开发之路(一、基础篇)

学习AutoCAD二次开发已经有一段时间了,磕磕碰碰,十分的艰辛枯燥.但回想一下还是会有些小激动,嘿嘿!最近这段时间一直都有这么个想法,就是将我学习CAD二次开发的过程用文字的方式记录下来,形成系列,并定期更新.主要内容就是记录自己每天学习过程中所碰见的问题和感悟,并总结今天所学到的内容.目的一是激励自己坚持下去,看着自己一步一步的提高,多有成就感.还有就是和大家积极沟通,希望能够指正我的错误,减少我的弯路.再者就是望能给后面学习的人一点点借鉴经验,好吧其实还有点装B的心里.废话不多说就进入今天

AutoCAD二次开发

AutoCAD本身是功能强大.可配置性极高的软件,并且由于AutoCAD良好的软件架构,AutoCAD的二次开发能力也极强,几乎所有可见的软件功能都能在SDK内找到封装好的接口,由于AutoCAD SDK的向后兼容性极好,写出的程序几乎不用修改就可以适用于所有版本的AutoCAD. AutoCAD的第一代开发工具是AutoLISP,是AutoCAD定制的LISP语言,至今仍然是一个活跃的LISP分支,第二代开发工具是基于C语言的ADS,目前来看几乎被淘汰了,也是被AutoDesk公司标记为dep

.NET AutoCAD二次开发之路(一、直线篇)

我以前只有一点VB的基础,C语言也只是看过,学这个CAD二次开发,也是借工作之余研究下,我到现在已经从事机械行业5年了,中国的工业设计环境区别太大,各行各业的技术现状也不尽相同,但有一点是可以肯定的,那就是自动化,国外都在工业4.0了,我们还在互联网+,哎太out了,我也赶紧进修下,要不就淘汰了.所以我选择了CAD二次开发,主要还是跟专业接近,希望能越学越精吧,未来就让未来的我去面对! 今天主要总结下直线的创建,要想能在CAD中生成直线或者其他图形,都必须遵循几个步骤,那就是: 1.获取当前图形

承接 AutoCAD 二次开发 项目

本人有多年的CAD开发经验,独立完成多个CAD二次开发项目.熟悉.net及Asp.net开发技术,和Lisp开发技术. 现在成立了工作室,独立承接CAD二次开发项目.结项后提供源码及开发文档,有需要的话可以提供发票. 有需求的可以 [email protected] 联系开发事宜.

AutoCAD二次开发(2020版)--4,使用ARX向导创建编程模板(框架)--

手动创建ObjectARX应用程序非常麻烦,在此步骤中,将介绍ObjectARX向导. 在这里,我们将使用ObjectARX向导创建我们的ObjectARX应用程序. 本节的程序的需求是,接收CAD用户的输入. 首先,打开VS2017,新建项目 在左边的树形目录里依次选择 Visual  C++    -->  Autodesk 然后在窗口中间选择 ARX/DBX Project For AutoCAD 2020 点击确定 这里可能遇到一些状况导致点击确定后无法进入下一步, 有可能是本教程开头介

AutoCad 二次开发 .net 之相同块的自动编号

主要步骤: 一.获取一个块的id: 其中oId就是了. 二.通过次oId获取块引用blkRef: 三.通过它获取所有相同的块引用的id集合: 四.通过步骤三的集合得到所有的块引用得到集合listBr: 五.遍历listBr,创建DBText编号 ,确定DBText在图中插入的位置,加入到集合listDBText: 在做第五步骤前,先要获取TextStyleId: 最后通过扩展方法加入到模型空间:listDBText.ToSpace(); ToSpace方法截图: 需要注意的地方:一定要是块定义,