Robot Structural Analysis Forum
Welcome to Autodesk’s Robot Structural Analysis Forums. Share your knowledge, ask questions, and explore popular Robot Structural Analysis topics.
cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Steel Design - Sections Ratios - API

7 REPLIES 7
SOLVED
Reply
Message 1 of 8
stathiseleftheriadis
776 Views, 7 Replies

Steel Design - Sections Ratios - API

Hi,

 

I'm using the code below to run steel design verification for a group of beams. There is an error when I obtain the ratios. I've added a breakpoint and I'm getting a null value into rDimDetailedRes.

 

Does anyone what might be the problem?

 

Thanks.

 

Stathis

 

 

 

private void button11_Click_1(object sender, EventArgs e)
{
//general groups
IRDimServer rDimServer;
RDimStream rDimStream;
rDimServer = (IRDimServer)Robot.Kernel.GetExtension("RDimServer");
rDimServer.Mode = RobotOM.IRDimServerMode.I_DSM_STEEL;
RDimGroups rDimGroups;
rDimGroups = rDimServer.GroupsService;
RDimGroup rDimGroup;
int groupNo = 1;
rDimGroup = rDimGroups.New(0, groupNo);

//select material
string material = textBox1.Text;
rDimGroup.Material = material;

//select Group Name
string Group = textBox2.Text;
rDimGroup.Name = Group;
rDimStream = rDimServer.Connection.GetStream();
rDimStream.Clear();

//Select Bars
button15.Enabled = true;
rDimStream.WriteText(textBox4.Text);
rDimGroup.SetMembList(rDimStream);
RDimGrpProfs rDimGrpProfs;
rDimGrpProfs = rDimServer.Connection.GetGrpProfs();
rDimGrpProfs.Clear();
rDimGroup.SetProfs(rDimGrpProfs);
rDimGroups.Save(rDimGroup);


IRDimCalcEngine rDimCalcEngine;
rDimCalcEngine = rDimServer.CalculEngine;

IRDimCalcParam rDimCalcParam;
IRDimCalcConf rDimCalcConf;
rDimCalcParam = rDimCalcEngine.GetCalcParam();
rDimCalcConf = rDimCalcEngine.GetCalcConf();
rDimStream = rDimServer.Connection.GetStream();
rDimStream.Clear();
rDimCalcConf.SetParamValue(IRDimCalcConfValueType.I_DCCPV_EFFRATIO,0.9);
rDimCalcParam.SetObjsList(IRDimCalcParamVerifType.I_DCPVT_GROUPS_DESIGN, rDimStream);
rDimCalcParam.SetLimitState(IRDimCalcParamLimitStateType.I_DCPLST_SERVICEABILITY, 1);
rDimCalcParam.SetLimitState(IRDimCalcParamLimitStateType.I_DCPLST_ULTIMATE, 1);
rDimStream.Clear();

// Load Cases Selection
string loads = textBox3.Text;
rDimStream.WriteText(loads);
rDimCalcParam.SetLoadsList(rDimStream);

IRDimOptimParam rDimOptParam;
rDimOptParam = rDimCalcParam.GetOptimParam();
rDimOptParam.Optimization = 1;
rDimOptParam.SetOption(IRDimOptimParamOptionType.I_DOPOT_WEIGHT, 1);
rDimOptParam.SetOption(IRDimOptimParamOptionType.I_DOPOT_MAX_SECTION_HEIGHT, 1);
rDimOptParam.SetLimit(IRDimOptimParamLimitType.I_DOPLT_MAX_SECTION_HEIGHT, 0.5);
rDimOptParam.SetOption(IRDimOptimParamOptionType.I_DOPOT_MIN_SECTION_HEIGHT, 1);
rDimOptParam.SetLimit(IRDimOptimParamLimitType.I_DOPLT_MIN_SECTION_HEIGHT, 0.1);
rDimOptParam.SetOption(IRDimOptimParamOptionType.I_DOPOT_MIN_FLANGE_THICKNESS, 1);
rDimOptParam.SetLimit(IRDimOptimParamLimitType.I_DOPLT_MIN_FLANGE_THICKNESS, 0.01);
rDimOptParam.SetOption(IRDimOptimParamOptionType.I_DOPOT_MIN_WEB_THICKNESS, 1);
rDimOptParam.SetLimit(IRDimOptimParamLimitType.I_DOPLT_MIN_WEB_THICKNESS, 0.05);
rDimOptParam.SetOption(IRDimOptimParamOptionType.I_DOPOT_ENTIRE_SET_SECTIONS, 1);
rDimCalcParam.SetOptimParam(rDimOptParam);
rDimCalcEngine.SetCalcConf(rDimCalcConf);

//Calculate
RobotCalcEngine calcEngine = Robot.Project.CalcEngine;
calcEngine.Calculate();
rDimCalcEngine.SetCalcParam(rDimCalcParam);
rDimCalcEngine.Solve(null);

IRDimAllRes rDimAllRes;
IRDimAllResObjectType rDimAllResObjType;


rDimAllRes = rDimCalcEngine.Results();
rDimAllResObjType = rDimAllRes.ObjectsType;
int objCount = rDimAllRes.ObjectsCount;
//IRDimDetailedRes rDimDetailedRes;
//IRDimGrpRes rDimGrpRes;
int usrNo;

for (int i = 0; i < objCount; i++)
{
usrNo = rDimAllRes.ObjectUsrNo(i);
IRDimDetailedRes rDimDetailedRes;
rDimDetailedRes = (IRDimDetailedRes)rDimAllRes.Get(usrNo);
double ratio = rDimDetailedRes.Ratio;
System.Console.WriteLine(ratio);
}
}

7 REPLIES 7
Message 3 of 8

Hi,

 

Thanks. It works fine now.

 

Do you also know how to avoid the window in the attached jpg through API?

 

Best,

 

Stathis

 

Message 4 of 8
Message 5 of 8

Thanks. I'll give it a go.

 

Stathis

Message 6 of 8

Hi,

 

Sending a message to the window it doesn't seem that easy to me.

 

Is there another way to skip Robot windows via API? I'm preparing a custom optimisation algorithm and I need to run a significant amount of runs/verifications in a recursive process.

 

Thanks.

 

Stathis.

Message 7 of 8

Hi,

 

If You don't need any interactions with RSA You can switch off Interaction flag for the time of analysis:

 

Dim r As New RobotApplication
r.Interactive = 0
'some code
r.Interactive = 1

 

It should disable showing any of messages.

Message 8 of 8

Many thanks.

 

I've been struggling with SendMessage but this works perfectly fine.

 

Cheers

Can't find what you're looking for? Ask the community or share your knowledge.

Post to forums  

Autodesk Design & Make Report