Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  SolidWorks
  API - Abfrage einer Eigenschaft auf Zeichenfolge

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für SOLIDWORKS
  
SolidWorks Kurs mit IHK-Zertifzierung , ein Kurs (bis zu 100% förderbar mit Bildungsgutschein)
Autor Thema:  API - Abfrage einer Eigenschaft auf Zeichenfolge (448 mal gelesen)
THSEFA
Mitglied
Konstrukteur/CAD-Admin


Sehen Sie sich das Profil von THSEFA an!   Senden Sie eine Private Message an THSEFA  Schreiben Sie einen Gästebucheintrag für THSEFA

Beiträge: 1142
Registriert: 27.11.2002

SWX 2020 SP5.0 Premium
Windows 10 Pro 64Bit
Citrix VM
Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
24 GB Ram<P>Windows 10 Pro 64Bit

erstellt am: 26. Aug. 2009 10:30    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo Zusammen,
ich habe hier wieder mal ein Problem auf dem Tisch, welches meine bescheidenen Fähigkeiten bei weitem übersteigt.

Ich habe für uns mit Stefans Hilfe (vielen Dank für deine Vorlage!  ) ein Makro umgeschieben, welches uns die Baugruppen als EASM-Dateien auf dem Server (unter der Artikelnummer Mechanik + Dateiname) ablegt. Bei dem Auslesen der Artikelnummer hätte ich gern abgefragt, ob die Artikelnummer mit "M" anfängt und im übrigen 8stellig ist. Hat da jemand eine Idee dazu?

Hier der Code

Dim swApp As Object
Dim ModelDoc2 As Object
Dim Part As Object
Dim Pdminfo As String
Dim ArtNrMech As String
Dim Dateiname As String
Dim Pfad As String

Sub main()

    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc2 = swApp.ActiveDoc
   
   
    ' dann war gar kein Dokument geöffnet, wie soll da was funktionieren
    If ModelDoc2 Is Nothing Then
            MsgBox " Kein Dokument geöffnet! "
        Exit Sub
    End If
   
    ' wenn keine Assembly aktiv ist wird das Makro wieder beendet
    If (ModelDoc2.GetType <> swDocASSEMBLY) Then
            MsgBox " Nur für Baugruppen geeignet! "
        Exit Sub
    End If
   
    ' Status des PDM Systems ermitteln
    Set Part = swApp.ActiveDoc
    Pdminfo = Part.CustomInfo2("", "Status")
        If Not Pdminfo = "Freigegeben" Then
            MsgBox "Datei ist im PDM-System nicht freigegeben!"
        End
        End If
   
   
    ' Ansichten aktualisieren, wenn erforderlich
    If errors = swDocNeedsRebuildWarning Then
    AssemblyDoc.EditRebuild
    End If
   
    'Die BG isometrisch fensterfüllend in Szene setzen
    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc2 = swApp.ActiveDoc
    Part.ShowNamedView2 "*Isometrisch", 7
    'Part.Save2 False
    Part.ViewZoomtofit2
    'Part.Save2 False
 
    'Namen der BG holen
    Dateiname = ""
    Dateiname = Part.GetTitle
   
    'Artikelnummer Mechanik holen
    Set Part = swApp.ActiveDoc
    ArtNrMech = Part.CustomInfo2("", "Artikelnummer")
    If ArtNrMech = "" Then 'HIER hätte ich gern die Abfrage erweitert nach z.B. "M9100000"
            MsgBox "Keine Artikelnummer Mechanik vergeben!"
        End
    End If
   
    'speichern unter dem beabsichtigten Netzlaufwerk
    Pfad = "P:\PRODUKTION VIDEO\Entwicklungsprojekte"
    Part.SaveAs2 Pfad + "\" + ArtNrMech + " - " + Dateiname + ".easm", 0, True, False
    MsgBox "Baugruppe wurde als " + ArtNrMech + " - " + Dateiname + ".easm gespeichert!", _
        vbInformation, "Save as EASM"
   

End Sub

------------------
Viele Grüße, THSEFA 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dirk Wollborn
Mitglied
Entwicklungskonstrukteur


Sehen Sie sich das Profil von Dirk Wollborn an!   Senden Sie eine Private Message an Dirk Wollborn  Schreiben Sie einen Gästebucheintrag für Dirk Wollborn

Beiträge: 379
Registriert: 31.07.2001

erstellt am: 26. Aug. 2009 10:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für THSEFA 10 Unities + Antwort hilfreich

If Left(ArtNrMech,1)="M" and Len(ArtNrMech)=8 Then

