Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Translate bis Intersect / Kontakt

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:  Translate bis Intersect / Kontakt (1226 mal gelesen)
Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 20. Mrz. 2019 15:55    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 Frage an die Catia Experten.
Ich möchte eine Fläche so lange translaten, bis ein intersect mit einer anderen Fläche entsteht. Also quasi eine Funktion "mache ein Translate mit 0,1mm; wenn Intersect nein, mache noch ein Translate mit 0,1mm, wenn Intersect nein, mache noch ein Translate mit 0,1mm usw.
Ich habe an Checks bzw, Rules gedacht, aber kann man damit nach dem Prüfen, ob ein Kontakt vorliegt, ein Befehl hinterherschieben?

Vielen Dank schonmal!

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: 20. Mrz. 2019 18: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 Desken 10 Unities + Antwort hilfreich

Servus

Ist das Element groß genug dass du beim Translate "Bis zu Element" nutzen kannst?
Oder ggf den Abstand messen und dann den Wert für den Translate nutzen.

Gruß
Bernd

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

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

wolfi_z
Ehrenmitglied V.I.P. h.c.
Konstrukteur



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

Beiträge: 2356
Registriert: 04.12.2004

erstellt am: 21. Mrz. 2019 06: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 Desken 10 Unities + Antwort hilfreich

Wenn Du weisst, welcher Punkt auf Flaeche A der ist, der am naechsten zu Flaeche B liegt (funktioniert ggf. mit Extremum), dann kannst Du ja in diesem Punkt X eine Line normal to surface erstellen, und dann die Intersection mit B bilden (Y), und dann Translate point to point X -> Y durchfuehren.

LG ... Wolfi 

------------------
NX neun minus CATIA fuenf ergibt Hartz IV 

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

Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 21. Mrz. 2019 08:22    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 Antworten!

Die Flächen sind groß genug, es soll ein Pendel simuliert werden, welche gegen ein Stoßfänger schlägt. Ich kenne den UptoElement Befehl nur beim Extrude, geht das denn auch beim Translate?

Da das Pendel nicht aus ebenen Flächen besteht, wird deine Idee mit einer Linie normal to Surface leider auch nicht funktionieren, Wolfi. Das Pendel wird aus verschiedenen vorgegebenen Winkeln "Geschossen" und es soll dann ermittelt werden, wo es als erstes aufschlägt.
Meine Idee war es, dass zunächst eine Genauigkeit (0,1mm) als Parameter eingegeben wird und dieser Wert dann in die ganzen Translates eingelesen werden. Es ensteht somit ein Raster aus Translateflächen, bis ein Kontakt mit dem Stoßfänger vorliegt..

Kann man denn mit Rules oder anderen versteckten Befehlen eine If Then Schleife aufbauen?

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: 21. Mrz. 2019 09: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 Nur für Desken 10 Unities + Antwort hilfreich

Servus

Schon mal überlegt das in einer Baugruppe zu bestimmen:
- zB mit "Manipulation bei Kollision stoppen"
- oder in der Kinematik bzw Fitting Workbench

Gruß
Bernd

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

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

Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 21. Mrz. 2019 09:10    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 Bernd,

es soll ein einer Powercopy verarbeitet werden. Powercopys gehen ja glaube ich nur im Part oder?

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

Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 21. Mrz. 2019 10:32    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

Wobei die Idee gar nicht so schlecht ist. Überlege gerade, die Prüfung doch ohne Powercopy zu machen, sondern nur mittels VBA Makro. Wäre es möglich, den Befehl Manipulation up to Clash mittels Macro auszuführen?

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

Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 21. Mrz. 2019 13:42    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

Noch eine Idee, die mir eingefallen ist:
Per Makro den Befehl Translate durchgeben und anschließend ein Intersect durchführen lassen. Mit einer If-Schleife soll der Vorgang wiederholt werden, wenn eine Fehlermeldung (Intersect nicht möglich, Update error)erscheint. Dies sollte solange durchgeführt werden, bis ein Intersect möglich ist.

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: 21. Mrz. 2019 14:41    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 Desken 10 Unities + Antwort hilfreich

Servus

Das sollte per Makro möglich sein. Ein Codebeispiel um zu prüfen ob sich zwei Elemente überschneiden findest du hier.
Wenn du für Optimierungen eine Lizenz hast müsste es damit auch gehen.

Gruß
Bernd

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

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

Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 21. Mrz. 2019 15:13    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 den Link! Werde ich mal ausprobieren

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

Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 22. Mrz. 2019 08:24    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 Bernd,
ich bekomme es gerade nicht auf die Reihe, die Funktion aus deinem Link einzubinden. Er fordert vor der Function ein EndSub. Wird das gesetzt, wird das Makro wie gewohnt an der Stelle beendet und die Funktion wird ignoriert. Es wird vorher ein Geoset  und ein Translate erzeugt. Dann soll mit der Funktion die Intersection geprüft werden.
Mir fehlt da glaube ich noch ein Befehl wie Run Funktion() etc...

