AutoCad二次开发-插入DWG参照 Teigha库

近日需要运用Oda的teigha库进行不开AutoCad进行dwg地图参照和绑定,查看了SDK终于实现这一需求,故将实现方法分享出来。
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Teigha.DatabaseServices;
using Teigha.Runtime;namespace HelloTeigha
{internal class Program{private static string _desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);static void Main(string[] args){var sourceFile = Path.Combine(_desktop, "SourceDwg.dwg");var targetFile = Path.Combine(_desktop, "Target.dwg");var Target_tz = Path.Combine(_desktop, "AX-04-P03.dwg");using (var service = new Services())using (var database = new Database(false, true)){database.ReadDwgFile(sourceFile, FileOpenMode.OpenForReadAndReadShare, true, "");using (var transaction = database.TransactionManager.StartTransaction())using (var blockTable = database.BlockTableId.GetObject(OpenMode.ForWrite) as BlockTable)using (var modelSpace = blockTable[BlockTableRecord.ModelSpace].GetObject(OpenMode.ForWrite) as BlockTableRecord){try{if (File.Exists(Target_tz)){var referId = database.AttachXref(Target_tz, "AX-04-P03");var blockRefer = new BlockReference(new Teigha.Geometry.Point3d(0, 0, 0), referId);modelSpace.AppendEntity(blockRefer);transaction.AddNewlyCreatedDBObject(blockRefer, true);database.BindXrefs(new ObjectIdCollection() { referId }, true);transaction.Commit();database.SaveAs(sourceFile, DwgVersion.AC1024);}}catch (System.Exception){}}}}}
}

AutoCad二次开发-插入DWG参照 Teigha库相关推荐

  1. C# AutoCAD二次开发: 读取DWG文件将全部实体变为一个块。

    读取DWG文件将全部实体变为一个块 将DWG文件中所有DBObject组成一个块, 如果DWG文件中有属性参照, 则属性变为块属性. 我刚开始学习不久.Net AutoCAD的二次开发, 所以记录在这 ...

  2. 基于C#的AutoCAD二次开发之块操作

    基于C#的AutoCAD二次开发之块操作 什么是块? 块由多个在逻辑上相关的图形对象所定义的整体. 块的优点有哪些 统一作业标准.提高作业效率 压缩图形文件 便于修改和维护 块的分类 块的分类 简单块 ...

  3. 陈伯雄lisp_基于AutoLisp的AutoCAD二次开发自动生成系统图

    龙源期刊网 http://www.qikan.com.cn 基于 AutoLisp 的 AutoCAD 二次开发自动 生成系统图 作者:郎建山 金江 来源:<科技视界> 2013 年第 2 ...

  4. autocad型源代码_VB与AUTOCAD二次开发源代码包

    在发个VB与AUTOCAD二次开发源代码包,包括以下内容: 在学校的话,叫计算机辅助设计 第一章 VB开发AotoCAD基础知识 第一节 欢迎进入VB开发AUTOCAD的精彩世界 第二节 VB 开发 ...

  5. cass二次开发vba和lisp_基于VBA的AutoCAD二次开发及应用实例

    1引言本文引用地址:http://www.eepw.com.cn/article/190993.htm AutOCAD2005是AutOdesk公司的系列产品,该软件从其使用和设计思路上都秉承了工程制 ...

  6. 光伏自动化出图系统 基于C#的AutoCad二次开发

    CAD计算机软件的开发及应用,是工程公司提高设计工作效率,工程设计质量的重要手段.在光伏发电工程设计的过程中,需要进行一系列工程计算.目前在设计中设计的计算包括:高度角计算,最佳倾角计算,光伏阵列布置 ...

  7. eps高程点和高程注记不符_利用AutoCAD二次开发实现地形图高程点与等高线错误自动查找...

    原标题:利用AutoCAD二次开发实现地形图高程点与等高线错误自动查找 水土保持之点滴,关注后可查阅所有文章 来源:<测绘通报>2017年第5期 作者:刘洪.黄军胜 摘要:论述了数字地形图 ...

  8. AutoCAD二次开发实现简单的自动编号

    今天一早上看了群里有小伙伴有这样的需求,是实现用户用鼠标点击拾取AutoCAD平面,拾取点然后作为插入编号文字位置,按住esc键后,退出自动编号.按照他的需求,我这里大致想了一下,如果按照该小伙伴提出 ...

  9. 用C语言编程函数求圆台体积,第六篇 AutoCAD二次开发技术.pdf

    第六章 ObjectARX 开发技术 1. AutoCAD二次开发概述 7. MFC对话框 2. ObjectARX简介 8. 搜索图形数据库及获取实体 3. 常用实体类和几何类 数据 4. 创建实体 ...

  10. AutoCAD 二次开发语言的选择

    因为某些功能的原因,一部份VBA的用户最终选择了NET,又因为某些功能的原因,一部份NET的用户最终选择了C++.最终这部份业余用户走上了专业的二次开发之路,而脱离了原来的专业. 来自 一个CAD群叫 ...

最新文章

  1. Security issue about static code checking
  2. OpenGL 投光物Light casters
  3. redis.exceptions.AuthenticationError: Client sent AUTH, but no password is set
  4. python selenium ---键盘事件
  5. 计算机控制系统开关,电脑远程开关机控制器
  6. 电压放大倍数公式运放_模电的半壁江山——运算放大器的原理和应用
  7. 查看linux上卸载mysql数据库_linux卸载mysql数据库
  8. f28335的c语言结构体,TMS320F28335程序SVPWM源程序
  9. 计算机绘图中有六种方法绘圆,圆的绘制教案
  10. 用Ps按比例缩小图片整体的尺寸
  11. android * 工程模式,教你认识Android的各种工程模式
  12. 快速分析出京东快递大量单号物流是否延误
  13. mtv和mcv开发模式
  14. 开关磁阻电机控制仿真 开关磁阻电机传统控制:电流斩波控制、电压PWM控制、角度位置控制。 智能控制:12/8三相开关磁阻电机有限元分析本体建模
  15. shp文件转换到CAD dwg,dxf
  16. 栈内存 堆内存 (数据类型间的存储区别)
  17. 【ICLR 2023】RankCSE:基于排序学习的无监督句子表示学习
  18. 洛谷 P1162 填涂颜色 C++ 深搜 染色法
  19. matlab三维图与二维图画在一起,matlab 画二维图与三维图
  20. Java中“/”的使用

热门文章

  1. crontab 问号_轻松搞定crontab和quartz表达式
  2. 物联网毕业设计 太空游戏机设计与实现
  3. 未能成功加载扩展程序_在手机浏览器上安装Chrome扩展的方法,你们都用上了吗?...
  4. python自动下载论文_教你如何利用Python批量下载论文
  5. 数学分析教程(科大)——1.9笔记+习题
  6. ubuntu linux ftp命令的使用
  7. 完整的连接器设计手册_工业连接器如何选型
  8. 学习笔记—网络规划和设计
  9. 举例 微积分 拉格朗日方程_(完整word版)拉格朗日方程的应用及举例08讲
  10. kali metsploit 工具入侵windows