C# CAD批量转换为图片
最近写了个工具,将指定目录下的CAD文件批量转换为图片格式。
首先需要添加对应的引用 :
在AutoCAD2008的环境下对应AutoCAD 2008 Type Library 和 AutoCAD/ObjectDBX Common 17.0 Type Library 这两个引用,
笔者由于是AutoCAD2010,只找到了AutoCAD 2010 Type Library 没能找到第二个,百度后得知添加对文件“C:\Program Files\Common Files\Autodesk Shared\axdb18enu.tlb”的引用就可以了。
初始化AutoCAD,根据版本不同对应的ProgramID也不相同:
1 private static AcadApplication _app = null;
1 #region 初始化CAD程序 2 #region CAD ProgramID对照表 3 //AutoCAD 2004 4 //R16 5 //AutoCAD.Application.16 6 //AutoCAD 200 7 //R16. 8 //AutoCAD.Application.16. 9 //AutoCAD 2006 10 //R16. 11 //AutoCAD.Application.16. 12 //AutoCAD 2007 13 //R17 14 //AutoCAD.Application.17 15 //AutoCAD 2008 16 //R17. 17 //AutoCAD.Application.17. 18 //AutoCAD 2009 19 //R17. 20 //AutoCAD.Application.17. 21 //AutoCAD 2010 22 //R18 23 //AutoCAD.Application.18 24 //AutoCAD 20 25 //R18. 26 //AutoCAD.Application.18. 27 #endregion 28 string programID = "AutoCAD.Application.18.0"; 29 try 30 { 31 //如果CAD已经打开,就直接获取 32 _app = (AcadApplication)Marshal.GetActiveObject(programID); 33 } 34 catch 35 { 36 try 37 { 38 //创建新的实例 39 _app = (AcadApplication)new AcadDocument().Application; 40 } 41 catch (Exception ex) 42 { 43 return; 44 } 45 } 46 #endregion
然后加载CAD文件并转换为图片格式,转换完成后需要关闭对应的CAD文件释放占用:
1 AcadDocument doc = null; 2 string destPath = string.Empty; 3 try 4 { 5 doc = _app.Documents.Open(pFile.FullName, true); 6 doc.SetVariable("sdi", 0); 7 doc.SetVariable("Filedia", 0); 8 doc.SetVariable("RASTERPREVIEW", 1); 9 doc.SetVariable("BACKGROUNDPLOT", 0); 10 doc.ActiveLayout.ConfigName = "PublishToWeb JPG.pc3"; 11 doc.ActiveLayout.UseStandardScale = true; 12 doc.ActiveLayout.StandardScale = AcPlotScale.acScaleToFit; 13 doc.ActiveLayout.PlotType = AcPlotType.acExtents; 14 doc.ActiveLayout.CenterPlot = true; 15 doc.ActiveLayout.PlotRotation = AcPlotRotation.ac0degrees; 16 doc.ActiveLayout.PlotType = Autodesk.AutoCAD.Interop.Common.AcPlotType.acExtents; 17 doc.Plot.QuietErrorMode = true; 18 destPath = Path.Combine(pFile.Directory.FullName, Path.GetFileNameWithoutExtension(pFile.Name) + ".jpg"); 19 doc.Plot.PlotToFile(destPath, "PublishToWeb JPG.pc3"); 20 21 } 22 catch (System.Exception e) 23 { 24 return false; 25 } 26 finally 27 { 28 if (doc != null) doc.Close(false); 29 }
在全部处理完成后需要关闭CAD应用:
#region 关闭CAD程序 try {_app.Quit(); } catch (Exception ex) {return; } #endregion
转载于:https://www.cnblogs.com/nightroad/p/9392163.html
C# CAD批量转换为图片相关推荐
- 利用convert【ImageMagick】把pdf批量转换为图片踩坑(gs报错和清晰度问题)
利用convert[ImageMagick]把pdf批量转换为图片踩坑 前言 坑1 gs报错 解决方案: 坑2 导出的文件太模糊 解决方案 参数介绍: 总结 最后附上完整的命令 前言 最近做一个pdf ...
- excel排版用于印刷:pdf批量转换为图片方便校验排版错误
下载地址:http://blog.csdn.net/bq_cui/article/details/49685983 面对几千个pdf文件,怎样才能快速发现其中存在排版错误的文件?我们可以将这些pdf文 ...
- 将一个文件夹里面的视频批量转换为图片并保存在同一目录下
import os import cv2cut_frame = 1 # 多少帧截一次,自己设置就行 save_path = "/media/gpu/00758835-1a92-4611-8a ...
- 测试软件能批量转换成pdf吗,cad如何批量转换为pdf软件
CAD转换成PDF的方法有很多,那么大家知道cad如何批量转换为pdf软件吗?下面是学习啦小编整理的方法,希望能给大家解答. cad批量转换为pdf软件的方法: 1.首先要打开所有要转换的dwg文件, ...
- 批量下载图片-免费批量下载图片软件
总有一些图片你想保存 小周浏览了某个网页发现上面的有很多很漂亮的图片,于是想保存下来,开始一波疯狂操作:右键-->图片另存为....保存了50张图片后,手酸得不行了.使用这款图片批量下载软件不到 ...
- CAD图纸转换为高精度图片
大学毕业后刚进公司就被要求独立完成一个新的业务需求:将CAD图纸(.dwg格式)转换为高精度图片,并且在系统首页进行展示.从需求来看,可以分为两个步骤来完成:格式转换+首页展示. 这里主要讲述如何解决 ...
- 如何批量将PDF转换为图片?
在生活工作中,我们会处理很多电子合同.这些电子合同一般是PDF格式,不但存储空间大,且预览起来不太便捷,需要我们转换为图片格式更方便预览.如果人工一一处理比较繁琐复杂,有没有什么方案可以快速将pdf转 ...
- Unity 批量选择图片并转换为材质
批量选择图片并转换为材质 用Selection.GetFiltered来表示选择到的物体 第一个参数表示仅检索此类型的对象. 第二个参数 SelectionMode.Assets 表示仅返回 Asse ...
- 想知道CAD怎么转图片格式?跟我学会这几招就足够了
在日常生活中,我们会接触和处理到很多不同格式的文件,其中收到CAD文件会比较麻烦,需要有安装相关的软件才可以打开它,对此你是不是很烦躁呢.其实只要我们将CAD的文件格式转换成图片格式,就可以查阅里面的 ...
- 可以将CAD图纸转换为CAD格式吗?怎么进行PDF转CAD的操作?.files
我们都知道,在CAD图纸绘制完成后,将图纸保存为PDF格式可以帮助我们更加便捷的对图纸进行查看,那么当我们将CAD图纸转换为PDF格式进行保存后,还可以将PDF格式在次转换为可编辑的CAD文件吗?答案 ...
最新文章
- android框架连接mysql_Android:ROOM数据库框架
- 阿布扎比成立全球首所培养研究生的人工智能大学
- electron版本的串口调度助手
- 三年级计算机课教案文档,小学三年级信息技术第十三课文件和文件夹教学设计...
- HVM guest配置文件
- 设A和B是两个按元素值递增有序的单链表,写一算法将A和B归并为按按元素值递减有序的单链表C,试分析算法的时间复杂度。(利用上篇带有头结点的线性链表操作)...
- 机房布线的最高境界......
- 图集cancelButtonIndex,发送通知简洁写法
- 工具资源系列之给mac装个虚拟机
- JavaScript基础教程新手入门必看
- Spyder IDE中使用git
- 知识也许是先人留给后辈最大的财富
- 火星开发的价值_发现“火星”岩石密度比预想更低,火星探测开发的“九大价值”...
- 不要老是盯着你的对手,要开始盯紧你的用户啦
- Python 基于语法提取音节个数的方法(可能不完美,欢迎指教)
- AdMob(app内嵌广告)使用入门
- Python爬虫基础1_urllib库1
- 从音视频技术看AI的机会和挑战
- DOM案例练习-推荐几个DOM小案例练习有示例代码
- 大一作业HTML网页作业:中华传统文化题材网页设计(纯html+css实现)科普网
热门文章
- Linux 下载百度网盘大文件
- 机智云——燃烧激情,点燃梦想,创业维艰,砥砺前行
- js之好玩的特效黑洞粒子效果[1]
- 路由器多区域 OSPF 配置
- 阿贝尔定理(幂级数收敛半径的)
- 广义线性模型(GLM)及其应用
- c语言余数求和,C语言实现两数相加2018-09-23(示例代码)
- 华为鸿蒙操作系统国美通讯,国美通讯(600898)03月14日14:30大单揭秘
- 安捷伦温度测试仪 软件,安捷伦34970A数据采集器温度测试仪是德科技34970A+34901A模块...
- (二十六)树莓派3B+ 获取HMC5883L的磁场数据