Gruß Dennis

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: 22. Mrz. 2019 08:28    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 Desken 10 Unities + Antwort hilfreich

Servus

Die Function muss außerhalb der Sub im Code stehen. In deinem Programm wird die Funktion dann nur aufgerufen (und entsprechende Objekte übergeben).
ggf fehlen dir ein paar Grundlagen zu VB(A).

Gruß
Bernd

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

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

Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 22. Mrz. 2019 08:45    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

Da hast du recht, Grundlagen fehlen mir noch. Gerade im Bereich Functions Collections etc. Habe zwar schon ein kleines Tutorial durchlaufen. Kennst du noch eine gute Seite für mit Tutorials?

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

Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 22. Mrz. 2019 10:47    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

Ich habe die Funktion CheckIntersection soweit es geht an meinen Code angepasst, jedoch kommt die Fehlermeldung "Argument not optional", was mich gerade verzweifeln lässt. Ich habe schon recherchiert, aber noch keinen Hinweis gefunden. Scheinbar stimmt etwas mit meinen Parametern noch nicht:

Hier ein Teil des Codes:

Code:

part1.Update

Dim Stoßfaenger As HybridShapeSurfaceExplicit
Set Stoßfaenger = parameters1.Item("10A_807_109____DMU_TM__019_____TRAEGER_STOSSF-VO-_VZD5226")

Dim hybridShapes2 As HybridShapes
Set hybridShapes2 = hybridBody1.HybridShapes

Dim Pendel As HybridShapeTranslate
Set Pendel = hybridShapes2.Item("Translate.4")


Debug.Print CheckIntersection  'Hier die Felhlermeldung


End Sub


Function CheckIntersection(Stoßfaenger As Variant, Pendel As Variant) As Boolean
On Error GoTo Blast
Dim TestInt As HybridShapeIntersection
Set TestInt = hybridBody1.AddNewIntersection(Stoßfaenger, Pendel)
CATIA.ActiveDocument.Part.UpdateObject TestInt
CheckIntersection = True
Exit Function
Blast:
CheckIntersection = False
End Function


Über einen Hinweis wäre ich sehr dankbar!

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: 22. Mrz. 2019 10: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 Desken 10 Unities + Antwort hilfreich

Servus

Wie wäre es so:

Code:
Dim Pendel As HybridShapeTranslate
Set Pendel = hybridShapes2.Item("Translate.4")

Debug.Print CheckIntersection Stoßfaenger, Pendel  'ggf mit Klammern

End Sub


Function CheckIntersection(Object1 As Variant, Object2 As Variant) As Boolean
On Error GoTo Blast
Dim TestInt As HybridShapeIntersection
Set TestInt = MyHSFactory.AddNewIntersection(Object1, Object2)
CATIA.ActiveDocument.Part.UpdateObject TestInt
CheckIntersection = True
Exit Function
Blast:
CheckIntersection = False
End Function


Die Gültigkeit von Variablen scheint dir noch nicht klar zu sein.
Vermutlich muss MyHSFactory (die HybridShapeFactory) als globale Variable deklariert und zuweisen sein. (oder Function entsprechend umbauen)

Gruß
Bernd

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

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

Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 22. Mrz. 2019 12:11    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

Es hat jetzt geklappt, es hat mit meiner hybridshapefactory noch nicht hingehauen und die Parameter wurden nochmal klarer definiert. Ich bin Schritt für Schritt den Code nochmal durchgegagen. Die Funktion wird nun verwendet und es wird geprüft, ob ein Intersect da ist. Die nächsten Schritte sind: Einbauen in eine Schleife, Einlesen des Translatebetrages über einen Parameter.

Bis dahin schonmal Vielen Dank, ich melde mich garantiert nochmal

Code:

Sub CatMain()


Dim partDocument1 As PartDocument
Set partDocument1 = CATIA.ActiveDocument

Dim part1 As Part
Set part1 = partDocument1.Part

Dim hybridShapeFactory1 As HybridShapeFactory
Set hybridShapeFactory1 = part1.HybridShapeFactory

Dim hybridBodies1 As HybridBodies
Set hybridBodies1 = part1.HybridBodies

Dim hybridBody1 As HybridBody
Set hybridBody1 = hybridBodies1.Item("Konstruktion")

Dim hybridShapes1 As HybridShapes
Set hybridShapes1 = hybridBody1.HybridShapes

Dim hybridShapeIntersection1 As HybridShapeIntersection
Set hybridShapeIntersection1 = hybridShapes1.Item("Intersect.1")

