惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Vercel News
Vercel News
博客园 - 司徒正美
C
Check Point Blog
G
Google Developers Blog
The GitHub Blog
The GitHub Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
有赞技术团队
有赞技术团队
P
Proofpoint News Feed
IT之家
IT之家
B
Blog
博客园_首页
量子位
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
J
Java Code Geeks
H
Help Net Security
A
About on SuperTechFans
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI
D
DataBreaches.Net
Y
Y Combinator Blog
大猫的无限游戏
大猫的无限游戏
云风的 BLOG
云风的 BLOG
Google DeepMind News
Google DeepMind News

博客园 - AnyCAD

ACIS SAT 文件格式详解及其解析 基于.NET开发STEP三维模型浏览器 【源码】蚁群算法TSP问题可视化 Python下的三维建模和可视化 AnyCAD程序无法启动的问题解决方法 基于AvaloniaUI开发跨平台.NET三维应用:环境搭建 基于.NET三维控件的个性化管道软件开发 .NET6: 开发基于WPF的摩登三维工业软件 (10) - 机器人 .NET6: 开发基于WPF的摩登三维工业软件 (8) - MVVM .NET6: 开发基于WPF的摩登三维工业软件 (7) .NET6: 开发基于WPF的摩登三维工业软件 (2) .NET6: 开发基于WPF的摩登三维工业软件 .NET6: 三分钟搭建WPF三维应用 十行代码搭建基于.NET6三维应用程序 基于.NET的机械运动模拟应用开发 Linux下基于.NET5开发CAX应用 .NET5下的三维应用程序开发 本地Nuget包管理 基于.NET实现Matlab备用方案
.NET8:快速集成Rapid.NET三维控件
AnyCAD · 2023-11-23 · via 博客园 - AnyCAD

.NET8正式版本发布了,AnyCAD Rapid.NET针对.NET8进行了升级和优化。本文以WPF项目为例介绍在.NET8中使用AnyCAD Rapid.NET三维控件。

1 从.NET6升级

若之前使用NET6升级到.NET8,升级过程非常简单,升级到AnyCAD Rapid .NET最新版本后,仅需要更改以下两处:

(1).csproj文件

<TargetFramework>net8.0-windows</TargetFramework>

(2)控件窗口

   xmlns:anycad="clr-namespace:AnyCAD.WPF;assembly=AnyCAD.WPF.NET8"

2 在.NET8项目中集成控件

对于新建的.NET8项目,使用AnyCAD Rapid .NET控件仅需要三步:

- 使用nuget安装控件

- 程序初始化

- 在XAML中使用控件

具体过程如下:

(1)安装Rapid .NET控件最新版本

(2)程序初始化

App.xaml

<Application x:Class="WpfStarter.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:WpfStarter"
             StartupUri="MainWindow.xaml" Startup="Application_Startup" Exit="Application_Exit">
    <Application.Resources>
         
    </Application.Resources>
</Application>

App.xaml.cs

using System.Windows;

namespace WpfStarter
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            AnyCAD.Foundation.GlobalInstance.Initialize();
        }

        private void Application_Exit(object sender, ExitEventArgs e)
        {
            AnyCAD.Foundation.GlobalInstance.Destroy();
        }
    }
}

(3) 窗口中添加三维控件

MainWindow.xaml

<Window x:Class="WpfStarter.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfStarter"
        xmlns:anycad="clr-namespace:AnyCAD.WPF;assembly=AnyCAD.WPF.NET8"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <Grid.ColumnDefinitions>
            <ColumnDefinition MinWidth="100" Width="0.3*"/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <anycad:RenderControl Grid.Column="1" x:Name="mRenderCtrl" Margin="0,0,0,0" ViewerReady="mRenderCtrl_ViewerReady" />

    </Grid>
</Window>

MainWindow.xaml.cs

using AnyCAD.Foundation;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows;

namespace WpfStarter
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            
        }

        private void mRenderCtrl_ViewerReady()
        {
            var shape = ShapeBuilder.MakeCylinder(GP.XOY(), 10, 20, 0);
            mRenderCtrl.ShowShape(shape, ColorTable.AliceBlue);
        }
    }
}

3 编译和运行项目

4 总结

.NET8带来了诸多新特性,建议还在使用.NET Framework 4.x的用户尽快升级。使用.NET6的用户升级到.NET8也是非常的丝滑~