CAD二次开发 插入外面块
[CommandMethod("InsertOut")] //插入外面的块文件 public void InsertOut() { Editor ed = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument.Editor; Document doc = Autodesk.AutoCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument; PromptPointResult ppr = ed.GetPoint("选择插入点"); Point3d pt = ppr.Value;//获取到插入点 //utility.WriteToEditor(pt.ToString()); string blockPath = @"E:\sguozengWork\德兴市管线数据\pipe\R18\Dwg\well_symbol\变压器.dwg"; using (Database blkDb = new Database(false, true)) { //read drawing blkDb.ReadDwgFile(blockPath, System.IO.FileShare.Read, true, null); blkDb.CloseInput(true); using (DocumentLock docLock = doc.LockDocument())//多文档要先这样,否则报至命错误 { using (Transaction t = doc.TransactionManager.StartTransaction()) { string name = "aa";//aa是不与blockPath文件中的任何块重名的字符串 //insert it as a new block ObjectId idBTR = doc.Database.Insert(name, blkDb, false); //create a ref to the block BlockTable bt = (BlockTable)t.GetObject(doc.Database.BlockTableId, OpenMode.ForRead); BlockTableRecord btr = (BlockTableRecord)t.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite); using (BlockReference bref = new BlockReference(pt, idBTR)) //pt是一个Point3D坐标,这里是插入进当前dwg文件中 { btr.AppendEntity(bref); t.AddNewlyCreatedDBObject(bref, true); } t.Commit(); } } } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律