Autor
|
Thema: Neues Part als CATIA.ActiveDocument (1526 mal gelesen)
|
AlfaRomeo75 Mitglied Dipl.Ing. - Flächenkonstrukteur/Methodenplaner
Beiträge: 174 Registriert: 06.12.2004 ----------------- Windows XP professional Version2002 Service Pack 2 ----------------- CATIA V5 R16 SP5 ----------------- Intel Pentium 4 3,4GHz 4 GB RAM -----------------
|
erstellt am: 18. Aug. 2005 10:43 <-- editieren / zitieren --> Unities abgeben:
Hallo, hab da mal wieder ein Problem: Ich möchte ein neues Part erzeugen in dem bspw. ein geöffneter Körper erzeugt wird, welcher anschliessend ausgeblendet werden soll (Nur ein Beispiel!) Das Problem ist, daß bei der Erzeugung eines neuen Parts die Methode ActiveDocument fehlschlägt! (vermutlich weil ja noch kein Dokument aktiv ist!)? Also wie deklarieren ich ein Neues bei Makrostart noch nicht existierendes Part als CATIA.ActiveDocument? Wahrscheinlich eine Anfängerfrage aber bislang habe ich immer nur Makros geschrieben die sich auf bereits geöffnete Part bezogen haben. Hier noch der Bsp.Code: Sub CATMain() Dim documents1 As Documents Set documents1 = CATIA.Documents Dim partDocument1 As Document Set partDocument1 = documents1.Add("Part") Dim part1 As Part Set part1 = partDocument1.Part Dim hybridBodies1 As HybridBodies Set hybridBodies1 = part1.HybridBodies Dim OpenBody1 As HybridBody Set OpenBody1 = hybridBodies1.Add() OpenBody1.Name = "xyz" Dim NameOpenBody1 NameOpenBody1 = OpenBody1.Name Dim Selection1 as Selection Set Selection1 = CATIA.ActiveDocument.Selection Selection1.Clear Selection1.Add (NameOpenBody1) Set visPropertySet1 = Selection1.VisProperties visPropertySet1.SetShow 1 part1.Update End Sub Vielen Dank im Vorraus! Gruß Thomas
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: 19. Aug. 2005 06:41 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hallo, dein Code hat in folgender Zeile einen Fehler: Selection1.Add (NameOpenBody1) richtig wäre : Selection1.Add (OpenBody1) Bei mir läuft dein Script?! Zur Erklärung: Wenn du ein neues Part oder Product erzeugst, wird dieses im Normalfall (ausser du verhinderst es) in einem neuen Fenster, welches dann auch das aktive Fenster ist, geöffnet und ist damit automatisch das Catia.ActiveDocument. Falls es noch Probleme gibt, melde dich noch mal. Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AlfaRomeo75 Mitglied Dipl.Ing. - Flächenkonstrukteur/Methodenplaner
Beiträge: 174 Registriert: 06.12.2004 ----------------- Windows XP professional Version2002 Service Pack 2 ----------------- CATIA V5 R16 SP5 ----------------- Intel Pentium 4 3,4GHz 4 GB RAM -----------------
|
erstellt am: 19. Aug. 2005 08:07 <-- editieren / zitieren --> Unities abgeben:
Hallo TomTom, vielen Dank für Deine Antwort! Mit welcher Catia-Version arbeitest Du? Bei mir (R12 SP9) läuft der Code nur dann, wenn bereits im CATIA ein Part geöffnet ist! Falls noch kein Part oder Product geöffnet ist (also ein leeres CATIA geöffnet ist), kommt immer die Fehlermeldung: "The method ActiveDocument failed". Desweiteren: Falls bereits ein Part geöffnet war und nicht die Fehlermeldung kommt läuft das Makro zwar durch, aber der erzeugte Körper "OpenBody1" wird nicht ausgeblendet. Gruß Thomas
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. Aug. 2005 15:04 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
Hallo, wenn du deinen Quellcode wie o.b. anpasst, müsste der OB eigentlich ins No-Show geschoben werden. Mit dem Code wie du ihn gepostet hast funktioniert das ganze nicht, weil deine Selection leer war. Das Script läuft trotzdem ohne Fehlermeldung bis zum Ende durch. Ich arbeite momentan hauptsächlich mit R14SP3 und 5 und R15SP2. Da gibts keine Probleme. Ich habe allerdings auch in der R12 (SP3,5,9) schon massenhaft neue Parts und Products erzeugt und hatte noch nie das von dir geschilderte Problem. Hast du VisualBasic zur Verfügung? Oder den VBA Editor in V5? Halte das Script direkt nach dem anlegen des neuen Parts mal an und zieh das Catia.ActiveDocument ins Watch Window. Dann müsstest du sehen, ob es das neue Part ist oder ob das Objekt leer ist. Oder lass dir mit einer msgbox den Namen anzeigen. Also erst mal nur: Sub CATMain() Set NewDoc = CATIA.Documents.Add("Part") NewDoc.Name = "Part123" msgbox "Das aktive Dokument ist " & Catia.ActiveDocument.Name End Sub Läuft das? Gruss TomTom ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
AlfaRomeo75 Mitglied Dipl.Ing. - Flächenkonstrukteur/Methodenplaner
Beiträge: 174 Registriert: 06.12.2004 ----------------- Windows XP professional Version2002 Service Pack 2 ----------------- CATIA V5 R16 SP5 ----------------- Intel Pentium 4 3,4GHz 4 GB RAM -----------------
|
erstellt am: 22. Aug. 2005 07:44 <-- editieren / zitieren --> Unities abgeben:
Hallo TomTom, habe deinen Code kopiert und als CatScript gespeichert. Funktioniert leider nicht. Hier bekomme ich auch immer eine Fehlermeldung (siehe Bild). Und zwar bei beiden Varianten mit und ohne bereits geöffnetem Dokument. Gruß Thomas Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
StRei Mitglied CAD/EDA-Systemadministration
Beiträge: 32 Registriert: 30.08.2001 MS WindowsXP 64bit ed. (SP1) IntelliStation A Pro 2*AMD Opteron 250 2,4 8GB Ram, Quadro FX3450 IntelliStation M Pro Intel Core2Duo 2,66 8GB Ram, Quadro FX3500 CATIA V5R17SP7 / V5R18SP3 SmarTeam V5R17SP7
|
erstellt am: 22. Aug. 2005 15:16 <-- editieren / zitieren --> Unities abgeben: Nur für AlfaRomeo75
|