×
INTELLIGENT WORK FORUMS
FOR ENGINEERING PROFESSIONALS

Log In

Come Join Us!

Are you an
Engineering professional?
Join Eng-Tips Forums!
  • Talk With Other Members
  • Be Notified Of Responses
    To Your Posts
  • Keyword Search
  • One-Click Access To Your
    Favorite Forums
  • Automated Signatures
    On Your Posts
  • Best Of All, It's Free!
  • Students Click Here

*Eng-Tips's functionality depends on members receiving e-mail. By joining you are opting in to receive e-mail.

Posting Guidelines

Promoting, selling, recruiting, coursework and thesis posting is forbidden.

Students Click Here

Jobs

several assignment of material properties OAPI SAP2000-Matlab

several assignment of material properties OAPI SAP2000-Matlab

several assignment of material properties OAPI SAP2000-Matlab

(OP)
Hi all,

I am new in OAPI SAP2000 to Matlab interface and would like to ask you if possible to help me on a loop. I want to assign different properties to an orthotropic material (shell element) several times and run analysis after each new assignment. I am able to open the file, run the analysis and get the displacement at top of the wall for one case, but when I want to do this several time in aims to do a parametric study, I failed. Could you please help me ?

this is my code, just after opening the sap file :

%% define material property

PropMaterial = NET.explicitCast(SapModel.PropMaterial,'SAP2000v18.cPropMaterial');

%% initialize new material property
% ret = PropMaterial.SetMaterial('CONC', SAP2000v18.eMatType.Concrete);


%% assign orthotropic mechanical properties to material


E = NET.createArray('System.Double',5);
U = NET.createArray('System.Double',5);
A = NET.createArray('System.Double',5);
G = NET.createArray('System.Double',5);

for i = 1 : 5

prop=xlsread('material_property.xlsx');

E(0)=prop(2:end,2);
E(1)=prop(2:end,3);
E(2)=prop(2:end,4);
U(0)=prop(2:end,5);
U(1)=prop(2:end,6);
U(2)=prop(2:end,7);
A(0)=prop(2:end,8);
A(1)=prop(2:end,9);
A(2)=prop(2:end,10);
G(0)=prop(2:end,11);
G(1)=prop(2:end,12);
G(2)=prop(2:end,13);

[ret, E, U, A, G] = PropMaterial.SetMPOrthotropic('140 5s c24', E, U, A, G);

%% run model (this will create the analysis model)

Analyze = NET.explicitCast(SapModel.Analyze,'SAP2000v18.cAnalyze');

ret = Analyze.RunAnalysis();


%% initialize for Sap2000 results

SapResult = zeros(5,1,'double');


%% get Sap2000 results for load case 1

AnalysisResults = NET.explicitCast(SapModel.Results,'SAP2000v18.cAnalysisResults');

AnalysisResultsSetup = NET.explicitCast(AnalysisResults.Setup,'SAP2000v18.cAnalysisResultsSetup');

NumberResults = 0;

Obj = NET.createArray('System.String',4);

Elm = NET.createArray('System.String',4);

ACase = NET.createArray('System.String',4);

StepType = NET.createArray('System.String',4);

StepNum = NET.createArray('System.Double',4);

U1 = NET.createArray('System.Double',4);

U2 = NET.createArray('System.Double',4);

U3 = NET.createArray('System.Double',4);

R1 = NET.createArray('System.Double',4);

R2 = NET.createArray('System.Double',4);

R3 = NET.createArray('System.Double',4);



ret = AnalysisResultsSetup.DeselectAllCasesAndCombosForOutput;

ret = AnalysisResultsSetup.SetCaseSelectedForOutput('Carico oriz unif');



[ret, NumberResults, Obj, Elm, ACase, StepType, StepNum, U1, U2, U3, R1, R2, R3] = AnalysisResults.JointDispl('1063', SAP2000v18.eItemTypeElm.ObjectElm, NumberResults, Obj, Elm, ACase, StepType, StepNum, U1, U2, U3, R1, R2, R3);

SapResult(1) = U1(1);

end


Thanks in advance.

Red Flag This Post

Please let us know here why this post is inappropriate. Reasons such as off-topic, duplicates, flames, illegal, vulgar, or students posting their homework.

Red Flag Submitted

Thank you for helping keep Eng-Tips Forums free from inappropriate posts.
The Eng-Tips staff will check this out and take appropriate action.

Reply To This Thread

Posting in the Eng-Tips forums is a member-only feature.

Click Here to join Eng-Tips and talk with other members!


Resources