スクリプト検査で最も離れた距離を取得

スクリプト検査で形状抽出の最も離れた距離を取得する方法を紹介いたします。

スクリプト検査で形状抽出の最も離れた距離を取得して検査

タスクコネクション

  1. ネジ検出

  2. ネジの長さを測定

  3. ランタイム評価

  4. スクリプト検査を選択してスクリプトを記述


    今回は長さが100~600に収まっていない時は異常とします。
    以下がコードとなります。

// 検査をしない場合はnull 条件に一致する場合はtrue 条件に一致しない場合はfalse
// 正常品最小値
const double minLength = 100;
// 正常品最大値
const double maxLength = 600;
bool? result = null;

// ネジ頭部のブロブ
var contours = GetContourOutputs("ネジの長さ形状抽出");

// 結果が存在する時
if (contours?.Any() == true)
{
    // 一旦正常状態にする
    result = false;
    // 全ても輪郭をチェック
    foreach (var contour in contours)
    {
        // 無効な輪郭は見ない
        if (!contour.IsEnabled)
        {
            continue;
        }
        // 距離(長さ)
        var distance = contour.FarthestDistancePointPair.Distance;
        
        // 最小値より小さいもしくは最大値より大きい場合
        if (distance < minLength || distance > maxLength)
        {
            // 異常状態にする
            result = true;
        }
        
        // 表示するためにブロブを追加
        AddBlob(distance.ToString(), contour.Blob);
    }
    // nullの時はfalseにして検出失敗とする
    result = result != null;
}

// resultは必ず最後の行に記述してください
result
  1. スクリプト検査にチェックを入れて実行

    すると以下のように長さが表示されます。