Dim reference1 As Reference
Set reference1 = part1.CreateReferenceFromObject(hybridShapeIntersection1)

Dim hybridShapeDirection1 As HybridShapeDirection
Set hybridShapeDirection1 = hybridShapeFactory1.AddNewDirection(reference1)

Dim hybridShapeTranslate1 As HybridShapeTranslate
Set hybridShapeTranslate1 = hybridShapeFactory1.AddNewEmptyTranslate()

Dim hybridShapeTranslate2 As HybridShapeTranslate
Set hybridShapeTranslate2 = hybridShapes1.Item("Translate.1")

Dim reference2 As Reference
Set reference2 = part1.CreateReferenceFromObject(hybridShapeTranslate2)

hybridShapeTranslate1.ElemToTranslate = reference2

hybridShapeTranslate1.VectorType = 0

hybridShapeTranslate1.Direction = hybridShapeDirection1

hybridShapeTranslate1.DistanceValue = -5#

hybridShapeTranslate1.VolumeResult = False

Dim hybridBody2 As HybridBody
Set hybridBody2 = hybridBodies1.Item("Translation")

hybridBody2.AppendHybridShape hybridShapeTranslate1

part1.InWorkObject = hybridShapeTranslate1

part1.Update

Dim parameters1 As Parameters
Set parameters1 = part1.Parameters

Dim Stoßfaenger As HybridShapeSurfaceExplicit
Set Stoßfaenger = parameters1.Item("10A_807_109____DMU_TM__019_____TRAEGER_STOSSF-VO-_VZD5226")

Dim hybridShapes2 As HybridShapes
Set hybridShapes2 = hybridBody2.HybridShapes

Dim Pendel As HybridShapeTranslate
Set Pendel = hybridShapeTranslate1

Debug.Print CheckIntersection(Stoßfaenger, Pendel)

End Sub


Function CheckIntersection(Stoßfaenger As Variant, Pendel As Variant) As Boolean
On Error GoTo Blast
Dim TestInt As HybridShapeIntersection
Set TestInt = hybridShapeFactory1.AddNewIntersection(Stoßfaenger, Pendel)
CATIA.ActiveDocument.Part.UpdateObject TestInt
CheckIntersection = True
MsgBox "Yes"
Exit Function
Blast:
CheckIntersection = False
MsgBox "No"
End Function


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

Desken
Mitglied



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

Beiträge: 24
Registriert: 12.03.2019

Intel Xeon Cpu E5-1620
32Gb Ram
Catia V5

erstellt am: 28. Mrz. 2019 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

Hallo zusammen,
komme gerade bei der Weitergabe der Ergebnisse der Funktion (True/False) nicht weiter..
Die Funktion läuft super durch und definiert auch "Ergebnis" als "True bzw False" Verlasse ich nun die Funktion und gehe wieder ins Hauptsub, setzt er den Wert stets auf false, obwohl die Funktion True ausgegeben hat... Müsste ich das Ergebnis in der Funktion neu definieren oder doch in der Sub neu definieren?

Code:

...
Dim Ergebnis As Boolean


    If Ergebnis = False Then
        MsgBox "Hier kein Intersect"
  Else: MsgBox "jfjhgkjdfs"
 
   
    End If
End Sub


Private Function CheckIntersection(MeineStrakflaechen As Variant, X As Variant) As Boolean

Dim MeinDokument As PartDocument
Set MeinDokument = CATIA.ActiveDocument

Dim MeinPart As Part
Set MeinPart = MeinDokument.Part

Dim MeineFactory As HybridShapeFactory
Set MeineFactory = MeinPart.HybridShapeFactory

Dim Ergebnis As Boolean
Dim Bla As String


 
  On Error GoTo Blast
    Dim TestInt As HybridShapeIntersection
    Set TestInt = MeineFactory.AddNewIntersection(MeineStrakflaechen, X)
    CATIA.ActiveDocument.Part.UpdateObject TestInt
    Ergebnis = True
    MsgBox "Intersection!"
Exit Function
Blast:
    Ergebnis = False
    MsgBox "Keine Intersection!"

End Function


Kann man das Thema in ein anderen Forum (VBA-Programmierung)verschieben?

Danke!

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: 28. Mrz. 2019 18:21    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 Desken 10 Unities + Antwort hilfreich

Servus

Schau dir mal unbedingt die Grundlagen zu VB an. Im Speziellen die Sichtbarkeit/Gültigkeit von Variablen.
Die ursprüngliche Funktion ist so aufgebaut dass durch einen Aufruf diese zB

Code:
if CheckIntersection(Stoßfaenger, Pendel) is false then 'oder = false??
  'weiterer Code
end if
direkt ohne einen (globalen) Parameter diese verwendet werden kann.

Gruß
Bernd

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

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