Hallo!

Wussten Sie, dass angemeldete Benutzer viel mehr Inhalte sehen können?

Ausgabe von führenden Nullen


Software version: Not version-specific

Zuletzt aktualisiert August 31, 2020 by BC Ger Production Team bcgerproduction@tekla.com

Umgebung: 
Deutschland

Ausgabe von führenden Nullen

In manchen Situationen besteht die Notwendigkeit, dass beispielsweise alle Positionsnummern die gleiche Zeichenanzahl aufweisen müssen. Dies wird durch das Voranstellen von führenden Nullen gelöst. Wenn diese Information vor dem Positionieren des Modells bekannt ist, kann die Zeichenanzahl der Positionsnummern in den Erweiterten Optionen auf der Registerkarte „Positionierung“ festgelegt werden.

Für die Positionsnummern kann jeweils durch die Ergänzung eines oder mehrerer Punkte am Ende der einzelnen Optionen die Zeichenanzahl festgelegt werden. Die Positionsnummer wird entsprechend mit führenden Nullen aufgefüllt.

 

Mit den in der oberen Abbildung dargestellten Einstellungen werden Montageteile immer vierstellig, Betonteile dreistellig und Nebenteile fünfstellig positioniert. Die Vorgehensweise gilt analog für alle anderen Erweiterten Optionen für Positionsnummern.

Die Objektinfo zeigt dann beispielsweise folgende Positionsnummer an.

 

Wenn die Ausgabe der führenden Nullen nicht (mehr) über die Erweiterten Optionen möglich ist, dann können diese in den Vorlagen ergänzt werden. 

Im folgenden Beispiel werden die Haupt- und Nebenteil-Positionsnummern immer fünfstellig ausgegeben. Hierzu wird die format()-Funktion genutzt. In dieser wird über den letzten Parameter die Anzahl der Zeichen festgelegt. Für die format()-Funktion wird das Attribut ASSEMBLY_SERIAL_NUMBER bzw. PART_SERIAL_NUMBER genutzt. Diese Attribute beinhalten die Positionsnummer ohne Präfix und Trennzeichen. Damit in der Ausgabe die Positionsnummer mit Präfix und Trennzeichen erscheint, wird über die mid()-Funktion der Teil der Zeichenkette bestimmt, welcher dem Präfix samt Trennzeichen entspricht.

Um für Hauptteil die ASSEMBLY_POS und für Nebenteile die PART_POS auszugegeben, wird eine zusätzliche Abfrage durchgeführt, ob es sich um das Hauptteil handelt.

if (GetValue("MAIN_PART") == 1) then
   mid(GetValue("ASSEMBLY_POS"), 0, length(GetValue("ASSEMBLY_POS")) - length(GetValue("ASSEMBLY_SERIAL_NUMBER"))) + format(GetValue("ASSEMBLY_SERIAL_NUMBER"), "LeadingZeroes", "", 5)
else
   mid(GetValue("PART_POS"), 0, length(GetValue("PART_POS")) - length(GetValue("PART_SERIAL_NUMBER"))) + format(GetValue("PART_SERIAL_NUMBER"), "LeadingZeroes", "", 5)
endif

 
In beiden Fällen erfolgt die Ausgabe des Wertfeldes als Datentyp Text. Das Ergebnis dieser Formel ist in der nachfolgenden Abbildung dargestellt.
 

Andere Zahlen können ebenfalls in dieser Weise formatiert werden. Im nachfolgenden Beispiel wird die Teil-Länge ganzzahlig und fünfstellig mit führenden Nullen ausgegeben.
Der Datentyp des Wertfeldes ist Text, da die format()-Funktion eine Zeichenkette liefert. Aus diesem Grund muss mit einer inneren format()-Funktion zunächst die Länge in der Einheit Millimeter bestimmt werden. Damit im zweiten Schritt die führenden Nullen ergänzt werden können, muss das Ergebnis der inneren format()-Funktion wieder in eine Zahl umgewandelt werden. Dies geschieht mit der double()-Funktion. Dieser Zahl können mit der äußeren format()-Funktion die führenden Nullen ergänzt werden.

format(double(format(GetValue("LENGTH"), "Length", "mm", 0)), "LeadingZeroes", "", 5)

 
Das Ergebnis dieser Formel ist in der nachfolgenden Abbildung dargestellt.
 

Für die Ausgabe von Dezimalzahl mit führenden Nullen müssen die Nachkommastellen nachträglich ergänzt werden. Die vorhergehende Formel wird hierbei erweitert. Zunächst wird mit der format()-Funktion die Länge in der Einheit Millimeter mit zwei Nachkommastellen bestimmt und als Zeichenkette ausgegeben. In dieser Zeichenkette wird dann die Position des Dezimaltrennzeichens (der Punkt) gesucht. Über die mid()-Funktion wird nur der Teil der Zeichenkette inklusive des Dezimaltrennzeichens bestimmt und an den zuvor bestimmten ganzzahligen Ausdruck angehängt.

format(double(format(GetValue("LENGTH"), "Length", "mm", 2)), "LeadingZeroes", "", 5) + mid(format(GetValue("LENGTH"), "Length", "mm", 2), find(format(GetValue("LENGTH"), "Length", "mm", 2), "."))

 
Die Ausgabe über die Vorlage zeigt die nachfolgende Abbildung.
 

Weitergehende Information zu den verwendeten Funktionen im Vorlagen-Editor können der Dokumentation des Vorlagen-Editors entnommen werden.
 

Marken: 
Führende Nullen
Positionierung
Vorlagen Ganzzahl mit führenden Nullen
Dezimalzahl mit führenden Nullen

Quick feedback

The feedback you give here is not visible to other users. We use your comments to improve our content.
We use this to prevent automated spam submissions.
Inhaltsbewertung: 
Noch keine Bewertungen vorhanden