Hallo,
ich habe ein Problem beim setzen von Lasten über .Net. Könnte mir jemand einen Code-Schnipsel einstellen, das funktioniert. Ich habe keine Ahnung woran das liegen könnte.
Vielen Dank schon einmal für eure Hilfe!
Meiner sieht folgender Maßen aus und gibt mir immer den Fehler:
Ausnahmefehler des Servers. (Ausnahme von HRESULT: 0x80010105 (RPC_E_SERVERFAULT))
Hier der Code:
// Connect to R-Stab
RSTAB6.IrsApplication RSApp = null; // The R-Stab Application
RSTAB6.IrsStructure RSStr = null; // The R-Stab Structure
RSTAB6.IrsLoads RSLoads = null; // The R-Stab Loads
RSTAB6.IrsStructuralData RSTopo = null; // The R-Stab Structural Data
RSStr = new RSTAB6.Structure();
RSApp = RSStr.rsGetApplication();
RSApp.rsLockLicence();
RSLoads = RSStr.rsGetLoads();
RSTopo = RSStr.rsGetStructuralData();
RSTopo.rsPrepareModification();
RSTopo.rsSetNodeArr(_nodes.Length, _nodes);
RSTopo.rsFinishModification();
// Create Load Case
RS_LOAD_CASE loadCase = new RS_LOAD_CASE();
loadCase.iNo = 1;
loadCase.strDescription = "OwnWeight_RhinoPlug";
loadCase.fLCFactor = (float)1.2;
loadCase.type = RS_LOAD_CASE_TYPE.LCT_PERMANENT;
loadCase.bSWRespect = 1;
loadCase.ptSWFactor.x = 1;
loadCase.ptSWFactor.y = 2;
loadCase.ptSWFactor.z = 3;
loadCase.analysis.method = RS_CALC_METHOD.METHOD_1ST_ORDER;
loadCase.analysis.bTension = -1;
loadCase.analysis.bDividing = -1;
loadCase.analysis.bGammaM = 1;
loadCase.strComment = "ls1";
// Create Load
RS_LOAD_NODE PointLoad = new RS_LOAD_NODE();
PointLoad.iNo = 1;
PointLoad.strNodeList = "1";
PointLoad.force.x = 1;
PointLoad.force.y = 2;
PointLoad.force.z = 3;
PointLoad.moment.x = 4;
PointLoad.moment.y = 5;
PointLoad.moment.z = 6;
PointLoad.strComment = "Nodal load 1";
// Create Arrays
RS_LOAD_NODE[] PointLoads = new RS_LOAD_NODE[1];
RS_LOAD_CASE[] loadCases = new RS_LOAD_CASE[1];
PointLoads[0] = PointLoad;
loadCases[0] = loadCase;
// Prepare Modification
RSLoads.rsPrepareModification();
//Write new Load Case
RSLoads.rsSetLoadCaseArr(loadCases.Length, loadCases);
// Get New Load Case Back again
RSTAB6.IrsLoadCase RSLoad = RSLoads.rsGetLoadCase(0,RSTAB6.ITEM_AT.AT_INDEX);
// Set Nodal Loads - HIER IST DER FEHLER
RSLoad.rsSetNodeArr(PointLoads.Length, PointLoads);
RSLoads.rsFinishModification();
RSApp.rsShowApplication();
ich habe ein Problem beim setzen von Lasten über .Net. Könnte mir jemand einen Code-Schnipsel einstellen, das funktioniert. Ich habe keine Ahnung woran das liegen könnte.
Vielen Dank schon einmal für eure Hilfe!
Meiner sieht folgender Maßen aus und gibt mir immer den Fehler:
Ausnahmefehler des Servers. (Ausnahme von HRESULT: 0x80010105 (RPC_E_SERVERFAULT))
Hier der Code:
// Connect to R-Stab
RSTAB6.IrsApplication RSApp = null; // The R-Stab Application
RSTAB6.IrsStructure RSStr = null; // The R-Stab Structure
RSTAB6.IrsLoads RSLoads = null; // The R-Stab Loads
RSTAB6.IrsStructuralData RSTopo = null; // The R-Stab Structural Data
RSStr = new RSTAB6.Structure();
RSApp = RSStr.rsGetApplication();
RSApp.rsLockLicence();
RSLoads = RSStr.rsGetLoads();
RSTopo = RSStr.rsGetStructuralData();
RSTopo.rsPrepareModification();
RSTopo.rsSetNodeArr(_nodes.Length, _nodes);
RSTopo.rsFinishModification();
// Create Load Case
RS_LOAD_CASE loadCase = new RS_LOAD_CASE();
loadCase.iNo = 1;
loadCase.strDescription = "OwnWeight_RhinoPlug";
loadCase.fLCFactor = (float)1.2;
loadCase.type = RS_LOAD_CASE_TYPE.LCT_PERMANENT;
loadCase.bSWRespect = 1;
loadCase.ptSWFactor.x = 1;
loadCase.ptSWFactor.y = 2;
loadCase.ptSWFactor.z = 3;
loadCase.analysis.method = RS_CALC_METHOD.METHOD_1ST_ORDER;
loadCase.analysis.bTension = -1;
loadCase.analysis.bDividing = -1;
loadCase.analysis.bGammaM = 1;
loadCase.strComment = "ls1";
// Create Load
RS_LOAD_NODE PointLoad = new RS_LOAD_NODE();
PointLoad.iNo = 1;
PointLoad.strNodeList = "1";
PointLoad.force.x = 1;
PointLoad.force.y = 2;
PointLoad.force.z = 3;
PointLoad.moment.x = 4;
PointLoad.moment.y = 5;
PointLoad.moment.z = 6;
PointLoad.strComment = "Nodal load 1";
// Create Arrays
RS_LOAD_NODE[] PointLoads = new RS_LOAD_NODE[1];
RS_LOAD_CASE[] loadCases = new RS_LOAD_CASE[1];
PointLoads[0] = PointLoad;
loadCases[0] = loadCase;
// Prepare Modification
RSLoads.rsPrepareModification();
//Write new Load Case
RSLoads.rsSetLoadCaseArr(loadCases.Length, loadCases);
// Get New Load Case Back again
RSTAB6.IrsLoadCase RSLoad = RSLoads.rsGetLoadCase(0,RSTAB6.ITEM_AT.AT_INDEX);
// Set Nodal Loads - HIER IST DER FEHLER
RSLoad.rsSetNodeArr(PointLoads.Length, PointLoads);
RSLoads.rsFinishModification();
RSApp.rsShowApplication();
Kommentar