.NET开发AutoCAD
VS建立控制台应用(.NET FrameWork)
文件initClass.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
//定义InitClass类为程序的入口点
[assembly:ExtensionApplication(typeof(InitAndOpt.InitClass))]
//让AutoCAD只会执行OptimizeClass类中定义的命令
[assembly:CommandClass(typeof(InitAndOpt.OptimizeClass))]
namespace InitAndOpt
{public class InitClass : IExtensionApplication{public void Initialize(){Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;//在autoCAD命令行上显示一些信息,他会在程序载入时被显示ed.WriteMessage("程序开始初始化");}public void Terminate(){System.Diagnostics.Debug.WriteLine("程序结束,你可以在内做一些程序的清理工作,如关闭AutoCAD文档");}//程序并没有设定InitClass类为CommandClass类,因此AutoCAD不会执行该类中的命令[CommandMethod("InitCommand")]public void InitCommand(){Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;ed.WriteMessage("test");}}
}
文件OptimizeClass.cs
载入dll文件,可以由其他.NET开发AutoCAD的过程生成得到。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;namespace InitAndOpt
{public class OptimizeClass{[CommandMethod("OptCommand")]public void OptCommand(){Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;string fileName1 = "C:\\Users\\XXX\\XXX.dll";ExtensionLoader.Load(fileName1);ed.WriteMessage("\n"+ fileName1 +"被载入,请输入Hello进行测试!!!!!!");}}
}
在AutoCAD中cmd里输入netload–>optcommand–>(CommandMethod)
[CommandMethod("drawCircle")]public void drawCircle(){//获取当前活动图形数据库Database db = HostApplicationServices.WorkingDatabase;//获取命令行对象Editor ed = Application.DocumentManager.MdiActiveDocument.Editor;//整圆double radius = (7.0 / 10.0 * L) + (FW + BW) / 2 / Math.PI;Point3d O = new Point3d(0, 200, 0);double OA = (FW + BW) / 2 / Math.PI;Arc Circle1 = new Arc(O, OA, 0, Math.PI * 2 - 0.0001);Arc Circle0 = new Arc(O, radius, 0, Math.PI * 2 - 0.0001);//半圆double radius1 = (7.0 / 10.0 * L) + (FW + BW) / Math.PI;Point3d O1 = new Point3d(150, 200, 0);double O1A1 = (FW + BW) / Math.PI;Arc Circle11 = new Arc(O1, O1A1, Math.PI, Math.PI * 2);Arc Circle01 = new Arc(O1, radius1, Math.PI, Math.PI * 2);//Ellipse ellipse = new Ellipse(new Point3d(0, 0, 0), new Vector3d(0, 0, 1), new Vector3d(100, 0, 0), 0.6,0,Math.PI*2);//定义一个指向当前数据库的事物处理using (Transaction trans = db.TransactionManager.StartTransaction()){BlockTable bt = (BlockTable)trans.GetObject(db.BlockTableId, OpenMode.ForRead);BlockTableRecord btr = (BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite);db.AddToModelSpace(Circle1, Circle0, Circle01, Circle11);trans.Commit();}}
.NET开发AutoCAD相关推荐
- C++ Builder开发AutoCAD应用程序的方法
※ 编程技巧 应用实践 ※ C++ Builder开发AutoCAD应用程序的方法 周永军(水利部山西水利水电勘测设计研究院 030024) [摘要]进行AutoCAD二次开发的程序设计方法为数众多 ...
- Tekla二次开发——AutoCAD导入Tekla
第四篇:Tekla二次开发--AutoCAD导入Tekla 关于极简工具 AutoCAD导入Tekla功能介绍 C# Tekla二次开发开发教学视频 关于极简工具 Tekla和AutoCAD二次开发插 ...
- 使用.NET开发AutoCAD——设计师不做画图匠(一)
(一)前言--如何避免加班那些事 我是谁?我是一名工程设计师,有点"不务正业",在工作之余长期从事软件开发工作,开发了公路铁路行业广泛应用的设计软件.说正题之前,聊聊加班那些事.话 ...
- .NET开发AutoCAD指南
时下流行的开发AutoCAD的工具,一个是ObjectARX,另一个是AutoCAD自带的VBA(AutoCAD内置的Visual lisp本来也算一个,但它只能开发一些小型的程序,因此不能和前面的两 ...
- .NET开发AutoCAD指南(一)
时下流行的开发AutoCAD的工具,一个是ObjectARX,另一个是AutoCAD自带的VBA(AutoCAD内置的Visual lisp本来也算一个,但它只能开发一些小型的程序,因此不能和前面的两 ...
- Visual Studio 2010开发AutoCAD 2012 .net 应用程序调试时断点不起作用
AutoCAD 2012系列产品很快就要正式发布了,对于.net 开发者来说,VS2010无疑是最好用的工具,所以也有好多人在VS2010和AutoCAD 2012 beta版上做开发测试.你在开发时 ...
- python开发autocad插件_Pycad: Python Extension for AutoCad
Pycad Python Extension for AutoCad Editor/Debuger 使用方法: 1.程序支持AutoCad2013-2020(2014版本以下需安装.Net4.5),将 ...
- C#开发 AutoCAD二次开发 自动创建显示Ribbon界面(带图片),打开AutoCAD自动显示,执行响应程序
先看效果图 1.类结构层次 2.新建含图片RibbonButton按钮 RibbonButton button = new RibbonButton(); button.Tex ...
- vbnet 二次开发AutoCAD立体图
''三维 固体 圆环体Dim T As Solid3d = New Solid3d()T.CreateTorus(200, 30)Dim mt As Matrix3d = Matrix3d.Displ ...
最新文章
- php扩展模块安装-lamp
- 11. Django 引入富文本编辑器KindEditor
- shell获取指定程序的pid号
- 不能在 UTF8 和 UCS2 之间转换: failUTF8Conv
- 深度学习笔记第三门课 结构化机器学习项目 第一周 机器学习(ML)策略(1)...
- java小编程---生成不重复的随机数列
- inlfuxdb版本_InfluxDB和MySQL的读写对比测试
- Nuget多项目批量打包上传服务器的简明教程
- Bumblebee微服务网关之请求统一验证
- DDNS-动态域名解析服务
- PAT A1045 动态规划
- Tensorflow精进之路(二):两层卷积神经网络模型训练MNIST
- 关于协方差矩阵的理解
- 大数据分析对物联网发展有什么影响
- 超高频RFID智慧酒店管理系统解决方案
- 《237 Gbit ps unrolled hardware polar decoder》237 Gbit / s展开的硬件极化解码器
- 一个SAP开发人员的双截棍之路
- Stream流中常用的方法
- Vue和layUI的区别何在?
- 派森学python_2019 年 1月 26 日 随笔档案 - 派森学python - 博客园
热门文章
- python-区间划分,统计年龄段性别占比
- 将汉字转为阿拉伯数字(oracle函数方式)
- java正则匹配单引号_正则多行文本匹配(包含单引号的处理)
- .NET框架 Dapper ORM 用法
- Coremail保障企业邮箱安全!《数安法》《关基保护条例》正式施行!
- 罗永浩新公司准备招人,AI写一篇代码文档只需2步,如何优雅地乱搞Python代码、一大波数学资料来袭!AI前沿论文 | ShowMeAI资讯日报
- vue springboot 会员收银系统 (1)
- 【机器学习】Feature selection – Part I: univariate selection
- 【大麦网抢票】演唱会门票还能这样抢?看这里!我用Python实现了大麦网原价秒杀门票功能
- html 色值转换器,颜色转换工具