很多人可能知道使用.NET Core可以開發跨平台(包括Windows,Linux、MacOS)的App,但知道在Linux下使用.NET Core可以開發三維程式的恐怕就很少了。本文通過借助.NET三維繪圖控件,可以友善地用C#程式設計語言在Linux下搭建一個集三維模組化和三維顯示于一身的.NET Core App。
很多人可能知道使用.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
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 編譯運作
效果如下:
