メインコンテンツへスキップ
Advanced pre-search relations では、特殊な FlexiLayout language を使用して、検索制約と要素のプロパティを設定します。コードを入力できるペインは、プロパティ ダイアログの Advanced タブにあります。 Advanced pre-search relations ペインに入力したコードは、FlexiLayout 要素に対応する画像オブジェクトの検索を実行する直前に実行されます。プログラムはまず、Advanced タブの左側にあるタブで指定されたプロパティを使用し、その後でコードを実行します。特定のパラメーターが、Advanced タブの左側にあるタブと Advanced タブ上のコードの両方で指定されている場合は、コードで指定された内容が優先されます。パラメーターが Advanced タブの左側にあるタブで指定されていても、コード内で指定されていない場合は、該当するタブで設定されたパラメーター値が使用されます。
SearchText function (Static Text 要素) は例外です。この function では、Static Text タブですでに指定されている検索単語に検索単語が追加されます。
Advanced タブの左側にあるいずれかのタブでプロパティを指定している場合は、Advanced タブの Code ボタンをクリックして、それらをコードに変換できます。生成されたコードは、その後コピーまたは編集できます。
Advanced pre-search relations ペインに入力する追加の制約では、FlexiLayout ツリー内で現在の要素より上にある要素のみを参照できます。唯一の例外は、同じ繰り返しグループ要素内の subelement で、指定された要素より下にある同じグループ内の subelement の前のインスタンスを参照できます。

同じParameterに異なる値を割り当てる必要がある場合があります。これは “if… then” 演算子を使って実現できます。if Element1.IsNull then { MaxErrors: 3, 0.25; } else { MaxErrors: 5, 0.5; }
検索範囲は、画像領域を定義する任意の型 (Rect、RectArray、Region) を使って指定できます。また、これらの型のいずれかを返す式を使って指定することもできます。式の計算結果は、RestrictSearchArea() function の引数として渡されます。a.RestrictSearchArea( Rect(Rect( Page( 1 ).RectGlobal.Left, Page( 1 ).RectGlobal.Top+20*mm, Element1.Left.Start, Element2.Ycenter.Start ) );b.let rect1 = Element1.Rect; let rect2 = Element2.Rect; RestrictSearchArea( rect1 or rect2 );
文書によっては、画像上にある1つのオブジェクトが存在すると、別のオブジェクトは自動的に除外されることがあります。また、特定の条件が満たされた場合にのみ、特定のオブジェクトを検索したいケースもあります。DontFind() command を使うと、特定のオブジェクトを検索しないようプログラムに指示できます。この command が実行されると、プログラムは対応するオブジェクトに対して null hypotheses を生成します。if Element1.IsNull() then DontFind()
要素で指定された条件を満たす画像オブジェクトが複数見つかることがあります。この場合、プログラムは複数の仮説を生成します。この中から、画像上の別のオブジェクトまたは点に最も近い仮説だけを選択する必要がある場合は、Nearest、NearestX、NearestY functions を使用できます。
  • Nearest( [elementの名前] ) - 最も近いelementの名前を設定します。
  • Nearest( x1, y1 ) - 最も近い点の座標を設定します。
  • NearestX( x1 ) - 最も近い垂直線の X 座標を設定します。
  • NearestY( y1 ) - 最も近い水平線の Y 座標を設定します。
注: 複数の Nearest functions を同時に使用することはできません。

関連項目

FlexiLayout language