Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Ein-/ Auslesen von Step Datei in VBA

Ein-/ Auslesen von Step Datei in VBA
12.03.2014 12:50:24
Step
Hallo,
Ich würde gern wissen, ob es ein VBA-Code zum einlesen von STEP-File existiert?
(STEP basiert auf EXPRESS-P Norm: ISO 10303-21)
(STEP sind für CAD-Anwendungen notwendig)
Am beigefügten Link, könnt Ihr die .zip-Datei downloaden und die zwei Beispiel-Stepdateien ansehen.
Man muss die Step-Datei mit z.B. dem Editor öffnen und ggf. diese als .txt-Datei abspeichern. Da man mit ihr, für den VBA-Code, weiter arbeiten kann.
Warum das ganze?
Es geht darum, das ich z.B. die Ursprungskoordinaten des Zylinders auslese. (Siehe Anhang "Quader_mit Zylinder.step", Entity-Nr. 105 106 107) und das dann wiedergeben. Das Entity 107 sind die Koordinanten 105 und 106 lediglich nur die Richtung welches das Koordinatensystem zeigt. Entity-Nr sind mit Hashtags gekenntzeichnet.
Meine Projektaufgabe ist nun, anhand aus einer anderen Step-Datei (siehe Zip, "Deckel.step" ), die 6 Schrauben zu identifizieren und den Abstand zwischen 2 Schrauben zu berechnen und diese wiederzugebenen.
(663, 638, 637, 642, 641, 640 [leider gottes mit einer Vielzahl an Verknüpfungen, welches ich selbst noch genauer suchen muss ^^] )
Abstand: z.B. 663 und 638
Das soll ich jetzt programmieren und auch ausgeben(als Pop-Up Fenster z.B.)Am besten wäre hier die Sprache VBA, da, im nächsten Schritt, dies irgendwann in einer Excel-Tabelle eingefügt werden soll.
Da ich jedoch leider keine Erfahrung mit VBA habe, wäre es schön, wenn man mir hier eine kleine Hilfestellung geben könnte. Ich habe aber mich natürlich schon informiert und herausgefunden, dass eine .step Datei ein ASCII Format ist und so sollte es eigentlich kein Problem darstellen mit VBA.
Keine Sorge, ich bin jetzt kein totaler Novice was meine Programmierkentnisse angeht ^^
C++ usw. habe ich während des Studium gelernt aber leider nicht VBA....
Weiterhin findet Ihr wie ein möglicher Programmablauf aussehen könnte. Meiner Meinung nach. Wie man erkennen kann sind eine menge Schleifen notwendig. Diese müssen dann ggf. strings vergleichen, sodass ich die richtige Nummer habe.
Danke im Voraus
Viele Grüße
CE
https://www.herber.de/bbs/user/89640.zip

Anzeige

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ein-/ Auslesen von Step Datei in VBA
12.03.2014 13:06:13
Step
Ich würde da stückweise vorgehen :
Das File ist nicht sehr gross.
Ich würde es direkt in ein .txt umbenennen und in eine Tabelle einlesen.
Unter 'Daten' kannst du das direkt tun (Externe Daten aus Text abrufen).
Danach die Textstelle per VBA indentifizieren und in eine neue Tabelle übenehmen.
Durch diesen Prozess lernst du auch wie deine Daten aufgebaut sind.
Mehr kann ich dir aus Zeitgründen im Moment nicht helfen. Gruss - Peter.

Anzeige
AW: Ein-/ Auslesen von Step Datei in VBA
17.03.2014 16:03:17
Step
Hallo Peter und der Rest ^^
ich habe hier mal etwas versucht aber ich komm leider nicht so ganz weiter....

Sub TEst()
ChDir "D:\"
Workbooks.OpenText Filename:="D:\Deckel.STEP", Origin _
:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(1, 1), _
TrailingMinusNumbers:=True
Cells.Find(What:="= shape_representation (", After:=ActiveCell, LookIn:= _
xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:= _
xlNext, MatchCase:=False, SearchFormat:=False).Activate
A = ActiveCell
Do
A = ActiveCell
If InStr(A, "Cylinder_head_screw") > 0 Then
For I = Len(A) To 1 Step -1
P = Mid(A, I, 1)
If P = "#" Then
End If
Next I
MsgBox A
GoTo I
End If
Cells.FindNext(After:=ActiveCell).Activate
Loop
End Sub
Als Fehlermeldung kommt:
Fehler beim Kompilieren: Sprungmarke nicht definiert
Ich komme leider nicht mehr weiter und bzw. weiß ich gar nicht dementsprechend ob es so auch klappt.
Danke
Viele Grüße
CE

