Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Viewpoint aus VB2008 heraus erstellen bzw. ändern

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:  Viewpoint aus VB2008 heraus erstellen bzw. ändern (1605 mal gelesen)
magicneo
Mitglied



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

Beiträge: 12
Registriert: 08.06.2007

CATIA V5 R17

erstellt am: 08. Nov. 2010 23:20    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 zusammen,

ich arbeite mit VB 2008 und möchte den aktuellen Viewpoint verändern.
Hab schon alles möglich probiert - auch die Script Beispiele aus der Doku Automation... - nix funzt.
Hab es z.B. mit diesen Funktionen probiert:

CATIA.ActiveWindow.ActiveViewer.Viewpoint3D.GetOrigin() - zum Auslesen des aktuellen Viewpoints
                                                          funktioniert nicht
CATIA.ActiveWindow.ActiveViewer.Viewpoint3D.PutOrigin() - zum Setzen des aktuellen Viewpoints
                                                          funktioniert nicht

Vielleicht kann mir jemand von Euch weiterhelfen.

Vielen Dank schon mal im Voraus ...

Martin

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: 08. Nov. 2010 23: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 Nur für magicneo 10 Unities + Antwort hilfreich

Servus
Hast du beim GetOrgin einen entsprechenden Array dimensioniert? Übergibst du beim PutOrign die Koordinaten (als Array oder Aufzähun)?

Gruß
Bernd

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

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

magicneo
Mitglied



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

Beiträge: 12
Registriert: 08.06.2007

CATIA V5 R17

erstellt am: 09. Nov. 2010 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 Bernd,

könntest Du mir bitte mal ein Beispiel dafür schreiben - ich habe so meine Probleme mit den Array's bzw wie und in welcher Form ich die Koordinaten übergeben oder bekommen. Da ich schon viel probiert habe und nix funktioniert hat, weiss ich auch nicht, ob es richtig gewesen wäre. Im Moment hab ich den Eindruck, dass ich über VB2008 nicht auf die Koordinaten eines Viewpoint zugreifen kann.

Viele Grüße

Martin

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: 09. Nov. 2010 18:16    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 magicneo 10 Unities + Antwort hilfreich

Hallo Martin,

es ist relativ einfach.
Was du an CATIA übergibst, muss aoObjektArray as Object() deklariert sein.
CATIA gibt dir die Ergebnisse ebenfalls als Objektarray zurück, die dann auf Double/String oder sonst was konvertiert werden müssen.
Anbei zwei .NET Hilfsfunktionen und ein Beispiel dazu:

Code:
  Public Function ConvertObjArr2DblArr(ByVal aobjInput As Object()) As Double()
        Dim adblWork As Double()

        adblWork = New Double(aobjInput.Length - 1) {}
        For i As Integer = 0 To aobjInput.Length - 1
            adblWork(i) = CDbl(aobjInput(i))
        Next
        Return adblWork
    End Function

    Public Function ConvertDblArr2ObjArr(ByVal adblInput As Double()) As Object()
        Dim aobjWork As Object()

        aobjWork = New Object(adblInput.Length - 1) {}
        For i As Integer = 0 To adblInput.Length - 1
            aobjWork(i) = adblInput(i)
        Next
        Return aobjWork
    End Function

'Beispielaufruf:
Dim adblOrigin(2) As Double
oViewPoint3D.PutOrigin(ConvertDblArr2ObjArr(adblOrigin))
Dim aoSavedSightDirection(2) As Object
oViewPoint3D.GetSightDirection(aoSavedSightDirection)


Gruß,
Zoltan

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

magicneo
Mitglied



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

Beiträge: 12
Registriert: 08.06.2007

CATIA V5 R17

erstellt am: 09. Nov. 2010 20:46    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,

das mag für Dich relativ einfach sein ... ich kapier es nicht und es funktioniert bei mir auch nicht. Ich hab zuerst mal versucht, den aktuellen Viewpoint mit diesen Zeilen auszulesen:

Dim aoSavedSightDirection(2) As Object
oViewPoint3D.GetSightDirection(aoSavedSightDirection)

Bei einer Überwachung von aoSavedSightDirection war der Inhalt 3x Noting. Macht nix, dachte ich und hab dann die Funktion zum Konvertieren aufgerufen:

ConvertObjArr2DblArr(aoSavedSightDirection)

Das Ergebnis war eine Variable mit 3 Werten - alle Werte waren 0.0.
Also irgendwie funzt das nich ... oder ich bin zu blöd dazu.

Und wie konvertiere ich einen gewünschten viewpoint origin 0,0,0 und übergebe das dann an den aktuellen CATIA V5 viewpoint. Stehe auf dem Schlauch bzw. auf der Leitung. Bin kein eingefleischter Programmierer - bitte für nen Halb-Dummie ;-) erklären.

Viele Grüße

Martin

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

magicneo
Mitglied



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

Beiträge: 12
Registriert: 08.06.2007

CATIA V5 R17

erstellt am: 09. Nov. 2010 21:29    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,

Kommando zurück - meistens sitzt der Fehler halt doch vor der Kiste  - fett sorry - passt alles perfekt - es funzt!!!
Mein Fehler war die Konvertierung eines Array in ein Objekt Array. Ich steige zwar noch nicht ganz durch Deinen Code durch - aber das krieg ich schon hin. Hauptsache es funzt!

Vielen Dank und viele Grüße

Martin

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: 10. Nov. 2010 18:29    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 magicneo 10 Unities + Antwort hilfreich

Hallo Martin,

prinzipiell musst du wissen, dass CATIA alle Arrays als Objekt, den Grundlegenden Typ von VB.NET (in VBA hieß es noch Variant) liefert und auch erwartet.
Mit diesen Typ kannst du aber nicht rechnen (kein Double oder Integer) oder es auch nur schwer als Zeichen/String verwenden.

In den Funktionen ist nur eine Deklaration vorhanden und eine Schleife. Dieser geht durch den Input Array durch und konvertiert die Werte. In unseren Fall einmal Double->Objekt (hier braucht man keine Sonderfunktion zur Konvertierung), und einmal Objekt->Double (hier wird als Funktion CDbl() verwendet).

Ähnliche Funktionen kann man sich auch selber basteln und die können auch etwas anders aussehen, da man mit mehreren Befehlen auf den gleichen Ergebnis kommen kann.
Hier wäre z.B. auch der Weg über Redim und die Schleife über LBound(Array) UBound(Array) als "VBA alte Schule" gegangen.

Ich hoffe, somit ist es auch besser nachvollziehbar, was die beiden Funktionen bewirken.

Gruß,
Zoltan

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