- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report
Hi,
I have recently started to use API with RSA. I am triying to design a simple steel structure following Robot API SteelDesign help from SDK. I have obtained the bar model but I have not obtained the design bo (see atachment). This is my VBA code:
robapp.Project.CalcEngine.Calculate()
'''''''''''''''''''''¿?¿?¿?¿?¿?¿?¿?¿?
Dim RobStr As RobotOM.IRobotStructure
RobStr = robapp.Project.Structure
Dim RobLab As RobotOM.IRobotLabel
Dim RdmMembDefData As RobotOM.IRDimMembDefData
RobLab = RobStr.Labels.Create(RobotOM.IRobotLabelType.I_LT_MEMBER_TYPE, "barra")
RdmMembDefData = RobLab.Data
With RdmMembDefData
.SetStructureSwayYZ(RobotOM.IRDimMembDefBucklingDataType.I_DMDBDT_BUCKLING_Y, 1)
.SetLengthYZUV(RobotOM.IRDimMembDefLengthDataType.I_DMDLDT_LENGTH_Y, 1.0#)
.SetStructureSwayYZ(RobotOM.IRDimMembDefBucklingDataType.I_DMDBDT_BUCKLING_Z, 1)
.SetLengthYZUV(RobotOM.IRDimMembDefLengthDataType.I_DMDLDT_LENGTH_Z, 1.0#)
.SetDeflectionYZ(RobotOM.IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Y, 1)
.SetDeflectionYZ(RobotOM.IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Z, 1)
.SetDeflYZRelLimit(RobotOM.IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Y, 10.0#)
.SetDeflYZRelLimit(RobotOM.IRDimMembDefDeflDataType.I_DMDDDT_DEFL_Z, 10.0#)
.CantileverMode = 1
.SetDisplacementXY(RobotOM.IRDimMembDefDispDataType.I_DMDDDT_DISP_X, 1)
.SetDisplacementXY(RobotOM.IRDimMembDefDispDataType.I_DMDDDT_DISP_Y, 1)
.SetDisplXYRelLimit(RobotOM.IRDimMembDefDispDataType.I_DMDDDT_DISP_X, 10.0#)
.SetDisplXYRelLimit(RobotOM.IRDimMembDefDispDataType.I_DMDDDT_DISP_Y, 10.0#)
End With
RdmMembDefData.Type = RobotOM.IRDimMembDefType.I_DMDT_USER
'robapp.Structure.Labels.Store(Lab)
'GENERAR GRUPOS
RDmServer = robapp.Kernel.GetExtension("RDimServer")
RDmServer.Mode = RobotOM.IRDimServerMode.I_DSM_STEEL
RDmGrps = RDmServer.GroupsService
GroupNo = 1
RDmGrpl = RDmGrps.[New](0, GroupNo)
RDmGrpl.Material = "S 275"
RDmGrpl.Name = "grupo1"
RDmStream = RDmServer.Connection.GetStream
RDmStream.Clear()
RDmStream.WriteText("1 3")
RDmGrpl.SetMembList(RDmStream)
RDmGrpProfs = RDmServer.Connection.GetGrpProfs
RDmGrpProfs.Clear()
RDmStream.Clear()
'RDmStream.WriteText("IPE")
'RDmGrpProfs.SetFamilies("Rcat", RDmStream)
RDmGrpl.SetProfs(RDmGrpProfs)
RDmGrps.Save(RDmGrpl)
'PREPARAR DIMENSIONAMIENTO
RDmEngine = RDmServer.CalculEngine
With RDmEngine
RDmCalPar = .GetCalcParam
RDmCalCnf = .GetCalcConf
End With
RDmStream = RDmServer.Connection.GetStream
RDmStream.Clear()
RDmCalCnf.SetParamValue(RobotOM.IRDimCalcConfValueType.I_DCCPV_EFFRATIO, 0.9)
RDmStream.WriteText("todo")
RDmCalPar.SetObjsList(RobotOM.IRDimCalcParamVerifType.I_DCPVT_GROUPS_DESIGN, RDmStream)
RDmCalPar.SetLimitState(RobotOM.IRDimCalcParamLimitStateType.I_DCPLST_SERVICEABILITY, 1)
RDmCalPar.SetLimitState(RobotOM.IRDimCalcParamLimitStateType.I_DCPLST_ULTIMATE, 1)
RDmStream.Clear()
RDmStream.WriteText("1 2")
RDmCalPar.SetLoadsList(RDmStream)
RDmOptPar = RDmCalPar.GetOptimParam
RDmOptPar.Optimization = 1
RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_WEIGHT, 1)
RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_MAX_SECTION_HEIGHT, 1)
RDmOptPar.SetLimit(RobotOM.IRDimOptimParamLimitType.I_DOPLT_MAX_SECTION_HEIGHT, 0.5)
RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_MIN_SECTION_HEIGHT, 1)
RDmOptPar.SetLimit(RobotOM.IRDimOptimParamLimitType.I_DOPLT_MIN_SECTION_HEIGHT, 0.1)
RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_MIN_FLANGE_THICKNESS, 1)
RDmOptPar.SetLimit(RobotOM.IRDimOptimParamLimitType.I_DOPLT_MIN_FLANGE_THICKNESS, 0.01)
RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_MIN_WEB_THICKNESS, 1)
RDmOptPar.SetLimit(RobotOM.IRDimOptimParamLimitType.I_DOPLT_MIN_WEB_THICKNESS, 0.05)
RDmOptPar.SetOption(RobotOM.IRDimOptimParamOptionType.I_DOPOT_ENTIRE_SET_SECTIONS, 1)
RDmCalPar.SetOptimParam(RDmOptPar)
With RDmEngine
RDmEngine.SetCalcConf(RDmCalCnf)
RDmEngine.SetCalcParam(RDmCalPar)
End With
'DIMENSIONAMIENTO
RDmEngine.Solve(Nothing)
RdmAllRes = RDmEngine.Results
RdmAllResObjType = RdmAllRes.ObjectsType
ObjCnt = RdmAllRes.ObjectsCount
RDmGrpRes = RdmAllRes.Get(1)
PrfFamCnt = RDmGrpRes.FamiliesCount
Dim Index As Long
For Index = 0 To PrfFamCnt - 1
If Index = 0 And RDmGrpRes.IsOptimization Then
OptFamIndex = RDmGrpRes.OptFamilyIndex
End If
If RDmGrpRes.Check(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_PREVIOUS) Then
RdmDetRes = RDmGrpRes.Get(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_PREVIOUS)
End If
If RDmGrpRes.Check(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_GOVERNING) Then
RdmDetRes = RDmGrpRes.Get(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_GOVERNING)
End If
If RDmGrpRes.IsOptimization And Index = OptFamIndex Then
'section is optimal
End If
If RDmGrpRes.Check(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_NEXT) Then
RdmDetRes = RDmGrpRes.Get(Index, RobotOM.IRDimGrpResCurrProf.I_DGRCP_NEXT)
End If
Next
'FINALIZAR EL CODIGO
robapp.Window.Activate()
rec = Nothing
cas = Nothing
node = Nothing
sup_data = Nothing
sup = Nothing
s = Nothing
robapp = Nothing
End Sub
End Class
Could you help me in order to finish the steel design?
Is there any help document a little bit detailed?
Thank you in advance, best regards
Solved! Go to Solution.
