## AddEdge

### Introduced

v1.5

### Description

Adds an edge between an existing point and a "virtual" point somewhere on an edge. This command can only be called after the SplitEdge command.
Note: This command uses output arguments. C# and some scripting languages (such as JScript, PerlScript and Python) don't support arguments passed by reference. Normally you can get the output arguments via either XSIApplication.ExecuteCommand method (C#) or the ISIVTCollection (scripting languages), but this command already returns a value.
The only available workaround in this case is to create a VBScript custom command which returns both the output arguments and the return value in one array. For details, see What Happens when the Function Already Returns a Value?.

### Scripting Syntax

    oLong = AddEdge( [ConnectionSet], [Ratio], [ImmediateMode], [NewPointID], [NewEdgeID] );

### Return Value

Returns the ID of the new point created by the operation as a Long (or existing point if ratio=0 or 100)

### Parameters

Parameter | Type | Description
--- | --- | ---
ConnectionSet | ConnectionSet | Specifies the point and the edge (two elements, in that order) to connect. Default Value: Currently selected components are used. Warning: An error occurs if the connection set is invalid. Please verify the connection set required for this operator to avoid breaking your scripts.
Ratio | Double | ratio where to split the input edge
Possible Values: | Description:
0 | The new edge will be connected to the start point of the input edge
0 | The input edge will be split using this ratio before adding the new edge
100 | The new edge will be connected to the end point of the input edge
ImmediateMode | siOperationMode | Specifies whether or not the operator should be immediately frozen. Default Value: siPersistentOperation
NewPointID | Integer | ID of the new point created by the operation (or existing point if ratio=0 or 100)
NewEdgeID | Integer | ID of the new edge created by the operation

### Examples

#### VBScript Example

    ' Create a cylinder and add an edge loop around the top half of the cylinder
    CreatePrim "Cylinder", "MeshSurface"
    SplitEdge "cylinder.edge[11]", 58.529, False, True
    AddEdge "cylinder.pnt[42];cylinder.edge[9]", 52.338, True
    AddEdge "cylinder.pnt[43];cylinder.edge[23]", 31.911, True
    AddEdge "cylinder.pnt[44];cylinder.edge[34]", 50.164, True
    AddEdge "cylinder.pnt[45];cylinder.edge[45]", 38.716, True
    AddEdge "cylinder.pnt[46];cylinder.edge[56]", 37.706, True
    AddEdge "cylinder.pnt[47];cylinder.edge[67]", 54.800, True
    AddEdge "cylinder.pnt[48];cylinder.edge[78]", 27.452, True
    AddEdge "cylinder.pnt[LAST];cylinder.edge[90]", 0.000, True

### See Also

SplitEdge