Cancel
Showing results for 
Search instead for 
Did you mean: 

Create Custom Output Request for Reserve Factor Calculation

Pioneer
Pioneer

Hi

I am working on Femap 10.0.2. I am looking for an option to define the custom output request to calculate the reserve Factor (RF Factor)

Everytime I calculat the reserve factor I am calculating in the Excel sheet based on the stress obtained from Femap

 

Example

The bracket is 2024 Al and have allowable of 64000 psi and I am observing a stress value of 48000 psi based on Vonmises stress.

Can I define a new function or equation  output request for a particular load case and Output Vector vonmise stress

like

New Output Request = 64000/Vonmsies stress (6039-if it shell element)

 

So that I can observe where the elements are having less reserve factor based on the custom output

 

Regards

srini

4 REPLIES

Re: Create Custom Output Request for Reserve Factor Calculation

Siemens Genius Siemens Genius
Siemens Genius

What type of elements are you looking to calculate the “reserve factor” for? There is a Custom Tool (Custom Tools > Post Processing > Calculate Factor of Safety for Solid Elements) that will do something similar to this. I can adapt it to allow you to specify the material allowable and then it will create you a new Output Set and Output Vector with what you are looking for.

Re: Create Custom Output Request for Reserve Factor Calculation

Pioneer
Pioneer

I am looking for the shell elements.

I tired for the solid elements by using the following code which is available to try for solid elements . But I couldn't get new  output request

after executing this macro

Sub Main
    Dim App As femap.model
    Set App = feFemap()

    Dim OutVec As femap.Output
    Set OutVec = App.feOutput

    Dim OutVec1 As femap.Output
    Set OutVec1 = App.feOutput

    Dim OutVec2 As femap.Output
    Set OutVec2 = App.feOutput

    Dim OutSet As femap.OutputSet
    Set OutSet = App.feOutputSet

    Dim Oset As femap.Set
    Set Oset = App.feSet

    Dim e As femap.Elem
    Set e = App.feElem

    Dim p As femap.Prop
    Set p = App.feProp

    Dim eset As femap.Set
    Set eset = App.feSet

    Dim m As femap.Matl
    Set m = App.feMatl

    Dim  EOutputSetID As Long

	rc = Oset.SelectID (FT_OUT_CASE, "Select Output Set", EOutputSetID)

	If rc = 2 Then
		GoTo Bailout
	End If

    OutSetID = OutSet.NextEmptyID

    OutSet.title = "Factor of Safety - From Output Set "+Str$(EOutputSetID)+"."

    OutSet.Put (OutSetID)

	eset.AddRule ( 25, FGD_ELEM_BYTYPE )
	eset.AddRule ( 26, FGD_ELEM_BYTYPE )

	OutVec1.InitScalarAtElem (OutSetID, 9000000,"Factor of Safety - Compression", FOT_STRESS, False)

	OutVec2.InitScalarAtElem (OutSetID, 9000001,"Factor of Safety - Tension", FOT_STRESS, False)

	App.Info_ActiveID (FT_OUT_DIR) = OutSetID

	OutSet.Get (EOutputSetID)
	OutVec.setID = EOutputSetID

	OutVec.Get (60031)

	eid = eset.First

	While eid > 0

		e.Get ( eid )

		outval = OutVec.Value (eid)

		PID = e.propID

		MatId = p.matlID

		m.Get (MatId)

		mtype = m.type

		Comp = m.mval (54)

		Tension = m.mval (52)

		e.Put ( eid )

		FoSC = Comp/outval

		OutVec1.setID = OutSetID

		OutVec1.ID = 9000000

		OutVec1.Value (eid) = FoSC

		FoST = Tension/outval

		OutVec2.setID = OutSetID

		OutVec2.ID = 9000001

		OutVec2.Value (eid) = FoST

		SkipFOS:
		eid = eset.Next

	Wend

	OutSet.ID = OutSetID

	OutVec1.Put (9000000)

	OutVec2.Put (9000001)

	Bailout:

	App.feViewRegenerate ( 0 )
    
End Sub

Regards

srini

Re: Create Custom Output Request for Reserve Factor Calculation

Siemens Genius Siemens Genius
Siemens Genius

