Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Sub-Prozedur wird nicht komplett ausgeführt

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:  Sub-Prozedur wird nicht komplett ausgeführt (1171 mal gelesen)
Chrisma
Mitglied
Ingenieur


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

Beiträge: 85
Registriert: 29.03.2010

erstellt am: 19. Mai. 2010 13:26    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

Servus alle zusammen,

versuche mich gerade an Unterroutinen, wenn das so heißt. Hätte geren ein Sub, dass mir die Werte eines bestimmten Punkte ausgibt. Aufbau ist:

Sub Main()
...                  '----hier wird ein Punkt gesucht und ausgewählt
Call Punkt(VariablePunkt)

End Sub

_______________
Sub Punkt(Eingang)

Dim aktPu As HybridShapeIntersection
Dim ocooru As Object
Dim Coordinatesu(2)

Set aktPu = Eingang.Reference

Set ocooru = Messung.GetMeasurable(aktPu)

ocooru.GetPoint Coordinates

MsgBox ("X=" & Coordinatesu(0) & "  Y=" & Coordinatesu(1) & "  Z=" & Coordinatesu(2))

End Sub
_____________

Das ganze springt in das Sub Punkt() überspringt dort die Dimensionierungen und geht nach Set aktPu = Eingang.Reference wieder aus dem Sub raus. Hat einer ne Ahnung wo das Problem ist?

------------------
Hihihi, lol, hihihi 

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

mgheinz1001
Mitglied
Dipl.-Ing. (FH)


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

Beiträge: 109
Registriert: 17.03.2005

erstellt am: 19. Mai. 2010 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 Chrisma 10 Unities + Antwort hilfreich

Hi,

es könnte daran liegen, dass irgend wo vor der Anweisung Call Punkt(VariablePunkt) ein On Error Resume Next steht. Wenn dann nämlich die Anweisung Set ocooru = Messung.GetMeasurable(aktPu) in der Sub fehlschlegt, wird das Sub an der Stelle wieder verlassen und mit der darauf folgenden Anweisung fortgefahren. Der Grund dafür könnte z. B. sein, dass die Variable bzw. das Objekt Eingang gar keine Eigenschaft namens Reference besitzt oder die Zuweisung nicht funktioniert, da die Datentypen nicht übereinstimmen (Reference <> HybridShapeIntersection).

Gruß

[Diese Nachricht wurde von mgheinz1001 am 19. Mai. 2010 editiert.]

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

Chrisma
Mitglied
Ingenieur


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

Beiträge: 85
Registriert: 29.03.2010

Solid Works 2013 Professional
Win7 SP1
Intel Xeon 2,67GHz
12GB Ram

erstellt am: 19. Mai. 2010 15: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

Danke für die Antwort, aber das ist es nicht.

Liegt wahrscheinlich an meinem Unverständnis für die Übergabe von Variablen. Wenn ich alles am Stück schreibe funktioniert es. Habe hier mal das Beispiel nochmal komplett. Allerdings mit der Auswahl der gesuchten Intersects als Function. Sobald ich aber die Funktion wieder verlasse ist die Sel ja wieder leer. Wie übergebe ich meine Selektion also ans Sub Main? Das gleiche Vorgehen ist ja dann bei der Übergabe an "Koordianten vom Hilfspunkt bestimmen".


Sub CATMain()

Version = "1.0"
Makroname = "Finden von Extrempunkten und Hinzufügen zu Spline"


On Error Resume Next
Set Messung = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
Set MessungKP = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
Set part1 = CATIA.ActiveDocument.Part

'----Überprüfung ob Dokument geöffnet ist
If CATIA.Documents.Count = 0 Then
        MsgBox ("Kein Dokument geöffnet!")
        Exit Sub
End If

Call Auswahl

'----Auswahl der Intersects einer Ebene

For variable = 204 To 206
Set inspeicher = sel.Item(variable)

'----Bestimmung der Ebene
If (inspeicher.Value.Parent.Parent.name = "Output_1") Then
   
'----Koordianten vom Hilfspunkt bestimmen
Dim aktP As HybridShapeIntersection

Set aktP = inspeicher.Reference

Dim ocoor As Object
Set ocoor = Messung.GetMeasurable(aktP)
   
Dim Coordinates(2)
ocoor.GetPoint Coordinates
MsgBox ("X=" & Coordinates(0) & "  Y=" & Coordinates(1) & "  Z=" & Coordinates(2))

End If
Next

End Sub

Function Auswahl()


CATIA.HSOSynchronized = False
Dim sel As Selection
Set sel = CATIA.ActiveDocument.Selection
sel.Clear
sel.Search ".Intersect.name=Intersect_*;Alle"
CATIA.HSOSynchronized = True

End Function

------------------
Hihihi, lol, hihihi 

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

Lusilnie
Mitglied



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

Beiträge: 1486
Registriert: 13.07.2005

erstellt am: 19. Mai. 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 Nur für Chrisma 10 Unities + Antwort hilfreich

Hallo Chrisma,

ich denke Dein Problem liegt darin begründet, dass sowohl Messung als auch Sel nur lokal, also innerhalb der Sub's bzw. Funktion's definiert sind. Wenn Du beide global definierst, also mittels Dim oder Public "oberhalb" aller Sub's bzw. Funktion's, sollte Dein Script funktionieren.


mfg,
Lusilnie

------------------
Alle Aussagen zu DassaultSystemes-Produkten sind sehr optimistisch, selbst diese!!!

frei nach größeren Geistern

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