c# autocad 将一个DWG里的管线复制到另一个DWG中 20C

c# autocad将一个DWG里的特定图层提取到另一个DWG中

2个回答

 1.在cad2012环境下:

须引用objectarx开发包

PromptPointResult ppr = ed.GetPoint("请选择插入点:"); 

Point3d pt = ppr.Value; //这里获得插入点

utility.WriteToEditor(pt.ToString()); 

blockPath = "b_sample.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(aa, 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();   就是这样  谢谢
       }
   }
}



2.脱离CAD环境下

需引用TDWGNET开发包

 using (new Services())
             {
                 using (Database db = new Database(true, true))
                 {
                     using (Transaction ts = db.TransactionManager.StartTransaction())
                     {
                         using (BlockTable bt = ts.GetObject(db.BlockTableId,OpenMode.ForWrite) as BlockTable)
                         {
                             BlockTableRecord btr1 = new BlockTableRecord();
                             Database odb = new Database(false, false);
                             odb.ReadDwgFile("aaa.dwg", FileOpenMode.OpenForReadAndAllShare, true, null);
                             odb.CloseInput(true);
                             ObjectId objid = db.Insert("aa", odb, false);//这里插入进当前的dwg文件了
                             BlockTableRecord btr = new BlockTableRecord();//这里是插入另一个块
                             btr.Name = "000";
                             Circle c = new Circle(new Point3d(0, 0, 0), Vector3d.ZAxis, 100);
                             btr.AppendEntity(c);
                             ts.AddNewlyCreatedDBObject(c, true);
                             bt.Add(btr);
                             ts.AddNewlyCreatedDBObject(btr, true);
                         }
                         ts.Commit();
                     }


                     //using (Transaction ts = db.TransactionManager.StartTransaction())
                     //{
                     //    using (BlockTable bt = (BlockTable)ts.GetObject(db.BlockTableId, OpenMode.ForRead))
                     //    {
                     //        BlockTableRecord btr=ts.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;
                     //        BlockReference br = new BlockReference(new Point3d(0, 0, 0), bt["aa"]);//这里是插入块于当前的dwg中
                     //        btr.AppendEntity(br);
                     //        ts.AddNewlyCreatedDBObject(br, true);
                     //    }
                     //    ts.Commit();
                     //}
                     db.SaveAs(path + "\\test.dwg", DwgVersion.Current);//保存文件
                 }
             }
        }
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
c# cad中插入另一个dwg的图块
1.在cad2012环境下: 须引用objectarx开发包 PromptPointResult ppr = ed.GetPoint("请选择插入点:");    Point3d pt = ppr.Value; //这里获得插入点   utility.WriteToEditor(pt.ToString());    blockPath = "b_sample.dwg"; usin
C#开发AutoCad,利用ObjectDbx技术在当前dwg文件中插入其它未打开的dwg文件中的图块
C# 利用ObjectDbx技术在当前图形中插入其它未打开的图形中的图块 纠结了两天,在http://forums.autodesk.com/t5/Visual-Basic-Customization/Possible-to-insert-block-from-external-DWG-w-o-inserting-whole/td-p/2001460 这里找到了 vb实现的方法,自己整理下
AUTOCAD的DWG图纸怎么转换成PDF文件
我们用AUTOCAD绘图的时候经常要发PDF格式的图纸给客户,而不是发DWG的。那么我们怎么方便的将CAD文件转换成PDF文件了。      下面我教大家一招,借助PDF虚拟打印机和CAD的打印功能来完成。 CAD软件版本:AUTOCAD 2008 说明:AUTOCAD 2008的软件安装好以后,自带PDF虚拟打印机。其他版本请百度搜索PDF虚拟打印机安装完以后再按照如下
(比如C#)里面调用AutoCAD ActiveX API实现后台打印DWG文件为PDF文件
因为有人问到,所以写了个例子。具体的要求是从.NET(比如C#)里面调用AutoCAD ActiveX API实现后台打印DWG文件为PDF文件,而且要把打印页面的大小设置成和DWG视图的页面的大小一致。当然除了ActiveX API,其它接口,比如ObjectARX和AutoCAD.NET API也支持打印并能实现上述功能的。不过我们今天就限定一下范围,用一用ActiveX API,而且指定产品
AutoCAD .Net 使用 Database.ReadDwgFile 读取dwg文件而不显示文档窗口
我们常常会碰到需要读取外部的 dwg 文件,而又不想在 AutoCAD 的文档窗口中显示。 AutoCAD .Net API 提供了 Database.ReadDwgFile 来实现。 我们首先需要构建一个 Database 对象。 public Database(bool buildDefaultDrawing, bool noDocument); 第一个参数必须传 false。
dwg文件读取 CAD二次开发
很好的cad二次开发源码,希望对大家有用,我可是找了很久才找到的哦
批量合并文件夹里CAD文件到当前工作图纸vba程序
批量合并指定文件夹力的CAD文件到当前工作图纸里,这是个vba程序,可以看代码,没加密的!
c#读DWG文件中Model_Space的数据
一,读取DWG文件中的坐标信息,遇到代理实体则炸开处理 资料下载:点击这里 二、一言不合就直接上代码 using gis.@base.GisBase; using System; using System.Collections; using System.Collections.Generic; using System.IO; using System.Linq; using Syste
CAD开发:DWG合并,dwg转换为dxf
一、需求 有时候由于跨度大、数据量大,会将数据存储于多个dwg文件,比如一条铁路的设计图纸就存在几个甚至几十个dwg文件中。如果想合并为一个dwg文件,手动合并太麻烦,所以就可以采用代码合并。本文使用teigha库进行编码。 二、直接上代码 /// /// dwg文件转换为dxf文件,多个dwg文件合并为一个dxf或dwg文件 ///
在Winform窗体中显示AutoCAD文件(dwg文件)
    最近刚刚换了新工作,接收的第一项工作就是使用C#开发Winform,在Winform中显示AutoCAD文件(后缀名为dwg)。工作这么多年还是第一次遇到这样的需求(以前主要是做Web开发) 。为了加快开发进度,初步确定了使用第三方控件来实现这个功能。但使用什么控件,如何实现呢?在网上搜索了一下此类问题的信息,发现还真的没有多少详细说明如何实现的文章。不得已,只好自己寻找。经过一段时间的查
查CAD扩展属性列表,轻松使用简单工作
查CAD扩展属性列表,轻松使用简单工作,使用netload加载到cad中,点击生成得菜单点选实体,可以查询实体得扩展属性
dwg文件和dxf批量互转的方法
把dwg文件和dxf批量互转一直是围绕CAD工作者的难题,dwg和dxf是不同的CAD格式,但是两种格式在工作中都会用到,就可能涉及到dwg文件和dxf的互转问题,具体就给大家出一波教程,批量的将dwg文件和dxf文件进行互转!  1.我们首先使用百度浏览器搜索安装迅捷CAD转换器;   CAD转换器官方下载http://www.cadzhuan.com/  2.我们安装好迅捷CAD转换器,在
c# 将dwg文件转化为pdf
最近做一个项目,要求将dwg文件转化为pdf,开发工具VS2010 + AutoCad 2011, 在网上查了很多代码都有各种问题,解决重重的问题,终于实现了批量转化。   1.首先引入com组件 AutoCAD 2011 Type Library AutoCAD/ObjectDBX Common18.0 Type Library 2.创建/获取CAD实例
尝试C#将CAD二维多段线转为三维管线样式
最近每天学CAD,今天试着体验下三维,略有小成给大家分享一下,把CAD二维的多段线转为三维的,想对于管线类应该很实用。 效果图如下: #region 二维管线转三维管线模型 [CommandMethod("solid3d")] public void Solid3d() { #region 选择二维管线创建三维模型 PromptSelectionOptions m_sele
matlab绘图转autocad的dwg
写了一份专利,里面用到了一些matlab plot出来的图。专利部的同事让我转成autocad的dwg格式。原以为用原始数据在autocad里画几条曲线就ok了。后来想想,没有那么简单。因为图里还有网格,横坐标、纵坐标以及数值标签,还有图例。这样的工作太浩大了。而且我对autocad基本不熟,花功夫在上面实在是太耗时间了。于是找到了通过转存AI格式,再转成dwg的格式的方法。 注:要用到的软件有
WPF中使用WinForm控件预览DWG文件(学习笔记)
操作环境:XP,C# ,.Net4.0和VS2010中测试                      WinForm中使用DWGThumbnail不用这么麻烦,下面讨论的是在WPF中使用,WPF中无法直接引用DWGThumbnail.ocx来操作                      新建一个WPF项目,           添加一个WinForm窗口(即Form1.cs),在For
AutoCAD .Net 在dwg文件中存储自定义数据
问题我需要在 dwg 文件中存储一些信息,以额外描述图形文件并使它能够和其它软件程序集成。 请问怎样才能在 dwg 文件中写入自定义数据并读取?回答你可以使用 Named Object Dictionary (NOD, 中文名: 命名对象字典) 来存储自定义数据。 以下示例程序展示了如何在当前 dwg 文件中写入自定义数据并读取。[CommandMethod("CAXDEV_WNOD")] pu
c#生成dwg文件实例
C#调用autocad.net生成DWG文件。需要安装AUOTCAD,实例引用的cad2007的com组件。可以根据安装的cad版本重新引用
VB读取预览autoCAD(dwg)文件示例
直接读取autocad文件,在界面上显示图像,并可以保存为位图格式。
C# 读取CAD文件缩略图(DWG文件)
//C# 读取CAD文件缩略图(DWG文件)   //2010-09-04 16:34:58|  分类: C# |字号 订阅 //在不使用任务插件的情况下读取DWG文件的缩略图,以便在没有安装AutoCAD的计算机上浏览。 using System; using System.Collections.Generic; using System.ComponentModel
C#读取DWG文件
struct BITMAPFILEHEADER { public short bfType; public int bfSize; public short bfReserved1; public short bfReserved2; public int bfOff
使用CadLib实现CAD(dxf、dwg格式)文件的读取和显示
使用CadLib实现CAD(dxf、dwg格式)文件的读取和显示
关于AutoCAD的dwg文件操作学习
由于工作需要最近在研究AutoCAD的.dwg文件的读取问题。在网上查了很多的资料和信息。理解渐有清晰。对于在网上看到的资料现在此记录连接,以备以后不时之需。但博客初写,不知是否算是原创,而其他类型也不甚合适,暂且如此。下面是感兴趣的链接,记录如下: 1、《基于OpenDWG Toolkit访问AutoCAD DWG图形文件》,此文有相对清晰的整体概述。连接:http://www.doc88.c
AutoCAD DWG文件浏览器
AutoCAD DWG文件浏览器,支持AutoCAD 2000-2008所有版本 您可以像在AutoCAD里一样浏览查看DWG文件,很多习惯和您在AutoCAD里是一样的。不需要你的资源分,也就是说下载不花积分,但至少给个评分和意见吧。软件是没有病毒的,如报病毒您可以把该杀毒软件扔了,因为误报太严重了,不扔您会后悔的。
CAD DLL发布v12新版本,支持最新版本的DWG - AutoCAD®DWG 2018
CAD DLL是一个为开发者打造的新版本CAD库,可在支持动态链接库技术的语言中添加CAD功能到应用程序中。   【CAD DLL v12点击下载>>>】 最新的CAD DLL 12是一个用于在VC ++、VB和Delphi / C ++ Builder中查看和转换DWG、DXF、HPGL、SVG和其他CAD文件的库。   现在,CAD DLL支持最新版本
ObjectARX学习笔记(二十七)---如何拷贝将一个AcDbDatabase拷贝到另一张dwg里面
Acad::ErrorStatus insert( const AcGeMatrix3d& xform, AcDbDatabase* pDb, bool preserveSourceDatabase = true ); Parameters Parameters Description const AcGeMatrix3d& xform Input transf
获取DWG图纸块的属性字串
上次介绍了工程图里三种文本形式 http://blog.csdn.net/autodeskinventorapi/article/details/8524401。DWG图纸的块可以有属性文本。该文本是一种提示字串。Inventor API提供方法可访问到这些信息。 假定有这样一个AutoCAD图纸,其中有个块叫做myblock, 含有三个属性:aaa,bbb,ccc。最终显示的字串是:aaa-r
asp net在线生成CAD C#
vs2012开发 此dll是试用版 cad lib最新版) 未破解 希望有高手能破解cadlib dll 可以在线生成cad档(在线读取CAD档未写demo 如果需要可以与我联系mansai@163 com 如果有高手可以破解dll档请与我联系) 网上很多cadlib的破解只能用在winform里 在asp net里不能用 ">vs2012开发 此dll是试用版 cad lib最新版) 未破解 希望有高手能破解cadlib dll 可以在线生成cad档(在线读取CAD档未写demo 如果需要可以与我联系mansai@163 com 如果有高手可以破解dll档请与我联系) 网上很多cadlib的破解只能用 [更多]
C#解析CAD文件
C# 读取Autocad DXF文件图形数据,基于WPF环境开发并显示图形文件
web html页面显示autocad等dwg格式图形文件方法
2中思路,一种是转换后显示,比如vectordraw,将dwg转换成vds格式,再在web中显示,支持图层啊之类。还有CADViewer JS是转成SVGA,pdf等格式,然后用web浏览……其实转换格式也是一个办法,用golang在后端,当有请求的时候,调用转换程序AutoXChange进行dwg到pdf的转换。如下列代码,缺点有2个,一个是万一后端转换不成功,等待很久,还要退出这个进程,另一个...
使用Teigha.NET操作DWG基本配置
一、安装下载需要的环境 VS2012、Teigha.NET3.08.03
Delphi利用AutoCAD类型库调用DWF Viewer 的例子(原创)
 unit Unit1;{ Delphi利用AutoCAD类型库调用DWF Viewer 的例子                                   }{ 作者:钏裕民 2006年6月10日于昆明                                               }{ Email :  chuanyumin@126.com.cn              
CAD在线预览
系统支持AutoCAD(DWG、DXF)图纸在线预览,在线直接查看,欢迎与我联系!
利用AutoCAD I/O 和View & Data 做DWG图纸的无纸化签字
在几次活动中,听到有用户提及一些审批流程里,需要对DWG图纸签字,通常在图纸的标题栏里。标题栏中的文字项是Attribute,如果是文本好办,直接设置其TextString,而如果是签字,则只能打印出纸质的。能不能无纸化签字,甚至不需要安装AutoCAD做签字呢?利用 AutoCAD I/O 和View & Data,这个成为了可能。 节前利用零星时间写了个程序,
戏说CAD开发 DWG文件格式浅析
     可恶的AutoDESK用自己的操作方式和格式一同天下,据统计世界上有70%的图纸是dwg格式的。所以大家都不得不去琢磨这个dwg,如果那个公司说要推出自己的格式抗衡dwg,你就全当他在说梦话吧。毕竟林子很大吗。。:)    OpenDesign一直在破解dwg格式,做的是最成功的一个了。应该说是唯一的一个。这个组织三番两次的邀请AutoDESK加入他们,结果人家理都不理。     当然,
在C#中使用ObjectDBX技术从未打开的AutoCAD图形中获得图块的信息
在C#中使用ObjectDBX技术从未打开图形中获得图块的信息C#才鸟(QQ:249178521)    从未打开图形中能获得图块的信息吗?回答是肯定的。下面就来说明具体的实现方法。    要求:n         会用C#编程n         读过我写的“利用C#进行AutoCAD的二次开发“(在csdn中有)    开始:n         在visual stu
pyautocad+openpyxl简单的处理一下cad文件
from pyautocad import Autocad import openpyxl wb=openpyxl.load_workbook('./cads.xlsx') sheet=wb.get_sheet_by_name('Sheet1') data=[] pset=[] acad=Autocad(create_if_not_exists=True) acad.prompt('he
dwg转成shape格式
 说明:该代码是调用GP工具实现filePath:输入路径,dwg文件路径,比如:C:/Documents and Settings/Administrator/桌面/dwg/aa.dwgoutPutPath:输出路径,shape文件路径,比如:C:/Documents and Settings/Administrator/桌面/shp/bb.shp private void Co
CAD文件转换为SVG文件的探讨
详细剖析了CAD的图形交换格式———DXF文件的结构,分析了SVG文件的框架元素和图形元素,建立了CAD中的对象、DXF文件中的实体和SVG中的元素三者之间的对应表,并对转换中遇到的难点问题提出了解决方案,最后,通过编程实现验证了方法的可行性。 来源:SVG中国(ChinaSVG.COM)  [SVG中国专题文章]引言   目前CAD技术已广泛应用于建筑设计、机械设计、城市规划、
直接读写DWG文件
我正在用delphi直接读写DWG文件,有兴趣交流。
相关热词 c#入门推荐书 c# 解码海康数据流 c# xml的遍历循环 c# 取 查看源码没有的 c#解决高并发 委托 c#日期转化为字符串 c# 显示问号 c# 字典对象池 c#5.0 安装程序 c# 分页算法