• 大小: 5.44MB
    文件类型: .7z
    金币: 1
    下载: 0 次
    发布日期: 2023-08-16
  • 语言: 其他
  • 标签: AnyCAD  C#  

资源简介

基于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

评论

共有 条评论