Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de
  CATIA V5 Programmierung
  Angle between two planes

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für CATIA & Co.
  
KISTERS 3DViewStation: 3D-Visualisierung für After Sales, Service und Ersatzteile, eine Pressemitteilung
Autor Thema:  Angle between two planes (2598 mal gelesen)
Sylas
Mitglied



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

Beiträge: 349
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 26. Mrz. 2015 09: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

Hello Scripters

I have few catparts, which have to be detailed on the drawing. Each of those parts is cut with carbody, so it has to be projected on the drawing through xy, yz, or zx plane instead of its "first pad reference plane (first pad sketch plane)".

So, I'm trying to measure the angle between sketch plane and xy, yz, and zx planes of car zero axis system, to determine the frontview plane for the view.
I want to choose the case in which angle between the sketch plane and reference plane is the smallest.
The Code to measure the angles:

Code:
Sub test()

Dim NC_Parts As Selection
'Dim m As Integer
Dim part2 As Part
Dim referencepart As Part
Dim bodies2 As bodies
Dim body2 As body
Dim NC_coords(8)
Dim sketch 'As sketch
Dim measuredplane As HybridShapePlane2Lines
Dim reference1 As Reference
Dim reference2 As Reference
Dim reference3 As Reference
Dim reference4 As Reference
Dim angle_XY As Double
Dim angle_ZX As Double
Dim angle_YZ As Double
Dim Plaszczyzna_NC As Plane
Dim TheSpaWorkbench As Workbench
Dim Themeasurable As Measurable

Set NC_Parts = CATIA.ActiveDocument.Selection
NC_Parts.Search "(Name=*konturstueck* & CATPrtSearch.PartFeature),all"

Set part2 = NC_Parts.Item(3).Value 'fixed to item3, which is on purpose rotated 30 degrees around Y-axis of the car zero Axis system

Set bodies2 = part2.bodies


Set body2 = bodies2.Item("Funktionsteil")

Set sketch = body2.Sketches.Item(1)

Dim hybridshapefactory As hybridshapefactory
Set hybridshapefactory = part2.hybridshapefactory

Dim hybridBodies2 As hybridbodies
Set hybridBodies2 = part2.hybridbodies

Dim hybridBody2 As HybridBody
Set hybridBody2 = hybridBodies2.Add()

hybridBody2.Name = "NEW GEOMETRICAL SET"

'sets the newly created geometrical set as the in work object
part2.InWorkObject = hybridBody2
part2.Update

'sketch is located on the plane which is to be measured
Set reference1 = part2.CreateReferenceFromGeometry(sketch.AbsoluteAxis.HorizontalReference)
Set reference2 = part2.CreateReferenceFromGeometry(sketch.AbsoluteAxis.VerticalReference)


Set measuredplane = hybridshapefactory.AddNewPlane2Lines(reference1, reference2)
measuredplane.Name = "measuredplane"

hybridBody2.AppendHybridShape measuredplane
part2.Update

    Dim productDocument2 As ProductDocument
    Set productDocument2 = CATIA.ActiveDocument

    Dim selection2 As Selection
    Set selection2 = productDocument2.Selection

    selection2.Search "Name=*adapter,all" 'adapter is another part, which is locatated always in 0,0,0 of the Car Axis system
   
    Dim adapter As Part
    Set adapter = selection2.Item(1).Value
   
Set referenceplane = adapter.OriginElements.PlaneXY
'Set referenceplane = adapter.

            Set reference3 = adapter.CreateReferenceFromObject(referenceplane)
            Set reference4 = part2.CreateReferenceFromObject(measuredplane)
            Set TheSpaWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
            Set Themeasurable = TheSpaWorkbench.GetMeasurable(reference3)
            angle_XY = Themeasurable.GetAngleBetween(reference4)
           
            'If angle_XY > 90 Then
            '  angle_XY = Round((180 - angle_XY), 2)
            'End If
   
   
Set referenceplane = adapter.OriginElements.PlaneZX
            Set reference3 = adapter.CreateReferenceFromObject(referenceplane)
            Set reference4 = part2.CreateReferenceFromObject(measuredplane)
            Set TheSpaWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
            Set Themeasurable = TheSpaWorkbench.GetMeasurable(reference3)
            angle_ZX = Themeasurable.GetAngleBetween(reference4)
               
            'If angle_ZX > 90 Then
              '  angle_ZX = Round((180 - angle_ZX), 2)
            'End If
               
               
Set referenceplane = adapter.OriginElements.PlaneYZ
            Set reference3 = adapter.CreateReferenceFromObject(referenceplane)
            Set reference4 = part2.CreateReferenceFromObject(measuredplane)
            Set TheSpaWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
            Set Themeasurable = TheSpaWorkbench.GetMeasurable(reference3)
            angle_YZ = Themeasurable.GetAngleBetween(reference4)
           
            'If angle_YZ > 90 Then
            '    angle_YZ = Round((180 - angle_YZ), 2)
          ' End If
       

'Plaszczyzna_NC is the Frontview plane, which is used to generate the view
If (angle_XY < angle_ZX And angle_XY < angle_YZ) Then

Set Plaszczyzna_NC = adapter.OriginElements.PlaneXY
ElseIf (angle_ZX < angle_XY And angle_ZX < angle_YZ) Then

Set Plaszczyzna_NC = adapter.OriginElements.PlaneZX
Else

Set Plaszczyzna_NC = adapter.OriginElements.PlaneYZ
End If

Dim rem_sel As Selection
Set rem_sel = CATIA.ActiveDocument.Selection
rem_sel.Add hybridBody2
rem_sel.Delete
rem_sel.Clear

End Sub


As I wrote before, I've on purpose rotated NC_Parts.Item(3) 30 deg around Y axis of the Car zero.
Just to understand if my code is working, I've checked the values of:
angle_XY
angle_YZ
angle_ZX
Theoretically, they should look like this:
angle_XY=30 [deg]
angle_YZ=60 [deg]
angle_ZX=90 [deg]
so, the Plaszczyzna_NC should be set to XY.
Meanwhile, the code gives me following values (Screenshot from Watch-window):

I'm wondering why my Code returns me those weird values. Can anyone advise?

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: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 26. Mrz. 2015 10:09    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 Sylas 10 Unities + Antwort hilfreich

Hi,
Where do you want to measure the angle? In the CATProduct?
You create the reference for the plane in the part.
IMHO you can not use this reference for measurments in the CATProduct.

Regards,
Bernd


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

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

Sylas
Mitglied



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

Beiträge: 349
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 26. Mrz. 2015 11: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

Hi Bernd

Actually, I need to measure measuredplane in reference to Axis system in another part, so - yes - I'm measuring it between parts in assembly workbench.

Do you think, that I should first create Axissystem in the part and then measure between planes inside one part? The Axissystem should then be exactly in the same position, as car axissystem... What do you think about this idea?

Best regards
Lukas

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: 12054
Registriert: 30.11.2006

CATIA V5R19

erstellt am: 28. Mrz. 2015 09:29    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 Sylas 10 Unities + Antwort hilfreich

Hi Likuas

This sounds like a good idea. But i wouldn't create a axis-system (getting the reference planes is difficult), I would create onley some planes.

Bernd

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

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

Sylas
Mitglied



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

Beiträge: 349
Registriert: 19.11.2012

Dell Precision T3500
Intel Xeon W3550 @ 3,07 GHz
12 GB RAM
CATIA V5 R28

erstellt am: 30. Mrz. 2015 09:18    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

OK. I'll check that out. Thank you Bernd.

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)2025 CAD.de | Impressum | Datenschutz