import clr (1)
clr.AddReference("Loehnert.TypeAndResult") (2)
from Loehnert.TypeAndResult import Station (3)
station = Station("my_station") (4)
Python-Beispiele
3 Minuten Lesezeit
Instanz einer .NET Klasse erstellen
Dieses Beispiel zeigt, wie Sie eine .NET-Assembly der CLR (Common Language Runtime) als Referenz hinzufügen, und wie Sie eine Instanz einer Klasse erstellen.
1 | Import des CLR (Common Language Runtime) Moduls |
2 | Um eine .NET-Assembly zu verwenden, muss diese der CLR als Referenz hinzugefügt werden |
3 | Den Typ Station aus dem Namespace Loehnert.TypeAndResult importieren |
4 | Aufruf des Konstruktors |
Viele nützliche Tipps zur .NET Integration finden Sie in der IronPython .NET Integration Dokumentation |
Messzyklus erstellen und Merkmal bewerten
Es sollen ein Messzyklus und ein Messprozess erstellt werden und ein Merkmal bewertet werden. Die Station hat ein Typdatenmodul und ein Werkstückmodul mit dem Namen WorkPiece. Es sind die Typdaten aus dem Typdaten-Beispiel geladen.
WorkPiece.SetWorkPiece("1234") (1)
measure_cycle = WorkPiece.GetNewMeasureCycle() (2)
measure_process = measure_cycle.AddNewMeasureProcess("HighVoltageTest") (3)
current = 0.004 # 4mA (4)
measure_process.EvaluateAttribute("Current", current) (5)
measure_process.Evaluate() (6)
measure_cycle.Evaluate() (7)
WorkPiece.RemoveWorkPiece() (8)
1 | Werkstück (Prüfling) über eine ID laden. Die eindeutigen ID "1234" könnte z.B. eine Trace-ID oder eine Seriennummer sein |
2 | Messzyklus, für ein Werkstück, erstellen |
3 | Messprozess, für den Prozess "HighVoltageTest", erstellen |
4 | Messwert generieren, dieser würde von einem Messgerät erzeugt werden |
5 | Merkmal "Current" bewerten |
6 | Messprozess bewerten |
7 | Messzyklus bewerten |
8 | Werkstück aus dem Werkstückmodul entfernen |
Abbildung 1 zeigt die Ergebnisansicht im Servicefenster des Werkstückmoduls. Die Gesamtklassifikation des Messzyklus wird in dem gewählten Beispiel als Nicht in Ordnung bewertet, da nicht alle Merkmale des HighVoltage-Prozesses gemessen wurden.
Prozess-, Parameter- und Merkmalnamen können per Drag’n’Drop aus dem Typdateneditor oder dem Servicefenster des Typdatenmoduls in das Script kopiert werden. |
Einen Dialog anzeigen
In diesem Beispiel sehen Sie, wie Sie einen Dialog mit einem Eingabefeld anzeigen.
import clr
clr.AddReference("Loehnert.Controls") (1)
from Loehnert.Controls.Dialogs import DialogService
dialog = DialogService.GetDialogBuilder()\ (2)
.WithTitle("Eingabe Seriennummer")\ (3)
.WithInput(str, "Seriennummer")\ (4)
.WithOkButton().IsDefaultButton()\ (5) (6)
.WithCancelButton()\ (7)
.ThrowExceptionOnCancel()\ (8)
.Build()
result = dialog.Show() (9)
serial_number = result.Values[0] (10)
1 | .NET-Assembly "Loehnert.Controls.dll" der CLR als Referenz hinzufügen |
2 | Einen "DialogBuilder" erstellen |
3 | Titel hinzufügen |
4 | Eingabefeld für eine Zeichenfolge hinzufügen |
5 | OK-Button hinzufügen |
6 | OK-Button als Standardbutton festlegen, dieser reagiert auf die Enter-Taste |
7 | Abbruch-Button hinzufügen |
8 | Bei Abbruch soll eine Ausnahme geworfen werden (siehe OperationCanceledException), diese führt zum Abbruch des Skripts |
9 | Dialog anzeigen |
10 | Die Seriennummer aus dem Ergebnis des Dialogs holen |
Weitere Beispiele für Dialoge finden Sie in der Dokumentation des DialogBuilders. |
Loggen
Dieses Beispiel erstellt einen Logger und erzeugt einen Logeintrag.
import clr
clr.AddReference("Loehnert.Lisrt")
from Loehnert.Lisrt.Messaging import MessageService
from Loehnert.Lisrt.Contracts import LogLevel
logger = MessageService.Instance.LoggerFactory.GetLogger("MyLogger") (1)
logger.Log(LogLevel.Info, "Das ist ein Logeintrag mit dem Log-Level Info") (2)
1 | Einen Logger mit dem Namen "MyLogger" erstellen |
2 | Einen Logeintrag mit dem Log-Level "Info" erzeugen |
Typdaten vererben
Das folgende Beispiel zeigt, wie Typdaten mittels Vererbung kombiniert werden können.
import clr
clr.AddReference("Caliburn.Micro")
clr.AddReference("Loehnert.TypeAndResult")
clr.AddReference("Loehnert.Lisrt.TypeAndResult")
from Caliburn.Micro import IoC
from Loehnert.TypeAndResult import TypeData as type_data_class
from Loehnert.TypeAndResult.Provider import ITypeDataProvider
from Loehnert.Lisrt.TypeAndResult.GeminiModule import GeminiTypeDataModule
def combine_type_data(types):
provider = IoC.Get[GeminiTypeDataModule]().DefaultProvider # type: ITypeDataProvider (1)
combined_type_data = None
for type_identifier in types:
current_type_data = provider.Load(type_identifier)
combined_type_data = current_type_data if combined_type_data == None else type_data_class.Inherit(combined_type_data, current_type_data) (2)
return combined_type_data
types = ["Type_A", "Type_B", "Type_C"]
type_data = combine_type_data(types)
type_data.TypeIdentifier = "MySuperType" (3)
TypeData.SetTypeData(type_data) (4)
1 | Standardtypdatenanbieter holen (z.B. XML-Dateidatenquelle) |
2 | Typdaten vererben |
3 | Die kombinierten Typdaten erhalten einen neuen Namen |
4 | Die Typdaten in das Typdatenmodul laden |
Feedback
War diese Seite hilfreich?
Freut uns zu hören! Falls du doch Verbesserungsvorschläge hast schreibe uns.
Tut uns leid, das zu hören. Bitte schreibe uns was wir verbessern können.