Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Positionierung auf einer Leitkurve

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:  Positionierung auf einer Leitkurve (983 mal gelesen)
Student051089
Mitglied



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

Beiträge: 44
Registriert: 23.08.2017

Catia V5 R26

erstellt am: 01. Sep. 2017 10:05    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,
ich stehe vor folgendem Problem.
Ich würde gerne auf einer Leitkurve in einem gewissen Abstand Positionierungen vornehmen.
Als Grundgerüst erstelle ich jeweils eine Ebene mit gewissen Abstand zur Hauptebene. Jede Ebene wird als Intersect mit der Leitkurve verwendet. Das Intersect gilt als Positionierungsursprung. Mein Problem ist, dass die Leitkurve irgendwann aufhört. Gerne würde ich eine If- Abfrage aufbauen, welche untersucht ob das Intersect die Leitkurve "schneitet". Falls ja soll im gewissen Abstand ein neues Offset der Ebene und ein neues Intersect entstehen. Falls nein [There is no solution for this operation], soll das Makro einfach weiter laufen.
Weiß jemand ob das so geht wie ich mir das vorstelle? Wenn ja wie baue ich die If abfrage auf?
Code:

If...
'Offset Plane XZ 150
    Dim hybridShapePlaneOffset2 As HybridShapePlaneOffset
    Set hybridShapePlaneOffset2 = hybridShapeFactory1.AddNewPlaneOffset(hybridShapePlaneNormal2, 150#, True)
    hybridBody4.AppendHybridShape hybridShapePlaneOffset2
    hybridShapePlaneOffset2.Name = "Offset.Plane_XZ_150"

'Intersect XZ150 Flaeche
    Dim voIntersection4 As HybridShapeIntersection
    Set voIntersection4 = hybridShapeFactory1.AddNewIntersection(hybridShapePlaneOffset2, hybridShapeCurvePar3)
    hybridBody4.AppendHybridShape voIntersection4
    voIntersection4.Name = "Intersect.Plane_XZ_150_Flaeche"
    part1.UpdateObject hybridBody4
End If


Catia V5 R26


[Diese Nachricht wurde von Student051089 am 01. Sep. 2017 editiert.]

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: 01. Sep. 2017 10: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 Nur für Student051089 10 Unities + Antwort hilfreich

Servus

Willkommen im Forum.
Du könntest kurzfristig die Fehlerbehandlung ausschalten, dann das Update ausführen und dann den Fehler auswerten. zB

Code:
'Fehlerbehandlung ausschalten
on error resume next
part1.Update

'Fehler abfragen
if Err.Number <>  0 then
  MsgBox "Fehler aufgetreten"
  'Aufräumen zB Elemente löschen, Fehler zurücksetzen und Update
  hybridShapeFactory1.DeleteObjectForDatum(hybridShapeIntersection1)
  Err.clear
  part1.Update
  'und ggf exit for um die Schleife zu beenden
end if

'Fehlerbehandlung einschalten!!
On error goto 0


Hier findest du Beispiele zu Fehlerbehandlung in VBA.

Gruß
Bernd

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

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

Student051089
Mitglied



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

Beiträge: 44
Registriert: 23.08.2017

Catia V5 R26

erstellt am: 01. Sep. 2017 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

Hi Bernd,
danke für die schnelle Antwort!
Ich weiß leider nicht wie ich die If- Abfrage aufbaue, die mir dann Automatisch ein neues Offset mit Intersect mit neuem Abstand erstellt. Weißt du da auch eine Antwort?
Grüße

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: 01. Sep. 2017 10: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 Nur für Student051089 10 Unities + Antwort hilfreich

Servus
Wie wäre es wenn du über eine Schleife (zB for-next) die Ebenen und Verschneidungen erzeugst. Falls ein Fehler auftritt die Schleife verlassen.
Grobe Struktur:
Code:
for i= 1 to 100 'maximal 100 Ebenen
   'Ebene erzeugen mit Abstand i * 100mm
   'Verschneidung erzeugen
   'if-Bedingung:
   ' - falls Fehler: Ebene und Verschneidung löschen
   ' - exit for
   'end if
next
Oder du misst erste den Abstand zum Ende der Leitkurve, dann kannst du die Anzahl der Schleifenabläufe direkt bestimmen.

Gruß
Bernd

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

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

Student051089
Mitglied



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

Beiträge: 44
Registriert: 23.08.2017

Catia V5 R26

erstellt am: 04. Sep. 2017 10:00    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 Bernd,
vielen Dank für deine Antworten!
Es hat alles super funktioniert!

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