• Linux下开发基于.NET的三维绘图程序


    很多人可能知道使用.NET Core可以开发跨平台(包括Windows,Linux、MacOS)的App,但知道在Linux下使用.NET Core可以开发三维程序的恐怕就很少了。本文通过借助.NET三维绘图控件,可以方便地用C#编程语言在Linux下搭建一个集三维建模和三维显示于一身的.NET Core App。

    1 .NET Core环境搭建

    Linux下的编辑器推荐使用VS Code。
    以Ubuntu20.04为例,搭建开发环境的步骤为:

    1.1 配置一下微软的包服务器

    配置一下包服务器

    wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
    sudo dpkg -i packages-microsoft-prod.deb
    

    1.2 下载和安装SDK:

    sudo apt-get update
    sudo apt-get install apt-transport-https
    sudo apt-get update
    sudo apt-get install dotnet-sdk-3.1
    

    1.3 下载和安装.NET Core运行时

    sudo apt-get update
    sudo apt-get install apt-transport-https
    sudo apt-get update
    sudo apt-get install dotnet-runtime-3.1
    

    2 创建一个.NET Core App

    在控制台创建一个控制台App

     dotnet new console -o MyFirstApp
    

    编译一下:

    dotnet build
    

    就可以生成一个可执行程序。接下来我们要基于这个程序增加代码,来集成AnyCAD .NET Core三维控件。

    3 集成AnyCAD .NET Core

    3.1 引用程序集

    修改csproj文件

    <Project Sdk="Microsoft.NET.Sdk">
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>netcoreapp3.1</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <Reference Include="AnyCAD.Foundation.NetCore">
          <HintPath>netcoreapp3.1/AnyCAD.Foundation.NetCore.dll</HintPath>
        </Reference>
      </ItemGroup>
    </Project>
     

    3.2 添加代码创建一个长方体

    修改program.cs

    using AnyCAD.Foundation;
    using System;
    
    namespace anycad.netcore.test
    {
        class Program
        {
            static void Main(string[] args)
            {
                GlobalInstance.Initialize();
    
                WindowCanvas canvas = new WindowCanvas("AnyCAD DotNetCore");
                canvas.Initialize(0, 600, 400);
    
                var box = ShapeBuilder.MakeBox(GP.XOY(), 10,20,30);
                var node = ShapeSceneNode.Create(box, 0.01);
                var scene = canvas.GetContext().GetScene();
                scene.AddNode(node);
                canvas.Run();
                canvas.Destroy();
    
                GlobalInstance.Destroy();
    
                Console.WriteLine("Hello World!");
            }
        }
    }
     

    如果想创建更复杂的模型,可以参考AnyCAD github上的例子: https://github.com/anycad/anycad.rapid.net.sample

    3.3 编译运行

    效果如下:

     
     

    总结

    随着硬件国产化、Linux操作系统国产化,CAD/CAE/CAM等三维应用也亟需国产化。基于AnyCAD .NET Core三维控件,借助AnyCAD .NET Core三维控件,也可以快速搭建三维建模和可视化的应用。

  • 相关阅读:
    使用jQuery的validation后,无法引发asp.net按钮的事件处理程序
    近期一些超值文章及工具收集
    修复MOSS2007备份还原后搜索服务出现的问题(续)
    给ASP.net程序配置代理服务器
    vue 2.0 路由切换以及组件缓存源代码重点难点分析
    [模板]大整数相加、相乘
    PKU 3468 A Simple Problem with Integers
    USACO sec1.4 Packing Rectangles
    HDOJ 2795 Billboard
    [贪心] COJ 1236 删数游戏
  • 原文地址:https://www.cnblogs.com/anycad/p/linux-net-core-3d-graphics-control.html
Copyright © 2020-2023  润新知