I create a sub which define loads on a pannel but it's doesn't work.
Can you have a look ?
Public typecharge As String Public casdecharge As String Public valeurcharge As Double Public x_1 As Double Public y_1 As Double Public z_1 As Double Public x_2 As Double Public y_2 As Double Public z_2 As Double Public x_3 As Double Public y_3 As Double Public z_3 As Double Public x_4 As Double Public y_4 As Double Public z_4 As Double
Public Sub charges() 'trotoirs typecharge = I_CN_PERMANENT casdecharge = "Equipements" valeurcharge = 5.5 x_1 = 0.000 y_1 = 0.000 z_1 = 0.000 x_2 = 75.480 y_2 = 0.000 z_2 = 0.000 x_3 = 76.143 y_3 = 1.600 z_3 = 0.000 x_4 = 0.663 y_4 = 1.600 z_4 = 0.000 Call chargement_panneau_contour End Sub
Sub chargement_panneau_contour() Dim cas As RobotSimpleCase Dim recs As RobotLoadRecordMngr Dim rec_1 As RobotLoadRecordInContour Set cas = robapp.Project.Structure.Cases.CreateSimple(robapp.Project.Structure.Cases.FreeNumber, _ casdecharge, typecharge, I_CAT_STATIC_LINEAR) Set recs = cas.Records ' pression uniforme horizontale appliquée au contour ' définition des contours i = recs.New(I_LRT_IN_CONTOUR) ' création d'une nouvel enregistrement Set rec_1 = recs.Get(i) ' définition du plan de charge rec_1.Objects.FromText "1" rec_1.SetValue I_ICRV_PX1, 0 rec_1.SetValue I_ICRV_PY1, 0 rec_1.SetValue I_ICRV_PZ1, -valeurcharge rec_1.SetValue I_ICRV_PX2, 0# rec_1.SetValue I_ICRV_PY2, 0# rec_1.SetValue I_ICRV_PZ2, -valeurcharge rec_1.SetValue I_ICRV_PX3, 0# rec_1.SetValue I_ICRV_PY3, 0# rec_1.SetValue I_ICRV_PZ3, -valeurcharge ' sens de projection des efforts rec_1.SetValue I_ICRV_PROJECTION, 1 ' nombre de points composant le contour rec_1.SetValue I_ICRV_NPOINTS, 4 rec_1.SetValue I_ICRV_LOCAL, 0 ' définition des points sur le panneau rec_1.SetPoint 1, 0, 0, 0 rec_1.SetPoint 2, 1, 1, 0 rec_1.SetPoint 3, 1, 0, 0 rec_1.SetContourPoint 1, x_1, y_1, z_1 rec_1.SetContourPoint 2, x_2, y_2, z_2 rec_1.SetContourPoint 3, x_3, y_3, z_3 rec_1.SetContourPoint 4, x_4, y_4, z_4 rec_1.SetVector 0, 0, 1 Set recs = Nothing Set rec_1 = Nothing Set cas = Nothing End Sub
Solved! Go to Solution.
Solved by Rafal.Gaweda. Go to Solution.
Solved by Rafal.Gaweda. Go to Solution.
Solved by Rafal.Gaweda. Go to Solution.
Solved by Rafal.Gaweda. Go to Solution.
mateaus wrote:
I have created a convoy which name is "TS".
If I understand your macro, I just have to replace "PN1030" by "TS" :
VData.LoadFromDBase "Pojazd S - klasa E", "TS"
I have created a catalog to save my convoy. I don't know how to save it otherwise.
Will it working with your macro ?
' assign vehicle to case
Set VLabel = Robapp.Project.Structure.Labels.Create(I_LT_VEHICLE, "your_vehicle_name") ' select vehicle name
Set VData = VLabel.Data
VData.LoadFromDBase "your_vehicle_name", "PRO" ' PRO is the name of your database
Robapp.Project.Structure.Labels.Store VLabel
Cas.Vehicle = "your_vehicle_name"
I would like to create a convoy's library in order to share it whith my colleagues but I don't know where it is save in the computer and what I have to copy in their computer.
The database file is created in:
"c:\Users\<USER>\AppData\Roaming\Autodesk\Structural\Common Data\2012"
as V_...xml file. In your case V_PRO.xml file
copy it to similar location on other computers.
@Anonymous_Adsk wrote:I would like to create a convoy's library in order to share it whith my colleagues but I don't know where it is save in the computer and what I have to copy in their computer.
The database file is created in:
"c:\Users\<USER>\AppData\Roaming\Autodesk\Structural\Common Data\2012"
as V_...xml file. In your case V_PRO.xml file
copy it to similar location on other computers.
It doesn't work. I have copied the file but there is nothing when I open Robot :
Ok is it possible to do it automaticaly. Is there a file default to copy ?
Ok is it possible to do it automaticaly. Is there a file default to copy ?
So you already know where the database file is located.
Add database to job preferences as shown in previous post, then save preferences:
File named ...cov will be saved in path which can be checked in the field marked by green rectagle below
Then copy it to different computers to similar folder, besides copying database file.
@Anonymous_Adsk wrote:
Creating moving load case with vehicle loaded from database:
Dim Cas As RobotMobileCase
Dim Route As RobotMobileCaseRoute
Dim VData As RobotVehicleData
' route is a polyline - creating polyline here
Dim PlineGeometry As RobotGeoPolyline
Set PlineGeometry = Robapp.CmpntFactory.Create(I_CT_GEO_POLYLINE)
Dim Segment As RobotGeoSegment
Dim Object As RobotObjObject
' create as many segments (= characteristic points of polyline) as you like in the way shown below
Set Segment = Robapp.CmpntFactory.Create(I_CT_GEO_SEGMENT_LINE)
Segment.P1.Set 0, 2, 0PlineGeometry.Add Segment
PlineGeometry.Initialize
Set Segment = Robapp.CmpntFactory.Create(I_CT_GEO_SEGMENT_LINE)
Segment.P1.Set 10, 2, 0PlineGeometry.Add Segment
PlineGeometry.Initialize
RouteNumber = 13
' creating object from polyline
Set Object = Robapp.Project.Structure.Objects.Create(RouteNumber)
Object.Main.Geometry = PlineGeometry
Object.Initialize
Object.Update
' creating moving load case
Set Cas = Robapp.Project.Structure.Cases.CreateMobile(Robapp.Project.Structure.Cases.FreeNumber, "Moving Load Case", I_CN_PERMANENT)
' assigning route and route parameters to case
Set Route = Cas.GetRouteRoute.Geometry = RouteNumber
Dim Fac As RobotMobileCaseSegmentFactors
Set Fac = Route.GetFactors(1)
Fac.VL = 1
Fac.VR = 1
Route.SetFactors 1, Fac
Route.LoadDirection.Set 0, 0, -1
Route.Step = 1
Cas.SetRoute Route
' assign vehicle to case
Set VLabel = Robapp.Project.Structure.Labels.Create(I_LT_VEHICLE, "Pojazd S - klasa E") ' select vehicle name
Set VData = VLabel.Data
VData.LoadFromDBase "Pojazd S - klasa E", "PN1030" ' select vehicle name and database name
Robapp.Project.Structure.Labels.Store VLabel
Cas.Vehicle = "Pojazd S - klasa E" ' assign vehicle to case
I've modified the macro but it's not working if I want to select a case which already exist :
'définit les cas de charges Dim Loads As RobotCaseServer Set Loads = Robapp.Project.Structure.Cases Dim Cas As RobotMobileCase
Set Cas = Loads.Get(nocasdecharge)
Sub generation_charges_roulantes() 'définit les cas de charges Dim Loads As RobotCaseServer Set Loads = Robapp.Project.Structure.Cases Dim Cas As RobotMobileCase Dim Route As RobotMobileCaseRoute Dim VData As RobotVehicleData ' route is a polyline - creating polyline here Dim PlineGeometry As RobotGeoPolyline Set PlineGeometry = Robapp.CmpntFactory.Create(I_CT_GEO_POLYLINE) Dim Segment As RobotGeoSegment Dim Object As RobotObjObject ' create as many segments (= characteristic points of polyline) as you like in the way shown below Set Segment = Robapp.CmpntFactory.Create(I_CT_GEO_SEGMENT_LINE) Segment.P1.Set x_1, y_1, z_1 PlineGeometry.Add Segment PlineGeometry.Initialize Set Segment = Robapp.CmpntFactory.Create(I_CT_GEO_SEGMENT_LINE) Segment.P1.Set x_2, y_2, z_2 PlineGeometry.Add Segment PlineGeometry.Initialize ' creating object from polyline Set Object = Robapp.Project.Structure.Objects.Create(RouteNumber) Object.Main.Geometry = PlineGeometry Object.Initialize Object.Update ' creating moving load case Set Cas = Loads.Get(nocasdecharge) 'Set Cas = Robapp.Project.Structure.Cases.CreateMobile(Robapp.Project.Structure.Cases.FreeNumber, "Moving Load Case", I_CN_PERMANENT) ' assigning route and route parameters to case Set Route = Cas.GetRoute Route.Geometry = RouteNumber Route.LoadDirection.Set 0, 0, -1 'définit le pas (non paramétré) Route.Step = 1 Cas.SetRoute Route ' assign vehicle to case Set VLabel = Robapp.Project.Structure.Labels.Create(I_LT_VEHICLE, Vehicle_name) ' select vehicle name Set VData = VLabel.Data 'Pour charger un vehicule enregistrer dans la bibliothèque (cmd non utilisé) 'VData.LoadFromDBase Vehicle_name, "PRO" ' PRO is the name of your database ; select vehicle name and database name Robapp.Project.Structure.Labels.Store VLabel Cas.Vehicle = Vehicle_name ' assign vehicle to case End Sub
MateausI've modified the macro but it's not working if I want to select a case which already exist :
It is not possible. Moving load case is different case type, even if you make it manually in Robot you do it in different way. Do it this way:
- get simple case number
- delete this simple case
- create moving load case with this number
When I generate the moving loads with API even if I load from data or create a new one I can't see the value of loads in the view.
Is there a solution ?
mateaus wrote:
When I generate the moving loads with API even if I load from data or create a new one I can't see the value of loads in the view.
Add this green code. If loads are not displayed please run Model Generation or Calculations
' assigning route and route parameters to case Set Route = Cas.GetRoute Route.Geometry = RouteNumber
Dim Fac As RobotMobileCaseSegmentFactors
Set Fac = Route.GetFactors(1)
Fac.VL = 1
Fac.VR = 1
Route.SetFactors 1, Fac
Route.LoadDirection.Set 0, 0, -1 'définit le pas (non paramétré) Route.Step = 1 Cas.SetRoute Route
Ok it's working,
Do you have an example of VBA code to create a trapezoidal load (2p) on a bar like this one ?
Set Recs = SimpleCase.Records
I = Recs.New(I_LRT_BAR_TRAPEZOIDALE)
Set Rec = Recs.Get(I)
Rec.Objects.FromText BarNumber
Rec.SetValue I_BTRV_LOCAL, -1 ' or global
Rec.SetValue I_BTRV_RELATIVE, -1 ' or real
'Select Case Direction
'Case "fx"
Rec.SetValue I_BTRV_PX1, value_x1
Rec.SetValue I_BTRV_X1, pos_x1
Rec.SetValue I_BTRV_PX2, value_x2
Rec.SetValue I_BTRV_X2, pos_x2
'Case "fy"
Rec.SetValue I_BTRV_PY1, value_y1
Rec.SetValue I_BTRV_X1, pos_x1
Rec.SetValue I_BTRV_PY2, value_y2
Rec.SetValue I_BTRV_X2, pos_x2
'Case "fz"
Rec.SetValue I_BTRV_PZ1, value_z1
Rec.SetValue I_BTRV_X1, pos_x1
Rec.SetValue I_BTRV_PZ2, value_z2
Rec.SetValue I_BTRV_X2, pos_x2
'End Select
mateaus wrote:
and this one : Load on bar ?
Set Recs = SimpleCase.Records
I = Recs.New(I_LRT_BAR_FORCE_CONCENTRATED)
Set Rec = Recs.Get(I)
Rec.Objects.FromText BarNumber
Rec.SetValue I_BFCRV_LOC, -1 ' or global
Rec.SetValue I_BFCRV_REL, -1 ' or real
'Select Case Direction
'Case "fx"
Rec.SetValue I_BFCRV_FX, value
'Case "fy"
Rec.SetValue I_BFCRV_FY, value
'Case "fz"
Rec.SetValue I_BFCRV_FZ, value
'Case "mx"
Rec.SetValue I_BFCRV_CX, value
'Case "my"
Rec.SetValue I_BFCRV_CY, value
'Case "mz"
Rec.SetValue I_BFCRV_CZ, value
'End Select
Rec.SetValue I_BFCRV_X, pos_x 'position
I have not used all properties (all shown below) of this kind of load in the example above.
If you need them use them accordingly.
Hi,
I would like to program linear supports :
Can you give me a code to do that with VBA ?
Take a look at reservior_test.xls example you have.
Dim monobjet As RobotObjObject Dim moncote As RobotObjEdge Dim sup As IRobotLabel Dim sup_data As IRobotNodeSupportData Set sup = robapp.Project.Structure.Labels.Create(I_LT_SUPPORT, "mon_appuis_1") Set sup_data = sup.Data ' definition des appuis sup_data.SetFixed I_NSFD_UX, True sup_data.SetFixed I_NSFD_UY, False sup_data.SetFixed I_NSFD_UZ, False sup_data.SetFixed I_NSFD_RX, False sup_data.SetFixed I_NSFD_RY, True sup_data.SetFixed I_NSFD_RZ, True robapp.Project.Structure.Labels.Store sup Set monobjet = robapp.Project.Structure.Objects.Get(2) Set moncote = monobjet.Main.Edges.Get(4) moncote.SetLabel I_LT_SUPPORT, "mon_appuis_1" monobjet.Update
@Anonymous_Adsk wrote:Take a look at reservior_test.xls example you have.
Dim monobjet As RobotObjObject Dim moncote As RobotObjEdge Dim sup As IRobotLabel Dim sup_data As IRobotNodeSupportData Set sup = robapp.Project.Structure.Labels.Create(I_LT_SUPPORT, "mon_appuis_1") Set sup_data = sup.Data ' definition des appuis sup_data.SetFixed I_NSFD_UX, True sup_data.SetFixed I_NSFD_UY, False sup_data.SetFixed I_NSFD_UZ, False sup_data.SetFixed I_NSFD_RX, False sup_data.SetFixed I_NSFD_RY, True sup_data.SetFixed I_NSFD_RZ, True robapp.Project.Structure.Labels.Store sup Set monobjet = robapp.Project.Structure.Objects.Get(2) Set moncote = monobjet.Main.Edges.Get(4) moncote.SetLabel I_LT_SUPPORT, "mon_appuis_1" monobjet.Update
Ok I saw the file reservoir but my macro is not working. I have this error message :
The variable moncote is declared but it's not work anyway.
I don't know how to solv it ?
Do you have object no17 in model? Has it edge no 3 ?
If so send me model and macro.
Macro :
Public Sub appuis_robot() Dim monobjet As RobotObjObject Dim moncote As RobotObjEdge Dim sup As IRobotLabel Dim sup_data As IRobotNodeSupportData Set sup = Robapp.Project.Structure.Labels.Create(I_LT_SUPPORT, "appuis_entretoises") Set sup_data = sup.Data ' definition des appuis sup_data.SetFixed I_NSFD_UX, True sup_data.SetFixed I_NSFD_UY, False sup_data.SetFixed I_NSFD_UZ, False sup_data.SetFixed I_NSFD_RX, False sup_data.SetFixed I_NSFD_RY, True sup_data.SetFixed I_NSFD_RZ, True Robapp.Project.Structure.Labels.Store sup Set monobjet = Robapp.Project.Structure.Objects.Get(3) Set moncote = monobjet.Main.Edges.Get(17) moncote.SetLabel I_LT_SUPPORT, "appuis_entretoises" monobjet.Update Robapp.Project.Structure.Labels.Store sup Set sup_data = Nothing Set sup = Nothing Set monobjet = Nothing Set moncote = Nothing End Sub
You have object 3 edge 17.
Object 17 , edge 3 - below
Set monobjet = RobApp.Project.Structure.Objects.Get(17)
Set moncote = monobjet.Main.Edges.Get(3)
Can't find what you're looking for? Ask the community or share your knowledge.