Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  klasse des Shape?

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  klasse des Shape? (739 mal gelesen)
leipziger
Mitglied
Dipl.-Ing. Maschinenbau (FH)


Sehen Sie sich das Profil von leipziger an!   Senden Sie eine Private Message an leipziger  Schreiben Sie einen Gästebucheintrag für leipziger

Beiträge: 171
Registriert: 05.09.2005

AIX 275
CatiaV5 R14 SP3

erstellt am: 29. Nov. 2005 09:52    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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)


Sehen Sie sich das Profil von leipziger an!   Senden Sie eine Private Message an leipziger  Schreiben Sie einen Gästebucheintrag für leipziger

Beiträge: 171
Registriert: 05.09.2005

AIX 275
CatiaV5 R14 SP3

erstellt am: 29. Nov. 2005 10:59    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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.

CUSee You

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

tomtom1972
Mitglied
dipl ing maschinenbau


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für leipziger 10 Unities + Antwort hilfreich

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


Sehen Sie sich das Profil von Randle an!   Senden Sie eine Private Message an Randle  Schreiben Sie einen Gästebucheintrag für Randle

Beiträge: 695
Registriert: 12.04.2003

Win10 x64
CATIA V5 R18, R19, R21, R27-29

erstellt am: 29. Nov. 2005 17:44    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für leipziger 10 Unities + Antwort hilfreich

Hallo,

ich hatte vor kurzem das gleiche Problem. Darum hier die Lösung
CATVBA:

If TypeOf Shape1 Is Hole Then
blabla
End If

Viel Spass

------------------
MfG
Randle

! It's not a bug, it's a feature !

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

leipziger
Mitglied
Dipl.-Ing. Maschinenbau (FH)


Sehen Sie sich das Profil von leipziger an!   Senden Sie eine Private Message an leipziger  Schreiben Sie einen Gästebucheintrag für leipziger

Beiträge: 171
Registriert: 05.09.2005

AIX 275
CatiaV5 R14 SP3

erstellt am: 30. Nov. 2005 20:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von tomtom1972 an!   Senden Sie eine Private Message an tomtom1972  Schreiben Sie einen Gästebucheintrag für tomtom1972

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 oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für leipziger 10 Unities + Antwort hilfreich

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)


Sehen Sie sich das Profil von leipziger an!   Senden Sie eine Private Message an leipziger  Schreiben Sie einen Gästebucheintrag für leipziger

Beiträge: 171
Registriert: 05.09.2005

AIX 275
CatiaV5 R14 SP3

erstellt am: 04. Dez. 2005 20:39    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

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


Sehen Sie sich das Profil von 93Aero an!   Senden Sie eine Private Message an 93Aero  Schreiben Sie einen Gästebucheintrag für 93Aero

Beiträge: 106
Registriert: 02.12.2004

erstellt am: 06. Dez. 2005 15:21    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für leipziger 10 Unities + Antwort hilfreich

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 ansehenEntwicklung
93Aero
Mitglied
Ing


Sehen Sie sich das Profil von 93Aero an!   Senden Sie eine Private Message an 93Aero  Schreiben Sie einen Gästebucheintrag für 93Aero

Beiträge: 106
Registriert: 02.12.2004

erstellt am: 06. Dez. 2005 15:24    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für leipziger 10 Unities + Antwort hilfreich

P.S. Zum Beitrag von TomTom

die genaue Bezeichnungen sind nicht vorgeschrieben, sondern einfach verbreitert und es sind Variationen möglich

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz