Autor
|
Thema: klasse des Shape? (739 mal gelesen)
|
leipziger Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 171 Registriert: 05.09.2005 AIX 275 CatiaV5 R14 SP3
|
erstellt am: 29. Nov. 2005 09:52 <-- editieren / zitieren --> Unities abgeben:
Hallo weis jemand wie ich von einem Objekt (Pad oder Assemble) der Oberklasse Shape die Klasse rausfinden kann und diese in der If Then Else Bedingung abfragen kann? Mein Problem ist das ich ein Marco schreibe welches alle Bodies sucht und das darüber liegende AssemblyFeature genau so wie den Body benennt. So bald aber im Body ein Shape gefunden wird was nicht für Klasse BooleanShape gehört, das Marco nicht mehr funktioniert. hier ist meine Probedatei Dim partDocument1 As PartDocument Dim part1 As Part Dim body1 AS Body Dim body2 AS Body Dim bodies1 As Bodies Dim name1 As String Dim shapes1 As Shapes Dim shape1 As Shape Sub CATMain () Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.part Set bodies1=part1.Bodies
Dim j As Integer MsgBox Bodies1.Count Set body1 = Bodies1.Item (1) MsgBox body1.Shapes.Count Set shape1 = body1.Shapes.Item(1) Set body2 = shape1.body MsgBox body2.name End Sub Bis dann Leipziger Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
leipziger Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 171 Registriert: 05.09.2005 AIX 275 CatiaV5 R14 SP3
|
erstellt am: 29. Nov. 2005 10:59 <-- editieren / zitieren --> Unities abgeben:
Hallo ich bin selber es Bißchen weiter gekommen! Also ich kann mit Dim sObjectType As String sObjectType = TypeName(myObject) des Objekt schon unterscheiden, müsste aber vier If Then Else Bedingungen schreiben. Mal sehen vielleicht bekomme ich ja noch einen Tip wie ich die Klasse ausfindig machen. CU 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: 29. Nov. 2005 14:01 <-- editieren / zitieren --> Unities abgeben: Nur für leipziger
Hallo, probiers mal so, dann kannst du dir die if-Schleifen (Typename: Add, Assemble ....)schenken. Sub CATMain () Dim oBodies, oBody, oShapes, oItem As Variant Set oBodies = Catia.ActiveDocument.Part.Bodies On Error Resume Next For Each oBody In oBodies Set oShapes = oBody.Shapes For Each oItem In oShapes If Not IsEmpty(oItem.Body) Then oItem.Name = oItem.Body.Name End If Next Next On Error GoTo 0 End Sub ------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Randle Mitglied CAD/PLM Consultant
Beiträge: 695 Registriert: 12.04.2003 Win10 x64 CATIA V5 R18, R19, R21, R27-29
|
erstellt am: 29. Nov. 2005 17:44 <-- editieren / zitieren --> Unities abgeben: Nur für leipziger
|
leipziger Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 171 Registriert: 05.09.2005 AIX 275 CatiaV5 R14 SP3
|
erstellt am: 30. Nov. 2005 20:49 <-- editieren / zitieren --> Unities abgeben:
Danke Danke ich habe auch eine Lösung gefunden und es funktioniert!!! :-) ich werde sie morgen mal posten. also ich habe mal ein Semester Java Programmiert und bin kein Informatiker kann mir einer die Namenkonvention erklären wegen dem o vorm namen. danke 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: 01. Dez. 2005 05:48 <-- editieren / zitieren --> Unities abgeben: Nur für leipziger
Hi, zu finden in CAA V5 Automation Code Presentation Rules, Rules and Standards: variable names are to begin with a lowercase letter describing its type, if you don't have to use your own prefix system (as for example Microsoft's VBScript Coding Conventions), the following minimal prefixes are mandatory: b boolean bIsUpToDate d double dLength s string sName i int iNumberOfElements o objects oSketch1 Gruss TomTom
------------------ tomtom1972 Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
leipziger Mitglied Dipl.-Ing. Maschinenbau (FH)
Beiträge: 171 Registriert: 05.09.2005 AIX 275 CatiaV5 R14 SP3
|
erstellt am: 04. Dez. 2005 20:39 <-- editieren / zitieren --> Unities abgeben:
Danke für die namenserklärung so habe ich es gemacht CATIA.Status.Bar = "Macro Remane_Assemble.CATScript, Version 1.0" Dim partDocument1 As PartDocument Dim part1 As Part Dim body1 AS Body Dim body2 AS Body Dim bodies1 As Bodies Dim shapes1 As Shapes Dim shape1 As Shape Dim objecttype1 As String Dim name1 As String Sub CATMain () Set partDocument1 = CATIA.ActiveDocument Set part1 = partDocument1.part Set bodies1=part1.Bodies Dim j As Integer Dim k As Integer 'MsgBox Bodies1.Count For j=1 To Bodies1.Count Set body1 = Bodies1.Item(j) Set shapes1 = body1.Shapes 'MsgBox shapes1.Count For k=1 To shapes1.Count Set shape1 = shapes1.Item(k) objecttype1 = TypeName(shape1) 'MsgBox objecttype1 If objecttype1 = "Assemble" Then Set body2 = shape1.body name1 = body2.Name 'MsgBox name1 shape1.Name = name1+"_Assemble" End If If objecttype1 = "Add" Then Set body2 = shape1.body name1 = body2.Name 'MsgBox name1 shape1.Name = name1+"_Add" End If If objecttype1 = "Remove" Then Set body2 = shape1.body name1 = body2.Name 'MsgBox name1 shape1.Name = name1+"_Remove" End If If objecttype1 = "Intersect" Then Set body2 = shape1.body name1 = body2.Name 'MsgBox name1 shape1.Name = name1+"_Intersection" End If Next Next End Sub mfg Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
93Aero Mitglied Ing
Beiträge: 106 Registriert: 02.12.2004
|
erstellt am: 06. Dez. 2005 15:21 <-- editieren / zitieren --> Unities abgeben: Nur für leipziger
Die Namenkonversionen sind bei Microsoft verbreitert und als "gut" bei der programmierenden Menschen gehandelt. Bei einigen Zehntausend Zeilen Quellcode sind die Bezeichnungen wie x,y & Co. so unübersichtlich, daß kein normales Softwareunternehmen das Geld dafür ausgibt, daß der Programmierer einen Tag lang sucht, wo ein "x" definiert ist und wie. Deswegen "n" für numeric, "str" für String, "C" für Class definition, Funktionnamen gemischt geschrieben usw. Aber zu Deiner Frage: in VB steht "o" für Object. Man sieht sofort, mit "Set" zuweisen usw. Zum Vergleich: in C++ schreibt man "p" für Pointer (andere wissen gleich: "malloc", "free", "memcpy", und benutzen Java *g*) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Entwicklungsingenieur (m/w/d) Nutzfahrzeuge | Die besten Köpfe für die unterschiedlichsten Aufgaben zu finden sowie Menschen und Technologien zu verbinden, und zwar täglich aufs Neue - dafür schätzen unsere Kunden FERCHAU. Unterstütze uns: als ambitionierte:r Kolleg:in, der:die wie wir Technologien auf die nächste Stufe bringen möchte. Wir realisieren spannende Projekte für namhafte Kunden in allen Technologiebereichen und für alle Branchen und übernehmen Verantwortung für komplexe Entwicklungsprojekte.... | Anzeige ansehen | Entwicklung |
|
93Aero Mitglied Ing
Beiträge: 106 Registriert: 02.12.2004
|
erstellt am: 06. Dez. 2005 15:24 <-- editieren / zitieren --> Unities abgeben: Nur für leipziger
|