Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  CATIA V5 Programmierung
  Trägheit mehrerer Flächen 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:  Trägheit mehrerer Flächen messen (3501 mal gelesen)
Machiwi
Mitglied
Student

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

Beiträge: 5
Registriert: 19.06.2012

Win 7 Professional
CATIA V5 R19 SP8

erstellt am: 19. Jun. 2012 13:43    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,

ich hab folgendes Problem. Ich habe mehrere Flächen und brauch von jeder Fläche die Ausrichtung (x,y,z) der Trägheitsachsen. Ich hab den Code von diesem Beitrag "http://ww3.cad.de/foren/ubb/Forum137/HTML/002153.shtml#000004" schon probiert, aber der geht nur bei einer Fläche im Part/Produkt.

Mein Code sieht folgendermaßen aus:

VBA-Catia

Sub Catmain ()
MsgBox "Wählen Sie den zu untersuchenden Körper aus", vbInformation, makroname + " " + version
       
        AppActivate "CATIA V5"

        Set selection1 = activedoc.Selection
        Dim InputObjectType(0)
        InputObjectType(0) = "AnyObject"
       
        Status = selection1.SelectElement2(InputObjectType, "Wählen Sie den Körper aus", False)
        If (Status = "Cancel") Then
          MsgBox "Makro wurde abgebrochen", 16, makroname + " " + version
          Exit Sub
        Else
       
        Set myselec1 = selection1.Item(1).Value
       
        Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
        Set Inertia1 = TheSPAWorkbench.Inertias.Add(myselec1)
         
        Dim Compos1(8)
        Inertia1.GetPrincipalAxes Compos1
       
        Set Part1 = activedoc.Part
       
        'Schwerpunkt
        Set reference1 = Part1.CreateReferenceFromObject(myselec1)
        Set Measurable1 = TheSPAWorkbench.GetMeasurable(reference1)
          Dim Coord1(2)
          Measurable1.GetCOG Coord1
         
        Set hybridShapeFactory1 = Part1.HybridShapeFactory
        Set hybridBodies1 = Part1.HybridBodies
        Set hybridBody1 = hybridBodies1.Add
        hybridBody1.Name = "Test " + myselec1.Name
   
     
      'CATIA.StartCommand "Measure Inertia"
     
      'CATIA.StartCommand "Creation of geometry"

      Dim directions1(2)
      Set directions1(0) = hybridShapeFactory1.AddNewDirectionByCoord(Compos1(0), Compos1(3), Compos1(6))
      Set directions1(1) = hybridShapeFactory1.AddNewDirectionByCoord(Compos1(1), Compos1(4), Compos1(7))
      Set directions1(2) = hybridShapeFactory1.AddNewDirectionByCoord(Compos1(2), Compos1(5), Compos1(8))

      Set axisSystem1 = Part1.AxisSystems.Add()
      axisSystem1.PutOrigin Gcoord

    For A = 0 To 8
   
        MsgBox Components1(A)
       
    Next A
         
      Dim vectorXCoord(2)
      vectorXCoord(0) = Compos1(0)
      vectorXCoord(1) = Compos1(3)
      vectorXCoord(2) = Compos1(6)

      Dim vectorYCoord(2)
      vectorYCoord(0) = Components1(1)
      vectorYCoord(1) = Components1(4)
      vectorYCoord(2) = Components1(7)

      axisSystem1.PutVectors vectorXCoord, vectorYCoord

End If

End Sub

Das Problem liegt darin, dass ich für die Ausrichtung der Trägheitsachsen der Fläche  viel zu kleine Werte (0,2 e-298,...) bzw 0 heraus bekomme. Dadurch auch kein Achsensystem ordenltich ersellt werden kann. Es wird zwar eins erstellt, aber das ist dann nicht rechtwinklig. Und bei der Anzeige der Werte bleibt die Messagebox leer. Wenn ich das aber mit einem Körper mache, funktioniert das alles.

Wenn ich ein Achsensystem über "Trägheit messen" --> "Geometrieerzuegung" --> "Achsensystem erstellen" für eine Fläche mache, gibt er mir ein passendes Achsensystem aus, mit sinnvollen Werten (x,y,z) für die Achsenausrichtung.

Habt ihr eine Idee, woran das liegen könnte? Was brauch ich um die Trägheit der einzelnen Flächen richtig ausmessen zu können?

Danke euch.

Gruß Machhiwi

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: 19. Jun. 2012 16:53    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 Machiwi 10 Unities + Antwort hilfreich

Servus
Willkommen im Forum. Bitte Systeminfo ausfüllen.
ich vermute, dass du mit den Variablen durcheinander gekommen bist.
Compos1 entspricht ja deinem COG. Wo wird die diese verwendet?
Warum verwendest du zum bestimmen der Richtungsvektoren des Achsensystems einmal den Array Compos1 und einmal Components1?

Gruß
Bernd

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

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

Machiwi
Mitglied
Student

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

Beiträge: 5
Registriert: 19.06.2012

Win 7 Professional
CATIA V5 R19 SP8

erstellt am: 24. Jun. 2012 13:04    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

Hey,

da ist wohl beim kopieren was schief gelaufen, sorry. Natürlich muss das so heißen:

Sub Catmain ()
MsgBox "Wählen Sie den zu untersuchenden Körper aus", vbInformation, makroname + " " + version
     
        AppActivate "CATIA V5"

        Set selection1 = activedoc.Selection
        Dim InputObjectType(0)
        InputObjectType(0) = "AnyObject"
     
        Status = selection1.SelectElement2(InputObjectType, "Wählen Sie den Körper aus", False)
        If (Status = "Cancel") Then
          MsgBox "Makro wurde abgebrochen", 16, makroname + " " + version
          Exit Sub
        Else
     
        Set myselec1 = selection1.Item(1).Value
     
        Set TheSPAWorkbench = CATIA.ActiveDocument.GetWorkbench("SPAWorkbench")
        Set Inertia1 = TheSPAWorkbench.Inertias.Add(myselec1)
       
        Dim Compos1(8)
        Inertia1.GetPrincipalAxes Compos1
     
        Set Part1 = activedoc.Part
     
        'Schwerpunkt
        Set reference1 = Part1.CreateReferenceFromObject(myselec1)
        Set Measurable1 = TheSPAWorkbench.GetMeasurable(reference1)
          Dim Coord1(2)
          Measurable1.GetCOG Coord1
       
        Set hybridShapeFactory1 = Part1.HybridShapeFactory
        Set hybridBodies1 = Part1.HybridBodies
        Set hybridBody1 = hybridBodies1.Add
        hybridBody1.Name = "Test " + myselec1.Name
 
   
      'CATIA.StartCommand "Measure Inertia"
   
      'CATIA.StartCommand "Creation of geometry"

      Dim directions1(2)
      Set directions1(0) = hybridShapeFactory1.AddNewDirectionByCoord(Compos1(0), Compos1(3), Compos1(6))
      Set directions1(1) = hybridShapeFactory1.AddNewDirectionByCoord(Compos1(1), Compos1(4), Compos1(7))
      Set directions1(2) = hybridShapeFactory1.AddNewDirectionByCoord(Compos1(2), Compos1(5), Compos1(8))

      Set axisSystem1 = Part1.AxisSystems.Add()
      axisSystem1.PutOrigin Gcoord

    For A = 0 To 8
 
        MsgBox Components1(A)
     
    Next A
       
      Dim vectorXCoord(2)
      vectorXCoord(0) = Compos1(0)
      vectorXCoord(1) = Compos1(3)
      vectorXCoord(2) = Compos1(6)

      Dim vectorYCoord(2)
      vectorYCoord(0) = Compos1(1)
      vectorYCoord(1) = Compos1(4)
      vectorYCoord(2) = Compos1(7)

      axisSystem1.PutVectors vectorXCoord, vectorYCoord

End If

End Sub

Die Richtungsvektoren für das neue Achsensystem werden ausgemessen, nur erhalte ich dabei Werte von 0,2 e-29 und so weiter. Und für die Ausrichutng der z-Achse erhalte ich nur 0,0,0. Kann mir da jemand sagen, ob diese Art der Richtungsermittlung für ein neues Achsensystem überhaupt funktioniert?

Danke!

Gruß Machiwi

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: 24. Jun. 2012 13: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 Machiwi 10 Unities + Antwort hilfreich

Servus
IMHO muss der Betrag der einzelnen Richtungsvektoren (zB der Z.Achse) immer 1 sein. Also können die Werte für die Z-Achse mit 0,0,0 nicht stimmen.
Wo sind die Objekte (zB Arrays) Gcoord, Components1 definiert ? Meinst du vielleicht Compos1 und Coord1?
Wenn ich diese im Code austausche, kommen vernünftige Werte raus.

Gruß
Bernd

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

[Diese Nachricht wurde von bgrittmann am 24. Jun. 2012 editiert.]

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