| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
| KISTERS 3DViewStation mit neuer Zerschneidefunktionen und erweitertem PMI-Support, eine Pressemitteilung
|
Autor
|
Thema: CAM Automatisieren (2423 mal gelesen)
|
DaiVied Mitglied
Beiträge: 50 Registriert: 19.09.2011
|
erstellt am: 19. Sep. 2011 12:07 <-- editieren / zitieren --> Unities abgeben:
Hallo alle zusammen, Ich habe den Auftrag erhalten über folgendes Thema zu recherchieren, finde aber leider keine Anhaltspunkte. Vll könnt ihr mir weiterhelfen: Die CAM schnittstelle von Catia soll automatisiert werden, soll heißen, man läd ein part, startet ein Makro und bekommt dann sogleich den CNC Code geliefert. Es handelt sich dabei um Kugellabyrinthe, die wir zu testzwecken fertigen. Das heißt, das Grundwerkstück besteht immer aus der gleichen rechteckigen PVC-Platte, Die Aufspannung ist immer die selbe, der Fingerfräser ist immer der selbe. Nur dessen Verfahrweg, das "Labyrinth" wird geändert. Gibt es dafür eine möglichkeit? Vielen Dank für eure Hilfe Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 19. Sep. 2011 12:42 <-- editieren / zitieren --> Unities abgeben: Nur für DaiVied
Hallo und herzlich willkommen im Forum, mit CAM im CATIA kenne ich mich leider nicht direkt aus, da wir fernab von CATIA ein anderes Tool verwenden. Wenn ich es richtig verstanden habe, könnte vieles davon aber mit Powercopies gehen, nur um dir mal ein Stichwort zu nennen. Es könnte aber auch durchaus mit Makros gehen. Kleiner Tipp: Starte mal die Makroaufzeichnung und mach das, was du automatisieren würdest. Danach lasse das Makro nochmal so beim gleichen Bauteil ablaufen. Wenn das funktioniert, dann musst du das Makro "nur" noch optimieren. Vll. bringt dich das schon ans Ziel. Es kann aber auch durchaus sein, dass Zwischenschritte nicht aufgezeichnet werden. Leider ist die Makroaufzeichnung erstens nicht vollständig und zweitens werden oft völlig unsinnige Schritte ausgeführt, die bei komplexen Sachen die Bearbeitungszeit unnötig in die Länge ziehen und das Makro unübersichtlich machen. BTW Es könnte wichtig sein zu wissen, was für ein System mit welchem Release du hast. Daher würde ich darum bitten, deine Systeminfo unter deinem Profil auszufüllen. ------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DaiVied Mitglied
Beiträge: 50 Registriert: 19.09.2011
|
erstellt am: 19. Sep. 2011 13:59 <-- editieren / zitieren --> Unities abgeben:
Ich hab mal die Makroaufzeichnung drüber laufen lassen und bekomme beim ausführen die Fehlermeldung, die im angehängten Screenshot ersichtlich ist. der generierte VBS Code lautet: Code: Language="VBSCRIPT"Sub CATMain() Set specsAndGeomWindow1 = CATIA.ActiveWindow Set viewer3D1 = specsAndGeomWindow1.ActiveViewer Set viewpoint3D1 = viewer3D1.Viewpoint3D Set processDocument1 = CATIA.ActiveDocument Set product1 = processDocument1.GetItem("T1 Schaftfräser D 10") Set parameters1 = product1.Parameters Set product2 = processDocument1.GetItem("PPRProduct") Set products1 = product2.Products Set product3 = products1.Item("Resource.1") Set products2 = product3.Products Set resource1 = products2.Item("Product1.1") Set parameters2 = parameters1.SubList(resource1, True) Set length1 = parameters2.Item("PPRProduct\Resource.1\Product1.1\CATSpecXMan.1\Product1.1\GeometryParameters.1\Nenndurchmesser") length1.Value = 9.000000 length1.Value = 8.000000 length1.Value = 7.000000 length1.Value = 6.000000 End Sub
Leider bin ich da nun zu unerfahren um feststellen zu können an was es liegt. Entweder war die arbeit in der NC-Fertigung falsch oder die Makroaufzeichnung mag nicht. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 19. Sep. 2011 14:18 <-- editieren / zitieren --> Unities abgeben: Nur für DaiVied
|
DaiVied Mitglied
Beiträge: 50 Registriert: 19.09.2011
|
erstellt am: 19. Sep. 2011 14:27 <-- editieren / zitieren --> Unities abgeben:
Da bin ich eben überfragt. Das Makro wurde wie gesagt über die Aufzeichnung erstellt, was er da als resource.1 bezeichnet ist mir schleierhaft, vor allem weil mein part ja nur aus part.1, hauptkörper, block.1 und tasche.1 besteht Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 19. Sep. 2011 14:34 <-- editieren / zitieren --> Unities abgeben: Nur für DaiVied
Hmmm, das wird dir jetzt nicht weiterhelfen, aber ich denke, dass du mit dem Thema etwas überfordert sein dürftest. Manchmal ist eben das was man gerne möchte nicht mit dem eigenen KnowHow möglich. Ich kann dir kein perfektes Konstrukt liefern und schon garnicht mit derart wenigen Informationen und Daten. Die Schlussfolgerung dessen ist, dass du dir entweder VB beibringst oder einen externen dafür beauftragst. Ich habe schon viel automatisiert und muss ehrlich sagen, dass ich über das Forum wenn schon, nur einen Baustein zur Verfügung stellen würde. Wer ein fertiges Produkt möchte, soll auch die dementsprechenden Dienstleistungen in Anspruch nehmen oder eben selbst basteln. Ich würde dir auch weiterhelfen, aber erstens nur bis zu einem bestimmten Punkt und zweitens müsste ich mir anschauen, was genau du autmatisieren möchtest. ------------------ MFG Rick Schulz Nettiquette (CAD.de) - Was ist die Systeminfo? - Wie man Fragen richtig stellt. - Unities Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DaiVied Mitglied
Beiträge: 50 Registriert: 19.09.2011
|
erstellt am: 19. Sep. 2011 14:46 <-- editieren / zitieren --> Unities abgeben:
Versteh ich schon, zweck diese Beitrags ist es ja erst mal auszuloten was möglich ist und was nicht! Ein Schluss, den ich jetzt schon ziehen kann, ist, dass die Makroaufzeichnung für standartparts vll ganz net ist, für sowas komplexes aber ungeeignet ist. Hab gerade eben die gleichen schritte wie vorhin aufgezeichnet, und hab einen komplett anderen Code erhalten. Naja, dann hilft nur weitersuchen. Wie gesagt, ich erbitte ja keine komplette Lösung, sonderen etwas Hilfe beim ausprobieren oder schritte in die richtige Richtung. Was mich am meisten interessiert ist, ob sowas zu automatisieren überhaupt funktioniert, denn ich hab ja trotz allem, dass die Bauteile sehr ähnlich sind, immer etwas andere Begrenzungsflächen und mirt ist bisher noch nicht klar, ob man einem Programm so ein Denken beibringen kann Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
RSchulz Ehrenmitglied V.I.P. h.c. Head of CAD, Content & Collaboration / IT-Manager
Beiträge: 5541 Registriert: 12.04.2007 @Work Lenovo P510 Xeon E5-1630v4 64GB DDR4 Quadro P2000 256GB PCIe SSD 512GB SSD SmarTeam V5-6 R2016 Sp04 CATIA V5-6 R2016 Sp05 E3.Series V2019 Altium Designer/Concord 19 Win 10 Pro x64
|
erstellt am: 19. Sep. 2011 15:08 <-- editieren / zitieren --> Unities abgeben: Nur für DaiVied
|
martin2 Mitglied Konstrukteur
Beiträge: 1010 Registriert: 05.2002.27
|
erstellt am: 19. Sep. 2011 20:34 <-- editieren / zitieren --> Unities abgeben: Nur für DaiVied
Hallo, bist Du Dir absolut sicher, das das mittels einem Makro (VBA etc.) erfolgen soll? Also meiner Meinung nach hört sich das irgendwie nach einem Uni oder FH-Projekt an. Kann es evtl. sein, das nicht mit einem Makro sondern mit einem Standardprozess gearbeitet werden soll. (Man erstellt einen Basisprozess und anschließend wird immer nur das Teil ausgetauscht. Danach muss nur der Berechnen-Button nochmal geklickt werden und das NC-Programm ausgegeben werden. Fertig!) Gruß Martin
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
david.f300988 Mitglied
Beiträge: 7 Registriert: 27.02.2011
|
erstellt am: 19. Sep. 2011 22:09 <-- editieren / zitieren --> Unities abgeben: Nur für DaiVied
Genau, das ist ein Uni Projekt, oder soll eins werden, falls es machbar ist! Kannst du vll etwas genauer erläutern was deine Idee wäre, ganz durchgestiegen bin ich da nicht! Natürlich nicht die komplette Lösung, nur der Gedankengang! Wäre sehr nett Vielen Dank Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
murphy2 Ehrenmitglied -
Beiträge: 1726 Registriert: 30.07.2002 C 64 Amiga 1000 mit 8.5 MB RAM und Seagate ST225 RLL formatiert
|
erstellt am: 19. Sep. 2011 22:26 <-- editieren / zitieren --> Unities abgeben: Nur für DaiVied
|
DaiVied Mitglied
Beiträge: 50 Registriert: 19.09.2011
|
erstellt am: 19. Sep. 2011 22:59 <-- editieren / zitieren --> Unities abgeben:
Ok ich verstehe was du meinst, aber darum dreht es sich nicht, das kann catia auch! Dankeschön aber trotzdem! Bei dem Projekt geht es um die Automatisierung der CAD/CAM Schnittstelle, sprich: Part öfnen, makro (oder ähnliches) starten, Code erhalten. Wie oben schon gesagt, Grundgeometrie, einspannung, Fräser, material usw. bleibt das selbe. Im nächsten Schritt kann man dann noch überlegen ob man eine externe GUI und mehr Funktionen einbaut. Aber das bleibt erst mal ganz hinten angestellt. Morgen gehts bei mir weiter mit dem "Kochbuch, Automatisierung von Catia v5" Mal sehen was sich da ergibt! Für weitere HInweise bin ich natürlich sehr dankbar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DaiVied Mitglied
Beiträge: 50 Registriert: 19.09.2011
|
erstellt am: 20. Sep. 2011 13:29 <-- editieren / zitieren --> Unities abgeben:
So Ich hab mit der Lektüre angefangen, und da ich Grundkenntnisse in Java und C hab, finde ich mich recht gut zurecht. Nachdem ich einige Beispiele durchgearbeitet habe, bin ich zu dem entschluss gekommen, den Objektbrowser nach den Funktionen zu durchsuchen, die ich bnötige. Da hab ich einiges gefunden wie z.B unter der Klasse "ManufacturingProgram" die Funktionen "GetNCOutputFile" oder "AddToolChange" usw... Hört sich bisher echt super an. Weis jemand ob es zu den einzelnen MAnufacturing Klassen eine ausführliche Dokumentation gibt? Was ich fürs erste vor hab: Catpart öffnen, in die Arbeitsumgebung Prismatic Maschining wechseln, Aufspannung definieren, Werkzeugwechsel definieren. Ich hoffe ich kann auf eure unterstützung hoffen, wenn ich auf fragen stoße ;-) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DaiVied Mitglied
Beiträge: 50 Registriert: 19.09.2011
|
erstellt am: 20. Sep. 2011 14:47 <-- editieren / zitieren --> Unities abgeben:
Und hier kommt auch schon die erste Frage: mit: CATIA.StartWorkbench ("Assembly") kann ich wunderbar ins Assembly Design wechseln mit: CATIA.StartWorkbench ("PrimaticMachining") wollte ich versuchen in die entsprechende workbench zu wechseln, da zeigt das ganze aber keine Wirkung! Weis jemand den richtigen Befehl? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
JPF Mitglied Programmierer
Beiträge: 128 Registriert: 17.08.2001 CATIA V5R19 SP9--HP420,Intel(R) Xeon(R) CPU E5-1620 3.60GHz,32 GB Ram, NVIDIA Quadro 2000--Windows 7 Enterprise 64bit
|
erstellt am: 21. Sep. 2011 06:54 <-- editieren / zitieren --> Unities abgeben: Nur für DaiVied
|
DaiVied Mitglied
Beiträge: 50 Registriert: 19.09.2011
|
erstellt am: 21. Sep. 2011 10:04 <-- editieren / zitieren --> Unities abgeben:
Die Anweisung funktioniert, allerdings nur alleine! Hab ich ein Part davor geladen, so zeigt die Anweisung keine Wirkung mehr! Ich hab erst gedacht, das in VB die Anweisungen nicht wie in C Schritt für Schritt abgearbeitet werden, aber daran liegt es glaub ich auch nicht, da ich nun zwei Makros erstellt habe, eins um den Part zu laden und eines um in die Workbench zu wechseln. "Manuell" kann ich ja zwischen Partdesign und verschiedenen Workbenches wechseln weis jemand Rat? Hier mal der Quelltext: Code:
Sub CATMain() Version = "1.0" Makroname = "NC-Code Generierung" file = CATIA.FileSelectionBox("Bitte Wählen sie einen Catia-Part aus", "*.CATpart", CatFileSelectionModeOpen) CATIA.Documents.Open (file) Dim newPart Set newPart = CATIA.ActiveDocument CATIA.StartWorkbench ("ManufacturingProgramWorkbench") End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
DaiVied Mitglied
Beiträge: 50 Registriert: 19.09.2011
|
erstellt am: 21. Sep. 2011 11:22 <-- editieren / zitieren --> Unities abgeben:
Ich hab in der Dokumentation folgenden Code gefunden, den ich auf meine Bedürfnisse angepasst habe Code: Dim newPart Set newPart = CATIA.ActiveDocument Dim newProduct Set newProduct = newPart.Product CATIA.Documents.Add "Process" Dim PPR Set PPR = CATIA.ActiveDocument Dim Application Set Application = PPR.Application Application.StartWorkbench("ManufacturingProgramWorkbench") Dim Process Set Process = PPR.processes.Item("Process") Dim Setup If (Process.IsSubTypeOf("PhysicalActivity")) Then Set childs = Process.ChildrenActivities quantity = childs.Count If quantity <= 0 Then Exit Sub End If NumberOfPO = 0 For I=1 To quantity Set child = childs.Item(I) If (child.IsSubTypeOf("ManufacturingSetup")) Then Set Setup = child NumberOfPO = NumberOfPO + 1 Exit For End If Next End If If NumberOfPO <= 0 Then Exit Sub End If
Das problem liegt bei:
Dim Process Set Process = PPR.processes.Item("Process") Da bekomm ich immer als Fehlermeldung: Das Objekt unterstützt die Eigenschaft oder Methode nicht: 'PPR.Processe' hat jemand vll eine Idee an was das liegt? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |