    

 ## On this page

  

 

 # Class Shackle

 Last update: 09.03.2026 

<a id="VM_Models_Pre_Force_Shackle"></a>

Namespace: [VM.Models.Pre.Force](VM.Models.Pre.Force.md)  
Assembly: VM.Models.Pre.Force.dll

This class is to represent the Shackle.

```csharp
public class Shackle : LinkContainer, IObservableObject, IDisposableObject, ILinkable, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, ILinkContainerEvent, IVerifiable

```

#### Inheritance

object ← ObservableObject ← [LinkableBase](https://github.com/AnsysVirtualMotion/DAFUL/blob/9110677a5f6a53d7604f8dfd35b4c5fceb59e8e0/DAFUL/Pre/Data/VM.Models.Pre/Models/LinkableBase.cs) ← LinkContainer ← [Shackle](VM.Models.Pre.Force.Shackle.md)

#### Implements

IObservableObject, IDisposableObject, ILinkable, IObject, ILinkContainer, IOwned, IHasID, IEventProvider, ILinkContainerEvent, IVerifiable

#### Inherited Members

LinkContainer.SetModified(), LinkContainer.raise\_OnUpdating(object, LinkEventArgs), LinkContainer.raise\_OnUpdate(object, LinkEventArgs), LinkContainer.raise\_OnDestroying(object, LinkEventArgs), LinkContainer.raise\_OnDestroy(object, LinkEventArgs), LinkContainer.raise\_OnAdded(object, AddToDocEventArgs), LinkContainer.raise\_OnRemoved(object, RemoveFromDocEventArgs), LinkContainer.GetTargetListForUpdate(), LinkContainer.SkipUpdateObjectImpl(), LinkContainer.Initialize(Unit.ConvertFactor), LinkContainer.SetFlagWhenXMLFile(string, bool), LinkContainer.IsSerializableEvent(Delegate), LinkContainer.CustomGetObjectData(SerializationInfo, StreamingContext), LinkContainer.GetSerializedData(SerializationInfo, StreamingContext), LinkContainer.LinkRequestUpdating(object, LinkEventArgs), LinkContainer.LinkRequestUpdate(object, LinkEventArgs), LinkContainer.LinkRequestDestroying(object, LinkEventArgs), LinkContainer.LinkRequestDestroy(object, LinkEventArgs), LinkContainer.LinkAddedToDocument(object, AddToDocEventArgs), LinkContainer.LinkRemovedFromDocument(object, RemoveFromDocEventArgs), LinkContainer.OnLinkReserved(ILink, object, EventArgs), LinkContainer.CanBeDestroy(object), LinkContainer.DisposeManagedResources(), LinkContainer.SetContainer(IOwned, bool), LinkContainer.OnChildUpdated(object, LinkEventArgs), LinkContainer.OnContainerDestroy(object, LinkEventArgs), LinkContainer.OnDeserialization(object), LinkContainer.Verify(VerifiedResult), LinkContainer.GetCopy(object), LinkContainer.Dispose(bool), LinkContainer.ClearChildInfoBeforeDeserialize, LinkContainer.Container, LinkContainer.Owner, LinkContainer.Document, LinkContainer.ID, LinkContainer.IsChildExternable, LinkContainer.IsExternable, LinkContainer.OnRemoved, LinkContainer.OnAdded, LinkContainer.OnDestroy, LinkContainer.OnDestroying, LinkContainer.OnUpdate, LinkContainer.OnUpdating, [LinkableBase.OnDeserialization(object)](https://github.com/AnsysVirtualMotion/DAFUL/blob/9110677a5f6a53d7604f8dfd35b4c5fceb59e8e0/DAFUL/Pre/Data/VM.Models.Pre/Models/LinkableBase.cs), ObservableObject.Dispose(), ObservableObject.RaisePropertyChanged(string), ObservableObject.RaisePropertyChanged(string, object, object), ObservableObject.Dispose(bool), ObservableObject.DisposeManagedResources(), ObservableObject.DisposeUnmanagedResources(), ObservableObject.IsDisposed, ObservableObject.TryDisposing, ObservableObject.Disposed, ObservableObject.Disposing, ObservableObject.PropertyChanged

#### Extension Methods

[LinkPropertyItemCache.GetLinkProperties(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkProperties_System_Object_VM_Models_Pre_LinkPropertyType_), [LinkPropertyItemCache.GetLinkPropertiesAndValues(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkPropertiesAndValues_System_Object_VM_Models_Pre_LinkPropertyType_), [LinkPropertyItemCache.GetLinkedObjects&lt;T&gt;(object, LinkPropertyType)](VM.Models.Pre.Cache.LinkPropertyItemCache.md#VM_Models_Pre_Cache_LinkPropertyItemCache_GetLinkedObjects__1_System_Object_VM_Models_Pre_LinkPropertyType_)

## Constructors

### <a id="VM_Models_Pre_Force_Shackle__ctor"></a> Shackle()

Initializes a new instance of the  class.

```csharp
public Shackle()

```

## Properties

### <a id="VM_Models_Pre_Force_Shackle_ConnectionType"></a> ConnectionType

Gets or sets the connection type.

```csharp
public ConnectionType ConnectionType { get; set; }

```

#### Property Value

[ConnectionType](VM.Models.Pre.Force.ConnectionType.md)

### <a id="VM_Models_Pre_Force_Shackle_ConnectorProperty"></a> ConnectorProperty

Gets or sets the connector property.

```csharp
public PropertyBush ConnectorProperty { get; set; }

```

#### Property Value

[PropertyBush](https://github.com/AnsysVirtualMotion/DAFUL/blob/9110677a5f6a53d7604f8dfd35b4c5fceb59e8e0/DAFUL/ClassicPre/Data/VMDFB/Bush.cs)

### <a id="VM_Models_Pre_Force_Shackle_Length"></a> Length

Gets the length.

```csharp
public double Length { get; set; }

```

#### Property Value

double

### <a id="VM_Models_Pre_Force_Shackle_Location"></a> Location

Gets the location.

```csharp
public ShackleLocationType Location { get; set; }

```

#### Property Value

ShackleLocationType

### <a id="VM_Models_Pre_Force_Shackle_MassProperty"></a> MassProperty

Gets or sets the mass property.

```csharp
public ShackleMass MassProperty { get; set; }

```

#### Property Value

[ShackleMass](VM.Models.Pre.Force.ShackleMass.md)

### <a id="VM_Models_Pre_Force_Shackle_OffsetX"></a> OffsetX

Gets the offset X to eye.

```csharp
public double OffsetX { get; set; }

```

#### Property Value

double

### <a id="VM_Models_Pre_Force_Shackle_OuterRadius"></a> OuterRadius

Gets or sets the outer radius.

```csharp
public ExpressionValueVariable OuterRadius { get; set; }

```

#### Property Value

[ExpressionValueVariable](https://github.com/AnsysVirtualMotion/DAFUL/blob/9110677a5f6a53d7604f8dfd35b4c5fceb59e8e0/DAFUL/Pre/Data/VM.Models.Pre/Models/ExpressionValueVariable.cs)

### <a id="VM_Models_Pre_Force_Shackle_PinRadius"></a> PinRadius

Gets or sets the pin radius.

```csharp
public ExpressionValueVariable PinRadius { get; set; }

```

#### Property Value

[ExpressionValueVariable](https://github.com/AnsysVirtualMotion/DAFUL/blob/9110677a5f6a53d7604f8dfd35b4c5fceb59e8e0/DAFUL/Pre/Data/VM.Models.Pre/Models/ExpressionValueVariable.cs)

### <a id="VM_Models_Pre_Force_Shackle_PositioningType"></a> PositioningType

Gets the positioning type.

```csharp
public ShacklePositonType PositioningType { get; set; }

```

#### Property Value

ShacklePositonType

### <a id="VM_Models_Pre_Force_Shackle_ShackleToFramePosition"></a> ShackleToFramePosition

Gets the shackle to frame position.

```csharp
public (double X, double Z) ShackleToFramePosition { get; set; }

```

#### Property Value

(double X, double Z)

## Methods

### <a id="VM_Models_Pre_Force_Shackle_GetEyeHolePosition_VM_Models_Pre_Force_Eye_System_Double_System_Nullable_VM_TMatrix__"></a> GetEyeHolePosition(Eye, double, TMatrix?)

Get the top, bottom position of the cylindrical eye hole body.

```csharp
public static (Vector Top, Vector Bottom) GetEyeHolePosition(Eye eye, double mainLeafWidth, TMatrix? repositionMatrix = null)

```

#### Parameters

`eye` [Eye](VM.Models.Pre.Force.Eye.md)

The eye.

`mainLeafWidth` double

The main leaf width.

`repositionMatrix` TMatrix?

The reposition matrix.

#### Returns

(Vector Top, Vector Bottom)

The top, bottom position

### <a id="VM_Models_Pre_Force_Shackle_GetShackleHolePosition_VM_Vector_System_Double_System_Nullable_VM_TMatrix__"></a> GetShackleHolePosition(Vector, double, TMatrix?)

Get the top, bottom position of the cylindrical shackle hole body.

```csharp
public static (Vector Top, Vector Bottom) GetShackleHolePosition(Vector centerPosition, double mainLeafWidth, TMatrix? repositionMatrix = null)

```

#### Parameters

`centerPosition` Vector

The center position

`mainLeafWidth` double

The main leaf width.

`repositionMatrix` TMatrix?

The reposition matrix.

#### Returns

(Vector Top, Vector Bottom)

The top, bottom position

### <a id="VM_Models_Pre_Force_Shackle_GetShackleHolePosition_System_Double_System_Nullable_VM_TMatrix__"></a> GetShackleHolePosition(double, TMatrix?)

Get the top, bottom position of the cylindrical shackle hole body.

```csharp
public (Vector Top, Vector Bottom) GetShackleHolePosition(double mainLeafWidth, TMatrix? repositionMatrix = null)

```

#### Parameters

`mainLeafWidth` double

The main leaf width.

`repositionMatrix` TMatrix?

The reposition matrix.

#### Returns

(Vector Top, Vector Bottom)

The top, bottom position

### <a id="VM_Models_Pre_Force_Shackle_Initialize_VM_Unit_ConvertFactor_"></a> Initialize(ConvertFactor)

Initializes member through unit convert factor.

```csharp
public override void Initialize(Unit.ConvertFactor factor)

```

#### Parameters

`factor` Unit.ConvertFactor

The unit convert factor.

### <a id="VM_Models_Pre_Force_Shackle_InitializeMassProperty"></a> InitializeMassProperty()

Initialize mass property.

```csharp
public void InitializeMassProperty()

```