Apps WebApp

000-Rhino-Compute-Local-Run|ローカルでRhinoComputeの実行

Rhino.Compute を使用すると、Rhino の幾何学計算機能をクラウド上で活用することが可能です。ただし、アプリケーションを本番環境に展開する前に、制御された環境で動作確認を行い、すべてが正常に動作することを確かめる必要があります。

この記事では、Windows に精通し、Visual Studio と Git の基本的な知識を持つ開発者を対象としています。Rhino の経験豊富なユーザーでも、Rhino.Compute を初めて使用する方でも、この記事を通じて、開発環境をセットアップし、Rhino.Computeを起動する方法を学ぶことができます。

前提条件

ローカル マシンで Rhino.Compute のセットアップを始める前に、適切なツールがあることを確認する必要があります。必要なものは次のとおりです。

  • Windows オペレーティング システム。Rhino.Compute は Windows でのみ実行されます。
  • 開発環境。コードをコンパイルするにはVisual Studio 2022必要です。
  • バージョン管理。compute.rhino3dリポジトリのクローンを作成し、Rhino のバージョンに応じてブランチを管理するには、Gitが必要です。
  • Rhino。最新のRhino 8またはRhino 7ビルドを入手するには、ダウンロード ページにアクセスしてください。ダウンロードしてインストールしたら、Rhino を起動し、起動時の指示に従って、マシン上または Cloud Zoo を通じてライセンスを検証してください。

リポジトリをクローン

Rhino.Compute の最新バージョンを入手するには、Github の公式アカウントからリポジトリをクローンする必要があります。

  1. https://github.com/mcneel/compute.rhino3dにアクセスしてください。
  2. ブランチのドロップダウン メニューから、クローンする 8.x または 7.x ブランチのいずれかを選択してください。
  3. そこに到達したら、緑色のボタン「<> コード」をクリックし、リポジトリの URL をコピーします。

Rhino.ComputeはGitHubからurlをコピーし、以下のコードをTest/backend/ディレクトリで実行し配置します。(今回はTestというプロジェクトを想定して構築していきます。)

mkdir Test
cd Test
git clone https://github.com/mcneel/compute.rhino3d.git

ソリューションについて

Rhino.Compute リポジトリは 2 つのメイン プロジェクトで構成されており、それぞれがフレームワーク内で異なる目的を果たします。これらを理解することで、Rhino.Compute の動作を明確にすることができます。特に、Rhino.Compute の開発に携わったり貢献したりしたいと考えている場合は、そのことが役立ちます。2 つのプロジェクトの詳細は次のとおりです。

compute.geometry

このプロジェクトは、主に幾何学計算の側面に焦点を当てています。本質的に、compute.geometry は、Rhino のジオメトリ エンジンを Web 上で使用できるように公開する REST API を提供します。つまり、幾何学的操作をサーバー上で実行し、結果をリモートで取得できるため、複雑な幾何学的処理を必要とする Web ベースのアプリケーションやサービスに非常に役立ちます。

rhino.compute

このプロジェクトは、compute.geometry API への呼び出しを管理および調整する、より高レベルのサービス レイヤーと考えることができます。認証、子プロセスの生成、シャットダウン プロセスの時間制限の設定などのタスクを処理します。

ソリューションをコンパイル

コードが用意できたので、Visual Studio 2022 でプロジェクトを開き、デバッグの準備をします。

  1. リポジトリをクローンしたディレクトリに移動し、compute.slnファイルを見つけます。それをダブルクリックして、Visual Studio 2022 でプロジェクトを開きます。
  2. ソリューション構成をデバッグモードに設定します。これにより、完全なデバッグ機能を使用してコードを実行できるようになり、コードのトレースとエラーの検出が容易になります。

[ビルド] -> [ソリューションのビルド] (Ctrl + Shift + B) をクリックします。これにより、すべてのプロジェクト ファイルがコンパイルされます。

ソリューション エクスプローラー パネルで、 rhino.computeプロジェクトを右クリックし、[スタートアップ プロジェクトとして設定]を選択します。これにより、デバッガーを実行すると、Visual Studio がこの特定のプロジェクトを起動するようになります。

rhino.computeをクリックして、デバッガーでアプリケーションを起動します。タスク バーにコンソール アプリケーションが表示され、Rhino.Compute の読み込みプロセスのステータスが表示されます

visual studioを閉じます。cmdを開いてプロジェクトのパスに移動し、dotnet runを実行します。

cd compute.rhino3d
cd src
cd rhino.compute
dotnet run

