詳細図面 > 図面プログラムの実行 > 図面プログラムの作成について
  
図面プログラムの作成について
「ツール」(Tools) > 「図面プログラム」(Drawing Program) コマンドを使用して図面プログラムを作成し、モデルのステートの変化に図面がどのように適応するかを定義できます。モデルを新規の Pro/PROGRAM の入力で再実行する場合、または、モデルのファミリーのほかのインスタンスと置換する場合にステートが変化します。通常シーケンスやステートは、モデル内のいくつかのパラメータ値によって、ほかのシーケンスやステートから区別できます。
図面プログラムは、部品プログラムやアセンブリプログラムに図面を適応させるために用いられます。図面プログラムには、図面レイアウトを制御し個々の詳細機能を実行する論理式が含まれています。たとえば、部品の図面に特定のフィーチャー (たとえばキー溝) についての詳細ビューが含まれている場合があります。そのフィーチャーを抑制する場合、詳細ビューを消去して、空いたスペースにほかのビューをそれぞれ移動してください。"詳細ビューなし" (no_detail_view) などのステートを指定して詳細ビューを消去した後、その他のビューを適切に整理 (移動) する場合、プログラムはキー溝が抑制されているかどうかをクエリーします。抑制されている場合、詳細ビューなし (no_detail_view) のステートが図面に表示されます。抑制されていない場合、図面にはモデルの詳細ビューが表示されます。
図面プログラムには 2 つの部分があります。ステートとプログラムテキストです。ステートは、図面の表示形態を定義するために、図面上で頻繁に実行する手順 (寸法の表示やビューの移動など) に名前を付けたシーケンスです。図面に対して行おうとする変更操作を記録したものです。ステートを作成するには、名前をタイプしてから、個々の詳細コマンドを記録します。これらのコマンドを再現し、図面ステートが実際どのように動作するかを確認できます。必要な場合は編集もできます。図面の作成中に、ステートを追加または削除できます。
図面プログラムステートの作成中に、寸法、寸法破断、寸法クリップをスナップ線に配置できます。
前の図に示すように、図面ステートの定義が終了後、図面プログラムを作成できます。図面プログラムは、図面中に埋め込まれたテキストファイルで、使用する条件文の値に従って図面のステートを設定するテキスト行を含んでいます。IF 文、図面パラメータ、および代入文を使って、定義済みの図面ステートの設定を行うことができます。図面プログラムは、最初に図面上で図面パラメータをサーチします。パラメータが見つからない場合は、デフォルトモデルのモデルパラメータをサーチします。図面パラメータが図面プログラムによって認識されると、接尾辞 ":d" によって識別されます (drawing_attribute:d など)。モデルパラメータの場合は、モデル番号によって識別されます。
図面ステートを実行するコマンドの形式は次のとおりです。SET STATE name_of_state
IF 文は以下の形式でネスト化できます。
IF <定義式>
ELSE IF <定義式>
ELSE
ENDIF
定義式とは、部品リレーションの中で使用可能な論理式のことです。定義式には、(「設定」(SET UP) メニューの) 図面属性や、フィーチャー抑制関数 (たとえば、フィーチャーの抑制の有無を決定する FEAT_SUPPRESSED (model_name, feat_id)、構成部品の抑制の有無を決定する FEAT_SUPPRESSED (assembly_name, comp_id) などの関数) が含まれます。以下に例を示します。
IF FEAT_SUPPRESSED (bolt,15)
SET STATE no_detail_view
この場合、システムは、"bolt" という名前の付いたモデルのフィーチャー ID 15 が抑制されているかどうかをチェックします。抑制されている場合、ステートは詳細ビューなし (no_detail_view) に設定され、抑制されていない場合は何も行われません。
代入文の形式は次のとおりです。
var_name = expression ここで、var_name は変数名
コメント行の形式は次のとおりです。
/* これはコメント行です。
 
*注記 ワード IF、ELSE、ENDIF、SET、STATE、FEAT_SUPPRESSED は予約済みです。これらのワードは、図面プログラムで変数名として使用できません。また、IF 文で等号 (=) を使用する場合は、"==" を使用してください。パラメータ値を設定するのに文を使用する場合、"=" を使います。