2018.02.10 C#在CAD中画直线

参考自http://blog.csdn.net/sanqima/article/details/38401639C# CAD中画直线

1.Visual C#-类库-名称为:Line2

2.引用三个dll文件,分别为acdbmgd.dll、acmgd.dll、DotNetARX.dll。其中acdbmgd.dll、acdmgd.dll是AutoCCAD托管封装类,DotNetARX.dll是一个用于.net开发AutoCAD程序的类库。前两个dll在AutoCAD的安装文件里可以找到,DotNetARX.dll可以在网上下一个,我用的是DotNetARX6.0。acdbmgd.dll、acdmgd.dll的属性有一个“复制到本地“:False。

3.禁用LoaderLock。点击”调试“--》异常--》 Managed Debugging Assistans-->去掉”LoaderLock“前面的对勾。

4.启用外部程序

5.代码

using System;  
using System.Collections.Generic;  
using System.Text;  
using Autodesk.AutoCAD.DatabaseServices;  
using Autodesk.AutoCAD.Geometry;  
using Autodesk.AutoCAD.Runtime;  
  
namespace Line2  
{  
    public class Line2  
    {  
        [CommandMethod("FirstLine")]  
        public static void FirstLine()  
        {  
            //获取当前活动图形数据库  
            Database db = HostApplicationServices.WorkingDatabase;  
            Point3d startPoint = new Point3d(500, 500, 0);  //直线起点  
            Point3d endPoint = new Point3d(700, 500, 0); //直线终点  
            Line line = new Line(startPoint, endPoint); //新建一直线对象     
            //定义一个指向当前数据库的事务处理,以添加直线  
            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);  
                //将图形对象的信息添加到块表记录中,并返回ObjectId对象.  
                btr.AppendEntity(line);  
                trans.AddNewlyCreatedDBObject(line, true); //把对象添加到事务处理中.  
                trans.Commit(); //提交事务处理  
            }  
        }  
    }  
}  

6.

按F5键启动调试,在AutoCAD的命令行窗口输入命令:

        netload
   找到Line2.dll(一般在工程的Debug目录里),打开Line2.dll,在AutoCAD的命令行窗口输入自定义的命令:
       FirstLine


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值