Zusätzliche Funktionen von Windchill > Fertigungsprozess-Management > Produktstruktur-Explorer (PSE) anpassen > PSE für Untertypen anpassen
  
PSE für Untertypen anpassen
Ziel
Sie haben das Dienstprogramm Typ- und Attributverwaltung verwendet, um Untertypen von "WTPart" zu definieren, und möglicherweise haben Sie Attribute zu "WTPartUsageLink" hinzugefügt. Obwohl diese Typen und Attribute in der Regel in PSE ohne Anpassung angezeigt werden, möchten Sie die Anzeige dieser Attribute im PSE-Explorer steuern.
Hintergrund
Bei der Auswahl eines Teiletyps in PSE wird normalerweise automatisch erkannt, ob Untertypen mit dem Dienstprogramm Typ- und Attributverwaltung definiert wurden. Es erfolgt eine automatische Aufforderung für Attribute, und diese werden angezeigt. Dies wird in den PSE-XML-Dateien durch die Einträge erreicht, die Attributdefinitionen mit folgenden IDs referenzieren:
ALL_SOFT_SCHEMA_ATTRIBUTES
ALL_SOFT_CLASSIFICATION_ATTRIBUTES
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
Obwohl diese Einträge nützlich sind, ist es nicht möglich, die Reihenfolge der Anzeige zu steuern. Außerdem können einige Werte programmgesteuert auf dem Server festgelegt werden, und daher sollte dem Benutzer nicht erlaubt werden, Werte anzugeben.
Ein einfaches Beispiel ist Folgendes: Für "WTPart" wurde das wiederverwendbare Attribut "myDescription" zur Grunddefinition hinzugefügt. Das Teil "myMechanical" wurde im Dienstprogramm Typ- und Attributverwaltung mit den Attributen "myCost" und "myWeight" definiert, "WTPartUsageLink" wurde erweitert und verfügt über das wiederverwendbare Attribut "myColor".
Die Schritte zum Einfügen des neuen Teils "myMechanical" in eine Baugruppe führen zu folgenden Bildschirmen.
Der Assistent Neues Objekt einfügen zeigt ein Dropdown-Menü der instantiierbaren Typen an. Der Benutzer wählt das Teil "myMechanical" aus.
Nachdem der Name und andere Eigenschaften angegeben wurden, werden Sie im letzten Schritt des Assistenten aufgefordert, das wiederverwendbare Attribut anzugeben. Die Spalte "Attribut" kann zwar sortiert werden, die Standardreihenfolge ist aber nicht kontrolliert.
Die Registerkarte Information für das Teil "myMechanical" enthält alle Attribute, jedoch in keiner bestimmten Sortierreihenfolge. Die Attribute im oberen Teil der Anzeige stellen den festen Satz dar, der zur Identifizierung dieses Objekts angewandt wird; mehrere davon sind möglicherweise nicht relevant. Die Attribute in der unteren bearbeitbaren Tabelle enthalten die von "WTPart" geerbten Attribute. Sie befinden sich nicht in einer kontrollierten Reihenfolge.
Das Attribut "myColor" wird auf der Registerkarte "Verwendung" nicht angezeigt; es könnte aber für den Benutzer nützlich sein, den Wert zusammen mit anderen UsageLink-Attributen zu sehen.
Durch eine Anpassung der PSE-XML-Dateien ist es möglich, diese Attribute explizit so zu definieren, dass sie dem Benutzer angezeigt werden. Dies betrifft normalerweise die Registerkarte "Information" und die Assistenten "Teilerstellung" und "Einfügen".
Umfang/Anwendbarkeit/Annahmen
Da diese Änderungen an den PSE-XML-Dateien vorgenommen werden, gelten sie für alle Benutzer von PSE.
Gewünschtes Ergebnis
Betrachten Sie das oben beschriebene Beispiel.
Wenn die Attribute des neuen Teils angegeben werden, werden die Attribute im letzten Schritt des Assistenten in der Reihenfolge angezeigt, die in den PSE-XML-Dateien definiert ist.
Die Attribute in der unteren Tabelle der Registerkarte Information können ebenfalls sortiert werden.
Die Stücklistentabelle "Verwendung" kann so konfiguriert werden, dass sie das Attribut "Verwendungs-Link" anzeigt.
Lösung
Für den "dataType" wird eine neue "ExplorerElementGroup" mit der Kontextanwendung von "ptc.wnc.StructureExplorer" definiert. Innerhalb dieses Elements definieren Sie den Inhalt der Attributtabellen.
Wenn Sie diese Anpassung vornehmen, haben Sie wahrscheinlich viele Typen von "WTPart" definiert. Obwohl diese Elementdefinitionen zur Datei
<Windchill>/codebase/config/logicrepository/xml/explorer/structureexplorer/Explorer ForTablesAndPanels.xml
hinzugefügt werden können, wird diese Datei sehr groß, und Benutzererweiterungen lassen sich nur schwer identifizieren. Daher wird empfohlen, eine Datei pro Soft-Teiletyp für die Anpassung zu erstellen.
Die "AttributeTables" mit den IDs "ptc.wnc.exp.CreatPartTab3", "ptc.wnc.exp.CreatePartNoUsageLinkTab3" und "ptc.wnc.exp.EditPropertiesTable" werden für jeden "dataType" definiert.
Attribute werden der Registerkarte "Verwendung" hinzugefügt, indem Sie die entsprechende "CellDefinition" für die Tabelle mit der ID "ptc.wnc.exp.PartUsesLinkTable" in "ExplorerForTablesAndPanels.xml" hinzufügen.
Vorausgesetzte Kenntnisse
Um dieses Ziel zu erreichen, müssen Sie Folgendes verstehen:
Verwaltung von XML-Dateianpassungen
Lösungselemente
Element
Typ
Beschreibung
ExplorerForTableAndPanels.xml
XML-Datei
Enthält die Definition der PSE-Tabellen und -Fenster
Sie befindet sich unter:
<Windchill>/codebase/config/logicreposi
tory/xml/structureexplore
LogicContext
XML-Element
Gibt die Anwendung und den Datentyp an, auf die die Definition angewendet werden soll
AttributeTable
XML-Element
Definiert die Attributtabelle und -inhalte
CellDefinition
XML-Element
Das Attribut mit dem entsprechenden Verhalten, das in der "AttributeTable" angezeigt werden soll.
Placement remove=”true”
XML-Element
"Remove=true" wird verwendet, um zu verhindern, dass eine Eigenschaft durch Vererbung angezeigt wird.
Verfahren
Erstellen Sie entweder eine neue Datei, die das Soft-Teil darstellt (myMechanical.xml), in folgendem Verzeichnis:
Windchill>/codebase/config/logicrepository/xml/explorer/structureexplorer
und fügen Sie die folgenden Zeilen ein, oder fügen Sie die "ExplorerElementGroup" hinzu zu:
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>
Dies führt dazu, dass die Attribute im Assistenten und auf der Registerkarte "Information" angefordert werden, wie im Abschnitt "Gewünschtes Ergebnis" gezeigt.
Um das wiederverwendbare Attribut zur Registerkarte "Verwendung" hinzuzufügen, bearbeiten Sie:
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
Suchen Sie den Tabelleneintrag mit der ID "ptc.wnc.exp.PartUsesLinkTabTable", und fügen Sie Folgendes hinzu:
<CellDefinition id="myColor" displayModeOverride="edit">
<AttributeDefinition attributeId="com.aprilia.www.myColor">
<Import id="ptc.wnc.exp.AssocAttrAction"/>
</AttributeDefinition>
</CellDefinition>
* 
Jede <AttributionDefinition>, die für ein anderes Objekt als ein "WTPart" definiert wurde, muss entweder mit dem vollständigen Namen oder mit einem von Ihnen definierten logischen Attribut bezeichnet werden.
Der Methodenserver muss neu gestartet werden, damit diese Änderungen angewendet werden.
Weitere Anpassung
Ausgehend vom obigen Beispiel können Sie das Attribut "myDescription" der Registerkarte "Verwendung" hinzufügen. Bei der Bearbeitung dieses Zeichenfolgenattributs möchte der Benutzer möglicherweise viele Zeichen angeben; dies ist beim verfügbaren Platz in einer Tabellenzelle jedoch nicht einfach. Daher kann diesem Attribut ein anderer Renderer zugeordnet werden, damit bei der Bearbeitung des Werts ein Dialogfeld geöffnet wird, in dem der Benutzer mehrere Textzeilen eingeben kann.
Bearbeiten Sie:
Windchill>/codebase/config/logicrepository/xml/explorer/structure
explorer/ExplorerForTablesAndPanels.xml
Suchen Sie den Tabelleneintrag mit der ID "ptc.wnc.exp.PartUsedLinkTabTable" und fügen Sie Folgendeshinzu:
<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>
Im Beispiel des Golfwagens wird folgendes Dialogfenster geöffnet, wenn in der Zelle auf die Schaltfläche "..." geklickt wird.
Dieser Renderer kann auch auf die Attribute auf der Registerkarte "Information" angewendet werden.
Anpassungspunkte
Im Abschnitt "Hintergrund" finden sich mehrere spezielle Attribute, die in "LogicalAttributes.xml" definiert sind und es PSE ermöglichen, mehrere Attribute für eine einzelne Definition anzuzeigen. Diese schließen ein:
Logische Form
Beschreibung
ALL_SOFT_ATTRIBUTES
Alle wiederverwendbaren Attribute, die für das Objekt beibehalten werden
ALL_SOFT_CLASSIFICATION_ATTRIBUTES
Alle wiederverwendbaren Attribute, die der Klassifikation des Objekts zugeordnet sind.
ALL_SOFT_NON_SCHEMA_ATTRIBUTES
Alle wiederverwendbaren Attribute, die für das Objekt beibehalten werden und die nicht dem Typ des Objekts zugeordnet sind.
ALL_SOFT_SCHEMA_ATTRIBUTES
Alle wiederverwendbaren Attribute, die dem Typ des Objekts zugeordnet sind.
ALL_SOFT_NON_CLASSIFICATION_SCHEMA_ATTRIBUTES
Alle wiederverwendbaren Attribute, die dem Typ des Objekts und nicht der Klassifikation des Objekts zugeordnet sind.
ALL_SOFT_NON_CLASSIFICATION_ATTRIBUTES
Alle wiederverwendbaren Attribute, die für das Objekt beibehalten werden und die nicht der Klassifikation des Objekts zugeordnet sind.
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
Im Kontext eines Teils sind dies alle wiederverwendbaren Attribute der Teileverwendungs-Links, die dem Typ des Teileverwendungs-Links zugeordnet sind
ALL_SOFT_SCHEMA_ATTRIBUTES_FOR_INPUT_TYPE
Alle wiederverwendbaren Attribute, die dem im Filter angegebenen Typ zugeordnet sind; es kann sich um einen Supertyp des Objekts selbst handeln
In Revision 9 verwendet PSE Folgendes in der Definition der Attributtabelle der Registerkarte Information (sowie im Dialogfenster Neu der Registerkarte Information):
ALL_SOFT_SCHEMA_ATTRIBUTES
ALL_SOFT_CLASSIFICATION_ATTRIBUTES
ALL_SOFT_USAGE_LINK_SCHEMA_ATTRIBUTES
Wenn "ALL_SOFT_ATTRIBUTES" anstelle von "ALL_SOFT_SCHEMA_ATTRIBUTES" verwendet wird, oder wenn ein Eintrag für "ALL_SOFT_NON_SCHEMA_ATTRIBUTES" hinzugefügt wird, ist es möglich, Attribute programmgesteuert über CAD zur Anzeige auszufüllen.