Try this for Shells. It will prompt you to specify the allowable material limit. Then it will create two new output vectors in a new output set. 9000000 will be calculated from the Top Plate Von Mises and 9000001 will be calculated from Bottom Plate Von Mises.

 

 

The HTML Clipboard

Sub Main
    Dim App As femap.model
    Set App = feFemap()

    Dim OutVec As femap.Output
    Set OutVec = App.feOutput

    Dim OutVec1 As femap.Output
    Set OutVec1 = App.feOutput

    Dim OutVec2 As femap.Output
    Set OutVec2 = App.feOutput

    Dim OutSet As femap.OutputSet
    Set OutSet = App.feOutputSet

    Dim Oset As femap.Set
    Set Oset = App.feSet

    Dim e As femap.Elem
    Set e = App.feElem

    Dim p As femap.Prop
    Set p = App.feProp

    Dim eset As femap.Set
    Set eset = App.feSet

    Dim m As femap.Matl
    Set m = App.feMatl

    Dim  EOutputSetID As Long
    Dim alwVal As Double
    Dim outVal As Double
    Dim outVal2 As Double
    Dim FoS As Double
    Dim botFoS As Double

    rc = Oset.SelectID (FT_OUT_CASE, "Select Output Set", EOutputSetID)

    If rc = 2 Then
        GoTo Bailout
    End If

    App.feGetReal("Specify Material Allowable", 0.0, 1000000000.0, alwVal)

    OutSetID = OutSet.NextEmptyID

    OutSet.title = "Reserve Factor - From Output Set "+Str$(EOutputSetID)+"."

    OutSet.Put (OutSetID)

    eset.AddRule ( 17, FGD_ELEM_BYTYPE )
    eset.AddRule ( 18, FGD_ELEM_BYTYPE )

    OutVec1.InitScalarAtElem (OutSetID, 9000000,"Reserve Factor for Top Plate", FOT_STRESS, False)
    OutVec2.InitScalarAtElem (OutSetID, 9000001,"Reserve Factor for Bottom Plate", FOT_STRESS, False)

    App.Info_ActiveID (FT_OUT_DIR) = OutSetID

    OutSet.Get (EOutputSetID)
    OutVec.setID = EOutputSetID

    OutVec.Get (7033)

    eid = eset.First

    While eid > 0

        e.Get ( eid )

        outVal = OutVec.value (eid)

        e.Put ( eid )

        FoS = alwVal/outVal

        OutVec1.setID = OutSetID

        OutVec1.ID = 9000000

        OutVec1.value (eid) = FoS

        'SkipFOS:
        eid = eset.Next

    Wend

    OutVec.Reset()
    OutVec.Get(7433)

    eid = eset.First

    While eid > 0

        e.Get ( eid )

        outVal2 = OutVec.value (eid)

        e.Put ( eid )

        botFoS = alwVal/outVal2

        OutVec2.setID = outSetID

        OutVec2.ID = 9000001

        OutVec2.value (eid) = botFoS

        SkipFOS:
        eid = eset.Next

    Wend

    OutSet.ID = OutSetID

    OutVec1.Put (9000000)

    OutVec2.Put (9000001)

    Bailout:

    App.feViewRegenerate ( 0 )

End Sub

Re: Create Custom Output Request for Reserve Factor Calculation

Legend
Legend

Hi Srinir,

 

Here is another quick way to create a new output vecotr for your reserve factor calculation:

 

1/ Define the Ftu in the material property as follows:

material prop.PNG

2/ Go to Model / Output / Calculate
Select the output(s) to process
Enter the following equation where:
* 7033 is Plate Top von Mises Stress (you can select any output vector you want)
You can also creat a new output vector for maximum between top and bottom then put its ID instead of 7033.
* And 52 is the material tension limit ID.

 

RF.PNG

3/ Hit OK and Select the elements to process

4/ Go to the Contour and Deformed Data and you will notice that a new output vector ID 9000000 has been created.

contour.PNG

 

Select Criteria to show the RF for each element.

 

stress rf plot.PNG

 

I prefer this method as it is fast to use without passing by external API program.

 

I recommend to check by hand one value to be sure it is doing what you intend to.


Regards,


 

Seifeddine Naffoussi