关于cad生成dwf文件和插入dwf快
打印当前的dwg文件,生成dwf文件。传入你要存入的filename(dwf文件位置具体到.dwf)
public static bool ExportMapToFileCAD(string fileName){try{Document doc = acDoc;Editor ed = doc.Editor;Database db = doc.Database;if (fileName.Trim().Equals("")) return false;using (doc.LockDocument()){using (Transaction tr = db.TransactionManager.StartTransaction()){// 将打印当前布局 BlockTableRecord btr = (BlockTableRecord)tr.GetObject(db.CurrentSpaceId, OpenMode.ForWrite);Layout lo = (Layout)tr.GetObject(btr.LayoutId, OpenMode.ForWrite);// lo.PlotRotation// 需要一个与布局有关的PlotInfo对象 PlotInfo pi = new PlotInfo();pi.Layout = btr.LayoutId;// 需要一个基于布局设置的PlotSettings对象,这样我们就可以进行自定义设置 PlotSettings ps = new PlotSettings(lo.ModelType);ps.CopyFrom(lo);// PlotSettingsValidator对象帮助我们创建一个有效的PlotSettings对象 PlotSettingsValidator psv = PlotSettingsValidator.Current;//进行范围打印、中心打印和按比例打印 psv.SetPlotType(ps, Autodesk.AutoCAD.DatabaseServices.PlotType.Extents);psv.SetPlotRotation(ps, PlotRotation.Degrees000);psv.SetStdScaleType(ps, StdScaleType.ScaleToFit);// psv.SetUseStandardScale(ps, true);//标准打印比例// psv.SetStdScaleType(ps, StdScaleType.ScaleToFit);psv.SetPlotCentered(ps, true);//居中打印//psv.SetPlotOrigin(ps,new Point2d(1.5,0));//打印到文件psv.SetPlotConfigurationName(ps, "DWF6 ePlot.pc3", "ISO_A2_(594.00_x_420.00_MM)");psv.SetUseStandardScale(ps, true);// 把PlotInfo链接到PlotSettings并验证它的有效性 pi.OverrideSettings = ps;PlotInfoValidator piv = new PlotInfoValidator();piv.MediaMatchingPolicy = MatchingPolicy.MatchEnabled;piv.Validate(pi);// PlotEngine对象执行真正的打印工作 if (PlotFactory.ProcessPlotState == ProcessPlotState.NotPlotting){PlotEngine pe = PlotFactory.CreatePublishEngine();using (pe){//创建一个打印对话框,用于提供打印信息和允许用户取消打印 PlotProgressDialog ppd = new PlotProgressDialog(false, 1, true);using (ppd){ppd.set_PlotMsgString(PlotMessageIndex.DialogTitle, "CAD切图");ppd.set_PlotMsgString(PlotMessageIndex.CancelJobButtonMessage, "取消切图");ppd.set_PlotMsgString(PlotMessageIndex.CancelSheetButtonMessage, "取消切图");ppd.set_PlotMsgString(PlotMessageIndex.SheetSetProgressCaption, "切图");ppd.set_PlotMsgString(PlotMessageIndex.SheetProgressCaption, "正在切图");ppd.LowerPlotProgressRange = 0;ppd.UpperPlotProgressRange = 100;ppd.PlotProgressPos = 0;//启动打印 ppd.OnBeginPlot();ppd.IsVisible = true;pe.BeginPlot(ppd, null);// 打印一个单文档 pe.BeginDocument(pi, fileName, null, 1, true, fileName);//int count = doc.Name.ToString().LastIndexOf('\\', doc.Name.Length);//string fileName = doc.Name.ToString().Substring(count, doc.Name.ToString().Length - count);//只包含一个图纸 ppd.OnBeginSheet();ppd.LowerSheetProgressRange = 0;ppd.UpperSheetProgressRange = 100;ppd.SheetProgressPos = 0;PlotPageInfo ppi = new PlotPageInfo();pe.BeginPage(ppi, pi, true, null);pe.BeginGenerateGraphics(null); pe.EndGenerateGraphics(null);// 结束图纸 pe.EndPage(null);ppd.SheetProgressPos = 100;ppd.OnEndSheet();// 结束文档 pe.EndDocument(null);// 结束打印 ppd.PlotProgressPos = 100;ppd.OnEndPlot();pe.EndPlot(null);}}}else{ed.WriteMessage("\n另外一个程序正在运行中。。。");}}}return true;}catch (Exception ex){throw ex;}}将dwf插入dwg<pre name="code" class="csharp"> /// <summary>加载dwf文件/// </summary>/// <param name="fileName">dwf路径</param>/// <param name="dwfName">dwf名称</param>public static void CommandInsertDWF(string fileName, string dwfName){try{// acess the databaseDatabase db = CurrentDB;// start the transactionusing (Transaction trans = db.TransactionManager.StartTransaction()){// get the NODDBDictionary nod = trans.GetObject(db.NamedObjectsDictionaryId, OpenMode.ForWrite) as DBDictionary;// get the key for DWF Definitionstring defDictKey = UnderlayDefinition.GetDictionaryKey(typeof(DwfDefinition));// if the dictionary is not there, createif (!nod.Contains(defDictKey)){using (DBDictionary dict = new DBDictionary()){nod.SetAt(defDictKey, dict);trans.AddNewlyCreatedDBObject(dict, true);}}// open the dictionaryObjectId idDwfDef;DBDictionary dwfDict = trans.GetObject(nod.GetAt(defDictKey), OpenMode.ForWrite) as DBDictionary;// create a new definitionusing (DwfDefinition dwfDef = new DwfDefinition()){dwfDef.SourceFileName = fileName;idDwfDef = dwfDict.SetAt(dwfName, dwfDef);trans.AddNewlyCreatedDBObject(dwfDef, true);}// append to the model spaceBlockTable bt = trans.GetObject(db.BlockTableId, OpenMode.ForRead) as BlockTable;BlockTableRecord btr = trans.GetObject(bt[BlockTableRecord.ModelSpace], OpenMode.ForWrite) as BlockTableRecord;using (DwfReference dwf = new DwfReference()){dwf.DefinitionId = idDwfDef;btr.AppendEntity(dwf);trans.AddNewlyCreatedDBObject(dwf, true);}// create reference for Model space 将淡入度设为零,保证每次打印的时候图片颜色不会变浅using (UnderlayReference ur = new DwfReference()){ur.DefinitionId = idDwfDef;//设置淡入度ur.Fade = 0;//设置对比度ur.Contrast = 100;btr.AppendEntity((Entity)ur);trans.AddNewlyCreatedDBObject((DBObject)ur, true);}trans.Commit();}}catch (System.Exception ex){ }}
关于cad生成dwf文件和插入dwf快相关推荐
- Android使用poi生成docx文件,插入图片
//创建图片(直接写一个类继承XWPFDocument,增加如下方法) public void createPicture(int id, int width, int height, XWPFPar ...
- ASP程序快速生成Excel文件
ASP程序快速生成Excel文件 在一个web项目中,要求将数据生成Excel文件保存到本地,最早使用的方法是直接使用Microsoft的Office Web组件,但是总体感觉是慢(微软的通病).然后 ...
- DWF文件怎么用CAD打开?DWF输入CAD步骤
DWF是一种开放.安全的文件格式,它可以将丰富的设计数据高效率地分发给需要查看.评审或打印这些数据的任何人.那么,DWF文件如何打开呢?下面就和小编一起来了解一下DWF输入浩辰CAD软件中的具体操作步 ...
- 六、完成Teigha.net在界面插入直线,多线段,弧线,圆形,点,图片,dwf文件等功能
Teigha.net插入实体 01.拖拽界面 02.界面动态插入实体项 001.画笔实现 002.插入直线,多线段实体 003.插入圆弧,圆,点实体 004.插入图片实体 005.插入DWF文件 01 ...
- CAD文件怎么转换为DWF文件
小编最近遇到一个难题"怎么将CAD文件转换为DWF文件,一直没有好的方法,在网站花了很长的时间才会怎么转换,为了大家少走弯路,小编分享就分享个大家怎么将CAD文件转换为DWF文件. 小编是在 ...
- PDF文件转换为DWF文件
这篇教程呢就来说一下如何用CAD梦想画图把PDF文件转换为DWF文件. 操作工具 操作系统:Windows10 AutoCAD版本:2020 步骤 1.首先打开CAD梦想画图软件,点击"功能 ...
- ise生成msk文件的用处_修改cad图纸后怎么设置不生成bak文件及bak备份文件的用处...
默认状态下,AutoCAD在保存的时候都会生成备份文件(*.bak),这也是CAD的一种安全保护错误,避免软件操作或保存过程中出现异常导致图形文件损坏.BAK文件就是图纸上一次保存的版本.如果图纸已经 ...
- dat文件导入cad画图步骤_图说CAD|多文件、多布局图纸批量打印设置的8个关键步骤...
在AutoCAD中,Publish(发布)功能具有批量打印图纸的功能:1. 以读取预设页面设置的方式进行打印,可直接打印为一套图纸电子文件,也可以打印为单张图纸电子文件.2. 支持批量自定义图纸名称指 ...
- CAD中插入外部参照字体会变繁体_为什么CAD图纸作为外部参照插入后有些文字消失?...
下面是本公众号文章分类目录,点击标题文字可打开分类文章列表: 安装卸载 异常.退出 文件及输入输出 基本操作技巧 设置及相关问题 界面和显示 快捷键 视图设置 选择及组 坐标输入.定位 ...
- Java实现pdf和Excel的生成及数据动态插入、导出
点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料! 作者:慢时光 cnblogs.com/Tom-shushu/ ...
最新文章
- Asp.Net获取客户端信息-学习中
- HP 3055 恢复出厂
- Unity3d Time的使用
- Media Query在SAP Spartacus里的用途
- linux下web压力测试工具ab使用及详解
- php 匹配图片路径_php正则匹配图片路径原理与方法
- linux内核怎么修改屏幕旋转方向_树莓派4—屏幕旋转
- 作者:张思思(1985-),女,博士,中国科学院北京基因组研究所生命与健康大数据中心工程师...
- Python 数据科学手册 5.5 朴素贝叶斯分类
- 分页查询超时问题(1)
- python竞赛试题及答案_【技术分享】用python解NOIP竞赛题
- 洛谷 P2578 [ZJOI2005]九数码游戏【bfs+康托展开】
- 最大生成树算法matlab,基于最大生成树的社团划分算法
- flv格式怎么转换成mp4
- easyPOI 模板导出Excel
- 计算机需要那些高中数学知识点,高中数学知识点(高中数学知识点最全版)
- 35岁的程序员真的到头了么?国外的大龄程序员在干什么?
- 聂微东:《暗时间》读书笔记与读后感 - 博客 - 伯乐在线
- 全球及中国双十烷基二甲基氯化铵(DDAC)行业现状动态及供需前景预测报告2022-2027
- super 和 this