Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Parameterübergabe in Prozedur wie?

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:  Parameterübergabe in Prozedur wie? (1451 mal gelesen)
Andreas01
Mitglied
Dipl.-Ing.(FH) Konstrukteur


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

Beiträge: 227
Registriert: 05.08.2004

Inventor 2022
i7
32 GB RAM
Quatro FX 4000
WIN10-64bit

erstellt am: 04. Apr. 2007 10:06    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 Forum,

habe mal eine Frage und zwar:

wie kann ich folgendes in eine Prozedur übergeben (oProducts)

Dim oProducts as String
.
.
Set oProducts = CATIA.ActiveDocument.Product.Products.Item(i).Products

Call Prozedur(oProducts)
.
.
.
Sub Procedur(oTest as String)

Parameter = oTest

End Sub

Der Datentyp String ist falsch, habe es schon mit Datentyp Objekt versucht, es hat auch nicht funktioniert, liegt wahrscheinlich an
meinen VBA-Kenntnissen, hat jemand eine Idee wie ich es machen kann?

Hoffentlich kann mir jemand folgen.

Gruß

Andreas

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

Proofin
Mitglied
Dpl.Ing


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

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 04. Apr. 2007 10:31    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 Andreas01 10 Unities + Antwort hilfreich

Moin Andreas,

was möchtest du denn übergeben??
Im Moment entnehme ich dem Code, das du eine Liste der Produkte übergeben möchtest.

In dem Fall sollte der Objekttype "Products" sein.
Im Zweifelsfall laß den Type komplett weg, dann sucht sich VBA selbst einen passenden aus.
Nachteil ist du kannst alle Obejkte übergeben und es steht dir nicht die  Auswahlliste, die zu dem gewünschten Objekt gehört, zur Verfügen.

Gruß
Proofin

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

Andreas01
Mitglied
Dipl.-Ing.(FH) Konstrukteur


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

Beiträge: 227
Registriert: 05.08.2004

Inventor 2022
i7
32 GB RAM
Quatro FX 4000
WIN10-64bit

erstellt am: 04. Apr. 2007 10: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 Proofin,

ich möchte den String "CATIA.ActiveDocument.Product.Products.Item(i).Products" in die Prozedur übergeben, damit ich dann die Parameter auslesen kann. Habe das Vorher so gemacht:

'--------------
Public Sub f_Daten_auslesen_2(i As Integer, ii As Integer)
       
Set otest = CATIA.ActiveDocument.Product.Products.Item(i).Products.Item(ii)
       
'Props auslesen
zaehler = zaehler + 1
lst_Ausgabefenster.AddItem (zaehler & " Teilenummer: " & otest.PartNumber)

lst_Ausgabefenster.AddItem ("Überarbeitung: " & otest.Revision)
lst_Ausgabefenster.AddItem ("Definition: " & otest.Definition)
lst_Ausgabefenster.AddItem ("Nomenklatur: " & otest.Nomenclature)
lst_Ausgabefenster.AddItem ("Beschreibung: " & otest.DescriptionRef)
   
End Sub

'---------------------
jedoch muß ich für jede Unterbaugruppe diesen Code neu schreiben. Wenn ich jetzt anstatt
Public Sub f_Daten_auslesen_2(i As Integer, ii As Integer)

Public Sub f_Daten_auslesen_2(oDoc as ...)
Set otest = oDoc (also CATIA.ActiveDocument.Product.Products.Item(i).Products.Item(ii))

übergeben könnte dann habe ich nur diese Prozedur auf die ich immer wieder zugreifen kann.

Gruß

Andreas

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

Proofin
Mitglied
Dpl.Ing


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

Beiträge: 208
Registriert: 24.11.2004

erstellt am: 04. Apr. 2007 11: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 Nur für Andreas01 10 Unities + Antwort hilfreich

Ok, der String bringt dir aber nichts es sein denn du willst in ausgeben.
Ich bin nicht ganz sicher, ob ich richtig verstanden hab was du vor hast.
Aber ich würde das Rekrusiv versuchen aus zulesen.

In etwas so:
---------------------------------------------
Code
---------------------------------------------

Sub main()

Call f_Daten_auslesen_2(CATIA.ActiveDocument.Product.Products)

End Sub

Sub f_Daten_auslesen_2(ByVal oProducts As Products)

  Dim ii As Integer
  ' zählt alle ausgaben
  Static zaehler As Integer
 
  ' alle Produkte in der List abarbeiten
  For ii = 1 To oProducts.Count
    zaehler = zaehler + 1

    lst_Ausgabefenster.AddItem (zaehler & " Teilenummer: " &  oProducts.Item(ii).PartNumber)

    lst_Ausgabefenster.AddItem ("Überarbeitung: " & oProducts.Item(ii).Revision)
    lst_Ausgabefenster.AddItem ("Definition: " & oProducts.Item(ii).Definition)
    lst_Ausgabefenster.AddItem ("Nomenklatur: " & oProducts.Item(ii).Nomenclature)
    lst_Ausgabefenster.AddItem ("Beschreibung: " & oProducts.Item(ii).DescriptionRef)
   
    ' auslesen der produkte unter diesem Produkt starten
    Call Auslesen(oProducts.Item(ii).Products)
  Next

End Sub

---------------------------------------------
Code Ende
---------------------------------------------

vielleicht hilft das ja weiter

Gruß
Proofin

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

Andreas01
Mitglied
Dipl.-Ing.(FH) Konstrukteur


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

Beiträge: 227
Registriert: 05.08.2004

Inventor 2022
i7
32 GB RAM
Quatro FX 4000
WIN10-64bit

erstellt am: 04. Apr. 2007 15: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

Danke Proofin,

ich werde mir das mal später anschauen.

Gruß

Andreas

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