Option Explicit Private Sub Application_PostNCCreate(Doc As FeatureCAM.MFGDocument, ByVal nc_file_name As String, ByVal macro_file_cnt As Long, ByVal macro_file_names As Variant) ' Anfang Script deklaration Dim fso Dim objFSOlesen Dim objDateiLesen Dim objDateiLesenWKZ Dim objFSOschreiben Dim objDateiSchreiben Const ForReading = 1 Const ForWriting = 1 ' Ende Script deklaration Dim strDateiname As String Dim strZeile As String Dim intZeile As Integer Dim sucher As String Dim pos As Integer Dim Laenge As Integer Dim pp As String Dim Anfangschreiben As Boolean Dim WKZ_wechsel As Boolean Dim WKZ_wechsel_2_Zeile_tiefer As Boolean Dim OP_ENDE As Boolean Dim zaehler As Integer Dim Schleifenname As Integer Dim WKZ_Zaehler As Integer Dim Zeilen_Feld() As String Dim WKZ_Feld(50) As String Dim Argument_Anzahl As Integer Dim i As Integer Dim n As Integer Dim m As Integer Dim Para500 As String Dim Para501 As String Dim Para502 As String Dim Para503 As String Para500 = Doc.Attribute(eAID_PostPword,11) Para501 = Doc.Attribute(eAID_PostPword,12) Para502 = Doc.Attribute(eAID_PostPword,13) Para503 = Doc.Attribute(eAID_PostPword,14) 'MsgBox("Meldung: " & Para500 & Para501 & Para502 & Para503 ) Anfangschreiben =False WKZ_wechsel = False WKZ_wechsel_2_Zeile_tiefer = False OP_ENDE = False WKZ_Zaehler = 0 n = 0 'MsgBox("Meldung: ") & nc_file_name strDateiname = nc_file_name Set objFSOlesen = CreateObject("Scripting.FileSystemObject") Set objFSOschreiben = CreateObject("Scripting.FileSystemObject") If (Not objFSOlesen.FileExists(strDateiname)) Then MsgBox "Datei existiert nicht !" Exit Sub End If Set objDateiLesen = objFSOlesen.OpenTextFile(strDateiname, ForReading ) Set objDateiLesenWKZ = objFSOlesen.OpenTextFile(strDateiname, ForReading ) Set objDateiSchreiben = objFSOschreiben.CreateTextFile("c:\temp\tmp.txt", ForWriting) ' Einmal lesen für Werkzeugdaten auszulesen Do Until objDateiLesenWKZ.AtEndOfStream 'So lange lesen bis zum Schluss strZeile = objDateiLesenWKZ.ReadLine If InStr(strZeile,"(-*-") Then WKZ_Feld(n) = strZeile n=n+1 End If Loop objDateiLesenWKZ.Close 'MsgBox "Datei existiert !" If Para500 <> "" And Para501 <> "" And Para502 <> "" And Para503 <> "" Then Do Until objDateiLesen.AtEndOfStream 'So lange lesen bis zum Schluss strZeile = objDateiLesen.ReadLine If InStr(strZeile,"( * ANFANG * )") Then Anfangschreiben=True End If If InStr(strZeile,"T0M6") Then WKZ_wechsel=True zaehler=1 End If If WKZ_wechsel Then If zaehler = 2 Then WKZ_wechsel_2_Zeile_tiefer = True End If zaehler=zaehler+1 End If If InStr(strZeile,"T0M6") Then WKZ_wechsel=True zaehler=1 WKZ_Zaehler = WKZ_Zaehler + 1 Schleifenname = WKZ_Zaehler * 10 End If If InStr(strZeile,"( * OP-ENDE )") Then OP_ENDE=True End If If OP_ENDE Then objDateiSchreiben.write "( * )" & vbCrLf objDateiSchreiben.write "#111=#111+#500" & vbCrLf objDateiSchreiben.write "#507=#507+1." & vbCrLf objDateiSchreiben.write "END" & Schleifenname + 1 & vbCrLf objDateiSchreiben.write "#111=#509" & vbCrLf objDateiSchreiben.write "#121=#121+#501" & vbCrLf objDateiSchreiben.write "#508=#508+1." & vbCrLf objDateiSchreiben.write "END" & Schleifenname & vbCrLf objDateiSchreiben.write "#111=#509 #121=#511" & vbCrLf objDateiSchreiben.write "( * )" & vbCrLf OP_ENDE=False End If If InStr(strZeile,"G0") Or InStr(strZeile,"G1") Or InStr(strZeile,"G2") Or InStr(strZeile,"G3") Or InStr(strZeile,"G81") Or InStr(strZeile,"G84")Then Zeilen_Feld() = Split(strZeile," ",) Argument_Anzahl = UBound(Zeilen_Feld) strZeile= "" For i = 0 To Argument_Anzahl If Left(Zeilen_Feld(i),1) = "G" Then strZeile = strZeile & Zeilen_Feld(i) & " " ElseIf Left(Zeilen_Feld(i),1) = "X" Then strZeile = strZeile & Zeilen_Feld(i) & "+#111 " ElseIf Left(Zeilen_Feld(i),1) = "Y" Then strZeile = strZeile & Zeilen_Feld(i) & " " ElseIf Left(Zeilen_Feld(i),1) = "Z" Then strZeile = strZeile & Zeilen_Feld(i) & " " ElseIf Left(Zeilen_Feld(i),1) = "I" Then strZeile = strZeile & Zeilen_Feld(i) & " " ElseIf Left(Zeilen_Feld(i),1) = "J" Then strZeile = strZeile & Zeilen_Feld(i) & " " ElseIf Left(Zeilen_Feld(i),1) = "K" Then strZeile = strZeile & Zeilen_Feld(i) & " " ElseIf Left(Zeilen_Feld(i),1) = "R" Then strZeile = strZeile & Zeilen_Feld(i) & " " ElseIf Left(Zeilen_Feld(i),1) = "F" Then strZeile = strZeile & Zeilen_Feld(i) & " " ElseIf Left(Zeilen_Feld(i),1) = "D" Then strZeile = strZeile & Zeilen_Feld(i) & " " ElseIf Left(Zeilen_Feld(i),1) = "A" Then strZeile = strZeile & Zeilen_Feld(i) & "+#121 " ElseIf Left(Zeilen_Feld(i),1) = "M" Then strZeile = strZeile & Zeilen_Feld(i) & " " End If Next End If If WKZ_wechsel_2_Zeile_tiefer Then objDateiSchreiben.write "#509=#111 #511=#121" & vbCrLf objDateiSchreiben.write "#508=0." & vbCrLf objDateiSchreiben.write "WHILE[#508NE#503]DO" & Schleifenname & vbCrLf objDateiSchreiben.write "#507=0." & vbCrLf objDateiSchreiben.write "WHILE[#507NE#502]DO" & Schleifenname+1 & vbCrLf WKZ_wechsel=False WKZ_wechsel_2_Zeile_tiefer = False End If If Anfangschreiben Then objDateiSchreiben.write "( * )" & vbCrLf objDateiSchreiben.write "( * NP-VERSCHIEBUNG X-ACHSE #111 A-ACHSE #121 * )" & vbCrLf objDateiSchreiben.write "( * ANFAHREN AUSSENKANTE RECHTS * )" & vbCrLf objDateiSchreiben.write "#111=0. #121=0." & vbCrLf objDateiSchreiben.write "( * )" & vbCrLf objDateiSchreiben.write "( * VERSCHIEBUNG In X->#500 - A->#501 * )" & vbCrLf objDateiSchreiben.write "#500=" & Para500 & ". #501=" & Para501 & "." & vbCrLf objDateiSchreiben.write "( * )" & vbCrLf objDateiSchreiben.write "( * WIEDERHOLUNG IN X->#502 - A->#503 * )" & vbCrLf objDateiSchreiben.write "#502=" & Para502 & ". #503=" & Para503 & "." & vbCrLf objDateiSchreiben.write "( * )" & vbCrLf objDateiSchreiben.write "( * ---------------------------------------------- * )" & vbCrLf objDateiSchreiben.write "( * W E R K Z E U G L I S T E * )" & vbCrLf objDateiSchreiben.write "( * ---------------------------------------------- * )" & vbCrLf Argument_Anzahl = n - 1 For i = 0 To Argument_Anzahl WKZ_Feld(i) = Replace(WKZ_Feld(i),"(-*-","") strZeile = "( * " & WKZ_Feld(i) strZeile = Left(strZeile,Len(strZeile)-4) If Len(strZeile) < 50 Then For m = Len(strZeile) To 50 strZeile =strZeile & " " Next End If strZeile = strZeile & "* )" objDateiSchreiben.write strZeile & vbCrLf Next objDateiSchreiben.write "( * ---------------------------------------------- * )" & vbCrLf objDateiSchreiben.write "( * )" & vbCrLf Anfangschreiben=False Else objDateiSchreiben.write strZeile & vbCrLf End If Loop objDateiSchreiben.Close objDateiLesen.Close Kill nc_file_name FileCopy "c:\temp\tmp.txt",nc_file_name Else Do Until objDateiLesen.AtEndOfStream 'So lange lesen bis zum Schluss strZeile = objDateiLesen.ReadLine If InStr(strZeile,"( * ANFANG * )") Then Anfangschreiben=True End If If Anfangschreiben Then objDateiSchreiben.write "( * )" & vbCrLf objDateiSchreiben.write "( * ---------------------------------------------- * )" & vbCrLf objDateiSchreiben.write "( * W E R K Z E U G L I S T E * )" & vbCrLf objDateiSchreiben.write "( * ---------------------------------------------- * )" & vbCrLf Argument_Anzahl = n - 1 For i = 0 To Argument_Anzahl WKZ_Feld(i) = Replace(WKZ_Feld(i),"(-*-","") strZeile = "( * " & WKZ_Feld(i) strZeile = Left(strZeile,Len(strZeile)-4) If Len(strZeile) < 50 Then For m = Len(strZeile) To 50 strZeile =strZeile & " " Next End If strZeile = strZeile & "* )" objDateiSchreiben.write strZeile & vbCrLf Next objDateiSchreiben.write "( * ---------------------------------------------- * )" & vbCrLf objDateiSchreiben.write "( * )" & vbCrLf Anfangschreiben=False Else objDateiSchreiben.write strZeile & vbCrLf End If Loop objDateiSchreiben.Close objDateiLesen.Close Kill nc_file_name FileCopy "c:\temp\tmp.txt",nc_file_name End If End Sub