本例使用AnyCAD .Net三维图形控件快速实现一个DXF文件的读取、显示、导出JPG、PNG、PDF的应用。

代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AnyCAD.Platform; namespace DxfViewer
{
public partial class MainForm : Form
{
private AnyCAD.Presentation.RenderWindow3d renderView = null; public MainForm()
{
InitializeComponent(); this.renderView = new AnyCAD.Presentation.RenderWindow3d();
this.renderView.Location = new System.Drawing.Point(0, 27);
this.renderView.Size = this.Size;
this.renderView.TabIndex = 1;
this.Controls.Add(this.renderView);
} private void MainForm_Load(object sender, EventArgs e)
{
this.renderView.View3d.ShowCoordinateAxis(true);
this.renderView.View3d.ShowWorkingGrid(false); renderView.ExecuteCommand("ShadeWithEdgeMode");
renderView.ExecuteCommand("TopView");

//设置下背景色,像AutoCAD那样
ColorValue clr = new ColorValue(33f / 255f, 40f / 255f, 48f / 255f, 1);
renderView.SetBackgroundColor(clr, clr, clr);
this.renderView.RequestDraw();
} private void MainForm_Resize(object sender, EventArgs e)
{
if (renderView != null)
renderView.Size = this.Size;
} private void openToolStripMenuItem_Click(object sender, EventArgs e)
{
OpenFileDialog dlg = new OpenFileDialog();
dlg.Filter = "DXF (*.dxf)|*.dxf"; if (DialogResult.OK == dlg.ShowDialog())
{
AnyCAD.Exchange.DxfReader reader = new AnyCAD.Exchange.DxfReader();
if (reader.Read(dlg.FileName, new AnyCAD.Exchange.ShowShapeReaderContext(renderView.SceneManager)))
renderView.RequestDraw(); } renderView.View3d.FitAll();
} private void pDFToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "PDF (*.pdf)|*.pdf";
if (DialogResult.OK == dlg.ShowDialog())
{
renderView.View3d.Print(dlg.FileName);
} } private void imageToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog dlg = new SaveFileDialog();
dlg.Filter = "Image File (*.jpg;*.png)|*.jpg;*.png";
if (DialogResult.OK == dlg.ShowDialog())
{
renderView.View3d.GetRenderWindow().CaptureImage(dlg.FileName);
}
} private void dToolStripMenuItem_Click(object sender, EventArgs e)
{
renderView.ExecuteCommand("IsoView");
renderView.View3d.FitAll();
} }
}

  

效果:

使用C#三维绘图控件快速搭建DXF查看程序的更多相关文章

  1. TeeChart绘图控件 - 之三 - 提高绘图的效率 .

    TeeChart是个很强大的控件,其绘图能力之强,其他控件难以比拟,但是有个问题就是他的绘图速度,其实TeeChart绘图速度还是很快的,只是大家一直都没正确运用其功能所以导致绘图速度慢的假象. 下面 ...

  2. VS2010 使用TeeChart绘图控件 - 之一 - 控件和类的导入

    vs2010的用法和vc6有很大的不同,特别是在一些函数调用那里,当然.控件导入也是很不一样的 安装好控件后就可以在工程里加入teechart控件了 加入方法有如下几种: 1.添加Teechart控件 ...

  3. PaintView 绘图控件解析

    博客地址:博客园,版权所有,转载须联系作者. GitHub地址:JustWeTools 最近做了个绘图的控件,实现了一些有趣的功能. 先上效果图: PaintView画图工具: 1.可直接使用设定按钮 ...

  4. 在Qt中使用AnyCAD三维建模控件

    AnyCAD C++ SDK专为Qt框架增加了AnyPlatformQt.lib模块,在Qt中使用AnyCAD三维建模控件变得十分简单. 下载 Qt高速下载:http://pan.baidu.com/ ...

  5. 怎样在VS2013/MFC中使用TeeChart绘图控件

    TeeChart作为一款强大好用的绘图控件,通过它可以绘制出各式各样的图表,包括2D的,还有3D的,绘制的图表美观实用,这里主要讲述如何在VS2013/MFC中使用TeeChart控件,顺便说一下在V ...

  6. qt超强精美绘图控件 - QCustomPlot一览 及 安装使用教程

    1.概述 QCustomPlot 是一个超强超小巧的qt绘图类,非常漂亮,非常易用,只需要加入一个qcustomplot.h和qcustomplot.cpp文件即可使用,远比qwt方便和漂亮,可以自己 ...

  7. SkylineGlobe 7.0.1 & 7.0.2版本Web开发 如何正确使用三维地图控件和工程树控件

    Skyline TerraExplorer Pro目前正式发布的7.0.1&7.0.2版本,还只是64位的版本, 在Web开发的时候,如何在页面中正确嵌入三维地图控件,让一些小伙伴凌乱了. 下 ...

  8. 如何屏蔽SkylineGlobe提供的三维地图控件上的快捷键

    SkyllineGlobe提供的 <OBJECT ID=" TerraExplorer3DWindow" CLASSID="CLSID:3a4f9192-65a8- ...

  9. Expression Blend实例中文教程(4) - 布局控件快速入门Canvas

    上一篇,我介绍了Silverlight控件被分为三种类型, 第一类: Layout Controls(布局控件) 第二类: Item Controls (项目控件) 第三类: User Interac ...

随机推荐

  1. MYSQL批量插入数据库实现语句性能分析

    假定我们的表结构如下 代码如下   CREATE TABLE example ( example_id INT NOT NULL, name VARCHAR( 50 ) NOT NULL, value ...

  2. winform DataGridView控件判断滚动条是否滚动到当前已加载的数据行底部 z

    http://www.zuowenjun.cn/post/2015/05/20/162.html 判断 DataGridView控件滚动条是否滚动到当前已加载的数据行底部,其实方法很简单,就是为Dat ...

  3. Liferay 6开发学习(二十六):数据库连接相关问题

    Liferay中怎么更换数据库? 常碰到有人问Liferay怎么更换数据库,怎么修改数据库连接.在我们第一次启动Liferay的时候,会有一个配置向导,在此配置向导我们可以选择数据库,并配置数据库连接 ...

  4. CRM报表打印

    删除路径下的文件 C:\Windows\Downloaded Program Files\rsclientprint.dll路径下的这个dll文件,重新登录crm选择一个面单点击打印按钮重新安装插件

  5. delphi 程序全屏显示无标题栏,覆盖整个屏幕

    delphi 程序全屏显示无标题栏,覆盖整个屏幕,这个在做工控机或屏保时有用的,所以记下 procedure TMainFrm.FormCreate(Sender: TObject); begin w ...

  6. Dubbo的Maven打包

    Maven项目的依赖,我们可以通过下面命令看到,打包时,会按照这个依赖编译进去对应模块. 参考:http://www.cnblogs.com/ghj1976/p/5336923.html mvn de ...

  7. using inno setup uninstall default icon

    If you set SetupIconFile then the Uninstall Exe File (e.g. unins000.exe) will have exactly same icon ...

  8. LeetCode 101. Symmetric Tree

    Given a binary tree, check whether it is a mirror of itself (ie, symmetric around its center). For e ...

  9. Type-base dispatch

    In the previous section we added two Time objects, but you also might want to add an integer to a Ti ...

  10. c语言解数独

    来自:http://my.oschina.net/lovewxm/blog/288043?p=1 #include <stdio.h> #include <stdlib.h> ...