• 使用C#三维绘图控件快速搭建DXF查看程序


    本例使用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(); } } }

      

    效果:

  • 相关阅读:
    AtCoder Grand Contest 005F
    AtCoder Regular Contest 095E
    插头DP--URAL1519Formula 1
    「CodePlus 2018 3 月赛」白金元首与莫斯科
    hdu 5795
    hdu 5800
    HDU5802
    hdu 5787 数位dp,记忆化搜索
    poj 1015
    hdu 3092 (简化的素数打表+dp+log的用法) ps(开数组和预处理时数组要大点处理多一点。。。)
  • 原文地址:https://www.cnblogs.com/anycad/p/anycad-csharp-graphics-control-for-dxf-app.html
Copyright © 2020-2023  润新知