Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Winkel Zwischen 2 Ebenen Messen

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:  Winkel Zwischen 2 Ebenen Messen (1463 mal gelesen)
razzor88
Mitglied



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

Beiträge: 42
Registriert: 09.06.2016

erstellt am: 07. Jan. 2017 19:02    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

Guten Abend zusammen,

ich versuche momentan den Winkel zwischen einer Ebene von einem Achsensystem und irgend einer anderen Ebene zu messen. Komischer weise hat es schon ein paar mal funktioniert aber nun will es auf einmal nicht mehr funktionieren. Kann mir vielleicht jemand sagen wo mein Fehler liegt?
Ich Programmiere mit Visual Studio 2015 und arbeite mit Catia V5 R24 SP6

Code:

Dim Doc_1 As Document ' Bauteil Dokument
Dim Part1 As Part ' Bauteil Part
Dim Selection_1 As Selection ' Selektion Aktives Part
Dim Selection_Filter(0) ' Filter für Userselektion
Dim SPAWorkbench As SPAWorkbench
Dim MyMeasurable As Measurable
Dim Statusabfrage As String ' Status für MsgBox und Selektion
Dim AXS_Bauteil As AxisSystem ' Achsensystem AXS_Bauteil
Dim AXS_Bauteil_Plane_XY As Reference ' Referenz der XY-Ebene des Achsensystems AXS_Bauteil
Dim AXS_Bauteil_Plane_YZ As Reference ' Referenz der YZ-Ebene des Achsensystems AXS_Bauteil
Dim AXS_Bauteil_Plane_XZ As Reference ' Referenz der XZ-Ebene des Achsensystems AXS_Bauteil
Dim AXS_Bauteil_X_Axis As Reference ' Richtung der X-Achse des Achsensystems AXS_Bauteil
Dim AXS_Bauteil_Y_Axis As Reference ' Richtung der Y-Achse des Achsensystems AXS_Bauteil
Dim AXS_Bauteil_Z_Axis As Reference ' Richtung der Z-Achse des Achsensystems AXS_Bauteil
Dim AXS_Bauteil_OriginPoint As Reference ' Referenz vom OriginPoint des Achsensystems AXS_Bauteil
Dim Referenzebene As Plane ' Referenzebene aus Userselektion
Doc_1 = Catia.ActiveDocument
Selection_1 = Doc_1.Selection
Part1 = Doc_1.part
SPAWorkbench = Doc_1.GetWorkbench("SPAWorkbench")
Selection_Filter(0) = "Plane"

' Referenzen vom "AXS_Bauteil" erstellen
AXS_Bauteil_Plane_XY = Part1.CreateReferenceFromBRepName("RSur:(Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";1);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", AXS_Bauteil)
AXS_Bauteil_Plane_YZ = Part1.CreateReferenceFromBRepName("RSur:(Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";2);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", AXS_Bauteil)
AXS_Bauteil_Plane_XZ = Part1.CreateReferenceFromBRepName("RSur:(Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";3);None:();Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", AXS_Bauteil)
AXS_Bauteil_X_Axis = Part1.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";1);None:();Cf11:());Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";3);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", AXS_Bauteil)
AXS_Bauteil_Y_Axis = Part1.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";2);None:();Cf11:());Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";1);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", AXS_Bauteil)
AXS_Bauteil_Z_Axis = Part1.CreateReferenceFromBRepName("REdge:(Edge:(Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";3);None:();Cf11:());Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";2);None:();Cf11:());None:(Limits1:();Limits2:());Cf11:());WithPermanentBody;WithoutBuildError;WithSelectingFeatureSupport;MFBRepVersion_CXR15)", AXS_Bauteil)
AXS_Bauteil_OriginPoint = Part1.CreateReferenceFromBRepName("FVertex:(Vertex:(Neighbours:(Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";2);None:();Cf11:());Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";3);None:();Cf11:());Face:(Brp:(" & AXS_Bauteil.GetItem("ModelElement").InternalName & ";1);None:();Cf11:()));Cf11:());WithPermanentBody;WithoutBuildError;WithInitialFeatureSupport;MFBRepVersion_CXR15)", AXS_Bauteil)

' Userselektion Ebene für die Bohrungen auswählen
Userselektion:
Statusabfrage = Selection_1.SelectElement2(Selection_Filter, "Ebene für Bohrungen auswählen", False)
If Statusabfrage = "Cancel" Then
    MsgBox("Der Vorgang wurde abgebrochen", vbCritical + vbSystemModal)
    Exit Sub
End If

If TypeName(Selection_1.Item(1).Value) = "PlanarFace" Then
    Referenzebene = Selection_1.Item(1).Value.Parent
Else
    Referenzebene = Selection_1.Item(1).Value
End If
Selection_1.Clear()
MyMeasurable = SPAWorkbench.GetMeasurable(AXS_Bauteil_Plane_XY)
If Not MyMeasurable.GetAngleBetween(Referenzebene) = 0 Then
    Statusabfrage = MsgBox("Die ausgewählte Ebene ist ungültig", vbCritical + vbSystemModal + vbRetryCancel)
   If Statusabfrage = vbCancel Then
       Exit Sub
   ElseIf Statusabfrage = vbRetry Then
       GoTo Userselektion
   End If
End If


[Diese Nachricht wurde von razzor88 am 07. Jan. 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: 07. Jan. 2017 19:49    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 razzor88 10 Unities + Antwort hilfreich

Servus
Muss der Methode GetAngleBetween nicht eine Reference übergaben werden?

Gruß
Bernd

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

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

razzor88
Mitglied



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

Beiträge: 42
Registriert: 09.06.2016

erstellt am: 07. Jan. 2017 19:58    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


Fehler.PNG

 
Ja es soll eine Referenz übergeben werden. Es hat bei mir allerdings bisher auch immer geklappt die Plane direkt zu übergeben... Aber selbst wenn ich es mit der Referenz versuche kommt der gleiche Fehler...
MyMeasurable.GetAngleBetween(Part1.CreateReferenceFromObject(Referenzebene))

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: 07. Jan. 2017 21:54    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 razzor88 10 Unities + Antwort hilfreich

Servus
Klappt die Messung zwischen 2 Ebenen oder zwischen 2 Ebenen des Achsensystems?
Werden die Referencen gebildet?

EDIT:
Irgendwie scheint die Reference über den BREP-Zugriff nicht zu passen. Wenn ich da eine andere Reference (zB der Ebene) übergebe läuft der Code zumindest durch.
Beim Vergleich des BREP-Zugriff mit einer Makroaufzeichnung hab ich keinen Fehler erkennen können.

Gruß
Bernd

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

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

razzor88
Mitglied



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

Beiträge: 42
Registriert: 09.06.2016

erstellt am: 08. Jan. 2017 11: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

Ja ich verstehe es nicht... das messen zwischen 2 erzeugten Ebenen klappt einwandfrei. Aber sobald ich zu einer Ebene vom Achsensystem messen will klappt es nicht mehr...
Der BREP Zugriff müsste eigentlich korrekt sein... zumindest kann ich auch Offsetebenen erzeugen wenn ich die Ebenen vom Achsensystem als Referenz angebe.

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: 08. Jan. 2017 11: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 Nur für razzor88 10 Unities + Antwort hilfreich

Servus
Sonderbar wenn man die Messung umdreht (Measureable mit der Reference der Ebene erzeugen und zu einem BREP-Element des Achsensystem messen) geht es.

Gruß
Bernd

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

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

razzor88
Mitglied



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

Beiträge: 42
Registriert: 09.06.2016

erstellt am: 08. Jan. 2017 12: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

Hmm das funktioniert bei mir komischerweise auch nicht...
Aber es Funktioniert wenn ich von der Ebene zu einer Achse vom Achsensystem messe...
Echt seltsam.. würde zu gern wissen warum das nicht funktioniert...
Was gibts denn sonst noch für Möglichkeiten zu überprüfen ob eine Ebene paralell zu einer Ebene von einem Achsensystem ist?

Gibts eine Möglichkeit Hybridshapedirections direkt miteinander zu vergleichen? Oder muss man wirklich die einzelnen Komponenten der Hybridshapedirections miteinander vergleichen?

[Diese Nachricht wurde von razzor88 am 08. Jan. 2017 editiert.]

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

joehz
Moderator
Freiberuflicher Konstrukteur


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

Beiträge: 1057
Registriert: 25.11.2006

Win7 Pro 64 + Ubuntu + Irix6.5.20
Dell Precision M6600 i7-2960XM 2.7GHz 16GB
NVidia Quadro M5010
Catia V5R19
VB6Pro.SP6/VBA 6.5.1053

erstellt am: 08. Jan. 2017 16: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 razzor88 10 Unities + Antwort hilfreich

Hi razzor,

Du könntest die Achsen verwenden und die Abfrage von

If Not MyMeasurable.GetAngleBetween(...) = 0 Then

zu

If Not MyMeasurable.GetAngleBetween(...) = 90 Then

ändern.

Das scheint wenigstens zu funktionieren.

Tschau,
Joe

------------------
Inoffizielle Catia Hilfeseite

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