[EN] FAQ 004409 | Wie kann man über die COM-Schnittstelle einen Schnitt anlegen?

Erfahren Sie bequem, wie mit Dlubal-Programmen gearbeitet wird.

  • Dlubal Software | Videos

Video

Erste Schritte mit RFEM

Erste Schritte

Wir geben Ihnen Hinweise und Tipps, die Ihnen den Einstieg in das Basisprogramm RFEM erleichtern.

27. April 2020

001352

Thomas Günthel

Please accept marketing-cookies to watch this video.

Frage

Wie kann man über die COM-Schnittstelle einen Schnitt anlegen?

Antwort

Prinzipiell ist ein Schnitt ein Element wie z. B. ein Stab und wird auch auf die gleiche Art und Weise angelegt. Zuerst wird die Schnittstelle zu den Objekten benötigt. Beim Stab wäre das IModelData, bei den Schnitten ist es ISections. Dieses Interface ist in IModel3 zu finden:

Sub test_section()
'   get interface from the opened model and lock the licence/program
    Dim iModel As RFEM5.IModel3
    Set iModel = GetObject(, "RFEM5.Model")
    iModel.GetApplication.LockLicense
    
On Error GoTo E
    
    Dim iSecs As RFEM5.ISections
    Set iSecs = iModel.GetSections()

Zunächst werden alle bereits angelegten Schnitte gelöscht und danach zwei neue Schnitte angelegt. 
Der erste Schnitt soll ein Volumenschnitt mit sichtbarer Schnittfläche sein (siehe Bild 01). Die Eingabe erfolgt analog zur Eingabe in RFEM. Als Typ wird "SectionOnSectionalArea" gewählt, über "EdgePoint" werden die Eckpunkte des Schnittes gesetzt und "Vector" definiert die Richtung des Schnitts:

   '   first delete all sections
    iSecs.PrepareModification
    iSecs.DeleteObjects ("All")
    iSecs.FinishModification
    
    '   set section on solid
    Dim sec As RFEM5.Section
    sec.EdgePointA.X = 2
    sec.EdgePointA.Y = 5
    sec.EdgePointA.Z = 0
    sec.EdgePointB.X = 2
    sec.EdgePointB.Y = 8
    sec.EdgePointB.Z = 0
    
    sec.no = 1
    sec.Name = "solid section"
    sec.Plane = GlobalPlaneInPositiveX
    sec.ShowValuesInIsolines = False
    sec.Type = SectionOnSolidSectionLine
    sec.ObjectList = "1"
    
    iSecs.PrepareModification
    iSecs.SetSection sec
    iSecs.FinishModification

Wie bereits durch andere Elemente bekannt, wird der neue Schnitt schlussendlich in einem Prepare-/FinishModifikation-Block übergeben. Als zweiter Schnitt soll ein Flächenschnitt angelegt werden (siehe Bild 02). Dazu muss als Typ "SectionViaSurfacePlane" verwendet werden. Bei einem Flächenschnitt muss neben der Angabe des Vektors der Schnittrichtung auch die Darstellungsebene der Ergebnisse gewählt werden. Im folgenden Beispiel wird die xy-Ebene über das Einstellen von "GlobalPlaneInPositiveX" gewählt:

'   set section on surface
    sec.EdgePointA.X = 2
    sec.EdgePointA.Y = 0
    sec.EdgePointA.Z = 0
    sec.EdgePointB.X = 2
    sec.EdgePointB.Y = 3
    sec.EdgePointB.Z = 0
    
    sec.no = 2
    sec.Name = "surface section"
    sec.Plane = GlobalPlaneInPositiveX
    
    sec.ShowValuesInIsolines = True
    sec.Type = SectionViaSurfacePlane
    sec.ObjectList = "1"
    
    sec.Vector.X = 0
    sec.Vector.Y = 0
    sec.Vector.Z = 1
    
    iSecs.PrepareModification
    iSecs.SetSection sec
    iSecs.FinishModification

Die Ergebnisse eines Schnitts können ebenfalls über die gesonderte Methode "GetResultsInSection" der Schnittstelle "IResults2" geholt werden. Im Folgenden werden die Querkräfte am Flächenschnitt geholt. Der Verlauf der Schnittgrößen wird über "ContinuousDistributionWithinObjects" auf "Durchlaufend innerhalb Flächen" eingestellt:

 '   get results
    Dim iCalc As ICalculation2
    Set iCalc = iModel.GetCalculation
    
    Dim iRes As IResults2
    Set iRes = iCalc.GetResultsInFeNodes(LoadCaseType, 1)
    
    Dim secRes() As RFEM5.SectionResult
    secRes = iRes.GetResultsInSection(2, AtNo,
      ShearForceVy,ContinuousDistributionWithinObjects, False)

Im Anhang finden Sie das Excel-Makro und die Testdatei, um das Programm nachvollziehen zu können.

Schlüsselwörter

Dlubal FAQ Schnitt Section COM ISection Häufig gestellte Frage FAQ zu Dlubal Frage und Antwort zu Dlubal

Links

Schreiben Sie einen Kommentar...

Schreiben Sie einen Kommentar...

  • Aufrufe 102x
  • Aktualisiert 9. November 2020

Kontakt

Kontakt zu Dlubal

Haben Sie Fragen zu unseren Produkten oder brauchen Sie einen Rat zur Auswahl der Produkte zur Bearbeitung Ihrer Projekte? Kontaktieren Sie uns über unseren kostenlosen E-Mail-, Chat- bzw. Forum-Support oder nutzen Sie die häufig gestellten Fragen (FAQs) rund um die Uhr.

+49 9673 9203 0

info@dlubal.com