最近写了个工具,将指定目录下的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批量转换为图片相关推荐

  1. 利用convert【ImageMagick】把pdf批量转换为图片踩坑(gs报错和清晰度问题)

    利用convert[ImageMagick]把pdf批量转换为图片踩坑 前言 坑1 gs报错 解决方案: 坑2 导出的文件太模糊 解决方案 参数介绍: 总结 最后附上完整的命令 前言 最近做一个pdf ...

  2. excel排版用于印刷:pdf批量转换为图片方便校验排版错误

    下载地址:http://blog.csdn.net/bq_cui/article/details/49685983 面对几千个pdf文件,怎样才能快速发现其中存在排版错误的文件?我们可以将这些pdf文 ...

  3. 将一个文件夹里面的视频批量转换为图片并保存在同一目录下

    import os import cv2cut_frame = 1 # 多少帧截一次,自己设置就行 save_path = "/media/gpu/00758835-1a92-4611-8a ...

  4. 测试软件能批量转换成pdf吗,cad如何批量转换为pdf软件

    CAD转换成PDF的方法有很多,那么大家知道cad如何批量转换为pdf软件吗?下面是学习啦小编整理的方法,希望能给大家解答. cad批量转换为pdf软件的方法: 1.首先要打开所有要转换的dwg文件, ...

  5. 批量下载图片-免费批量下载图片软件

    总有一些图片你想保存 小周浏览了某个网页发现上面的有很多很漂亮的图片,于是想保存下来,开始一波疯狂操作:右键-->图片另存为....保存了50张图片后,手酸得不行了.使用这款图片批量下载软件不到 ...

  6. CAD图纸转换为高精度图片

    大学毕业后刚进公司就被要求独立完成一个新的业务需求:将CAD图纸(.dwg格式)转换为高精度图片,并且在系统首页进行展示.从需求来看,可以分为两个步骤来完成:格式转换+首页展示. 这里主要讲述如何解决 ...

  7. 如何批量将PDF转换为图片?

    在生活工作中,我们会处理很多电子合同.这些电子合同一般是PDF格式,不但存储空间大,且预览起来不太便捷,需要我们转换为图片格式更方便预览.如果人工一一处理比较繁琐复杂,有没有什么方案可以快速将pdf转 ...

  8. Unity 批量选择图片并转换为材质

    批量选择图片并转换为材质 用Selection.GetFiltered来表示选择到的物体 第一个参数表示仅检索此类型的对象. 第二个参数 SelectionMode.Assets 表示仅返回 Asse ...

  9. 想知道CAD怎么转图片格式?跟我学会这几招就足够了

    在日常生活中,我们会接触和处理到很多不同格式的文件,其中收到CAD文件会比较麻烦,需要有安装相关的软件才可以打开它,对此你是不是很烦躁呢.其实只要我们将CAD的文件格式转换成图片格式,就可以查阅里面的 ...

  10. 可以将CAD图纸转换为CAD格式吗?怎么进行PDF转CAD的操作?.files

    我们都知道,在CAD图纸绘制完成后,将图纸保存为PDF格式可以帮助我们更加便捷的对图纸进行查看,那么当我们将CAD图纸转换为PDF格式进行保存后,还可以将PDF格式在次转换为可编辑的CAD文件吗?答案 ...

最新文章

  1. android框架连接mysql_Android:ROOM数据库框架
  2. 阿布扎比成立全球首所培养研究生的人工智能大学
  3. electron版本的串口调度助手
  4. 三年级计算机课教案文档,小学三年级信息技术第十三课文件和文件夹教学设计...
  5. HVM guest配置文件
  6. 设A和B是两个按元素值递增有序的单链表,写一算法将A和B归并为按按元素值递减有序的单链表C,试分析算法的时间复杂度。(利用上篇带有头结点的线性链表操作)...
  7. 机房布线的最高境界......
  8. 图集cancelButtonIndex,发送通知简洁写法
  9. 工具资源系列之给mac装个虚拟机
  10. JavaScript基础教程新手入门必看
  11. Spyder IDE中使用git
  12. 知识也许是先人留给后辈最大的财富
  13. 火星开发的价值_发现“火星”岩石密度比预想更低,火星探测开发的“九大价值”...
  14. 不要老是盯着你的对手,要开始盯紧你的用户啦
  15. Python 基于语法提取音节个数的方法(可能不完美,欢迎指教)
  16. AdMob(app内嵌广告)使用入门
  17. Python爬虫基础1_urllib库1
  18. 从音视频技术看AI的机会和挑战
  19. DOM案例练习-推荐几个DOM小案例练习有示例代码
  20. 大一作业HTML网页作业:中华传统文化题材网页设计(纯html+css实现)科普网

热门文章

  1. Linux 下载百度网盘大文件
  2. 机智云——燃烧激情,点燃梦想,创业维艰,砥砺前行
  3. js之好玩的特效黑洞粒子效果[1]
  4. 路由器多区域 OSPF 配置
  5. 阿贝尔定理(幂级数收敛半径的)
  6. 广义线性模型(GLM)及其应用
  7. c语言余数求和,C语言实现两数相加2018-09-23(示例代码)
  8. 华为鸿蒙操作系统国美通讯,国美通讯(600898)03月14日14:30大单揭秘
  9. 安捷伦温度测试仪 软件,安捷伦34970A数据采集器温度测试仪是德科技34970A+34901A模块...
  10. (二十六)树莓派3B+ 获取HMC5883L的磁场数据