ToolBlock に画像を表示する

ToolBlock は、CogImage の端子だけをつなぎ合わせても ToolBlockEdit のCogRecordDisplay に画像が表示されません。

スクリプトを使用して画像を表示することができます。コードを示します。(AE作成)

先ず ToolBlock に CogImage の入出力端子の Input/Output を作成してから ToolBlock のSimple Script で ModifyLastRunRecord をオーバーライドします。

public override void ModifyLastRunRecord(ICogRecord lastRecord)
{

lastRecord.SubRecords.Add(new Cognex.VisionPro.Implementation.CogRecord("Input", typeof(ICogImage), CogRecordUsageConstants.Result, false, Inputs.Input, "Input"));
lastRecord.SubRecords.Add(new Cognex.VisionPro.Implementation.CogRecord("Output", typeof(ICogImage), CogRecordUsageConstants.Result, false, Outputs.Output, "Output"));

// Don’t forget to add a using/Imports statement for
// Cognex.VisionPro.Implementation namespace (where
// CogRecord lives).
}

製品:VisionPro

動作確認バージョン:7.2

言語:C#シンプルスクリプト

myToolBlock.zip



(2012.09.23 追記)
VB.NET での記述です。

Public Overrides Sub ModifyLastRunRecord(ByVal lastRecord As Cognex.VisionPro.ICogRecord)

lastRecord.SubRecords.Add(New Cognex.VisionPro.Implementation.CogRecord("Input", GetType(Cognex.VisionPro.ICogImage), CogRecordUsageConstants.Result, False, Inputs.Input, "Input"))
lastRecord.SubRecords.Add(New Cognex.VisionPro.Implementation.CogRecord("Output", GetType(Cognex.VisionPro.ICogImage), CogRecordUsageConstants.Result, False, Outputs.Output, "Output"))

‘ Using/Imports で Cognex.VisionPro.Implementation の
名前空間を追加してください
End Sub

製品:VisionPro

動作確認バージョン:7.2

言語:VB.NETシンプルスクリプト

myToolBlock_vbnet.zip



(2012.11.28 追記)
QuickBuild(CogJob)のベース画面に表示するためには、Input の画像を、コピーして、Output にイコールで代入する必要があります。また、簡単なグラフィック表示の例も示します。

▼Public Overrides Function GroupRun ... の直前に、変数の宣言を追加

Private mToolBlock As Cognex.VisionPro.ToolBlock.CogToolBlock

▼Public Overrides Function GroupRun ... の中で、Input から Output への画像のコピー

Outputs.Output = Inputs.Input.CopyBase(CogImageCopyModeConstants.CopyPixels)

▼Public Overrides Sub Initialize ... で、mToolBlock を準備

mToolBlock = CType(host, Cognex.VisionPro.ToolBlock.CogToolBlock)

▼Public Overrides Sub ModifyLastRunRecord ... に、グラフィック表示を追加

Public Overrides Sub ModifyLastRunRecord(ByVal lastRecord As Cognex.VisionPro.ICogRecord)

lastRecord.SubRecords.Add(New Cognex.VisionPro.Implementation.CogRecord("Input", GetType(Cognex.VisionPro.ICogImage), CogRecordUsageConstants.Result, False, Inputs.Input, "Input"))
lastRecord.SubRecords.Add(New Cognex.VisionPro.Implementation.CogRecord("Output", GetType(Cognex.VisionPro.ICogImage), CogRecordUsageConstants.Result, False, Outputs.Output, "Output"))

Dim str As String = Inputs.InputStr
Dim label As CogGraphicLabel = New CogGraphicLabel()
label.SetXYText(120, 600, "OCR: " + str)
label.Color = CogColorConstants.Green
label.Alignment = CogGraphicLabelAlignmentConstants.TopLeft
label.Font = New Font("MS ゴシック", 30, FontStyle.Bold)
mToolBlock.AddGraphicToRunRecord(label, lastRecord, "Output", "script")

Dim rect As CogRectangleAffine = New CogRectangleAffine(Inputs.InputRect)
mToolBlock.AddGraphicToRunRecord(rect, lastRecord, "Output", "script")

‘ Using/Imports で Cognex.VisionPro.Implementation の
名前空間を追加してください
End Sub