Hello forum,
Is there any API that can convert point loads (Force in Point) to "Uniform Planar Load" considering the contact area as a rectangle with dimensions a×b?
If not, can one of API-experts create such an APP as an Add-in?
Regads
B.M.
Solved! Go to Solution.
Solved by Stephane.kapetanovic. Go to Solution.
Hi @Stephane.kapetanovic,
Thanks for your reply!
Sorry my mistake...
My intention is to convert generated moving loads (Point Loads) to "Uniform Planar Load on a Countour" considering
the dimension of the contact surface as a rectangle a x b.
Regrads
B.M.
you need to transform first your mobile load case into the desired step. then, using the link i've provided, it should be possible to iterate over the point load records and replace them one by one into contour-uniform loads.
could you provide one or two views of the structure and tell us about the load train?
Best Regards
I've created a simple model with moving loads.
I've also generated a case component for the moving loads (LC no.5).
Now, I want to convert the generated point load (LC 5) to a "Uniform Planar Load on a Contour," considering the dimensions of the contact surface as a rectangle with dimensions a x b.
It's cumbersome to do it manually for each individual load!
The model is zipped and attached.
Regards
B.M.
Why not creating the vehicle with planar distributed loads instead of point loads?
Rafael Medeiros
Did you find this post helpful? Feel free to Like this post.
Did your question get successfully answered? Then click on the ACCEPT SOLUTION button.
Hi @Rafacascudo
Yes, I know that moving loads can be created as distributed loads in the user defined database, but I wondered if there is any macro in excel or an add-in that can do this task?
Regards
B.M.
try this
Sub CreateSurfaceLoads()
Dim RobApp As RobotApplication
If NotReady(RobApp) Then Exit Sub
Dim ObjNum As Long, CasNum As Integer, A As Double, B As Double
ObjNum = [ObjNo].Value2: CasNum = [CasNo].Value2
A = [DimA].Value2: B = [DimB].Value2: S = A * B: A2 = A / 2: B2 = B / 2
Dim AUTO_DETECT As Boolean: AUTO_DETECT = [AUTO_DETECT_OBJECTS].Value2
Dim Cases As RobotCaseServer, SimpleCase As RobotSimpleCase, Records As RobotLoadRecordMngr
Set Cases = RobApp.Project.Structure.Cases
Set SimpleCase = Cases.Get(CasNum)
Set Records = SimpleCase.Records
Dim rec As IRobotLoadRecord2, RecInContour As RobotLoadRecordInContour
RecordsCnt = Records.Count
For i = RecordsCnt To 1 Step -1
Set rec = Records.Get(i)
Select Case rec.Type
Case IRobotLoadRecordType.I_LRT_POINT_AUXILIARY
Dim p As Point, xm As Double, xp As Double, ym As Double, yp As Double
With rec 'IRobotPointAuxiliaryRecordValues
FZS = .GetValue(I_PARV_FZ) / S
p.X = .GetValue(I_PARV_X): p.Y = .GetValue(I_PARV_Y): p.Z = .GetValue(I_PARV_Z)
End With
xm = p.X - A2: xp = p.X + A2: ym = p.Y - B2: yp = p.Y + B2
With Records
.Delete i: Set RecInContour = .Create(I_LRT_IN_CONTOUR)
End With
With RecInContour 'IRobotInContourRecordValues
If Not AUTO_DETECT Then .Objects.FromText ObjNum Else .SetValue I_ICRV_AUTO_DETECT_OBJECTS, 1
.SetVector 0, 0, 1
.SetValue I_ICRV_PZ1, FZS
.SetValue I_ICRV_PZ2, FZS
.SetValue I_ICRV_PZ3, FZS
.SetPoint 1, xm, yp, p.Z
.SetPoint 2, xm, ym, p.Z
.SetPoint 3, xp, ym, p.Z
.SetValue I_ICRV_NPOINTS, 4
.SetContourPoint 1, xm, yp, p.Z
.SetContourPoint 2, xm, ym, p.Z
.SetContourPoint 3, xp, ym, p.Z
.SetContourPoint 4, xp, yp, p.Z
End With
End Select
Next i
RobApp.Project.ViewMngr.Refresh
Set RobApp = Nothing
End Sub
Best Regards
Msg updated
Hi @Stephane.kapetanovic
Fanstastic!
Thanks for your efforts it is really appreciated😀
Regards
B.M.
Can't find what you're looking for? Ask the community or share your knowledge.