Autor
|
Thema: Product o. Part Fixen (1884 mal gelesen)
|
ChrisHH Mitglied F&E
Beiträge: 11 Registriert: 31.05.2012 HP Z400 64bit Catia V5 R16 + R18 VB6
|
erstellt am: 14. Nov. 2012 09:58 <-- editieren / zitieren --> Unities abgeben:
Moin, zu allererst will ich anmerken das ich seit zwei Tagen das Forum und das Netz zu diesem Thema durchsuche, jedoch ohne Erfolg. Ich habe viele viele verschiedene Wege ausprobiert doch bisher ohne Erfolg. Nun zu meinem Problem: V5R16 VBA 6.0 Ich benutze die MS-VB6.0 IDE um das Makro zu bauen. Später soll es aus Catia als CATScript gestartet werden Ich möchte in einem Makro zur Erstellung von einer Product struktur erstellte Parts und Produkte mit der FIX constraint bedingen. Das Makro soll ein allgemeines Makro werden was in jeder Baumstruktur, egal wieviele Ebenen, funktionieren muss.
Das Erstellen, benennen der Parts sowie Produkte stellt kein Problem da, leider jedoch der Teil in dem die erstellten oder eingefügten Teile "geFixt" werden sollen. hier kurz der betroffene codeteil: Code:
...Dim MotherProd Dim FixNewProd Dim MotherRef Dim RefName ' getPanelName = 123456-00-001 'bsp. Partnummer des Kontext Produktes in welches die Teile gefixt werden soll ' PanelNameNew = 123456-00-101 'bsp. Partnummer des Parts o. Produktes welches gefixt werden soll Set MotherRef = SaveNewProd.product.CreateReferenceFromName(getPanelName + "/" + PanelNameNew + ".1/!" + getPanelName + "/" + PanelNameNew + ".1/") Set MotherProd = SaveNewProd.Product.Connections("CATIAConstraints") Set FixNewProd = MotherProd.addmonoeltcst(catcsttypereference, MotherRef)
Leider bekomme ich immer die Fehlermeldung "Laufzeitfehler blalba, the method addmonoeltcst failed. Siehe screenshot Egal ob ich als Bezeichner für die CreateReferenceFromName Funktion variablen oder feste Partnummern, bzw Instance names definiere, gibt es die Fehlermeldung. Selbst wenn ich die Zeilen aus dem Makro recorder verwende ändert das nichts. Hier kurz der Code vom recorder:
Code:
Language="VBSCRIPT"Sub CATMain() Dim documents1 As Documents Set documents1 = CATIA.Documents Dim productDocument1 As Document Set productDocument1 = documents1.Item("123456-00-100.CATProduct") Dim product1 As Product Set product1 = productDocument1.Product Dim constraints1 As Collection Set constraints1 = product1.Connections("CATIAConstraints") Dim reference1 As Reference Set reference1 = product1.CreateReferenceFromName("123456-00-100/123456-00-600.1/!123456-00-100/123456-00-600.1/") Dim constraint1 As Constraint Set constraint1 = constraints1.AddMonoEltCst(catCstTypeReference, reference1) End Sub
Das aufgezeichnete Makro selber Funktioniert natürlich als CATScript aus V5 gestartet. Wenn ich das allerdings 1 zu 1 in meine VBA umgebung kopiere, kommt er mit den Variablen Typen "Constraint" nicht klar. Ich komme hier leider nicht weiter und habe die Hoffnung das hier jemand ähnliche Probleme kennt bzw. Lösungsmöglichkeiten aufzeigen kann. Falls ich wichtige Infos vergessen hab bitte sagen, mir ist bewusst das nichts nerviger ist als Fragen zu stellen ohne die notwendigen Hintergrundinformationen zu liefern. Grüße, ChrisHH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 15. Nov. 2012 10:39 <-- editieren / zitieren --> Unities abgeben: Nur für ChrisHH
|
ChrisHH Mitglied F&E
Beiträge: 11 Registriert: 31.05.2012 HP Z400 64bit Catia V5 R16 + R18 VB6
|
erstellt am: 19. Nov. 2012 14:25 <-- editieren / zitieren --> Unities abgeben:
Moin, danke für den hinweis. Leider hatte ich den Thread schon gefunden und auch mit einer quasi 1 zu 1 Kopie führt es bei mir nicht zum Erfolg. Mir ist eben allerdings was aufgefallen. Und zwar nutze ich um das CATScript zu schreiben die VB6.0 IDE. Da werden ja befehle wie zB. "CreateReferenceFromName" automatisch auf groß und kleinschreibung korrigiert. Das passiert allerdings nicht bei "addmonoeltcst". Fehlt mir noch die passende CATIA Library in meiner Zuweisungsliste der IDE? bzw. weiss jemand in welcher Library der addmonoeltcst befehlt steckt?
Code:
Dim FixProduct Dim MotherProd Dim FixNewProd Dim MotherRef Dim RefName Set FixProduct = catia.Documents.Item(PanelProductNameNew + ".CATProduct").Product Set MotherProd = FixProduct.Connections("CATIAConstraints") Set MotherRef = FixProduct.CreateReferenceFromName(FixProduct.PartNumber & "/" & FixProduct.Products.Item(1).Name & "/!" & FixProduct.PartNumber & "/" & FixProduct.Products.Item(1).Name & "/") Set FixNewProd = FixProduct.addmonoeltcst(catCstTypeReference, MotherRef)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 20. Nov. 2012 05:53 <-- editieren / zitieren --> Unities abgeben: Nur für ChrisHH
|
ChrisHH Mitglied F&E
Beiträge: 11 Registriert: 31.05.2012 HP Z400 64bit Catia V5 R16 + R18 VB6
|
erstellt am: 20. Nov. 2012 08:12 <-- editieren / zitieren --> Unities abgeben:
Ja das stimmt. Nur ist es ein guter Indikator dafür ob der befehl/funktion vorhanden ist. Allerdings trifft das in diesem fall nicht zu, wieso auch immer Wie dem auch sei, das war die fehlende Library, vielen Dank tomtom! Noch eine kleine hilfe zur selbsthilfe wenn möglich. Woher wusstest du das? Erfahrung oder steht das irgendwo? V5 Doku? Nur damit ich das nächste mal selber suchen kann viele Grüße, Christian ps.: Ich hab vergessen zu sagen das es bei mir NUR unter R18 läuft. R16 meckert weiterhin. Gibts das auch ne bekannte lösung oder gehts einfach nicht unter R16? hier der code für R18
Code:
Dim FixDoc As Document Dim FixProduct As Product Dim FixNewProd As Constraint Dim MotherRef As Reference Set FixDoc = catia.Documents.Item(PanelProductNameNew & ".CATProduct") Set FixProduct = FixDoc.Product Set MotherRef = FixProduct.CreateReferenceFromName(FixProduct.PartNumber & "/" & FixProduct.Products.Item(1).Name & "/!" & FixProduct.PartNumber & "/" & FixProduct.Products.Item(1).Name & "/") Set FixNewProd = FixProduct.Connections("CATIAConstraints").addmonoeltcst(catCsttypereference, MotherRef)
[Diese Nachricht wurde von ChrisHH am 20. Nov. 2012 editiert.]
[Diese Nachricht wurde von ChrisHH am 20. Nov. 2012 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
Beiträge: 605 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 21. Nov. 2012 06:59 <-- editieren / zitieren --> Unities abgeben: Nur für ChrisHH
Moin Christian, bei mir läuft das Script seit ewigen Zeiten, der Post auf den ich oben verlinkt habe ist aus 2006. Ich habe zwar kein R16 mehr, bin mir aber ganz sicher, das es auf der R16 gelaufen ist, weil ich mir den entsprechenden Kommentar in den Quellcode geschrieben habe, das in 16 prog + getestet. Wenn ich dich weiter oben richtig verstanden habe arbeitest du mit dem Visual Studio 6.0. Ich auch. Zu deiner zweiten Frage. Öffne ein neues / leeres Projekt. Gehe übers Pulldown-Menü Projekte auf > Verweise und setze im Fenster alle Häckchen (Verweise) auf alle Object Libraries die mit CATIA anfangen. Dann öffne übers Pulldown-Menü Ansicht den Objektkatalog. Dann gehe im Objektkatalog oben links ins Suchenfeld und gib ein * ein. Klicke suchen. In den Suchergebnissen werden alle Libraries aufgelistet mit zugehörigen Klassen, Methoden .... Dann stöbern und loslegen. Wenn du letzeten Endes ein Script kompilierst würde ich alle nicht benötigten Verweise wieder entfernen. Gruß TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |