2.3.10.1.2. Schlüssel "FileName" - Bildung des Dokumentennamens definieren

Name der Datei im Poolverzeichnis, Dateinamenerweiterung "sldprt" für Teile, "sldasm" für Baugruppen. Siehe auch die Schlüssel "PoolPath", "Material", "MaterialDBFile" und den Block "MatMap".

Default:

FileName(isCreaOptNotSet,is3dpart)=?_FORMAT_0("<GENNAME>").toFileName("_")
 .add(".sldprt").value()

FileName(isCreaOptNotSet,is3dasm)=?_FORMAT_0("<GENNAME>").toFileName("_")
 .add(".sldasm").value()

(Es gibt zwei Kategorien: eine für Teile und eine für Baugruppen.)

<GENNAME>: Der Dateiname enthält die Normbezeichnung (NB).

toFileName("_"): Nicht erlaubte Zeichen werden automatisch durch einen Unterstrich ersetzt.

Beispiele:

Die folgenden Beispiele mögen zeigen, wie differenziert der Dateiname gebildet werden kann. Wir empfehlen allerdings, bei solch komplexen Anpassungen die Zustimmung eines Consultants einzuholen, um unerwünschte Nebeneffekte zu vermeiden.

Beispiel 1:

Präfixe in den Dateinamen aufnehmen.

Es wird "<PREFIXLIST(_)>" eingefügt.

Bei Projekten, die mehrere Präfixe besitzen, werden diese automatisch mit Unterstrich als Trennzeichen in den Dateinamen eingefügt (z.B. Norm9, Kernloch)

Deklaration einmal für Bauteil (is3dpart) und einmal für Baugruppe (is3dasm).

FileName(isCreaOptNotSet,is3dpart)=?GetObject("iface.calcnameservice").start(0).Format
 ("<PREFIXLIST(_)><GENNAME>").toFileName("_").add("<.FileExtension>").value()

FileName(isCreaOptNotSet,is3dasm)=?GetObject("iface.calcnameservice").start(0).Format
 ("<PREFIXLIST(_)><GENNAME>").toFileName("_").add("<.FileExtension>").value()

Beispiel 2:

Katalognamen in den Dateinamen aufnehmen.

Es wird "<CATALOG>_" als Präfix dem Dateinamen vorangestellt.

Deklaration einmal für Teile (is3dpart) und einmal für Baugruppen (is3dasm).

FileName(isCreaOptNotSet,is3dpart)=?GetObject("iface.calcnameservice").start(0).Format
 ("<CATALOG>_<GENNAME>").toFileName("_").add("<.FileExtension>").value()

FileName(isCreaOptNotSet,is3dasm)=?GetObject("iface.calcnameservice").start(0).Format
 ("<CATALOG>_<GENNAME>").toFileName("_").add("<.FileExtension>").value()

Beispiel 3:

<GenNAME(25)>: Länge des Dateinamens begrenzen

alnum("_"): Nur alphanumerische Zeichen erlauben; andere werden durch einen Unterstrich ersetzt

ToLower(): Alle Buchstaben in Kleinbuchstaben umwandeln

MaxLen(28): Die Gesamtlänge des Dateinamens auf 28 Zeichen begrenzen

FileName(isCreaOptNotSet,is3dpart)=?GetObject("iface.calcnameservice").start(0).Format
 ("<GenNAME(25)>").alnum("_").ToLower().MaxLen(28).add(".prt").value()

Beispiel 4:

Dieses Beispiel behandelt die Bildung des Dateinamens bei ERP-Kopplung.

Per Default wird der Dateiname aus GENNAME (NB) und Material gebildet.

FileName(isCreaOptNotSet,is3dasm)=?GetObject("iface.calcnameservice").start(0).Format
 ("<GENNAME>").alnum("_").add("<.FileExtension>").value()

Sie können jedoch den Dateinamen mit der ERP-Nummer bilden. Vorteil ist ein absolut eindeutiger Dateiname.

FileName(isCreaOptNotSet,is3dasm)=?GetObject("iface.calcnameservice").start(0).Format
 ("<ATTR(ERP_PDM_NUMBER)>").alnum("_").add("<.FileExtension>").value()

Sie können mittels <ATTR(beliebige_ERP_Spalte)> auf jede beliebige ERP-Spalte referenzieren.

FileName(isCreaOptNotSet,is3dasm)=?GetObject("iface.calcnameservice").start(0).Format
 ("<ATTR(any_ERP_column)>").alnum("_").add("<.FileExtension>").value()

Die Bildung über ERP-Nummer + Normbezeichnung (NB) ist ebenfalls eine Option, um auch einen "sprechenden" Anteil im Namen zu führen.

FileName(isCreaOptNotSet,is3dasm)=?GetObject("iface.calcnameservice").start(0).Format
 ("<ATTR(ERP_PDM_NUMBER)>_<GENNAME>").alnum("_").add("<.FileExtension>").value()

Beispiel 5:

In diesem komplexen Beispiel ist eine ERP-Integration unterstellt:

Der Schlüssel FileName ist 3 Mal definiert mit der Hilfe von Kategorien:

  • für Baugruppen

  • für Teile

  • für Unterteile

Die Definition des Dateinamens für Baugruppen und Teile ist Standard-Syntax wie aus den vorangegangenen Beispielen bekannt.

Die SubParts (Unterteile) der Baugruppe sollen den Dateinamen kombinieren mit ...

  • ...Präfix aus der ERP-Spalte,

  • gefolgt vom generischen Namen (NB).

;Assembly
FileName(isCreaOptNotSet,is3dAsm)=?GetObject("iface.calcnameservice").start(0).Format
 ("<ATTR(xy)>").alnum("_").ToLower().MaxLen(28).add(".asm").value()

;Part
FileName(isCreaOptNotSet,is3dpart)=?GetObject("iface.calcnameservice").start(0).Format
 ("<ATTR(xy)>").alnum("_").ToLower().MaxLen(28).add(".prt").value()

;SubPart
FileName(isCreaOptNotSet,is3dpart,isSubPart)=?GetObject("iface.calcnameservice").start(0)
 .SetObj(GetObject("iface.metaoptionservice").GetRoot()).Format("<ATTR(xy)>_").value()
 +GetObject("iface.calcnameservice").start(0).Format("<GenNAME(25)>").alnum("_")
 .ToLower().MaxLen(28).add(".sldprt").value()

Ergebnis:

AAAA ist der Wert aus der ERP-Spalte "xy"

Erläuterung:

isSubPart: Für Unterteile ist eine Kategorie gesetzt. Daher ist dieser spezielle Schlüssel nur gültig für Unterteile.

Der Ausdruck vor dem Plus-Zeichen liest den Inhalt aus der ERP-Spalte.

Der Ausdruck hinter dem Plus-Zeichen erstellt den Dateinamen wie in den vorangegangenen Beispielen.