このエラーは、dotnet run コマンドで rhino.compute アプリケーションを起動しようとした際に、必要な .NET ランタイム (バージョン 7.0.0) がインストールされていないために発生しています。

警告: ターゲット フレームワーク 'net7.0' はサポートされていません

  • 原因: rhino.compute.NET 7.0 フレームワークをターゲットにしているが、現在使用している .NET SDK (9.0.101) は .NET 7.0 を非推奨として警告を表示しています。.NET 7.0 のサポートは終了しており、セキュリティ更新などが提供されません。

すでに.NET8 SDKをインストールしてあるので、以下のフレームワークが見つかりましたと帰ってきています。次の手順で.NET 8にターゲットフレームワークを設定します。

The following frameworks were found:
  8.0.11 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
  9.0.0 at [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]

ローカルの .NET 環境を確認

  1. dotnet --list-sdks コマンドでインストール済みの SDK を確認。
  2. dotnet --list-runtimes コマンドでインストール済みのランタイムを確認。

.NET 8 SDK と Rhino.Compute のセットアップ

.NET 8 SDK のインストール

RhinoComputeを動作させるために、.NET 8 SDKをインストールします。※インストールしていない場合

公式サイトからダウンロードし、インストール後に以下のコマンドでインストールが成功したことを確認します。

dotnet --version

.NET8のバージョンを使用するように設定

rhino.compute.csprojを修正し、.NET 8のバージョンを使用するように設定します。

rhino.compute.csprojを修正

以下はrhino.compute.csproj

\000-Rhino-Compute-Tutorial\compute.rhino3d\src\rhino.compute

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <RuntimeFrameworkVersion>8.0.11</RuntimeFrameworkVersion>
    <AssemblyName>rhino.compute</AssemblyName>
    <OutputType>Exe</OutputType>
    <RuntimeIdentifier>win-x64</RuntimeIdentifier>
    <RollForward>LatestMinor</RollForward>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
    <ApplicationIcon>favicon.ico</ApplicationIcon>
    <IsTransformWebConfigDisabled>true</IsTransformWebConfigDisabled>
    <SelfContained>True</SelfContained>
    <PublishTrimmed>False</PublishTrimmed>
    <AppendRuntimeIdentifierToOutputPath>false</AppendRuntimeIdentifierToOutputPath>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)'=='Debug'">
    <OutputPath>..\bin\Debug\$(AssemblyName)</OutputPath>
    <DefineConstants>TRACE;RHINO_COMPUTE</DefineConstants>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)'=='Release'">
    <OutputPath>..\bin\Release\$(AssemblyName)</OutputPath>
    <DefineConstants>TRACE;RHINO_COMPUTE</DefineConstants>
    <PublishDir>..\dist\$(AssemblyName)</PublishDir>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Carter" Version="7.0.0" />
    <PackageReference Include="CommandLineParser" Version="2.9.1" />
    <PackageReference Include="Serilog.AspNetCore" Version="6.1.0" />
    <PackageReference Include="Serilog.Enrichers.Environment" Version="2.2.0" />
    <PackageReference Include="Serilog.Exceptions" Version="8.4.0" />
    <PackageReference Include="Serilog.Expressions" Version="3.4.1" />
    <PackageReference Include="Serilog.Settings.Configuration" Version="3.4.0" />
    <PackageReference Include="Serilog.Sinks.Async" Version="1.5.0" />
    <PackageReference Include="Serilog.Sinks.Console" Version="4.1.0" />
    <PackageReference Include="System.Drawing.Common" Version="8.0.0" />
    <PackageReference Include="System.Net.Http" Version="4.3.4" />
  </ItemGroup>
</Project>

強制的に .NET 8.0 で実行する

プロジェクトが .NET 7.0 を要求する場合、DOTNET_ROLL_FORWARD 環境変数を設定して、.NET 8.0 を使用させる方法があります。

以下のコマンドを実行して、アプリケーション実行時に環境変数を設定

set DOTNET_ROLL_FORWARD=Majordotnet run

DOTNET_ROLL_FORWARD=Major を設定すると、要求されたバージョンが見つからない場合に上位のメジャーバージョン(この場合は .NET 8.0)を使用します。

エンドポイントをテスト

Rhino.Compute コンソール アプリケーションを実行している状態で、これらのエンドポイントのいずれかを参照して、すべてが動作していることを確認します。

お疲れさまでした

上記のようにブラウザ上で表示されていればRhino.Computeをローカル環境で起動することができています。

参考

https://developer.rhino3d.com/guides/compute/development

-Apps, WebApp
-