Maß aus CATIA auslesen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Podensa
User
Beiträge: 5
Registriert: Freitag 31. Juli 2015, 08:43

Hallo zusammen,

ich möchte aus einer Zeichnung in CATIA V5 ein Maß auslesen. Prinzipiell weiß ich schon wie es funktioniert, habe auch die Befehle aus der V5Automation, allerdings scheitert es am letzten Schritt.

Code: Alles auswählen

from math import *
import sys
from win32com.client import Dispatch
from TableReader import *
import win32com.client.dynamic

def CheckAndSetDocument():
    global myDrawingDocument
    myDocumentType=str(ReturnTypeOfDocument(CATIA.ActiveDocument))
    if myDocumentType != "CATDrawing":
        print "Please open a CATDrawing and run the program again."
        sys.exit()
    myDrawingDocument=CATIA.ActiveDocument
def ReturnTypeOfDocument(CatiaDocument):
    myNameOfDocument=str(CatiaDocument.Name)
    myArrayOfDocumentName=myNameOfDocument.split(".")
    myTypeOfDocument=myArrayOfDocumentName[-1]
    return myTypeOfDocument

CATIA = Dispatch('CATIA.Application')
CATIA.Visible=True

CheckAndSetDocument()
myDimension=myDrawingDocument.Sheets.Item(1).Views.Item(3).Dimensions.Item(1)
Value=myDimension.GetValue.Value #Hier tritt der Fehler auf
print Value
Dies ist die Fehlermeldung:
Traceback (most recent call last):
File "D:/Dokumente/Studium/Master/000_Thesis/ToleranceCheckerPython/KleinesProgramm.py", line 25, in <module>
Value=myDimension.GetValue.Value
AttributeError: 'function' object has no attribute 'Value'

Meine Theorie ist, dass Python die "GetValue"-Funktion von "Dispatch" aufruft und nicht die von CATIA. Kann das sein? Kann ich diese Methode irgendwie vom Import ausschließen?
Oder habt ihr eine andere Idee woran das liegen kann?
BlackJack

@Podensa: Die Fehlermeldung sagt die *Funktion* `myDimension.GetValue` hat kein Attribut `Value`. Vielleicht möchtest Du die Funktion *aufrufen* und dann vom Ergebnis des Aufrufs das `Value`-Attribut nehmen‽
jerch
User
Beiträge: 1669
Registriert: Mittwoch 4. März 2009, 14:19

Wie Du selber schreibst und auch die Fehlermeldung andeutet, ist `GetValue` eine Funktion, ergo musst Du sie auch so behandeln und aufrufen.

Code: Alles auswählen

myDimension.GetValue()
Podensa
User
Beiträge: 5
Registriert: Freitag 31. Juli 2015, 08:43

Das wars :)
DANKE!!!! Zwei Tage dran gesessen und dann warens nur Klammern... :oops:
Antworten