Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Übergabe an Funktion macht Probleme

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:  Übergabe an Funktion macht Probleme (273 mal gelesen)
Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 11. Feb. 2009 15:07    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

Hi,

ich habe hier ein CATScript welches eine Function beinhaltet die Daten ausliest. Die Auswahl wird vorweg per Selektion getroffen.


CATMain()
  Dim userSel
  Dim i
  Dim manuSetup
  Set userSel = CATIA.ActiveDocument.Selection
  For i = 1 To userSel.Count
    If userSel.Item(i).Type = "ManufacturingSetup" Then
      Set manuSetup = userSel.Item(i).Value
      Daten_auslesen ("A", manuSetup)
    End If
  Next
End Sub

Function Daten_auslesen (Parameter As String, Aufspannung as ManufacturingSetup) As String
...
End Function

Rufe ich die Function nur mit Daten_auslesen ("A") auf (vorrausgesetzt die Function wurde noch verändert in: Daten_auslesen (Parameter As String) As String dann geht der Aufruf.
Sobald ich aber eine Aufspannung mit rannehmen will dann streikt die Kiste. Eine genaue Fehlerbeschreiung kann ich nicht liefern denn er meckert dann auch gleich an dass er die CATMain() nicht finden kann und das ist wieder der Fehler der so nicht ist.

Vielleicht hat von Euch einer ne Idee.

Gruß

Tiberius

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 11. Feb. 2009 15:15    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 Tiberius 10 Unities + Antwort hilfreich

Hallo,
du machst einen entscheidenden Fehler. Du übergibst nicht das Item ManufacturingSetup sondern einen Wert vom Typ String oder Integer. Daher stimmt die Formatierung nicht. Würdest du nur Set manuSetup = userSel.Item(i) über geben, dann sollte es je nach weiterverarbeitung klappen. Außerdem würde ich, um sicherzugehen und Speicherplatz zu sparen (wenn möglich) niemals ein Object ohne Vorgabe deklarieren, es sei denn es könnte sein, dass verschiedene Typen verarbeitet werden müssen. Daher würde ich an deiner Stelle "Dim manuSetup as ManufacturingSetup" schreiben, dann würde der Fehler vorher auffallen.

HTH

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)

Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 11. Feb. 2009 15:50    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,

das hatte (.Value entfernt) ich schon aus Verzweifelung probiert, hat aber leider nicht funktioniert. Die Deklaration der Variablen hab ich auch gleich erledigt inzwischen.

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

RSchulz
Moderator²
Head of CAD, Content & Collaboration / IT-Manager



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

Beiträge: 5541
Registriert: 12.04.2007

@Work
Lenovo P510
Xeon E5-1630v4
64GB DDR4
Quadro P2000
256GB PCIe SSD
512GB SSD
SmarTeam V5-6 R2016 Sp04
CATIA V5-6 R2016 Sp05
E3.Series V2019
Altium Designer/Concord 19
Win 10 Pro x64

erstellt am: 11. Feb. 2009 15:56    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 Tiberius 10 Unities + Antwort hilfreich

Versuchs mal mit:
Set manuSetup = userSel.Item(i).Item

------------------
MFG
Rick Schulz

Nettiquette (CAD.de)

Konfuzius sprach: "Wer sich das Alte noch einmal vor Augen führt, um das Neue zu verstehen, der kann anderen ein Lehrer sein."

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

HoBLila
Mitglied
Dipl.-Ing. (BA) praktische Informatik - Senior Entwickler CAx


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

Beiträge: 1118
Registriert: 29.05.2008

DELL PRECISION T3500
Intel(R) Xeon(R) CPU W3540 @ 2.93GHz
12285 MB RAM
NVIDIA Quadro FX 1800
Microsoft Windows 7 Enterprise Service Pack 1
CATIA V5 R19 SP09 HF69
VB6.5
CAA RADE CDC

erstellt am: 11. Feb. 2009 17:12    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 Tiberius 10 Unities + Antwort hilfreich

Übergib mal die Aufspannung As Variant und dann As Object (Ich vermute es liegt daran, dass ein Objekt vom Typ Variant übergeben wird, aber ein anderer Typ erwartet wird oder an der API).
Kann CATScript überhaupt mit Funktionen?
Wenn Variant uach nicht geht dann mal ByRef probieren.

------------------
Mit freundlichen Grüßen,
Henry Schneider
alias Lila

Es gibt einen ewigen Wettkampf zwischen der Natur und den Ingenieuren:
Die Ingenieure versuchen, immer idioten-sicherere Systeme zu bauen,
die Natur versucht, immer bessere Idioten zu bauen

Xing

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

Tiberius
Mitglied
 


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

Beiträge: 414
Registriert: 19.02.2002

erstellt am: 12. Feb. 2009 14: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

Hi,

bin nicht weitergekommen mit den Hinweisen. Vielleicht hab ich auch was übersehen. Inzwischen hab ich hier und da noch etwas geändert. Ich hab jetzt mal nen direkten Schnipsel aus dem Skript beigefügt:

CATMain()
.
.
.


    Dim MafaSetup as ManufacturingSetup
    Dim MafaProg as ManufacturingProgram
         
    For i = 1 To userSel.Count - 1

      If userSel.Item(i).Type = "ManufacturingSetup" Then
     
          Set MafaSetup = userSel.Item(i)
         
          For ii = i + 1 to userSel.Count
         
            If userSel.Item(ii).Type = "ManufacturingProgram" Then
           
              Set MafaProg = userSel.Item(ii)
             
              msgbox MafaSetup.type & " Typ"
              msgbox MafaProg.type & " Typ"
             
              Daten_auslesen ("A", MafaSetup)
             
            End If
           
          Next

      End If
     
    Next
.
.
.
End Sub

Function Daten_auslesen (Parameter As String, MafaSetup As ManufacturingSetup) As String
  msgbox Parameter & " ist uebergeben worden"
End Function


Ich steige in mein Skript mit 3 selektierten Elementen ein (1 ManufacturingSetup und 2 ManufacturingProgram) diese habe ich zuvor im Skript schon ermittelt und ausgegeben zur Kontrolle. Dort hat er alles richtig angezeigt bei den Abfragen.

Gruß

Tiberius

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