464x
005058
2021-08-24

Rotazione del supporto nodale utilizzando l'interfaccia COM

Come posso ruotare un vincolo esterno nodale utilizzando l'interfaccia COM?


Risposta:

La rotazione di un vincolo esterno nodale è definita per mezzo di un sistema di coordinate definito dall'utente. Nell'esempio seguente, un vincolo esterno nodale viene ruotato di 45 ° attorno all'asse z. Non è necessario definire un nuovo sistema di coordinate tramite i nodi. In questo caso, è sufficiente utilizzare l'opzione RotatedSystemType, che consente una rotazione spaziale del vincolo esterno tramite tre rotazioni intorno agli assi x, y e z. La rotazione è inserita in radianti:


Sottotest_nodal_support ()

Dim iApp As RFEM5.Application
Imposta iApp = GetObject (, "RFEM5.Application")

iApp.LockLicense

Dim iMod As RFEM5.IModel3
Imposta iMod = iApp.GetActiveModel

On Error GoTo e

' ottieni l'interfaccia dei modeldata
Dim iModData As RFEM5.IModelData2
Imposta iModData = iMod.GetModelData

' ottieni l'interfaccia del supporto nodale
Dim iNs As RFEM5.INodalSupport
Imposta iNs = iModData.GetNodalSupport (1, AtNo)

' ottieni i dati del vincolo nodale
Dim ns As RFEM5.NodalSupport
ns = iNs.GetData

' modifica i dati
ns.ReferenceSystem = UserDefinedSystemType
ns.UserDefinedReferenceSystem.Axis1 = AxisX
ns.UserDefinedReferenceSystem.Axis2 = AxisY
ns.UserDefinedReferenceSystem.Type = RotatedSystemType
ns.UserDefinedReferenceSystem.RotationAngles.X = 0
ns.UserDefinedReferenceSystem.RotationAngles.Y = 0
ns.UserDefinedReferenceSystem.RotationAngles.Z = 45 * 3,14159265359/180

' imposta i dati del vincolo nodale
iModData.PrepareModification
iNs.SetData ns
iModData.FinishModification

e:

If Err.Number <> 0 Then MsgBox Err.description, vbCritical, Err.Source

iMod.GetApplication.UnlockLicense
Set iMod = Nothing

End Sub


Il programma prende il vincolo nodale esistente dal modello attualmente aperto e lo modifica. Poiché il sistema di coordinate definito dall'utente non è una parte diretta dell'interfaccia INodalSupport del vincolo nodale, la rotazione può anche essere trasferita durante la creazione di un vincolo nodale, ovviamente.