精华内容
下载资源
问答
  • /// 区域打印pdf /// </summary> /// <param name="strPath">保存路径</param> /// <param name="minPt">最小点</param> /// <param name="maxPt">最大点</param> ...
    
    /// <summary>
            /// 区域打印pdf
            /// </summary>
            /// <param name="strPath">保存路径</param>
            /// <param name="minPt">最小点</param>
            /// <param name="maxPt">最大点</param>
            /// <param name="scale">缩放比例</param>
    
    public void Getdwfs(string strPath, Point3d minPt, Point3d maxPt, Scale3d scale)
            {
                Document activeDoc = GrxCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
                GcadDocument doc = activeDoc.AcadDocument as GcadDocument;
                doc.SetVariable("BACKGROUNDPLOT", 0);//前台打印
    
                doc.ActiveLayout.ConfigName = "DWG To PDF.pc3"; //"DWF6 ePlot.pc3";// // //使用的打印机设置名称 页面设置名称
                doc.ActiveLayout.StyleSheet = "monochrome.ctb";
    
                object LowerLeft = new double[2];//左下坐标,即xy最小值
                object UpperRight = new double[2];//右上坐标,即xy最大值
                ((double[])LowerLeft)[0] = minPt.X;
                ((double[])LowerLeft)[1] = minPt.Y;
                ((double[])UpperRight)[0] = maxPt.X;
                ((double[])UpperRight)[1] = maxPt.Y;
                doc.ActiveLayout.SetWindowToPlot(LowerLeft, UpperRight);
                doc.ActiveLayout.PlotType = GcPlotType.acWindow;//可以选择其他打印方式
    
                doc.ActiveLayout.PlotWithLineweights = true; //线宽比例
                doc.ActiveLayout.PlotWithPlotStyles = true; //使用样式
    
                doc.ActiveLayout.StandardScale = GcPlotScale.acScaleToFit; //自动缩放
                doc.ActiveLayout.UseStandardScale = true; // 使用标准比例
                doc.ActiveLayout.CenterPlot = true; // 居中
    
                doc.ActiveLayout.PlotRotation = GcPlotRotation.ac0degrees;//横向//0 横向,90 纵向,180反向,
    
                double Length = (maxPt.X - minPt.X) / scale.X;
                double Width = (maxPt.Y - minPt.Y) / scale.Y;
    
                //设置打印图纸大小
                string[] cmnamelst = (string[])doc.ActiveLayout.GetCanonicalMediaNames();
                foreach (string name in cmnamelst)
                {
                    string mediaName = doc.ActiveLayout.GetLocaleMediaName(name);
                    //查找纸张大小
                    if (mediaName.Contains("ISO full bleed") && mediaName.Contains(Length.ToString("f2")) && mediaName.Contains(Width.ToString("f2")))
                    {
                        if (mediaName.IndexOf(Length.ToString("f2")) < mediaName.IndexOf(Width.ToString("f2")))
                        {
                            doc.ActiveLayout.CanonicalMediaName = name;
                            break;
                        }
                    }
                }
    
                doc.ActiveLayout.PaperUnits = GcPlotPaperUnits.acMillimeters; //单位毫米
                doc.Plot.DisplayPlotPreview(GcPreviewMode.acFullPreview);//预览
                doc.Plot.QuietErrorMode = true;//生成存档,避免报错
    
                string destPath = Path.GetDirectoryName(strPath) + "\\" + Path.GetFileNameWithoutExtension(strPath) + ".pdf";
                doc.Plot.PlotToFile(destPath);//第二个参数为打印机名称
    
    
            }

    有时候打印为空,TARGET系统变量为0,0,0 这种情况下,效果没有问题,但当TARGET不为0时,需要UCS->DCS的转换

    [DllImport("gced.dll", CallingConvention = CallingConvention.Cdecl)]
    static extern private int gcedTrans(double[] point, IntPtr fromRb, IntPtr toRb, int disp, double[] result);
    
    
    //这段代码放在原先代码中的最前面
    Document acDoc = GrxCAD.ApplicationServices.Application.DocumentManager.MdiActiveDocument;
                ViewTableRecord acView = acDoc.Editor.GetCurrentView();
                Point3d point = acView.Target;
    if (point.X == 0 && point.Y == 0 && point.Z == 0)
                {
    
                }
                else 
                { 
                    ResultBuffer rbF = new ResultBuffer();
                    rbF.Add(new TypedValue(5003, 1));
    
                    ResultBuffer rbT = new ResultBuffer();
                    rbT.Add(new TypedValue(5003, 2));
                    //ResultBuffer rbFrom = new ResultBuffer(new TypedValue(5003, 1));
                    //ResultBuffer rbTo = new ResultBuffer(new TypedValue(5003, 2));
    
                    double[] dMin = new double[] { 0, 0, 0 };
                    double[] dMax = new double[] { 0, 0, 0 };
                    gcedTrans(minPt.ToArray(), rbF.ResbufObject, rbT.ResbufObject, 0, dMin);
                    gcedTrans(maxPt.ToArray(), rbF.ResbufObject, rbT.ResbufObject, 0, dMax);
    
                    minPt = new Point3d(dMin[0], dMin[1], dMin[2]);
                    maxPt = new Point3d(dMax[0], dMax[1], dMax[2]);
    
    
                }

     

    展开全文
  • DWG文件打印为PDF

    2012-12-03 10:39:31
    如何用.NET(CSharp & VB.NET)将DWG文件打印为PDF
  • DWG文件是CAD图纸当中我们最常用的文件之一,我们在使用DWG图纸时,经常需要对DWG图纸文件进行批量打印,那么我们应该怎么批量打印DWG文件?如何批量打印DWG文件?接下来我就将DWG图纸文件的批量打印方法告诉大家。 ...

    DWG文件是CAD图纸当中我们最常用的文件之一,我们在使用DWG图纸时,经常需要对DWG图纸文件进行批量打印,那么我们应该怎么批量打印DWG文件?如何批量打印DWG文件?接下来我就将DWG图纸文件的批量打印方法告诉大家。

     

    想要批量打印DWG文件,我们可以使用迅捷CAD编辑器进行打印,这款软件操作非常简单,用户利用这款软件可以轻松的对DWG文件进行打印,接下来我就将这款软件的操作方法告诉大家。

     

    1、首先我们打开浏览器,点击搜索迅捷CAD编辑器,将这款软件下载到我们的电脑上。

     

    2、接着我们运行这款软件,软件打开之后,点击“文件”选项,然后点击“打印”里的“批量打印”按钮。

     

    3、打开批量打印界面之后,我们选择界面当中的“添加文件”按钮,添加需要打印的DWG图纸文件。

     

    4、接下来我们点击上方的“打印”选项,勾选需要打印的DWG文件。

     

    5、最后点击下方的“打印”按钮,即可对DWG文件进行批量打印。

     

    以上就是我想要告诉大家的DWG图纸文件怎么批量打印的操作方法,我们只需要依照上述方法进行操作,即可批量打印DWG文件。

    展开全文
  • 浩辰dwg批量打印工具是一款非常实用的支持打印、批量打印cad文件的小工具。浩辰cad批量打印软件可以直接导入所有的dwg格式的文件,然后软件会显示出文件的信息,支持预览,当你经过简单的设置后,就可以一键将它们...
  • 从.NET(比如C#)里面调用AutoCAD ActiveX API实现后台打印DWG文件为PDF文件,而且要把打印页面的大小设置成和DWG视图的页面的大小一致。当然除了ActiveX API,其它接口,比如ObjectARX和AutoCAD.NET API也支持打印并...
  • 程序简介:这是一个为AutoCAD2000以上版本设计的单DWG多图纸的批量打印、批量生成布局、批量分图程序。程序根据自己判定的图框位置与尺寸,根据当前的打印机设置,自动调整打印的方式,实现批量打印、批量生成布局、...
  • CAD拼音田字格A4纸打印,CAD拼音田字格小学生练字A4纸打印打印时请设置打印机纸为a4;打印比例1:1;打印区域选择窗口打印。选择黄色外框。
  • 1、一个dwg文件【模型】页中包含几十个需要打印的图形,带图框哦! 2、贱人工具箱。 3、按键精灵。 4、福昕pdf阅读器。 方法:cad软件的打印选项,在pdf自定义设置中,设置保存时已存在文件时添加尾数。利用按键...

    前提:

    1、一个dwg文件【模型】页中包含几十个需要打印的图形,带图框哦!

    2、贱人工具箱。

    3、按键精灵。

    4、福昕pdf阅读器。

    方法:cad软件的打印选项,在pdf自定义设置中,设置保存时已存在文件时添加尾数。利用按键精灵在贱人工具箱打印时的保存确认,设置alt+s按键循环。

    展开全文
  • 最近搞电气装配图,一份dwg里面N份框表框图,打印时,要先一个个框图导出pdf,而导出pdf时又要一个个用窗口模式选择导出范围,流程比较繁琐,于是程序员之魂觉醒赶紧弄了这么一个工具来帮我一次行导出pdf并全部合并...

    20190815 热

    项目背景:

    最近搞电气装配图,一份dwg里面N份框表框图,打印时,要先一个个框图导出pdf,而导出pdf时又要一个个用窗口模式选择导出范围,流程比较繁琐,于是程序员之魂觉醒赶紧弄了这么一个工具来帮我一次行导出pdf并全部合并。

    talk is cheap,先上工程。

    工具对应autocad的版本是2017,其他版本没有测试过,应该是兼容2016的。

    工具执行文件

    https://download.csdn.net/download/newidea07/11562721

    工具项目开源,链接

    https://gitee.com/newideas/cad2pdf.git (ps:合并pdf部分用了Spire.Pdf库,导致项目比较大,后期有时间换个另一个库或者自己写pdf)

    核心代码:

    差不多每行都有注释,方便理解回忆。

    AcadDocument AcdDoc = new AcadDocument();
    AcadDocument doc = null;
    
    doc = AcdDoc.Application.Documents.Open(filePath, true, null);   //以只读方式打开该文件     
    //doc.SetVariable("sdi", 0);
    //doc.SetVariable("Filedia", 0);
    //doc.SetVariable("RASTERPREVIEW", 1);//控制是否将缩略图预览图像随图形一起创建和保存。
    doc.SetVariable("BACKGROUNDPLOT", 0);//前台打印
    doc.Application.ZoomExtents();
    doc.ActiveLayout.ConfigName = "DWG To PDF.pc3";//使用的打印机设置名称 页面设置名称
    
    //object LowerLeft;//左下坐标,即xy最小值
    //object UpperRight;//右上坐标,即xy最大值
    //doc.ActiveLayout.GetWindowToPlot(out LowerLeft, out UpperRight);
    
    
    List<object[]> ls_rec = new List<object[]>();
    for (int i = 0; i < doc.ModelSpace.Count; i++)
    {
        button_start.Text = "正在查找对象:" + i + "/" + doc.ModelSpace.Count;
        if (i % 59 == 0)
        {
            Application.DoEvents();
        }
        //AcadEntity cadObject = doc.ModelSpace.Item(i);
        dynamic cadObject = doc.ModelSpace.Item(i);
    
        Console.WriteLine(cadObject.EntityName);
        //AcDbBlockReference
        //AcDbMText
        //AcDbLine
        //AcDbPolyline
        //AcDbText
        //AcDbOle2Frame
        //AcDbCircle
    
        if (checkedListBox1.GetItemChecked(1) && cadObject.EntityName == "AcDbPolyline")//为矩形类型的才判断
        {
            dynamic acadMLine = cadObject;
            double[] coordinates = acadMLine.Coordinates;
            //AcadMLine acadMLine = (AutoCAD.AcadMLine)cadObject;
            //object double3_min, double3_max;
            //acadMLine.GetBoundingBox(out double3_min, out double3_max);
            object LowerLeft = new double[2];//左下坐标,即xy最小值
            object UpperRight = new double[2];//右上坐标,即xy最大值
            ((double[])LowerLeft)[0] = coordinates.Where((r, index) => index % 2 == 0).Min();
            ((double[])LowerLeft)[1] = coordinates.Where((r, index) => index % 2 == 1).Min();
            ((double[])UpperRight)[0] = coordinates.Where((r, index) => index % 2 == 0).Max();
            ((double[])UpperRight)[1] = coordinates.Where((r, index) => index % 2 == 1).Max();
    
            if (calcDiagonal(LowerLeft, UpperRight) > minDiagonal)
            {
                ls_rec.Add(new object[] { LowerLeft, UpperRight });
            }
    
        }
        if (checkedListBox1.GetItemChecked(0) && cadObject.EntityName == "AcDbBlockReference")//为block类型的才判断
        {
            AcadBlockReference acadBlock = (AcadBlockReference)cadObject;
            dynamic block = acadBlock.Explode();
            if (((object[])(block)).Length > 0)
            {
                object double3_min, double3_max;
                acadBlock.GetBoundingBox(out double3_min, out double3_max);
                object LowerLeft = new double[2];//左下坐标,即xy最小值
                object UpperRight = new double[2];//右上坐标,即xy最大值
                ((double[])LowerLeft)[0] = ((double[])double3_min)[0];
                ((double[])LowerLeft)[1] = ((double[])double3_min)[1];
                ((double[])UpperRight)[0] = ((double[])double3_max)[0];
                ((double[])UpperRight)[1] = ((double[])double3_max)[1];
    
                if (calcDiagonal(LowerLeft, UpperRight) > minDiagonal)
                {
                    ls_rec.Add(new object[] { LowerLeft, UpperRight });
                }
            }
        }
    }
    int pdfIndex = 1;
    List<string> ls_pdfs = new List<string>();//生成的分开的pdf文件
    foreach (var item in ls_rec)
    {
    
        doc.ActiveLayout.SetWindowToPlot(item[0], item[1]);
    
        doc.ActiveLayout.PlotType = AcPlotType.acWindow; //打印模式
    
        doc.ActiveLayout.StandardScale = AcPlotScale.acScaleToFit; //标准比例,需要UseStandardScale = true;
        doc.ActiveLayout.UseStandardScale = true; // 使用标准比例
        doc.ActiveLayout.CenterPlot = true; // 居中
        //doc.ActiveLayout.PaperUnits = AcPlotPaperUnits.acMillimeters; //单位毫米
        //doc.ActiveLayout.PlotRotation = AcPlotRotation.ac0degrees;
    
        doc.Plot.QuietErrorMode = true;//生成存档,避免报错
    
        string destPath = Path.Combine(Path.GetDirectoryName(filePath), Path.GetFileNameWithoutExtension(filePath) + pdfIndex++ + ".pdf");
        ls_pdfs.Add(destPath);
        doc.Plot.PlotToFile(destPath);//第二个参数为打印机名称
    }
    
    doc.Close(false);
    AcdDoc.Close(false);

    工具使用场景:

    像下图这种,dwg里面有多个框图,用自带的pdf窗口导出功能比较费事,要一个个框选中定输出坐标。

    工具界面及使用方法:

    本质上是个方便小步骤的工具,基本是所见即理解。因为制图人不同,有些把外框做成block,有些只是用矩形或者多段线直接画,为了提供搜索对象的速度,我做成可选的。第三个图是输入输出文件,默认输出到同级目录,每个框图单独输出到pdf,并提供一个合并后的总pdf。

         

    展开全文
  • 疯狂打印/打印狂,CAD打开的情况下嘛,拖入dwg文件,设置好即可实现批量打印,超级好用,支持CAD2008。
  • AutoDWG DWGSee是一个小巧快速的DWG/DXF/DWF图纸文件浏览器,有与ACDSee 相类似的界面,此专业版可以浏览、查看、打印、标注、转换和比较AutoCAD的图纸文件,支持AutoCAD 2010及以下各版本的图纸格式。 如果您并...
  • 具体的要求是从.NET(比如C#)里面调用AutoCAD ActiveX API实现后台打印DWG文件为PDF文件,而且要把打印页面的大小设置成和DWG视图的页面的大小一致。当然除了ActiveX API,其它接口,比如ObjectARX和AutoCAD.NET API...
  • 具体的要求是从.NET(比如C#)里面调用AutoCAD ActiveX API实现后台打印DWG文件为PDF文件,而且要把打印页面的大小设置成和DWG视图的页面的大小一致。当然除了ActiveX API,其它接口,比如ObjectARX和AutoCAD.NET API...
  • 在使用CAD,将图纸导出为pdf格式的时候,经常会用到dwg to pdf绘图仪。有时需要使用一些特殊的图纸尺寸,而CAD自带的图纸尺寸并不能完全满足要求,这时需要我们自定义图纸尺寸。 但是有些图纸尺寸在自定义之后会暂时...
  • DWG转PDF

    千次阅读 2017-06-13 16:53:35
    利用PDF打印机最直接,但是不能批量打印,下面讲一下利用专业软件如何进行批量转换,在这里以梦想CAD软件(MxDraw)为例,讲解一下该软件的下载安装以及如何将DWG文件转换成PDF文件。 1、梦想CAD软件的下载与安装 ...
  • Free Dwg Viewer是一款免费的dwg文件查看工具,它可以帮助你查看AutoCAD中输出的DWG、DWF、DXF等格式的文件,软件功能完全不依赖AutoCAD程序,并且还可以查看层和块,最后还可以对文档进行打印,对于经常需要接触...
  • dwg转svg,简体中文,不带水印,专业的CAD图形文件转换和查看软件,小巧实用的多功能CAD图形管理工具,支持多种文件格式,支持打开查看 AutoCAD v2.5-2018 版本 DWG、DXF、DWF 等格式的图形文件,支持文件版本转换,...
  • dwg转pdf

    千次阅读 2014-08-16 17:07:56
    在使用CAD时,我们可能经常要将DWG转PDF格式,操作步骤如下: 1)打开需要转换的DWG格式文件 2)文件---->页面设置管理器----->修改----->(到...3)文件--->打印---->确定,选择保存文件路径,即可得到PDF文件。
  • Drag And View DWG 4.5

    2020-09-29 15:47:57
    AutoCAD文件查看工具,用鼠标右键,可快速地查看、打印、放大AutoCAD的DWG和DXF文件。支持版本R12到R14。
  • dwg文件怎么打开

    千次阅读 2014-08-16 17:19:58
    CADViewX是一款强大的CAD文件以及图片浏览库,在不需要其他三方软件的环境下,cad预览控件,CAD打印,cad文件以及其他格式图片,并且支持鼠标拖拉,放大等操作。改控件支持AutoCAD DWG格式文件, DXF格式文件以及...
  • 如何打开dwg文件

    2014-08-16 17:22:00
    CADViewX是一款强大的CAD文件以及图片浏览库,在不需要其他三方软件的环境下,cad预览控件,CAD打印,cad文件以及其他格式图片,并且支持鼠标拖拉,放大等操作。改控件支持AutoCAD DWG格式文件, DXF格式文件以及所有...
  • dwg转换pdf格式

    2011-04-16 21:32:10
    支持全屏幕方式,支持彩色及单色的图形文件和光栅文件的打印输出并可自由地设置背景颜色,支持shx字体文件,xref块文件,和光栅文件的导入,支持创建对dwg和dxf文件的关联。完美的支持CAD图形中文字体的显示。 此...
  • DWG格式文件转DWF格式

    2019-08-19 10:20:05
    DWF是DWG格式文件的打印模式 1、选择DWG文件,并在CAD中打开 2、在CAD菜单栏中,选择打印。在弹出的打印页面中,”打印机名称“选择”DWF6 ePlot.pc3“ 3、设置”打印区域“中的”打印范围“。PS:最好在预览中...
  • dwg格式用什么打开

    2014-08-25 17:23:24
    CADViewX是一款强大的CAD文件以及图片浏览库,在不需要其他三方软件的环境下,cad预览控件,CAD打印,cad文件以及其他格式图片,并且支持鼠标拖拉,放大等操作。改控件支持AutoCAD DWG格式文件, DXF格式文件以及...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 382
精华内容 152
关键字:

dwg打印