ユーザータイプの作成

Aurora Vision Studioでは、ユーザーがデータのカスタムタイプを作成できます。

これは、アプリケーション全体で複数のパラメータを便利に渡す必要がある場合や、User Filterを作成する場合などに特に役立ちます。

ユーザーは、指定された型の名前付きフィールドを持つ構造体や、独自の列挙型(いくつかの固定のオプションを示す)を定義できます。

たとえば、ユーザーは、width, height, value、およびpositionなどのパラメータを1か所に含む構造体を定義できます。また、ユーザーはStart, Stop, Error, Pauseなどのオプションを持つ列挙型を定義して、名前付きのプログラムの状態を定義できます。

使用法

例えば、製品の品質を確認するために、部品名、部品の幅、部品の高さ、およびその許容差などの情報がプロジェクトで必要です。 これらのデータ要素は、画像解析中にアクセスする必要があります。

この問題は、ユーザー定義の型なしで解決できますが、多くの接続を作成するとプログラムの構造が複雑になります。以下の画像は、ユーザーの構造体を使用した場合と複数の値を個別のパラメータとして渡す場合との比較を示しています。

ユーザー型なしの解決策 - 多くの接続が、より読みにくくしている

ユーザー型ありの解決策 - 少ない接続が、より読みやすくしている

プログラムでのユーザータイプの作成

ユーザータイプは、プロジェクトエクスプローラーウィンドウを介して利用可能なグラフィカルエディタで作成します。

このアイコンを使用してグラフィカルエディタを開きます

グラフィカルユーザータイプエディタ

あるいは、プロジェクトを保存し、メインのAVCODEファイル(Notepad++などで)を開いてファイルの先頭に型の宣言を追加できます。

struct Part
{
	String 	Name
	Real	Width
	Real	Height
	Real	Tolerance
}

ファイルを保存してプロジェクトを再読み込みします。これで、新しく作成した型をAurora Vision Studioで他の型と同様に使用できます。

プロジェクトを再読み込みした後、
Aurora Vision Studioでカスタム型が利用可能になります。

同様に、カスタム列挙型もこの方法で追加できます。カスタム列挙型を作成するには、AVCODEファイルの先頭に次のコードを追加します。

enum PartType
{
	Nut
	Bolt
	Screw
	Hook
	Fastener
}

カスタム列挙型は他の型と同様に使用できます

構造体フィールドへのアクセス

ユーザー構造体に含まれる情報にアクセスするには、そのフィールドを展開する必要があります。以下の画像は、マクロフィルタの入力で型を展開する方法を示しています。

マクロフィルタの入力でユーザー型のフィールドが展開されています

CopyObjectフィルタを使用してユーザー型オブジェクトを作成できます。

CopyObjectの入力でユーザー型のフィールドが展開されています。

ユーザー定義の型は、数式でもアクセスできます。

ユーザー定義の型を使用した計算

ユーザー定義型の保存

ユーザー定義型はAurora Vision Studioで動作するため、SaveObjectWriteToStringWriteToXmlNodeTcpIp_WriteObjectなどのフィルタを使用してユーザーデータを保存および転送できます。

関連するプログラムの例

ユーザー定義型に関する実例は、次のプログラム例を参照してください: Brick Destroy、User Defined Types、User Filter With User Defined Types。