很多人可能知道使用.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三维控件,也可以快速搭建三维建模和可视化的应用。

Linux下开发基于.NET的三维绘图程序的更多相关文章

  1. 使用eclipse在linux下开发C/C++

    一直在Linux下开发,苦于没有IDE,一般都是自己编写Makefile,然后在windows下用文本编辑器ftp打开文件编辑,然后在linux下完成编译.调试代码也只能是命令行用gdb进行调试,相当 ...

  2. Linux下c基于openssl生成MD5的函数

    Linux下openssl提供了一系列哈希及加密的函数,如果调用openssl提供的MD5函数生成任意字符串的MD5呢?下面提供了一段代码实现Linux下c字符串生成md5的函数. 具体代码: 1 2 ...

  3. linux下开发C语言需要安装的manpages手册

    linux下开发C代码需要安装的manpages: $ sudo apt-get install manpages$ sudo apt-get install manpages-dev$ sudo a ...

  4. 在Windows下使用Dev-C++开发基于pthread.h的多线程程序【转】

    在Windows下使用Dev-C++开发基于pthread.h的多线程程序[转]     在Windows下使用Dev-C++开发基于pthread.h的多线程程序   文章分类:C++编程     ...

  5. windows下使用pycharm开发基于ansible api的python程序

    Window下python安装ansible,基于ansible api开发python程序 在windows下使用pycharm开发基于ansible api的python程序时,发现ansible ...

  6. linux下mysql基于mycat做主从复制和读写分离之基础篇

    Linux下mysql基于mycat实现主从复制和读写分离1.基础设施 两台虚拟机:172.20.79.232(主) 172.20.79.233(从) 1.1软件设施 mysql5.6.39 , my ...

  7. Linux下开发STM32单片机

    一开始学习51单片机就是用的MDK这个IDE软件,IDE软件虽然看起来直观好像更加容易入门(因为有界面看起来很形象),但是实际上IDE却是向我们这些入门人员隐藏了背后真实存在的过程,让我们以为编译就是 ...

  8. 【最详细最完整】在Linux 下如何打包免安装的QT程序?

    在Linux 下如何打包免安装的QT程序? 版权声明:嵌入式linux相关的文章是我的学习笔记,基于Exynos 4412开发板,一部分内容是总结,一部分是查资料所得,大家可以自由转载,但请注明出处! ...

  9. linux下C调用lua的第一个程序

    linux下C调用lua的第一个程序 linux的环境是Fedora 18,运行在VM workstation中,以开发模式安装,自带了lua 5.1.4,可以在命令行上直接用lua命令进入到lua环 ...

  10. 轻装上阵Flink--在IDEA上开发基于Flink的实时数据流程序

    前言 本文介绍如何在IDEA上快速开发基于Flink框架的DataStream程序.先直接上手! 环境清单 案例是在win7运行.安装VirtualBox,在VirtualBox上安装Centos操作 ...

随机推荐

  1. 一、docker入门(概念)

    系列导航 一.docker入门(概念) 二.docker的安装和镜像管理 三.docker容器的常用命令 四.容器的网络访问 五.容器端口转发 六.docker数据卷 七.手动制作docker镜像 八 ...

  2. 【驱动】I2C驱动分析(二)-驱动框架

    I2C驱动框架简介 I2C 驱动属于总线-设备-驱动模型的,与I2C总线设备驱动模型相比,大体框架是一样,系统的整体框架如下所示. 最上层是应用层,在应用层用户可以直接用open read write ...

  3. 【调试】kprobes(一)基本概念

    简介 开发人员在内核或者模块的调试过程中,往往会需要要知道其中的一些函数有无被调用.何时被调用.执行是否正确以及函数的入参和返回值是什么等等. 比较简单的做法是在内核代码对应的函数中添加日志打印信息, ...

  4. S3C2440移植uboot之裁剪和修改默认参数

      上一节S3C2440移植uboot之支持DM9000移植uboot支持了网卡驱动,这节裁剪和修改uboot默认参数 目录 uboot的环境参数 修改uboot的默认环境变量 查看 default_ ...

  5. P1616-DP【橙】

    这道题好几天前就写出了记搜代码,但是理论上空间恰好够,实际上不论是用new-delete还是malloc-free,都有1~2个点MLE了(最抽象的是一开始MLE两个点,我把数组两个下标调换顺序后理应 ...

  6. C#设计模式03——简单工厂的写法

    什么是C#简单工厂? C#简单工厂是一种创建对象的设计模式,它定义一个工厂类来创建指定类型的对象,而不是在客户端代码中直接创建对象.简单工厂模式通常使用静态方法来生成对象,并且这些静态方法通常被称为工 ...

  7. Shell 脚本编程学习

    本文为博主原创,转载请注明出处: 目录: 1. shell 变量 2. 运算符 3. if 语句 4.for 循环 5.while 语句 6. case 语法 7.跳出循环:continue 与 br ...

  8. 基于python的药店药品信息管理系统-毕业设计-课程设计

    基于python+django+vue.js开发的药店信息管理系统 功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发. 功能包括:药品管理.分类 ...

  9. python3查看文件是否存在,以及读、写与执行的属性

    技术背景 在使用python对系统文件进行操作的项目中,经常需要用到对本地文件的存在和读写进行判断的操作.最常用的比如os.exists函数,可以很方便的判断给定的文件名是否存在于系统中.但是这里我们 ...

  10. 使用VS开发人员工具观察类在内存中的布局

    1.先要生成相应文件 2.打开VS2019开发人员工具 3.cd至文件目录 4.输入cl /d1 reportSingleClassLayoutanimal demo.cpp 其中reportSing ...