AnyCAD三维模型展示


基于AnyCAD进行开发,集成三维模型展示功能、支持拖拽、平移、旋转等操作。
资源截图
代码片段和文件信息
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 AnyCAD.Basic
{
    public partial class FormMain : Form
    {
        // The global application object
        Platform.Application theApplication = new Platform.Application();
        // BREP tool to create geometries.
        BrepTools shapeMaker = new BrepTools();
        // Default 3d View
        Platform.View3d theView;


        public FormMain()
        {
            InitializeComponent();
            this.MouseWheel += new System.Windows.Forms.MouseEventHandler(this.onmousewheel);
        }

        private void FormMain_Load(object sender EventArgs e)
        {
            // Initialize the Application.
            theApplication.Initialize();
            Size size = panel3d.Size;

            // Create the 3d View
            theView = theApplication.CreateView(panel3d.Handle.ToInt32() size.Width size.Height);

            theView.RequestDraw();

            this.timerDraw.Enabled = true;
        }
        private void FormMain_SizeChanged(object sender EventArgs e)
        {
            Size size = panel3d.Size;
            if(theView != null)
                theView.OnSize(size.Width size.Height);
        }
        private void panel3d_Paint(object sender PaintEventArgs e)
        {
            if (theView == null)
                return;

            theView.Redraw();
        }

        private void timerDraw_Tick(object sender EventArgs e)
        {
            theView.RequestDraw();
            theView.Redraw();
        }

        private SceneNode ShowTopoShape(TopoShape topoShape int id)
        {
            // Add the TopoShape to Scene.
            TopoShapeConvert convertor = new TopoShapeConvert();
            SceneNode faceNode = convertor.ToFaceNode(topoShape 0.5f);
            faceNode.SetId(id);
            theView.GetSceneManager().AddNode(faceNode);
            return faceNode;
        }

        private void ClearScene()
        {
            theView.GetSceneManager().ClearNodes();
        }

        private void sphereToolStripMenuItem_Click(object sender EventArgs e)
        {
            TopoShape sphere = shapeMaker.MakeSphere(new Vector3(0 0 0) 40);
            ShowTopoShape(sphere 100);
        }

        private void boxToolStripMenuItem_Click(object sender EventArgs e)
        {
            TopoShape box = shapeMaker.MakeBox(new Vector3(40 -20 0) new Vector3(0 0 1) new Vector3(30 40 60));
             
            SceneNode sceneNode = ShowTopoShape(box 101);

            Facestyle style = new Facestyle();
            style.SetColor(new ColorValue(0.5f 0.3f 0 1));
            sceneNode.SetFacestyle(style);
        }

        private void cylinderToolStripMenuItem_Click(object sender EventArgs e)
        {
            TopoShape cylinder = shapeMaker.MakeCylinder(new V

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)