Anzeige
AW: Ein-/ Auslesen von Step Datei in VBA
18.03.2014 13:12:49
Step
Mein Fehler, ich hätte das Häkchen setzen müssen, sodass die Frage noch offen sein :P

AW: Ein-/ Auslesen von Step Datei in VBA
19.03.2014 10:47:56
Step
Immer noch aktuell....verstehe nicht warum es von "noch offen" entfernt wurde...
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Einlesen und Bearbeiten von STEP-Dateien in VBA


Schritt-für-Schritt-Anleitung

  1. STEP-Datei vorbereiten: Benenne die .step Datei um in .txt. Dies erleichtert das Einlesen in Excel.
  2. Excel öffnen: Starte Excel und öffne eine neue Arbeitsmappe.
  3. Daten importieren:
    • Gehe zu Daten > Externe Daten abrufen > Aus Text.
    • Wähle die umbenannte .txt Datei aus und klicke auf Importieren.
    • Wähle die passenden Trennzeichen aus, um die Daten korrekt in Excel darzustellen.
  4. VBA-Editor öffnen: Drücke ALT + F11, um den VBA-Editor zu öffnen.
  5. VBA-Code einfügen: Erstelle ein neues Modul und füge den folgenden VBA-Code ein, um spezifische Daten aus der STEP-Datei auszulesen:

    Sub ReadStepFile()
       Dim cell As Range
       Dim found As Range
    
       ' Suche nach einer bestimmten Zeichenkette
       Set found = Cells.Find(What:="= shape_representation (", LookIn:=xlFormulas)
       If Not found Is Nothing Then
           MsgBox "Daten gefunden: " & found.Value
       Else
           MsgBox "Daten nicht gefunden."
       End If
    End Sub
  6. Makro ausführen: Führe das Makro aus, um die gewünschten Informationen zu extrahieren.

Häufige Fehler und Lösungen

  • Fehler: Kompilierungsfehler - Sprungmarke nicht definiert:

    • Ursache: Ein Sprung zu einer nicht definierten Marke im Code.
    • Lösung: Überprüfe, ob alle Sprungmarken richtig gesetzt sind und ob sie existieren.
  • Fehler: Daten werden nicht gefunden:

    • Ursache: Falsche Suchparameter oder die Datei wurde nicht korrekt importiert.
    • Lösung: Stelle sicher, dass die .step Datei korrekt in das .txt Format umbenannt und importiert wurde.

Alternative Methoden

  • Verwendung eines STEP-Datei Viewers: Es gibt spezialisierte Software wie STEP File Viewer, mit der du die .step Dateien anzeigen und direkt bearbeiten kannst.
  • Online-Tools: Du kannst auch Online-Tools verwenden, um STEP-Dateien zu konvertieren oder zu bearbeiten, bevor du sie in Excel importierst.

Praktische Beispiele

  • Beispiel 1: Um eine STEP-Datei zu importieren, die Ursprungskoordinaten eines Zylinders enthält, nutze den oben genannten VBA-Code und passe die Suchparameter an.
  • Beispiel 2: Berechne den Abstand zwischen zwei Schrauben, indem du die entsprechenden Entity-Nummern in deinem VBA-Skript identifizierst und die Koordinaten abgleichst.

Tipps für Profis

  • Verwende Schleifen: Nutze Schleifen in deinem VBA-Code, um mehrere Datenpunkte in der STEP-Datei effizient zu verarbeiten.
  • Debugging: Aktiviere die Debugging-Optionen im VBA-Editor, um Fehler schneller zu identifizieren.
  • Speichere Backup-Kopien: Vor größeren Änderungen an STEP-Dateien ist es ratsam, Sicherungskopien zu erstellen, um Datenverlust zu vermeiden.

FAQ: Häufige Fragen

1. Was ist eine STEP-Datei?
Eine STEP-Datei ist ein Dateiformat, das in der CAD-Software verwendet wird, um geometrische und technische Daten auszutauschen. Es basiert auf dem ISO 10303-21 Standard.

2. Wie kann ich eine STEP-Datei in Excel öffnen?
Um eine STEP-Datei in Excel zu öffnen, benenne sie in .txt um und benutze die Importfunktion unter Daten > Externe Daten abrufen > Aus Text. Danach kannst du die Datei mit VBA bearbeiten.

3. Was kann ich mit einer STEP-Datei machen?
Du kannst STEP-Dateien analysieren, Daten extrahieren, die Geometrie bearbeiten oder spezifische Informationen wie Koordinaten und Abstände berechnen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige