Création de dessins à partir de modèles (Creo Elements/Direct Annotation) > Rubriques avancées > Personnalisation pour les utilisateurs avancés > Fonctions de nomenclature
  
Fonctions de nomenclature
Plusieurs fonctions du module Creo Elements/Direct Annotation permettent de gérer les nomenclatures. La plus importante concerne le chargement de formats de nomenclature et l'enregistrement d'attributs et de références de texte. Vous pouvez également désactiver le bouton Analyser lorsque la base de données WorkManager doit être la seule source d'informations pour la nomenclature.
Les sections suivantes décrivent les fonctions possibles :
Chargement des formats en-tête, composant et repère de nomenclature
Enregistrement d'attributs de nomenclature et de références de texte (sans WorkManager) et Enregistrement d'attributs de nomenclature et de références de texte (avec WorkManager)
Définition du mode d'attache et de la direction d'extension par défaut
Exemple d'enregistrement de nomenclature complète
Chargement des formats en-tête, composant et repère de nomenclature
Un format est le modèle qui détermine l'apparence des tables de nomenclature et des repères de position. Vous pouvez charger et enregistrer n'importe quel fichier MI comme format de nomenclature. Les trois formats spécifiques des nomenclatures sont :
Le format d'en-tête définit le titre de la table de nomenclature. Il peut contenir des informations sur l'assemblage racine de la nomenclature.
Le format de composant définit les lignes de la table.
* 
Pour être valide, un format de table doit avoir un format d'en-tête et un format de composant avec la même Option UI-NAME.
Le format de repère définit les repères de position de la nomenclature.
Les valeurs peuvent être fournies dans des Enregistrement d'attributs de nomenclature et de références de texte (sans WorkManager) spéciaux appliqués aux formats dans les menus de personnalisation du format de nomenclature. Les formats chargés peuvent être modifiés dans un folio provisoire 0, puis stockés dans un fichier à l'aide de la commande standard "Enregistrer Esquisse". La figure présente des formats de nomenclature standard.
Formats de nomenclature
La première illustration montre un format d'en-tête de table (en haut) et un format composant (en bas) ; la deuxième illustration montre une forme de repère.
Les fonctions de format et leurs options sont répertoriées ci-dessous. Pour obtenir plus d'informations sur les différents liens, cliquez sur chacun d'eux. Un Exemple est fourni ci-dessous.
Syntaxe
(DOCU-LOAD-BOM-HEAD-LAYOUT --+--> Option UI-NAME---->+--->
| ^
`--> Option FILE------->'
(DOCU-LOAD-BOM-COMP-LAYOUT --+--> Option UI-NAME---->+--->
| ^
`--> Option FILE------->'
(DOCU-LOAD-BOM-FLAG-LAYOUT --+--> Option UI-NAME---->+--->
| ^
`--> Option FILE------->' Fonction DOCU-UNLOAD-ALL-BOM-LAYOUTS
Option UI-NAME
:UI-NAME est le nom de format qui apparaîtra dans la table Forme repère ou Format esquisse. Les formats d'en-tête et de composant associés doivent avoir des chaînes UI-NAME identiques pour que la table soit configurée dans sa totalité. Les formats de repère sont indépendants et n'ont pas besoin d'avoir en commun un nom de format de table.
Syntaxe
-->(:UI-NAME)----->|"interface name"|------->
Option FILE
:FILE désigne le fichier MI utilisé comme format. Généralement, il s'agit d'une esquisse de forme sauvegardée avec l'option Enregistrer Esquisse. Creo Elements/Direct Annotation charge automatiquement le fichier spécifié au démarrage.
Syntaxe
-->(:FILE)----->|"filename"|------->
Fonction DOCU-UNLOAD-ALL-BOM-LAYOUTS
La fonction DOCU-UNLOAD-ALL-BOM-LAYOUTS décharge (et annule l'enregistrement) de tous les formats précédemment chargés. Dans le fichier am_customize (ou un fichier séparé), utilisez cette fonction avant les instances de (DOCU-LOAD-BOM-...-LAYOUT ...) si vous ne souhaitez pas que les formats par défaut soient disponibles.
Exemple
Exemple d'enregistrement de format :
(docu-load-bom-head-layout
:ui-name "Example1"
:file "/bom/head1.mi")
(docu-load-bom-comp-layout
:ui-name "Example1"
:file "/bom/comp1.mi")
(docu-load-bom-flag-layout
:ui-name "Example1"
:file "/bom/flag1.mi")
Enregistrement d'attributs de nomenclature et de références de texte (sans WorkManager)
Les fonctions décrites ci-après sont applicables lorsque WorkManager n'est pas utilisé. Pour en savoir plus sur ces fonctions dans WorkManager, voir Enregistrement d'attributs de nomenclature et de références de texte (avec WorkManager).
Creo Elements/Direct Annotation comporte un générateur de nomenclatures. A partir d'un assemblage, il analyse l'arborescence du modèle et génère des données de nomenclature pour chaque objet trouvé. Vous pouvez enregistrer des attributs spécifiques avec des fonctions de calcul de valeurs associées pour définir le contenu de la nomenclature.
Les fonctions d'attribut, leurs options et les fonctions associées sont répertoriées ci-après. Pour obtenir plus d'informations sur les différents liens, cliquez sur chacun d'eux. Un Exemple est fourni ci-dessous.
(DOCU-REGISTER-BOM-ATTR --+--> Option ATTR-TYPE--------->+--->
| ^
|--> Option ATTR-TITLE-------->|
| |
|--> Option ATTR-DISPLAY------>|
| |
`--> Option ATTR-VALUE-FNC---->' Fonction DOCU-UNREGISTER-BOM-ATTR-ALL Fonction DOCU-UNREGISTER-BOM-ATTR Fonction DOCU-REGISTER-BOM-TR-GROUP Fonction DOCU-REGISTER-WMBOM-TR-GROUP
Option ATTR-TYPE
:ATTR-TYPE désigne le type d'attribut qui détermine le type de référence de texte cible. Voir aussi Fonction DOCU-REGISTER-BOM-TR-GROUP.
Syntaxe
-->(:ATTR-TYPE)----->|"text reference type"|------->
Option ATTR-TITLE
:ATTR-TITLE spécifie le nom de l'attribut de nomenclature tel qu'il apparaît dans la table nomenc. actuelle.
Syntaxe
-->(:ATTR-TITLE)----->|"name in table"|------->
Option ATTR-DISPLAY
:ATTR-DISPLAY indique si l'attribut de nomenclature doit s'afficher dans la table nomenc. actuelle. Vous pouvez masquer l'attribut si nécessaire, ce qui n'empêchera pas sa détermination pendant une analyse.
Syntaxe
-->(:ATTR-DISPLAY)----->|t or nil|------->
Option ATTR-VALUE-FNC
:ATTR-VALUE-FNC spécifie la fonction qui détermine la valeur de l'attribut de nomenclature. Celle-ci doit être définie pour pouvoir être enregistrée. Elle contient un paramètre qui décrit une pièce ou un assemblage d'un élément de sélection et elle renvoie une chaîne contenant la valeur à inclure dans la nomenclature.
Pour plus d'informations sur les fonctions de calcul de valeurs des attributs de nomenclature, reportez-vous également à la rubrique Exemple d'enregistrement de nomenclature complète concernant l'utilisation des fonctions du kit d'intégration.
Syntaxe
-->(:ATTR-VALUE-FNC)----->|#'value-function-name|------->
Notez que pour les attributs définis par le système, tels que DOCU_BOM_QUANTITY, la fonction de calcul de valeurs système est utilisée. Toutefois, l'attribut doit toujours être enregistré afin d'apparaître dans la table NOMENC. Utilisez nil pour la fonction de calcul de valeur dans les cas suivants :
-->(:ATTR-VALUE-FNC)----->|nil|------->
(Note que l'attribut système DOCU_BOM_POS_NO est automatiquement disponible, il n'est pas nécessaire de l'enregistrer.)
Voir aussi l' Exemple ci-dessous.
Fonction DOCU-UNREGISTER-BOM-ATTR-ALL
La fonction DOCU-UNREGISTER-BOM-ATTR-ALL annule l'enregistrement de tous les attributs de nomenclature précédemment enregistrés. Dans le fichier am_customize (ou un fichier séparé), utilisez cette fonction avant les instances de (DOCU-REGISTER-BOM-ATTR ...) si vous ne souhaitez pas que les formats par défaut soient disponibles.
Fonction DOCU-UNREGISTER-BOM-ATTR
La fonction DOCU-UNREGISTER-BOM-ATTR annule l'enregistrement d'un attribut de nomenclature précédemment défini. Vous pouvez saisir n'importe quelle Option ATTR-TYPE d'attribut existant, en la plaçant entre guillemets doubles.
Syntaxe
(DOCU-UNREGISTER-BOM-ATTR "attribute type")
Fonction DOCU-REGISTER-BOM-TR-GROUP
Le générateur de nomenclatures de Creo Elements/Direct Annotation BOM dénombre les occurrences de pièces référencées et inclut ces informations dans un attribut de nomenclature nommé "DOCU_BOM_QUANTITY". Le groupe de références de texte NOMENC par défaut est "BFG". La fonction DOCU-REGISTER-BOM-TR-GROUP permet de spécifier un groupe différent.
Tous les attributs de nomenclature enregistrés génèrent de nouveaux types de références de texte (de même nom) dans ce groupe. Ces types de références de texte sont disponibles dans les menus de personnalisation de format de nomenclature.
Veuillez noter que la référence de texte système "DOCU_BOM_POS_NO" est utilisée pour afficher les numéros de position ; elle est disponible automatiquement.
Syntaxe
(DOCU-REGISTER-BOM-TR-GROUP "group name")
Enregistrement d'attributs de nomenclature et de références de texte (avec WorkManager)
Les fonctions suivantes sont appliquées conjointement avec WorkManager.
Fonction DOCU-REGISTER-WMBOM-TR-GROUP
WorkManager fournit des tables qui définissent les attributs de nomenclature sous forme de colonnes (titre) et de lignes (données). La table de configuration spécifie les attributs qui doivent apparaître dans la table d'affichage de nomenclature. Par conséquent, la plupart des opérations de personnalisation doivent être réalisées dans WorkManager.
Le groupe de références de texte NOMENC par défaut est "BFG". Vous pouvez le modifier avec la fonction DOCU-REGISTER-WMBOM-TR-GROUP.
Le système récupère automatiquement une liste d'attributs WorkManager sous ce nom et génère de nouveaux types de références de texte (du même nom) dans ce groupe. Ces types de références de texte sont disponibles dans les menus de personnalisation de format de nomenclature.
Veuillez noter que la référence de texte système "DOCU_BOM_POS_NO" est utilisée pour afficher les numéros de position ; elle est disponible automatiquement.
Syntaxe
(DOCU-REGISTER-WMBOM-TR-GROUP "WorkManager group name")
Exemple
Exemple d'enregistrement d'attribut de nomenclature :
(defun docu-bom-attr-part-name (selitem)
(let ((contents-name (oli::sd-inq-obj-contents-name selitem)))
(if contents-name contents-name (oli::sd-inq-obj-basename selitem))
)
)
(docu-unregister-bom-attr-all)
(docu-register-bom-attr :attr-type "PART_NAME"
:attr-title "Part Name"
:attr-display t
:attr-value-fnc #'docu-bom-attr-part-name)
(docu-unregister-bom-attr "PART_NAME")
(docu-register-bom-attr :attr-type "DOCU_BOM_QUANTITY"
:attr-title "Quantity"
:attr-display t
:attr-value-fnc nil) ;; system BOM attribute
(docu-register-bom-attr :attr-type "PART_NAME"
:attr-title "Part Name"
:attr-display t
:attr-value-fnc #'docu-bom-attr-part-name)
Définition du mode d'attache et de la direction d'extension par défaut
Mode d'attache
Vous pouvez définir le point d'attache par défaut du curseur lors du positionnement des tables NOMENC. Il s'agit par défaut du point central de la table (MIDDLE_MIDDLE).
Syntaxe
(DOCU::DOCU-SET-CURRENT-BOM-ATTACH-MODE "position")
La position peut être l'une des suivantes : UPPER_LEFT, UPPER_MIDDLE, UPPER_RIGHT, MIDDLE_LEFT, MIDDLE_MIDDLE, MIDDLE_RIGHT, LOWER_LEFT, LOWER_MIDDLE ou LOWER_RIGHT. Notez que ces options respectent la casse et doivent être saisies en majuscules.
Direction d'extension
Vous pouvez également définir la direction d'extension par défaut des tables NOMENC. Cette option détermine si les informations de nomenclature s'affichent de haut en bas (extension vers le pas) ou de bas en haut (extension vers le haut).
Syntaxe
(DOCU::DOCU-SET-CURRENT-BOM-GROWTH-DIR :GROW-UPWARD or :GROW-DOWNWARD)
Exemple d'enregistrement de nomenclature complète
L'exemple suivant montre comment associer des attributs au modèle, puis les inclure dans la nomenclature.
;;-----------------------------------------------------------------------------
;; simple example how to implement BOM attributes using IK functions
;;-----------------------------------------------------------------------------
(in-package :my-special-bom-attr)
(use-package '( :oli ))
;;-----------------------------------------------------------------------------
;; functions to inquire attached BOM information of an SD part or assembly
;;-----------------------------------------------------------------------------
(defun bomattr-get-material (object)
(let ((attr (sd-inq-item-attribute object "MY_SPECIAL_BOM_ATTR"
:values :attachment :contents)))
(if attr (getf attr :material) nil)
)
)
(defun bomattr-get-partno (object)
(let ((attr (sd-inq-item-attribute object "MY_SPECIAL_BOM_ATTR"
:values :attachment :contents)))
(if attr (getf attr :part-number) nil)
)
)
;;-----------------------------------------------------------------------------
;; dialog to attach BOM information to an SD part or assembly
;;-----------------------------------------------------------------------------
(sd-defdialog 'my_special_bom_attr
:dialog-title "BOM Attr"
:start-variable 'object
:variables
'(
(OBJECT
:value-type :part-assembly
:modifies :contents
:title "Part/Assy"
:prompt-text "Select a part or assembly."
:after-input
(progn
(setq material (bomattr-get-material object))
(setq partno (bomattr-get-partno object))
)
)
(MATERIAL
:range ("Steel" "Aluminium" "Brass")
:title "Material"
:prompt-text "Enter material info."
)
(PARTNO
:value-type :string
:title "Part No"
:prompt-text "Enter part number info."
)
)
:ok-action
'(progn
(sd-attach-item-attribute object "MY_SPECIAL_BOM_ATTR"
:attachment :contents
:on-copy :copy
:on-merge :maintain
:on-split :copy
:on-xform :maintain
:filing '(:sd-file)
:values
`(
:material ,material
:part-number ,partno
)
)
)
)
;;-----------------------------------------------------------------------------
;; convenience functions to inquire attached BOM information
;;-----------------------------------------------------------------------------
(defun bomattr-get-material (selitem)
(let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR"
:values :attachment :contents)))
(if attr (getf attr :material) nil)
)
)
(defun bomattr-get-partno (selitem)
(let ((attr (sd-inq-item-attribute selitem "MY_SPECIAL_BOM_ATTR"
:values :attachment :contents)))
(if attr (getf attr :part-number) nil)
)
)
;;-----------------------------------------------------------------------------
;; examples of how to customize some simple BOM attributes
;;-----------------------------------------------------------------------------
(defun my-bom-attr-part-name (selitem)
(let ((contents-name (oli::sd-inq-obj-contents-name selitem)))
(if contents-name contents-name (oli::sd-inq-obj-basename selitem))
)
)
(defun my-bom-attr-part-no (selitem)
(let ((part-no (bomattr-get-partno selitem)))
(if part-no part-no "")
)
)
(defun my-bom-attr-material (selitem)
(let ((material (bomattr-get-material selitem)))
(if material material "")
)
)
(docu::docu-unregister-bom-attr-all)
(docu::docu-register-bom-attr :attr-type "DOCU_BOM_QUANTITY"
:attr-title "Quantity"
:attr-display t
:attr-value-fnc nil) ;; system bom attribute
(docu::docu-register-bom-attr :attr-type "PART_NAME"
:attr-title "Part Name"
:attr-display t
:attr-value-fnc #'my-bom-attr-part-name)
(docu::docu-register-bom-attr :attr-type "PART_NO"
:attr-title "Part No"
:attr-display t
:attr-value-fnc #'my-bom-attr-part-no)
(docu::docu-register-bom-attr :attr-type "MATERIAL"
:attr-title "Material"
:attr-display t
:attr-value-fnc #'my-bom-attr-material)