------------------
Dirk

[Diese Nachricht wurde von Dirk Wollborn am 26. Aug. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

THSEFA
Mitglied
Konstrukteur/CAD-Admin


Sehen Sie sich das Profil von THSEFA an!   Senden Sie eine Private Message an THSEFA  Schreiben Sie einen Gästebucheintrag für THSEFA

Beiträge: 1142
Registriert: 27.11.2002

SWX 2020 SP5.0 Premium
Windows 10 Pro 64Bit
Citrix VM
Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
24 GB Ram<P>Windows 10 Pro 64Bit

erstellt am: 26. Aug. 2009 11:08    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hab vielen Dank! Es funktionier aber leider nur zum Teil!

Wenn ich den ersten Teil benutzte, dann geht es. -> (If not Left(ArtNrMech,1)="M" Then)

Wenn ich den kompletten Code nutzen will, rennt das Makro durch und speichert. Momentan habe ich zum Testen in der Eigenschaft eine Leerzeichen drin. Nehme ich es raus, ist es genau das gleiche.

------------------
Viele Grüße, THSEFA 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dirk Wollborn
Mitglied
Entwicklungskonstrukteur


Sehen Sie sich das Profil von Dirk Wollborn an!   Senden Sie eine Private Message an Dirk Wollborn  Schreiben Sie einen Gästebucheintrag für Dirk Wollborn

Beiträge: 379
Registriert: 31.07.2001

erstellt am: 26. Aug. 2009 11:12    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für THSEFA 10 Unities + Antwort hilfreich

If not(Left(ArtNrMech,1)="M" and Len(ArtNrMech)=8) Then

------------------
Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

THSEFA
Mitglied
Konstrukteur/CAD-Admin


Sehen Sie sich das Profil von THSEFA an!   Senden Sie eine Private Message an THSEFA  Schreiben Sie einen Gästebucheintrag für THSEFA

Beiträge: 1142
Registriert: 27.11.2002

SWX 2020 SP5.0 Premium
Windows 10 Pro 64Bit
Citrix VM
Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
24 GB Ram<P>Windows 10 Pro 64Bit

erstellt am: 26. Aug. 2009 11:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Klasse! So geht´s! Hab vielen Dank!!!

------------------
Viele Grüße, THSEFA 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

THSEFA
Mitglied
Konstrukteur/CAD-Admin


Sehen Sie sich das Profil von THSEFA an!   Senden Sie eine Private Message an THSEFA  Schreiben Sie einen Gästebucheintrag für THSEFA

Beiträge: 1142
Registriert: 27.11.2002

SWX 2020 SP5.0 Premium
Windows 10 Pro 64Bit
Citrix VM
Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
24 GB Ram<P>Windows 10 Pro 64Bit

erstellt am: 26. Aug. 2009 11:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Trau mich gar nicht richtig zu fragen: Gibt es eine Möglichkeit, jetzt noch schnell mal in einer bestimmten Excel-Tabelle auf unserem Server vorbeizukucken, ob die ArtNrMech und der Name der BG, die dort in der Liste stehen, mit dem Eigenschften in der BG übereinstimmen?

Hintergrund ist der, das leider ein paar von uns nicht immer alle Vorgänge einhalten wollen. Dann muss es eben ein wenig "erzwungen" werden! 

------------------
Viele Grüße, THSEFA 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dirk Wollborn
Mitglied
Entwicklungskonstrukteur


Sehen Sie sich das Profil von Dirk Wollborn an!   Senden Sie eine Private Message an Dirk Wollborn  Schreiben Sie einen Gästebucheintrag für Dirk Wollborn

Beiträge: 379
Registriert: 31.07.2001

erstellt am: 26. Aug. 2009 11:54    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für THSEFA 10 Unities + Antwort hilfreich

Hallo THSEFA,

klar besteht die Möglichkeit, aber mit mal so schnell kann ich momentan leider nicht dienen.

So auf die schnelle - es gibt aber einige Seiten im Internet wo so etwas beschrieben ist


Dim xlTmp As Excel.Application
Set xlTmp = New Excel.Application
xlTmp.Workbooks.Open "C:\Book1.xls"
Dim xlSht As Excel.Worksheet
Set xlSht = xlTmp.Sheets(1)

...

xlTmp.Workbooks.Close
xlTmp.Quit


------------------
Dirk

[Diese Nachricht wurde von Dirk Wollborn am 26. Aug. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Dirk Wollborn
Mitglied
Entwicklungskonstrukteur


Sehen Sie sich das Profil von Dirk Wollborn an!   Senden Sie eine Private Message an Dirk Wollborn  Schreiben Sie einen Gästebucheintrag für Dirk Wollborn

Beiträge: 379
Registriert: 31.07.2001

Teamcenter 10.1.6
SolidWorks 2017 SP5.0

erstellt am: 26. Aug. 2009 16:25    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für THSEFA 10 Unities + Antwort hilfreich

Liegen deine Werte in Spalten oder Zeilen vor?

------------------
Dirk

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

THSEFA
Mitglied
Konstrukteur/CAD-Admin


Sehen Sie sich das Profil von THSEFA an!   Senden Sie eine Private Message an THSEFA  Schreiben Sie einen Gästebucheintrag für THSEFA

Beiträge: 1142
Registriert: 27.11.2002

SWX 2020 SP5.0 Premium
Windows 10 Pro 64Bit
Citrix VM
Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
24 GB Ram<P>Windows 10 Pro 64Bit

erstellt am: 26. Aug. 2009 16:48    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities


K-Tabelle.jpg

 
Hallo Dirk,
habe bis jetzt probiert, bekomme es aber nicht wirklich hin. Habe dann nochmal gesucht und einen Schnipsel gefunden, welcher zumindest meine Tabelle geöffnet hat. Diese Tabelle siehts du auf dem Bild ->

Hier der Code (das mit dem Excel-Dings mal noch auskommentiert...   )


Dim swApp As Object
Dim ModelDoc2 As Object
Dim Part As Object

Public xlApp As Object
Public wb As Object    'workbook
Public ws As Object    'worksheet

Dim Pdminfo As String
Dim ArtNrMech As String
Dim Dateiname As String
Dim Pfad As String

Sub main()

    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc2 = swApp.ActiveDoc
   
   
    ' dann war gar kein Dokument geöffnet, wie soll da was funktionieren
    If ModelDoc2 Is Nothing Then
            MsgBox " Kein Dokument geöffnet! "
        Exit Sub
    End If
   
    ' wenn keine Assembly aktiv ist wird das Makro wieder beendet
    If (ModelDoc2.GetType <> swDocASSEMBLY) Then
            MsgBox " Nur für Baugruppen geeignet! "
        Exit Sub
    End If
   
    ' Status des PDM Systems ermitteln
    Set Part = swApp.ActiveDoc
    Pdminfo = Part.CustomInfo2("", "Status")
        If Not Pdminfo = "Freigegeben" Then
            MsgBox "Datei ist im PDM-System nicht freigegeben!"
        End
        End If
   
   
     ' Ansichten aktualisieren, wenn erforderlich
    If errors = swDocNeedsRebuildWarning Then
    AssemblyDoc.EditRebuild
    End If
   
    'Die BG isometrisch fensterfüllend in Szene setzen
    Set swApp = CreateObject("SldWorks.Application")
    Set ModelDoc2 = swApp.ActiveDoc
    Part.ShowNamedView2 "*Isometrisch", 7
    'Part.Save2 False
    Part.ViewZoomtofit2
    'Part.Save2 False
  
    'Namen der BG holen
    Dateiname = ""
    Dateiname = Part.GetTitle
   
    'Artikelnummer Mechanik holen
    Set Part = swApp.ActiveDoc
    ArtNrMech = Part.CustomInfo2("", "Artikelnummer")
    If Not (Left(ArtNrMech, 1) = "M" And Len(ArtNrMech) = 8) Then
            MsgBox "Keine gültige Artikelnummer Mechanik vergeben!"
        End
    End If
   
    'Abfrage ob BG auch in der Konstrutionstabelle gelistet ist
    'Set xlApp = CreateObject("Excel.Application")
    'xlApp.Visible = False                              ' unsichtbar
    'xlApp.UserControl = False                          ' von hier kein Zugriff auf die Excel-Datei

    'Set wb = xlApp.Workbooks.Open("P:\PRODUKTION VIDEO\Info Lager\Konstruktions- und  Artikelnummern.xls")
    'Set ws = wb.Worksheets(2) ' Excel-Zugriff
   
   
    'speichern unter dem beabsichtigten Netzlaufwerk
    Pfad = "P:\PRODUKTION VIDEO\Entwicklungsprojekte"
    Part.SaveAs2 Pfad + "\" + ArtNrMech + "_" + Dateiname + ".easm", 0, True, False
    MsgBox "Baugruppe wurde als " + ArtNrMech + "_" + Dateiname + ".easm gespeichert!", _
        vbInformation, "Save as EASM"
   

End Sub

Wenn ich hier auf meiner Excel-Tabelle bin, gehts eben nicht wirklich weiter. Es gibt dann verschiedene Ansätze, wie ich die ArtNrMech + den Dateinamen überprüfen könnte.
Ich würde es gerne so machen, das ich den Wert der ArtNrMech mir in eine leere Zelle schreibe (zB.A3) und dann diesen Wert per Makro in der Tabelle suchen lasse. Wenn gefunden, dann kurz 2 nach links gekuckt, diesen Wert ausgelesen und kopiert - Tabelle zu - SWX wieder aktiv gemacht - Wert aus der Excel-Zelle mit Dateiname verglichen...

So stell ich mir das vor.  

Morgen geht´s hier weiter. Heute fallen mir schon die Äuglein zu... 

------------------
Viele Grüße, THSEFA    

[Diese Nachricht wurde von THSEFA am 26. Aug. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

THSEFA
Mitglied
Konstrukteur/CAD-Admin


Sehen Sie sich das Profil von THSEFA an!   Senden Sie eine Private Message an THSEFA  Schreiben Sie einen Gästebucheintrag für THSEFA

Beiträge: 1142
Registriert: 27.11.2002

SWX 2020 SP5.0 Premium
Windows 10 Pro 64Bit
Citrix VM
Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
24 GB Ram<P>Windows 10 Pro 64Bit

erstellt am: 26. Aug. 2009 16:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Bin schon so fertig, dass ich auf Zitat statt auf edit gedrückt habe...

[Diese Nachricht wurde von THSEFA am 26. Aug. 2009 editiert.]

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Baumjäger
Mitglied
CAD/PDM Administrator


Sehen Sie sich das Profil von Baumjäger an!   Senden Sie eine Private Message an Baumjäger  Schreiben Sie einen Gästebucheintrag für Baumjäger

Beiträge: 339
Registriert: 21.06.2006

SW2017 - S5.0
AutoCAD Mechanical 2018
Win10
Intel Xeon E3-1240 V2 3,4GHz
16GB RAM
NVIDIA Quadro 4000

erstellt am: 27. Aug. 2009 08:40    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für THSEFA 10 Unities + Antwort hilfreich

Moin,
mit

xlapp.Range("G1").Select
variable = xlapp.ActiveCell

wird das Feld G1 ausgewählt und der Wert an eine variable übergeben.
Das ganze musst du nun eben noch in eine Schleife verpacken und G1 so verbasteln das er von G1-Gn alle Werte ausliest und vergleicht, usw.
Du kannst z.B. so hochzählen.

const Spalte = "G"
Dim Zeile
Dim Ergebnis
Dim Zähler

Zeile = 1
Ergebnis = Spalte & Zeile
For Zeile = 1 to 100
xlapp.Range("" & Ergebnis & "").Select
variable = xlapp.ActiveCell
'vergleichen
Next

Die Endbedingung (hier als Beispiel 100) kannst du dann auch wieder so verbasteln das er solange liest bis das Feld leer ist..wie das geht kann ich dir aber auf die schnelle nicht sagen. DAs ganze soll aber auch nur ein Ansatzpunkt sein, evtl. ist der Code nicht 100% richtig.

viele Grüße
Andy

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP



Anzeige:Infos zum Werbeplatz >>

speedyPDM CAD APP für Andere, Datenaustausch, Allgemeine Werkzeuge

speedyPDM ist das führende technische Dokumenten- und Produktdatenmanagementsystem für Solidworks, Solid Edge, Inventor, AutoCAD, ZWCAD, BricsCAD, Office und Email inklusive Revisionsmanagement.

THSEFA
Mitglied
Konstrukteur/CAD-Admin


Sehen Sie sich das Profil von THSEFA an!   Senden Sie eine Private Message an THSEFA  Schreiben Sie einen Gästebucheintrag für THSEFA

Beiträge: 1142
Registriert: 27.11.2002

SWX 2020 SP5.0 Premium
Windows 10 Pro 64Bit
Citrix VM
Intel(R) XEON(R) Gold 6146 CPU @ 3.20GHz
24 GB Ram<P>Windows 10 Pro 64Bit

erstellt am: 27. Aug. 2009 10:15    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Vielen Dank erst mal an meine fleißigen Helfer! 

Konnte bisher erreichen, dass die bestimmte Excel-Tabelle aufging. Mehr aber noch nicht. Muss leider erst mal das Projekt auf Eis legen, da jetzt die konstruktive Arbeit ruft... 

------------------
Viele Grüße, THSEFA 

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2024 CAD.de | Impressum | Datenschutz