Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Zugriff auf UserSurface

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:  Zugriff auf UserSurface (1681 mal gelesen)
Robert B.
Mitglied


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

Beiträge: 4
Registriert: 24.06.2009

erstellt am: 24. Jun. 2009 10:35    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 neu in der Welt der Makroprogrammierung und scheitere beim Versuch ein UserSurface anzusprechen. Ich bekomme die Fehlermeldung "Method 'IsNull' of object 'UserSurfaces' failed"
Kann mir jemand sagen was ich falsch mache?

Hier der Code:

  Sub catmain()

  Dim documents1 As Documents
  Set documents1 = CATIA.Documents

  Dim partDocument1 As PartDocument
  Set partDocument1 = documents1.Item("Test.CATPart")

  Dim part1 As Part
  Set part1 = partDocument1.Part

  Dim usersurfaces1 As UserSurfaces
  Set usersurfaces1 = part1.UserSurfaces

  Dim usersurface1 As UserSurface
  Set usersurface1 = usersurfaces1.Item(1)    'an dieser Stelle komme ich nicht weiter

  End Sub

Vielen Dank im Voraus,

Grüße Robert

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

Maetes
Mitglied
Student


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

Beiträge: 118
Registriert: 05.05.2009

XP 64Bit
CATIA V5R19SP4
MS Office 2003

erstellt am: 24. Jun. 2009 11:02    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 Robert B. 10 Unities + Antwort hilfreich

Bin selbst völliger Anfänger aber probier mal eines von den Befehlen aus:
  Set usersurface1 = usersurfaces1.Item(1).Value
  Set usersurface1 = usersurfaces1.Item(1).Reference
  oder
  Set usersurface1 = usersurfaces1.Item(1).Value.Name
  msgbox usersurface1
Habs nicht ausprobiert, habs jetzt nur mal von meinem jetztigen Projekt abgeleitet.
Vllt hilfts. Gs

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

Robert B.
Mitglied


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

Beiträge: 4
Registriert: 24.06.2009

erstellt am: 24. Jun. 2009 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 Meates,

danke für die Antwort. Leider funktionieren deine Vorschläge nicht.

Über weitere Ratschläge bin ich sehr dankbar...

Grüße Robert

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 24. Jun. 2009 19:27    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 Robert B. 10 Unities + Antwort hilfreich

Hallo Robert,

ich kenne zwar leider nicht, wozu UserSurfaces gut sind, mit der Programmierbarkeit ist allerdings unter R19 wirklich was faul. Es scheint nichts zu funktionieren (man kann weder durch Item, noch durch GetItem auf Elemente der Collection zugreifen), obwohl der Count weit über 0 ist.
Braucht man dazu etwa einen FTA-Lizenz? In V5Automation steht fast alles über diese Collection unter "3D Functional Tolerancing & Annotations"?

Gruß,
Zoltan

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

Robert B.
Mitglied


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

Beiträge: 4
Registriert: 24.06.2009

erstellt am: 25. Jun. 2009 10:37    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 Zoltan,

in einem UserSurface sind die Geometrieelemente hinterlegt, auf welchen eine Annotation (z.B. eine Toleranz) sitzt.
Neue UserSurfaces generieren und anschließend Referenzen hinzufügen stellt kein Problem dar. Jedoch bestehende UserSurfaces anzusprechen funktioniert nicht. Des Weiteren würde ich auch gern wissen, wo man den Link zur Annotation findet, d.h. wie bekomme ich heraus, welches UserSurface zu welcher Annotation gehört?

Zu deiner Frage mit der FTA-Lizenz: Ich habe eine, aber es funktioniert trotzdem nicht.

Grüße,

Robert

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

zoltan.bekesi
Mitglied



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

Beiträge: 321
Registriert: 22.10.2006

Job:
CATIA V5R19 / XP 32bit
MS Office 2003
Microstation V8 2004 Edition
DELL Precision M6300

erstellt am: 25. Jun. 2009 20:35    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 Robert B. 10 Unities + Antwort hilfreich

Hallo Robert,

habe momentan zwar kein FTA-Lizenz, dein Problem kann man aber wahrscheinlich auf eine andere Art lösen.
Wenn ich es richtig verstanden habe brauchst du die Info, an was dein Annotation angehängt ist. Ich habe es geschafft es textuell auszudrücken, indem ich von Annotation gefragt habe, an was bist du angehängt.
Anbei mein Code (VBA, unter R19 getestet, mit nur ein Part geöffnet):

Code:
Sub catmain()
    Dim Part1 As Part
    Set Part1 = CATIA.ActiveDocument.Part

    Dim oAnnotationSets1 As AnnotationSets
    Set oAnnotationSets1 = Part1.AnnotationSets

    Dim oAnnotationSet As AnnotationSet
    Set oAnnotationSet = oAnnotationSets1.Item(1)

    Dim oAnnotation    'As Annotation 'nur die übliche VBA Zickigkeit
    Set oAnnotation = oAnnotationSet.Annotations.Item(1)

    Dim iSurfacesCount As Integer
    iSurfacesCount = oAnnotation.GetSurfacesCount
    Dim oSurfaces()
    If iSurfacesCount > 0 Then
        ReDim oSurfaces(iSurfacesCount - 1)
        oAnnotation.GetSurfaces oSurfaces

        Dim i As Integer
        For i = 0 To iSurfacesCount - 1
            Debug.Print oSurfaces(i)
        Next

    End If

End Sub


Vielleicht hilft dir das weiter.
Oder du kannst vielleicht die Lösung unter "Annotation" in V5Automation.chm finden

Gruß,
Zoltan

[Diese Nachricht wurde von zoltan.bekesi am 25. Jun. 2009 editiert.]

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



NC-Programmierer*in (m/w/d) Automatisierung / Robotertechnik

Wir - die MT Aerospace - sind Teil des Raumfahrt- und Technologiekonzerns OHB. Als international führendes Unternehmen der Luft- und Raumfahrt entwickeln, fertigen und testen wir wesentliche Komponenten für Trägerraketen-Programme wie Ariane, das amerikanische Space Launch System (SLS) sowie kommerzielle Trägersysteme, die Airbus Flotte, Raumfahrzeuge, Satelliten und Anwendungen im Verteidigungsbereich....

Anzeige ansehenAutomatisierungstechnik
Robert B.
Mitglied


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

Beiträge: 4
Registriert: 24.06.2009

erstellt am: 26. Jun. 2009 12:37    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 Zoltan,

mit der Methode ".GetSurfaces" erhalte ich nur die Geometrieelemente auf denen die Annotation sitzt. Interessanter zu wissen wäre aber welches UserSurface zu welcher Annotation gehört. Am besten wäre es, ein UserSurface gegen ein anderes "auszutauschen", die V5Automation.chm bietet da allerdings nicht so viele Möglichkeiten. Und die, die dokumentiert sind (siehe ".Item"), wollen einfach nicht funktionieren...

Trotzdem danke, schönes Wochenende,

Robert

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