| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co. |
| |
 | KISTERS 3DViewStation: Schutz sensibler 3D CAD Daten, egal von wo Sie arbeiten, eine Pressemitteilung
|
Autor
|
Thema: Part in Struktur ansprechen (3034 mal gelesen)
|
Augustiner Mitglied Konstrukteur
 
 Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 31. Jan. 2006 15:56 <-- editieren / zitieren --> Unities abgeben:         
Hallo verehrte V5 gemeinde hab mal wieder ein Problem.Gleich vorab die Suche hab ich schon ausgiebigst benutzt....hatt mir leider nicht weitergeholfen oder einfach nur falsch gesucht wie auch immer.......... Nun zu meinem Problem: möchte in einer Produkt Struktur in der mehrere Parts enthalten sind bestimmte Strings auslesen,funzt auch ganz gut eigentlich... Möchte aber die Parts nicht über den Namen ansprechen sondern über den Zähler.Wenn ich aber die namen durch die zähler tausche funktioniert es nicht mehr.Kann mir vielleicht jemand erklären woran das liegt oder eine alternative Methode erklären das wär sehr hilfreich für mich !!! Vielen Dank schonmal im voraus für evt. entstandene mühen.
Gruß Andi Hier das Makro dazu: Sub CATMain()
Dim productDocument1 As Document Set productDocument1 = CATIA.ActiveDocument
Dim documents1 As Documents Set documents1 = CATIA.Documents Dim partDocument1 As Document Set partDocument1 = documents1.item("Adapterpart 01.CATPart") Dim part1 As Part Set part1 = partDocument1.Part Dim hybridBodies1 As HybridBodies Set hybridBodies1 = part1.HybridBodies Dim hybridBody1 As HybridBody Set hybridBody1 = hybridBodies1.Item("01") Dim hybridShapes1 As HybridShapes Set hybridShapes1 = hybridBody1.HybridShapes Dim hybridShapePlaneOffsetPt1 As HybridShape Set hybridShapePlaneOffsetPt1 = hybridShapes1.Item("Hilfsebene SG01-01") String1=hybridShapePlaneOffsetPt1.name msgbox string1 End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Watje Mitglied Ingenieur

 Beiträge: 73 Registriert: 16.09.2005
|
erstellt am: 01. Feb. 2006 11:00 <-- editieren / zitieren --> Unities abgeben:          Nur für Augustiner
|
Augustiner Mitglied Konstrukteur
 
 Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 01. Feb. 2006 12:06 <-- editieren / zitieren --> Unities abgeben:         
|
AlexE78 Mitglied Ing.

 Beiträge: 49 Registriert: 29.08.2005
|
erstellt am: 01. Feb. 2006 12:44 <-- editieren / zitieren --> Unities abgeben:          Nur für Augustiner
Hallo allerseits, das Problem dürfte darin bestehen, daß 'CATIA.Documents.Item' alle geöffneten Dokumente berücksichtigt und dabei das aktive '*.CATProduct' als erstes Element ('Item(1)') zurückgibt, welches natürlich keine '.Part'-Eigenschaft hat. Also solltest du empfehlen, ob du auch ein '*.CATPart' erhälsts, am besten mit 'right(oMyDocument.Fullname, 8) = ".CATPart"' und andernfalls den entsprechenden Schleifendurchlauf überspringen. mfg Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
 
 Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 01. Feb. 2006 14:29 <-- editieren / zitieren --> Unities abgeben:         
|
AlexE78 Mitglied Ing.

 Beiträge: 49 Registriert: 29.08.2005
|
erstellt am: 01. Feb. 2006 17:18 <-- editieren / zitieren --> Unities abgeben:          Nur für Augustiner
Ich nochmal... Man sollte halt alles nochmal durchlesen, bevor man auf 'speichern' klickt Ich meinte: "ich würde dir empfehlen, zu überprüfen, ob das entsprechende Dokument auch ein Part ist...." Das kann man relativ einfach über die Dateiendung feststellen, d.h. man schneidet vom Dateinamen (oMyDocument.Fullname) die letzten 8 Zeichen ab und vergleich mit ".CATPart". In einer Schleife könnte das etwa so aussehen: for i = 1 to CATIA.Documents.Count set oMyDocument = CATIA.Documents.Item(i) if (right(oMyDocument.Fullname, 8) = ".CATPart") then 'irgendwas mit dem Part machen end if 'kein CATPart, weiter zum nächsten Dokument next alle klarheiten beseitigt??? mfg Alex Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
tomtom1972 Mitglied dipl ing maschinenbau
  
 Beiträge: 608 Registriert: 22.03.2005 NVidia Quadro K4000 Intel Xeon E5-1620, 64GB RAM Windows10 64bit R30 <= CATIA V5 > =R19
|
erstellt am: 01. Feb. 2006 21:25 <-- editieren / zitieren --> Unities abgeben:          Nur für Augustiner
Hallo, jedes Document verfügt über die Eigenschaft "TypeName", mit der sich bestimmen lässt, um was es sich handelt. Also Set oDocument = Catia.ActiveDocument If TypeName(oDocument) = "ProductDocument" Then ' irgendwas ElseIf TypeName(oDocument) = "PartDocument" Then ' irgendwas anderers End if Um Parts/Products in einer Produktstruktur auszulesen zählt man normlerweise die Childrens durch und geht nicht über die Catia.Documents. Wenn die Strukturtiefe undefiniert ist, funktioniert das am besten rekursiv, d.h. mit einer Routine, die sich selbst aufruft. Also ungefähr so (sofern ich es aus dem Kopt richtig zusammen bekomme) Public sMsgBox as String Sub CATMain() Set oRoot = Catia.ActiveDocument Set oProducts = oRoot.Product.Products SUB_ProdScan oProducts Msgbox sMsgBox, 48, "Enthaltene Parts" End Sub Sub SUB_ProdScan(oProducts) For x = 1 To oProducts.Count Set oParentDoc = oProducts.Item(x).ReferenceProduct.Parent If TypeName(oParentDoc) = "PartDocument" Then sMsgBox = sMsgBox & VbLf & oParentDoc.Name End if If oProducts.Item(x).Products.Count > 0 Then SUB_ProdScan oProducts.Item(x).Products End If Next End Sub Hoffe es hilft. Gruss TomTom ------------------ tomtom1972 [Diese Nachricht wurde von tomtom1972 am 01. Feb. 2006 editiert.] [Diese Nachricht wurde von tomtom1972 am 01. Feb. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Augustiner Mitglied Konstrukteur
 
 Beiträge: 188 Registriert: 02.12.2005 HP Workstation Windows XP Professional Visual Studio 2005 Professional CATIA V5 R14SP5 & R17SP3
|
erstellt am: 02. Feb. 2006 14:33 <-- editieren / zitieren --> Unities abgeben:         
Danke Tomtom hatt mir mal wieder sehr weiter geholfen.Fallst du mal in München bist lad ich Dich auf ein Bier Ebenfalls vielen Dank an Watje und Alex für die Antworten!!! Gruß Andi P.S.: Ich hatte Dir schon mehrmal PN´s geschickt,wegen den workshops. Irgendwas funktioniert da nicht ganz??Bräucht immer noch dringend infos zum Thema. [Diese Nachricht wurde von Augustiner am 02. Feb. 2006 editiert.] [Diese Nachricht wurde von Augustiner am 03. Feb. 2006 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |