API converting "Point Load" to "Uniform Planar Load"

Babak.moussavian
Advocate
Advocate

API converting "Point Load" to "Uniform Planar Load"

Babak.moussavian
Advocate
Advocate

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.

0 Likes
Reply
Accepted solutions (1)
672 Views
8 Replies
Replies (8)

Stephane.kapetanovic
Advisor
Advisor
0 Likes

Babak.moussavian
Advocate
Advocate

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.

Babakmoussavian_0-1714381911561.png

Regrads
B.M.



0 Likes

Stephane.kapetanovic
Advisor
Advisor

hi @Babak.moussavian 

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

0 Likes

Babak.moussavian
Advocate
Advocate

Hi @Stephane.kapetanovic 

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.

Babakmoussavian_0-1714387628623.png


Regards
B.M.

0 Likes

Rafacascudo
Mentor
Mentor

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.

EESignature

Babak.moussavian
Advocate
Advocate

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.

0 Likes

Stephane.kapetanovic
Advisor
Advisor
Accepted solution

hi @Babak.moussavian 

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

Babak.moussavian
Advocate
Advocate

Hi @Stephane.kapetanovic 
Fanstastic!
Thanks for your efforts it is really appreciated😀
Regards
B.M.