Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  CatiaV5 - Type eines Shapes auselesen

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:  CatiaV5 - Type eines Shapes auselesen (663 / mal gelesen)
Phil1234
Mitglied


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

Beiträge: 3
Registriert: 20.01.2016

erstellt am: 20. Jan. 2016 13:19    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 programmiere derzeit mit Python eine Schnittstelle zwischen Catia und Excel und habe dabei folgendes Problem:
Ich würde gerne den "Type" eines Shapes abfragen, also ob es sich bei dem Shape z.B. um ein Pad oder um eine Chamfer handelt.
Für Constraints habe ich das schon hinbekommen. Sieht wie folgt aus:

Sket = part.Mainbody.Sketches
for a in range (1,Sket.Count+1):
    for b in range (1,Sket.Item(a).Constraints.Count+1):
        if (Sket.Item(a).Constraints.Item(b).Type) == 5:

Ich durchlaufe also meine Skizzen und in jeder Skizze nochmal die Bedingungen. Dann folgt für jede Bedingung die Abfrage nach dem Typ. Wenn dieser gleich 5 ist (für Längen), dann kann der weitere Code ausgeführt werden.

So etwas benötige ich jetzt auch für Shapes, damit ich abfragen kann ob es sich um einen Block oder eine Fase oder sonst etwas handelt. Für mich war folgende Abfrage naheliegend:

Shp = part.Mainbody.Shapes
for a in range (1,Shp.Count+1):
    if (Shp.Item(a).Type) == ?

Das funktioniert aber nicht. Scheinbar hat ein Shape keinen Typ!? Hat jemand eine Idee, wie es klappen könnte? Oder wie der Type bei der Klasse Shape richtig heißt/angesteuert werden kann?

Gruß
Phil

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 20. Jan. 2016 14:09    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 Phil1234 10 Unities + Antwort hilfreich

Servus
Schon mal mit der allgemeinen Methode "TypeName" probiert?
Code:
MsgBox TypeName(Shp.Item(a))
Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Phil1234
Mitglied


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

Beiträge: 3
Registriert: 20.01.2016

erstellt am: 20. Jan. 2016 15:53    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

Hi,
wenn ich deinen Code so eingebe, dann wird mir folgender Fehler angezeigt:
  NameError: Name "TypeName" is not defined
Ich nehme an, das liegt daran, dass python nicht erkennt, dass es sich um eine Methode handelt. Weißt du (oder irgendjemand) wie ich die Methode Nutzen kann? Kann / muss ich da irgendetwas importieren? Oder muss ich die Methode ähnlich wie Parts "ansteuern"? Also irgendwas vor TypeName wie z.B.:
Pfad.Activedocument.Methods.TypeName

Gruß
Philipp

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

bgrittmann
Moderator
Konstrukteur


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

Beiträge: 11780
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 20. Jan. 2016 16:50    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 Phil1234 10 Unities + Antwort hilfreich

Servus
"TypeName" ist eine Mehtode von VB bzw VBA. Kommt also nicht aus der CATIA-API
Gibt es bei Python so was nicht?

Gruß
Bernd

------------------
Warum einfach, wenn es auch kompliziert geht.

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

Phil1234
Mitglied


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

Beiträge: 3
Registriert: 20.01.2016

erstellt am: 22. Jan. 2016 12:54    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

Hi
also ich hab jetzt eine ganze Weile versucht, das Problem zu lösen, aber irgendwie will es mir nicht gelingen.

in Python gibt es die Methode "type", diese gibt den Typ zurück (also wenn ich ein x vom Typ int habe und type(x) eingebe kommt int raus, bzw. "type 'int'". Meiner Vorstellung nach sollte sie eigentlich das gleiche bewirken wie die VBA Methode TypeName, macht sie aber nicht. Wenn ich sie auf CATIA anwende, erhalte ich als Ergebnis "type 'instance'"... und damit kann ich irgendwie nix anfangen.
Dann hab ich noch die Methode StringType gefunden, diese spuckt mir "COMObjekt Item" aus. Auch das hilft mir nicht wirklich

Hat noch irgendjemand eine Idee? Bzw. den passenden Python-Begriff/Code für die Aufgabe, die die VBA Methode TypeName erfüllt? Ich denke, dass das genau der richtige Ansatz ist, aber ich bekomm es in Python nicht umgesetzt. Ich habe jetzt schon sehr viele Versuche gestartet (oben sind nur 2 Auszüge von etlichen), aber es mag nicht funktionieren.

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