| | | Wie Sie mit 3D-Druck glattere Oberflächen erhalten, eine Pressemitteilung
|
Autor
|
Thema: NC Nachbearbeitungsprogramm (2355 mal gelesen)
|
fabian86 Mitglied
Beiträge: 270 Registriert: 31.12.2006 Intel Pentium D 945 3.4 GHZ 2 x 2MB Cache Asus P5ND2-SLI Deluxe Nvidia Geforce 6600GT 3 GB GB DDR2-533 2x 250 GB SATA Raid 0, 1x 250 GB, 1x200 GB
|
erstellt am: 15. Mai. 2018 22:29 <-- editieren / zitieren --> Unities abgeben:
Wir haben oft Teile die wir beschriften müssen, von Hand sobald sie von der Maschine kommen, meistens jedes Teil einzeln nun habe ich die Funktion NC Nachbearbeitung gefunden womit sich Befehle aufrufen lassen. Leider hat es in Tops keine Anleitung was man damit alles Anstellen kann, nur den Hinweis das man auch selber befehle erstellen kann, Externe Programme öffnen kann und Befehle weiterleiten kann. Hat jemand hierzu irgendwo eine Anleitung? Meine Idee ist folgende: Ich gebe an Word die Teile-ID (die im Nest an Punch übergeben wird) und den Dateinamen(Idealerweise ohne .geo) weiter pro seite einmal: "TeileID = Dateiname" Die TeileID ist nötig damit es der Bediener zuordnen kann und der Dateiname wünscht sich der Kunde auf dem Teil auf der Rückseite Das ganze dann als Etikett gedruckt so das man es nur noch auf der Rückseite befestigen kann... Aktuell nimmt das Anschreiben der Teile mehr Zeit in Anspruch als es auf der Maschine benötigt zum Stanzen, da noch ein Antistatik Kleber drauf gemacht werden muss damit das Pulver da nicht haftet und man es noch alles lesen kann. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Frank Schuchort Mitglied NC-Programmierer,Konstrukteur
Beiträge: 118 Registriert: 08.09.2001
|
erstellt am: 16. Mai. 2018 08:25 <-- editieren / zitieren --> Unities abgeben: Nur für fabian86
Hallo Fabian, es gibt von Trumpf ein Programm um Etiketten für Teile zu erstellen. Das ist unter C:\TRUMPF.NET\Utils\UserFunctions\labelPrinter zu finden. Bitte Funktionsumfang und Bedienung der Hilfe Datei entnehmen. Das ist scheinbar eine Option und muß zugekauft werden. Gruß Frank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fabian86 Mitglied
Beiträge: 270 Registriert: 31.12.2006 Intel Pentium D 945 3.4 GHZ 2 x 2MB Cache Asus P5ND2-SLI Deluxe Nvidia Geforce 6600GT 3 GB GB DDR2-533 2x 250 GB SATA Raid 0, 1x 250 GB, 1x200 GB
|
erstellt am: 16. Mai. 2018 12:24 <-- editieren / zitieren --> Unities abgeben:
|
BernhardF Mitglied
Beiträge: 110 Registriert: 11.10.2011 NX 1965 Win 10 Teamcenter 13 TruTops Boost 13 TruTops 11
|
erstellt am: 16. Mai. 2018 12:37 <-- editieren / zitieren --> Unities abgeben: Nur für fabian86
Guten Tag Wenn man die Option nicht kaufen will / kann / darf und man jemanden zur Hand hat der ein wenig programmieren kann, kann man das Ganze über das NC-Nachbearbeitungsproggramm machen. Ich habe etwas vergleichbares gemacht. (Beim Übertragen des Programms an die Lasermaschine werden *.Job Datei & HTML-Einrichteplan analysiert und die Daten (Bearbeitungszeit & Materialverbrauch) an SAP übergeben und die Einrichtepläne automatisch an die Arbeitsstation der Lasermaschine versendet. Hier der Beitrag mit den Einstellungen in TruTops: https://ww3.cad.de/foren/ubb/Forum531/HTML/000048.shtml Ein kleiner Hinweis: Eine Worddatei ist das denbar ungeeignetste Dateiformat das man sich für diese Aufgabe vorstellen kann.
Je nachdem womit bzw. mit welcher Programmiersprache programmiert wird eignen sich verschiedene Dateiformate. Wenn man ein Excel-VBA Makro schreibt, das automatisch nach dem Start der Excel Datei losläuft, eignen sich natürlich die üblichen Excel Formate *.csv, *.xls, *.xlsm, *.xlsb, *.xlsx,... Wenn man C/C++, C#, PHP, Java, Java Script, Python, Batch-Datei, Basic, Pascal, Python,... verwendet, würde ich eher zu *.csv, *.xml, oder Tabulator getrennten Text Dateien raten. Bei dem Weg über das Nachbearbeitungsprogramm erhält man unter anderem den Dateipfad auf das lst-Laserprogramm als Parameterübergabe. Über diesen Pfad kann man auf die Job-Datei und den Einrichteplan zurückschließen. Die Job-Datei ist im XML-Format aufgebaut. Der Einrichteplan enthält Daten in den unterschiedlichsten Formaten im Komentarbereich.
Ich weis nicht wie die Aufträge bei euch zusammengestellt werden, aber wir verwenden hier ein selbst erstelltes Programm, welches die Teile nach Blechtyp, Termin, verwendete Werkzeuge, ungefähren Materialbedarf und ungefähre Laufzeit in Programme zusammenfasst.
Über das Datenfeld Kunde werden alle möglichen Zusatz-Informationen an TruTops übergeben. Diese Daten sind dann in der Job-Datei enthalten und können vom Nachbearbeitungsprogramm weiterverarbeitet werden. Somit müssen keine zusätzlichen Dateien übergeben werden und alles läuft vollautomatisch im Hintergrund ab. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fabian86 Mitglied
Beiträge: 270 Registriert: 31.12.2006 Intel Pentium D 945 3.4 GHZ 2 x 2MB Cache Asus P5ND2-SLI Deluxe Nvidia Geforce 6600GT 3 GB GB DDR2-533 2x 250 GB SATA Raid 0, 1x 250 GB, 1x200 GB
|
erstellt am: 16. Mai. 2018 18:17 <-- editieren / zitieren --> Unities abgeben:
OK das klingt schonmal sehrgut, klingt genau so wie ich denke das es Funktionieren könnte, Word zum verdeutlichen... Programmieren ist halt so ne sache :-( demfall such ich mal alles zusammen und teste ein bisschen rum! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fabian86 Mitglied
Beiträge: 270 Registriert: 31.12.2006 Intel Pentium D 945 3.4 GHZ 2 x 2MB Cache Asus P5ND2-SLI Deluxe Nvidia Geforce 6600GT 3 GB GB DDR2-533 2x 250 GB SATA Raid 0, 1x 250 GB, 1x200 GB
|
erstellt am: 18. Mai. 2018 22:19 <-- editieren / zitieren --> Unities abgeben:
|
fabian86 Mitglied
Beiträge: 270 Registriert: 31.12.2006 Intel Pentium D 945 3.4 GHZ 2 x 2MB Cache Asus P5ND2-SLI Deluxe Nvidia Geforce 6600GT 3 GB GB DDR2-533 2x 250 GB SATA Raid 0, 1x 250 GB, 1x200 GB
|
erstellt am: 20. Mai. 2018 14:46 <-- editieren / zitieren --> Unities abgeben:
Mein VBA mit Excel ist jetzt so gut wie Fertig (Kopieren auf verschiedene Blätter und am Ende das erste Löschen) damit das html nicht gedruckt wird. Was ich jetzt nicht zustande bringe ist die übergabe von Tops an Excel! Parameter: "$(D)$(N).html" Programm: $(HKEY_CLASSES_ROOT\Excel.Macrosheet\SHELL\OPEN\COMMAND\) Nun wird jedoch nur das Excel geöffnet mit dem html Dokument drin (schon fast gut!) Nun sollte er es aber in der vorlage öffnen wo das Makro drin steht, wie bringt man das Fertig? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fabian86 Mitglied
Beiträge: 270 Registriert: 31.12.2006 Intel Pentium D 945 3.4 GHZ 2 x 2MB Cache Asus P5ND2-SLI Deluxe Nvidia Geforce 6600GT 3 GB GB DDR2-533 2x 250 GB SATA Raid 0, 1x 250 GB, 1x200 GB
|
erstellt am: 21. Mai. 2018 12:36 <-- editieren / zitieren --> Unities abgeben:
So ich hab mich nochmal hingesetzt und das Makro zu Ende geschrieben: Code: Sub Drucken() Dim Spalte As Long Cells.Find("EINZELTEILINFORMATION").Activate Spalte = ActiveCell.Row Spalte = Spalte + 2 Do While Cells(Spalte, 6).Value <> "" Range(Cells(Spalte, 5), Cells(Spalte, 6)).PrintOut Copies:=Range("D" & Spalte), ActivePrinter:="HP (HP Photosmart Plus B209a-m)", Collate:=True Summe = Summe + Cells(Spalte, 1) Spalte = Spalte + 1 Loop End Sub
!Wenn Tops auf einer anderen Sprache ist müsste nach dem jeweiligen Länderspezifischen Wort für EINZELTEILINFORMATION gesucht werden. Der HTML Einrichtplan wird in Excel geöffnet dieser habe ich jedoch noch ein bisschen Bearbeitet,, damit eine Spalte E und F entsteht, dem Template teil_lst.html(Diese Liegen in Trumpflaufwerk:\Templates\HTML\html_block) habe ich noch Vollgendes hinzugefügt: Code: '"<tr><td valign="top"><font size="2">",PARTS_IN_PROGRAM_110," </font></td>"',\ '"<td valign="top"><font size="2">",PARTS_IN_PROGRAM_30," </font></td>"',\ '"<td valign="top"><font size="2">",PARTS_IN_PROGRAM_50," </font></td>"',\ '"<td>",PARTS_IN_PROGRAM_60,"</td>"',\ '"<td>",PARTS_IN_PROGRAM_110," </td>"',\ '"<td><b>",PARTS_IN_PROGRAM_70,"</b></td></tr>"',\
PARTS_IN_PROGRAM_110 ist die TeileID PARTS_IN_PROGRAM_70 ist der Kurz Dateiname ohne .Geo Bei PARTS_IN_PROGRAM_60 habe ich den Abstand noch entfernt da Excel sonst verwirrt ist und dies nicht als Zahl erkennt, um die Anzahl der Kopien zu erkennen Nun habe ich jedoch ein kleines Problem indem mir BernhardF hoffentlich behilflich sein wird, und zwar wird mir das File nicht wie erhofft in der Vorlage wo das Makro drin ist geöffnet sondern er öffnet das HTML im Excel wodurch das Makro danach nicht geöffnet wird, die Frage ist wie kann ich das File in meiner Excel Vorlage öffnen?
[s]Edit: In Excel kann man unter C:\Users\username\AppData\Roaming\Microsoft\Excel\XLSTART eine datei mit personal.xlsm Speichern die enthält das Makro bei der geht man auf Ansicht -> Ausblenden, dies wird dann immer geöffnet aber nicht angezeigt, wenn man dann noch unter im MacroEditor unter Diese Arbeitsmappe den code einträgt: Code:
Private Sub Workbook_Open()Call Drucken End Sub
wird es Sofort gedruckt sobald man Excel öffnet, da sich bei einem Neuen Dokument garnichts darin befindet kann auch nichts gedruckt werden ;-) Geht dochnicht Hab nun einen Button (Ribbon) in Excel gemacht der einfach das Makro auf macht, der ist dann egal in welchem Excel Dokument verfügbar, ist egal, wenn man ihn zufällig drückt und die Zeilen nicht befüllt sind kommt einfach garnix ;-) Das Makro wird dann durch den Druck auf den Button ausgeführt, das macht normalerweise das excel file auf, dies kann man aber in Excel ausblenden, daher druckt er dann einfach...
[Diese Nachricht wurde von fabian86 am 22. Mai. 2018 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardF Mitglied
Beiträge: 110 Registriert: 11.10.2011 NX 1965 Win 10 Teamcenter 13 TruTops Boost 13 TruTops 11
|
erstellt am: 23. Mai. 2018 13:05 <-- editieren / zitieren --> Unities abgeben: Nur für fabian86
Entschuldige das ich mich erst jetzt melde. Ich hatte Urlaub und habe zu Hause keinen Zugriff auf die Zugangsdaten. Schön das es wie gewünscht funktioniert. Es gäbe da einen Weg das Ganze automatisch auszuführen. Und zwar, indem man einfach nur die Exceldatei mit dem Druck-Makro aus TruTops heraus öffnet und in diesem das Makro automatisch loslaufen lässt. Hier kann man es so lösen, das man einfach den Ordner nach Html-Dateien durchsucht und alle gefundenen Dateien bearbeitet. Nach dem Bearbeiten verschiebt man die Datei in einen anderen Ordner bzw. löscht sie. Das hat auch den Vorteil das sich das Makro nach dem Abarbeiten wieder selbständig schließen kann und TruTops ungehindert weiter läuft. Alternativ kann man eine Batch Datei (*.bat) verwenden. Hier wird die Batch-Datei gestartet und dort kann man zuerst die per Parameterübergabe übergebene Datei (Wenn ich mich richtig erinnere: %1) starten und dann die Makro-Datei öffnen. . Das Öffnen der HTML-Dateien hätte ich umständlicher gemacht. 'Beispiel: Und zwar durch zeilenweises Lesen der Daten und Bearbeiten der Daten in Arrays ohne diese in ein Arbeitsblatt einzutragen. In etwa folgendermaßen: Code: Dim strZeile As String Dim ZNr As Long Dim strDateipfad As String Dim fNum As Integer strDateipfad = "C:\Ordner\EineTextdatei.html" fNum = FreeFile() Open strDateipfad For Input As fNum Do Until EOF(1) ZNr = ZNr + 1 Line Input #fNum, strZeile Debug.Print "Zeile " & ZNr & ": " & strZeile Loop Close fNum
Im Normalfall geht es so schneller und es funktioniert auch wenn die Komentare mit den ganzen Zusatzinformationen nicht angezeigt werden. Dafür muss man aber alles parsen und das Programm wird etwas aufwändiger. Deine Version ist einfacher. Man kann man etwas beschleunigen wenn man die Anzeige in Excel während der Bearbeitung / Eintragen der Daten abschaltet.
Application.ScreenUpdating = False 'Am Beginn der Bearbeitung Application.ScreenUpdating = True 'Am Ende der Bearbeitung (Achtung -> Im Fehlerfall muss diese Zeile auch verwendet werden, da ansonsten die Anzeige deaktiviert bleibt.)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardF Mitglied
Beiträge: 110 Registriert: 11.10.2011 NX 1965 Win 10 Teamcenter 13 TruTops Boost 13 TruTops 11
|
erstellt am: 23. Mai. 2018 13:24 <-- editieren / zitieren --> Unities abgeben: Nur für fabian86
Ach ja, hier ist das Makro um mittels VBA unter Zuhilfenahme der Windows-API nach Dateien zu suchen: (Ist nicht vollständig auf meinem Mist gewachsen) Ich habe den Abschnitt aus meinem WinAPI-Modul herauskopiert Eigentlich müsste alles dabei sein was man für die Verwendung von FindFilesAPI und FindFilesNoSubDirAPI benötigt. Falls etwas fehlt, bitte Bescheid sagen.
Code: 'Create a form with a command button (command1), a list box (list1) 'and four text boxes (text1, text2, text3 and text4). 'Type in the first textbox a startingpath like c:\ 'and in the second textbox you put a pattern like *.* or *.txt Private Declare Function FindFirstFile Lib "kernel32" Alias "FindFirstFileA" (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long Private Declare Function FindNextFile Lib "kernel32" Alias "FindNextFileA" (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long Private Declare Function GetFileAttributes Lib "kernel32" Alias "GetFileAttributesA" (ByVal lpFileName As String) As Long Private Declare Function FindClose Lib "kernel32" (ByVal hFindFile As Long) As Long Const MAX_PATH = 260 Const MAXDWORD = &HFFFF Const INVALID_HANDLE_VALUE = -1 Const FILE_ATTRIBUTE_ARCHIVE = &H20 Const FILE_ATTRIBUTE_DIRECTORY = &H10 Const FILE_ATTRIBUTE_HIDDEN = &H2 Const FILE_ATTRIBUTE_NORMAL = &H80 Const FILE_ATTRIBUTE_READONLY = &H1 Const FILE_ATTRIBUTE_SYSTEM = &H4 Const FILE_ATTRIBUTE_TEMPORARY = &H100 Private Type FILETIME dwLowDateTime As Long dwHighDateTime As Long End Type Private Type WIN32_FIND_DATA dwFileAttributes As Long ftCreationTime As FILETIME ftLastAccessTime As FILETIME ftLastWriteTime As FILETIME nFileSizeHigh As Long nFileSizeLow As Long dwReserved0 As Long dwReserved1 As Long cFileName As String * MAX_PATH cAlternate As String * 14 End Type Function StripNulls(OriginalStr As String) As String If (InStr(OriginalStr, Chr(0)) > 0) Then OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1) End If StripNulls = OriginalStr End Function'Sucht Dateien ohne Unterordner 'path = IN - Ordner in dem gesucht werden soll ("C:\Ordner\") 'SearchStr = IN - Suchparameter ("*TeilEinesDateinamens*.txt*) 'FileCount = OUT - Anzahl der gefundenen Dateien 'FilesFound = OUT - Pfade der gefundenen Dateien Function FindFilesNoSubDirAPI(ByVal path As String, ByVal SearchStr As String, ByRef FileCount As Long, ByRef FilesFound() As String) Dim hSearch As Long ' Search Handle Dim WFD As WIN32_FIND_DATA Dim bCont As Integer Dim strName As String 'Der Pfad muss ein Bachslash am Ende haben If Right(path, 1) <> "\" Then path = path & "\" ' Alle Funde abarbeiten hSearch = FindFirstFile(path & SearchStr, WFD) bCont = True If hSearch <> INVALID_HANDLE_VALUE Then Do While bCont strName = StripNulls(WFD.cFileName) If (strName <> ".") And (strName <> "..") Then ' Überprüfen ob es sich um Ordner oder Datei handelt If Not (GetFileAttributes(path & strName) And FILE_ATTRIBUTE_DIRECTORY) Then 'Wenn es eine Datei ist - Merken FileCount = FileCount + 1 ReDim Preserve FilesFound(FileCount) FilesFound(FileCount) = path & strName End If bCont = FindNextFile(hSearch, WFD) 'Nächsten passenden Fund ermitteln. End If Loop bCont = FindClose(hSearch) 'Suche beenden End If End Function 'Sucht nach Dateien - Unterordner werden durchsucht 'path = IN - Ordner in dem gesucht werden soll ("C:\Ordner\") 'SearchStr = IN - Suchparameter ("*TeilEinesDateinamens*.txt*) 'FileCount = OUT - Anzahl der gefundenen Dateien 'FilesFound = OUT - Pfade der gefundenen Dateien Function FindFilesAPI(ByVal strPfad As String, ByVal strSuchtext As String, ByRef FileCount As Long, ByRef FilesFound() As String) Dim hSearch As Long ' Such Handle Dim WFD As WIN32_FIND_DATA Dim iSuche As Integer Dim strTmpPfad As String Dim strName As String 'Backslash anhängen If Right(strPfad, 1) <> "\" Then strPfad = strPfad & "\" 'Nach Dateien im aktuellen Ordner suchen FindFilesNoSubDirAPI strPfad, strSuchtext, FileCount, FilesFound iSuche = True hSearch = FindFirstFile(strPfad & "*.", WFD) If hSearch <> INVALID_HANDLE_VALUE Then Do While iSuche strName = StripNulls(WFD.cFileName) strTmpPfad = strPfad & strName ' Ignorieren der . und .. Funde. If (strName <> ".") And (strName <> "..") Then ' Wenn der Fund ein Ordner ist -> Durchsuchen. If GetFileAttributes(strTmpPfad) And FILE_ATTRIBUTE_DIRECTORY Then FindFilesAPI strTmpPfad, strSuchtext, FileCount, strFund End If End If iSuche = FindNextFile(hSearch, WFD) 'Nach dem nächsten Ordner suchen. Loop iSuche = FindClose(hSearch) 'Suche beenden End If End Function
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
fabian86 Mitglied
Beiträge: 270 Registriert: 31.12.2006 Intel Pentium D 945 3.4 GHZ 2 x 2MB Cache Asus P5ND2-SLI Deluxe Nvidia Geforce 6600GT 3 GB GB DDR2-533 2x 250 GB SATA Raid 0, 1x 250 GB, 1x200 GB
|
erstellt am: 23. Mai. 2018 18:57 <-- editieren / zitieren --> Unities abgeben:
Ich stand eher vor dem Problem wie bringe ich die html datei auf und gleichzeitig das Druckmakro auch, kann man in Tops irgendwie direkt auf ein Makro bzw. auf 2 excel verweisen die dann sozusagen zu einem werden? Naja also es geht Relativ Flott man drückt und geht keine Sekunde bis das ganze an den Drucker geht, während des Druckens Excel schliessen und weitermachen... Je nachdem werden es schnell mal 40 Etiketten... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
BernhardF Mitglied
Beiträge: 110 Registriert: 11.10.2011 NX 1965 Win 10 Teamcenter 13 TruTops Boost 13 TruTops 11
|
erstellt am: 25. Mai. 2018 12:19 <-- editieren / zitieren --> Unities abgeben: Nur für fabian86
Es gibt da eine Lösung. Wie ich geschrieben kann man das z.B. über eine Batch (bat) Datei erledigen wenn man kein eigenständiges Programm schreiben kann oder will. Das Ganze funktioniert folgendermaßen: Erstelle eine leere Text-Datei und benenne sie um. Z.B.: EtikettenDruck.bat Öffne die Bat-Datei mit dem Texteditor wie z.B. dem NotePad Editor. Dort schreibe die Dateien hinen die gestartet werden sollen: Code:
Start "" "C:\Program Files (x86)\Microsoft Office\Office14\EXCEL.EXE" %1 "C:\Ordner\Makrodatei.xls"
Die erste Zeile startet die per Parameterübergabe übergebene Datei in Excel Die zweite Zeile startet die Makrodatei und wartet bis das Makro fertig ist. Diese Bat-Datei wird dann in TruTops als zu startendes Programm eingetragen. Dass müsste dann funktionieren und das Ganze weiter automatisieren.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|