龙空技术网

linux下开发基于.net的三维绘图程序

三维控件研究院 1827

前言:

目前兄弟们对“基于net的程序设计”都比较讲究,看官们都需要剖析一些“基于net的程序设计”的相关内容。那么小编也在网上网罗了一些有关“基于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 -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上的例子:

3.3 编译运行

效果如下:

20200526172111.png

总结

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

作者:三维控件研究

链接:

來源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

标签: #基于net的程序设计