Windchill のその他の機能 > 製造プロセス管理 > 製品エクスプローラ (PSE) のカスタマイズ > サブタイプ用の PSE のカスタマイズ
  
サブタイプ用の PSE のカスタマイズ
目的
すでに「タイプおよび属性の管理」ユーティリティを使用して WTPart のサブタイプが定義され、場合によっては、WTPartUsageLink に属性が追加されています。通常、これらのタイプと属性はカスタマイズしなくても PSE に表示されますが、PSE エクスプローラ内でのこれらの属性の表示を制御する必要があります。
バックグラウンド
通常、PSE で部品のタイプを選択すると、「タイプおよび属性の管理」ユーティリティを使用してサブタイプが定義されているかどうかが自動的に検出されます。属性を指定するように求めるプロンプトが自動的に表示され、指定した属性が表示されます。これらの情報は、次の ID を使用して属性定義を参照するエントリによって、PSE XML ファイルにアーカイブされます。
ALL_SOFT_SCHEMA_ATTRIBUTES
ALL_SOFT_CLASSIFICATION_ATTRIBUTES
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
これらのエントリは有益ですが、表示の順序を制御できるわけではありません。また、一部の値はサーバー上でプログラムによって設定されるので、その場合、ユーザーによる値の指定を許可してはいけません。
WTPart のベース定義に再利用可能な属性 myDescription が追加されている単純な例を考えてみます。myMechanical 部品は「タイプおよび属性の管理」ユーティリティで myCost および myWeight の各属性を使用して定義され、WTPartUsageLink は myColor という再利用可能な属性を含むように拡張されているとします。
新規 myMechanical 部品をアセンブリに挿入するための手順を行うと、以下の画面が表示されます。
「新規を挿入」ウィザードに、インスタンス化タイプのドロップダウンメニューが表示されます。ユーザーは "myMechanical" 部品を選択します。
「名前」をはじめとしたプロパティの指定後、ウィザードにおける最後のステップは再利用可能な属性の指定です。「属性」列は並べ替えることができますが、デフォルトの順序は制御できません。
myMechanical 部品の「情報」タブにはすべての属性が表示されますが、表示の順序は不特定です。タブの上半分に表示される属性は、対応するオブジェクトを識別するための固定セットを表し、関連性のないものが含まれている場合もあります。下部の編集可能テーブルに表示される属性には、WTPart から継承された属性が含まれます。これらの属性を表示する順序は制御できません。
myColor 属性は「子部品」タブに表示されませんが、ほかの UsageLink 属性の値を確認するときに役立つ場合があります。
PSE XML ファイルをカスタマイズすることにより、これらの属性をユーザーに対して表示するように明示的に定義することが可能になります。通常、この影響を受けるのは、「情報」タブ、「部品を作成」ウィザード、および「挿入」ウィザードです。
範囲/適用可能性/前提条件
これらの変更は PSE XML ファイルに加えられているので、PSE のすべてのユーザーに適用されます。
予測される結果
上記の例を考えてみます。
新規部品の属性を指定する場合、ウィザードの最後のステップで指定する属性は、PSE XML ファイルで定義された順序で表示されます。
「情報」タブの下部にあるテーブルの属性も順序を指定できます。
子部品の BOM テーブルは、親子リンク属性を表示するように設定できます。
ソリューション
dataType については、新しい ExplorerElementGroup に "ptc.wnc.StructureExplorer" のコンテキストアプリケーションを定義しました。このエレメント内で、属性テーブルのコンテンツを定義します。
このカスタマイズを行っている場合は、多くのタイプの WTPart が定義されていることが考えられます。ただし、これらの要素の定義は次のファイルに追加できます。
<Windchill>/codebase/config/logicrepository/xml/explorer/structureexplorer/Explorer ForTablesAndPanels.xml
このファイルはサイズが大きくなっており、顧客による拡張部分を識別しにくくなっています。そのため、カスタマイズを格納するためのファイルをソフト部品のタイプごとに 1 つずつ作成することが推奨されます。
ID がそれぞれ ptc.wnc.exp.CreatPartTab3、ptc.wnc.exp.CreatePartNoUsageLinkTab3、および ptc.wnc.exp.EditPropertiesTable の属性テーブルが各データ型に対して定義されます。
「子部品」タブに属性を追加するには、ptc.wnc.exp.PartUsesLinkTabl という ID を持つテーブルの適切な CellDefinition を ExplorerForTablesAndPanels.xml に追加します。
前提となる知識
この目的を達成するには、次のことを理解している必要があります。
XML ファイルのカスタマイズの管理
ソリューションエレメント
エレメント
タイプ
説明
ExplorerForTableAn dPanels.xml
XML ファイル
PSE テーブルとパネルの定義が含まれています。
場所:
<Windchill>/codebase/config/logicreposi
tory/xml/structureexplore
LogicContext
XML エレメント
定義の適用対象とするアプリケーションとデータ型を指定します。
AttributeTable
XML エレメント
属性テーブルと内容を定義します。
CellDefinition
XML エレメント
属性テーブルに表示される属性とその適切な動作です。
Placement remove="true"
XML エレメント
Remove=true は、継承が原因でプロパティが表示されるのを防ぐために使用されます。
手順
次のディレクトリに、ソフト部品を表す新規のファイル (myMechanical.xml) を作成します。
Windchill>/codebase/config/logicrepository/xml/explorer/structureexplorer
作成したファイルに次の行を挿入するか、ExplorerElementGroup を次のファイルに追加します。
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
<?xml version="1.0" standalone="no" ?>
<!DOCTYPE LogicRepository SYSTEM
"/config/logicrepository/dtd/LogicRepository.dtd">
<LogicRepository>
<ExplorerElementGroup>
<LogicContext application="ptc.wnc.StructureExplorer"
dataType="com.aprilia.www.myMechanical"/>
<AttributeTable id="ptc.wnc.exp.CreatePartTab3">
<Table id="Table" displayMode="edit">
<!-- These 3 entries remove the inherited entries from WTPart -->
<CellDefinition id="ALL_SOFT_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_CLASSIFICATION_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition
id="ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<!-- Add the entries for attributes on Parts and UsageLink in
the specific order -->
<CellDefinition id="myDescription">
<AttributeDefinition
attributeId="com.aprilia.www.myDescription"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myColor">
<AttributeDefinition
attributeId="com.aprilia.www.myColor"
imageName="com/ptc/windchill/explorer/config/images/uses
Tab.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myCost">
<AttributeDefinition
attributeId="com.aprilia.www.myCost"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myWeight">
<AttributeDefinition
attributeId="com.aprilia.www.myWeight"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
</Table>
<Import id="ptc.wnc.exp.NewObjectAttrTableAA"/>
</AttributeTable>
<AttributeTable
id="ptc.wnc.exp.CreatePartNoUsageLinkTab3">
<Table id="Table" displayMode="edit">
<!-- These 2 entries remove the inherited entries from WTPart -->
<CellDefinition id="ALL_SOFT_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_CLASSIFICATION_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<!-- Add the entries for attributes on Parts in the specific order -->
<CellDefinition id="myDescription">
<AttributeDefinition attributeId="com.aprilia.www.myDescription"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myCost">
<AttributeDefinition
attributeId="com.aprilia.www.myCost"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myWeight">
<AttributeDefinition
attributeId="com.aprilia.www.myWeight"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
</Table>
<Import id="ptc.wnc.exp.NewObjectAttrTableAA"/>
</AttributeTable>
<AttributeTable id="ptc.wnc.exp.EditPropertiesTable">
<Table id="Table" displayMode="edit">
<!-- These 3 entries remove the inherited entries from WTPart -->
<CellDefinition id="source">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="partType">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition id="ALL_SOFT_CLASSIFICATION_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<CellDefinition>
id="ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES">
<Placement remove="true"/>
</CellDefinition>
<!-- Add the entries for attributes on Parts and UsageLink in the
specific order -->
<CellDefinition id="myDescription">
<AttributeDefinition
attributeId="com.aprilia.www.myDescription"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myColor">
<AttributeDefinition
attributeId="com.aprilia.www.myColor"
imageName="com/ptc/windchill/explorer/config/images/usesTab.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myCost">
<AttributeDefinition
attributeId="com.aprilia.www.myCost"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
<CellDefinition id="myWeight">
<AttributeDefinition
attributeId="com.aprilia.www.myWeight"
imageName="wtcore/images/part.gif">
<Import id="ptc.wnc.exp.CreatePanelAttrAction"/>
</AttributeDefinition>
</CellDefinition>
</Table>
<Import id="ptc.wnc.exp.EditPropertiesTableAA"/>
</AttributeTable>
</ExplorerElementGroup>
</LogicRepository>
これにより、「期待される結果」セクションに示すように、ウィザードと「情報」タブで属性の指定が要求されるようになります。
再利用可能な属性を「子部品」タブに追加するには、次のファイルを編集します。
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
ID が ptc.wnc.exp.PartUsesLinkTabTable の Table エントリを見つけて、次のコード行を追加します。
<CellDefinition id="myColor" displayModeOverride="edit">
<AttributeDefinition attributeId="com.aprilia.www.myColor">
<Import id="ptc.wnc.exp.AssocAttrAction"/>
</AttributeDefinition>
</CellDefinition>
* 
WTPart 以外のオブジェクトに定義されている <AttributionDefinition> は、完全参照または定義済みの論理属性を使用した参照のいずれかで参照されなければなりません。
これらの変更を適用するには、メソッドサーバーを再起動する必要があります。
追加のカスタマイズ
前述の例を拡張するには、「子部品」タブに myDescription 属性を追加する例を考えてみます。この文字列属性を編集する際は、多数の文字を指定する必要が生じる場合があります。ただし、テーブルのセルに与えられたスペースでこれを行うことは容易ではありません。そのため、値を編集するときにダイアログボックスを表示する別のレンダラーをこの属性と関連付けて、ユーザーが多数の行にわたる文字列を入力できるようにすることが可能です。
次のファイルを編集します。
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
ID が ptc.wnc.exp.PartUsedLinkTabTable の Table エントリを見つけて、次のコード行を追加します。
<CellDefinition id="myDescription" displayModeOverride="edit">
<AttributeDefinition attributeId="com.aprilia.www.myDescription"
rendererClass="com.ptc.windchill.explorer.structureexplorer.renderer.component.
MultilineStringComponent">
<Import id="ptc.wnc.exp.AssocAttrAction"/>
</AttributeDefinition>
</CellDefinition>
Golf Cart を例として使用すると、セルの「...」ボタンをクリックしたときに、下図のようなダイアログボックスが表示されるようになります。
このレンダラーは、「情報」タブの属性にも適用できます。
カスタマイズポイント
「背景」セクションで示したとおり、LogicalAttributes.xml では、さまざまな特殊属性が定義されています。これらの属性は、単一の定義に関する多数の属性を表示するために PSE によって使用されます。内容は次のとおりです。
論理フォーム
説明
ALL_SOFT_ATTRIBUTES
オブジェクトに関して永続化されているすべての再利用可能な属性
ALL_SOFT_CLASSIFICATION_ATT RIBUTES
オブジェクトの分類と関連付けられたすべての再利用可能な属性。
ALL_SOFT_NON_SCHEMA_ATTRI BUTES
オブジェクトに関して永続化され、オブジェクトのタイプと関連付けられていないすべての再利用可能な属性。
ALL_SOFT_SCHEMA_ATTRIBUTES
オブジェクトのタイプと関連付けられたすべての再利用可能な属性。
ALL_SOFT_NON_CLASSIFICATION_SCHEMA_ATTRIBUTES
オブジェクトのタイプと関連付けられ、オブジェクトの分類と関連付けられていないすべての再利用可能な属性。
ALL_SOFT_NON_CLASSIFICATION_ATTRIBUTES
オブジェクトに関して永続化され、オブジェクトの分類と関連付けられていないすべての再利用可能な属性。
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
部品のコンテキストでは、部品親子リンクのタイプと関連付けられた、部品親子リンク上のすべての再利用可能な属性。
ALL_SOFT_SCHEMA_ATTRIBUTES_FOR_INPUT_TYPE
フィルタで指定されたタイプと関連付けられたすべての再利用可能な属性。このタイプは、実際のオブジェクトのスーパータイプである可能性があります。
改訂 9 では、PSE は「情報」タブの属性テーブル (また、「情報」タブの「新規」ダイアログ) の定義に次のものを使用します。
ALL_SOFT_SCHEMA_ATTRIBUTES
ALL_SOFT_CLASSIFICATION_ATTRIBUTES
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
ALL_SOFT_SCHEMA_ATTRIBUTES の代わりに "ALL_SOFT_ATTRIBUTES" を使用するか、ALL_SOFT_NON_SCHEMA_ATTRIBUTES のエントリを追加すると、プログラムによって CAD から挿入された属性を表示できます。