C#开发AutoCad,利用ObjectDbx技术在当前dwg文件中插入其它未打开的dwg文件中的图块
2012-12-27 15:29
393 查看
C#开发AutoCad,利用ObjectDbx技术在当前dwg文件中插入其它未打开的dwg文件中的图块
纠结了两天,在http://forums.autodesk.com/t5/Visual-Basic-Customization/Possible-to-insert-block-from-external-DWG-w-o-inserting-whole/td-p/2001460 这里找到了
vb实现的方法,自己整理下 就变成了如下方法,请看代码
图就不上传了
纠结了两天,在http://forums.autodesk.com/t5/Visual-Basic-Customization/Possible-to-insert-block-from-external-DWG-w-o-inserting-whole/td-p/2001460 这里找到了
vb实现的方法,自己整理下 就变成了如下方法,请看代码
/// <summary> /// 添加块 /// </summary> /// <param name="StartX">插入起始点X值</param> /// <param name="StartY">插入起始点Y值</param> /// <param name="FilePath">块文件路径</param> public void AddBlock(double StartX, double StartY, string FilePath) { string programeID = "ObjectDBX.AxDbDocument.18"; AxDbDocument dbxDoc; dbxDoc = (AxDbDocument)connector.Application.GetInterfaceObject(programeID); dbxDoc.Open("C:\\Users\\Administrator\\Desktop\\4025all.dwg");//包含多个块的文件 AcadBlock block = dbxDoc.Blocks.Item("4025-dowm");//4025-dowm 该块只是文件中的其中一个,可以将其参数化,此处只为实现功能设定 AcadObject[] obj = new AcadObject[1] ; obj[0] = (AcadObject)block; dbxDoc.CopyObjects(obj, connector.Application.ActiveDocument.Database.Blocks);//将块信息拷贝到当前块集合中 connector.Application.ActiveDocument.ModelSpace.InsertBlock(new double[3] {StartX, StartY, 0 }, "4025-dowm", 1, 1, 1, 0);//插入到当前文件 }
图就不上传了
相关文章推荐
- ObjectDBX技术: 脱离AutoCAD处理dwg文件(NET 实现)
- 在C#中使用ObjectDBX技术从未打开的AutoCAD图形中获得图块的信息
- 【Android开发】Android打开并读取Word文件到html中采用PIO技术
- 在C#中使用ObjectDBX技术从未打开图形中获得图块的信息
- 利用C#进行AutoCAD的二次开发(三)
- C#窗体中利用richtextbox控件,打开指定word文件,并进行编辑保存等操作,出现Office或者是Interop未定义的解决方案
- AutoCAD二次开发(C#.Net)之字符串转换成ObjectId
- 利用C#进行AutoCAD的二次开发(一)
- AutoCAD文档03——常见问题03.打开一个DWG文件提示缺少SHX
- 利用C#进行AutoCAD的二次开发(二)
- 【C#】利用富文本框打开,保存text文件【源代码】
- 利用C#进行AutoCAD的二次开发(二)
- 利用C#进行AutoCAD的二次开发(二)
- 利用C#进行AutoCAD的二次开发(一)
- 利用C#进行AutoCAD的二次开发(一)
- 利用C#进行AutoCAD的二次开发(三)
- C#连接access数据库,无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。
- 用C#实现利用F1打开帮助文件
- 比如C#里面调用AutoCAD ActiveX API实现后台打印DWG文件为PDF文件
- C#连接Access报“无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。”