Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Spline aus Unterfunktion übergeben

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:  Spline aus Unterfunktion übergeben (1384 mal gelesen)
pfannensepp
Mitglied



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

Beiträge: 74
Registriert: 03.11.2011

HP Z800
12x 2,66Ghz
24GB RAM
CATIA V5 R19

erstellt am: 08. Dez. 2011 10: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

Hallo,

ich habe eine Funktion geschrieben, welche den Benutzer auffordert, eine Linie auszuwählen. Dann wird aus der Linie ein Extract gebidlet und auf diesem werden dann Punkte gelegt. Im Anschluss wird durch die Punkte ein Spline gelegt. Das Ergebnis ist Quasi ein Spline der auf der Ursprungskontur liegt.
Mein Problem ist, das ich die Funktion in meinem Main Programm aufrufen will und dann den Spline weiter verwenden will. D.H ich will den Spline als Rückgabewert der Funktion. Hab schon alles Mögliche probiert...die Funktion als HybridShapeSpline deklariert, als Refernce den Splien zu übergeben...aber ich schaff es nicht, Die Funktion aufzurufen und dann mit dem Erzeugen Spline weiterzuarbeiten. (Ich wollte nicht im Baum dann nach dem Namen vom spline suchen, sondern direkt mti dem Objekt arbeiten)

Mein Code

Code:
Function SplineAusAuswahl() As Variant
   
    Dim Spline As HybridShapeSpline
    Dim MeinPart As Part
    Dim Wzk3D As HybridShapeFactory
    Set MeinPart = CATIA.ActiveDocument.Part
    Set Wzk3D = MeinPart.HybridShapeFactory
    Dim Was(0)
    Dim UserSel As Object
    Dim Kante As HybridShapeExtract
    Dim Punkt(100)
    Set GeoSet = MeinPart.HybridBodies.Item(1)
   
    Was(0) = "AnyObject"
    Set UserSel = CATIA.ActiveDocument.Selection
    UserSel.Clear
    E = UserSel.SelectElement2(Was, "Bitte erste Kante auswählen!", False)
   
    If E = "Normal" Then
   
        Set Kante = Wzk3D.AddNewExtract(UserSel.Item(1).Value)
        GeoSet.AppendHybridShape Kante
        MeinPart.Update
       
        For i = 1 To 50
           
            Prozent = i / 50
            Set Punkt(i) = Wzk3D.AddNewPointOnCurveFromPercent(Kante, Prozent, False)
            Punkt(i).Name = "Punkt_" & i
            GeoSet.AppendHybridShape Punkt(i)
           
        Next
        MeinPart.Update
        Set Spline = Wzk3D.AddNewSpline
        GeoSet.AppendHybridShape Spline
       
        For i = 1 To 50
       
            Spline.AddPoint Punkt(i)
   
        Next
       
        MeinPart.Update
   
    Else
   
        Dim Box
        Box = MsgBox("Abbruch", 16)
   
    End If
   
  SplineAusAuswahl = Spline
End Function

der Aufruf

Code:
Private Sub CommandButton2_Click()
Dim Spline As Variant
Spline = SplineAusAuswahl()
End Sub


Kann mir ejmand helfen, wie ich den Spline danach verwenden kann?

Gruß

Sepp

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

gladly
Mitglied



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

Beiträge: 56
Registriert: 02.11.2007

Catia V5R19SP9HF40 64Bit
Windows XP Pro x64

erstellt am: 08. Dez. 2011 11:57    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 pfannensepp 10 Unities + Antwort hilfreich

Guten Tag,

ich vermute ein Problem, bin aber nicht sicher, das es nur das ist...

Also: Objekte müssen immer mit "set" einer Variable zugeornet werden. Auch die Catia-Objekte sind Objekte im Sinne von VBA.

Änderungen an folgenden Stellen:

Code:

Function SplineAusAuswahl() as Object 'As Variant
...
set SplineAusAuswahl = Spline
End Function

Code:

Dim Spline as Object 'Oder as Hybridshapespline damit man codevervollständigung hat 'As Variant
set Spline = SplineAusAuswahl()

mich wundert nur, das keine fehlermeldung bei der ausführung kommt. Eigentlich müsste eine meldeung von wegen with block blabla kommen.


mfg

gladly

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

pfannensepp
Mitglied



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

Beiträge: 74
Registriert: 03.11.2011

HP Z800
12x 2,66Ghz
24GB RAM
CATIA V5 R19

erstellt am: 08. Dez. 2011 13: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

Vielen Dank! Es geht:-)

Ich habe es auch schon mit einem Object probiert, allerdings bei Funktionsaufruf nicht

set Spline = SplineAusAuswahl()

geschrieben.

Schönen Tag noch


[Diese Nachricht wurde von pfannensepp am 08. Dez. 2011 editiert.]

[Diese Nachricht wurde von pfannensepp am 08. Dez. 2011 editiert.]

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