# Create Linear Pattern Example (C#)

This example shows how to to create a linear pattern.

    //-------------------------------------------------------------
    // Preconditions:
    // 1. Create a C# Windows console project.
    // 2. Copy and paste this example into the C# IDE.
    // 3. Add a reference to:
    //    install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
    // 4. Add references to System and System.Windows.Forms.
    // 5. Start DraftSight and open a document.
    // 6. Click Start Debugging.
    //
    // Postconditions:
    // 1. Draws a Circle.
    // 2. Draws a 2D PolyLine.
    // 3. Creates a linear pattern using the Circle and 2D PolyLine
    //    entities.
    // 4. Zooms the drawing to fit.
    // 5. Examine the drawing.
    //------------------------------------------------------------

using System;
using System.Collections.Generic;
using System.Text;
using DraftSight.Interop.dsAutomation;
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace PatternLinear
{
class Program
{
private static DraftSight.Interop.dsAutomation.Application dsApp;
static void Main(string[] args)
{
//Connect to DraftSight application
dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
dsApp.AbortRunningCommand(); // abort any command currently running in DraftSight to avoid nested commands
//Get active document
Document dsDoc = dsApp.GetActiveDocument();
if (null == dsDoc)
{
MessageBox.Show("There are no open documents in DraftSight.");
return;
}
//Get model space
Model dsModel = dsDoc.GetModel();
//Get Sketch Manager
SketchManager dsSketchMgr = dsModel.GetSketchManager();
//Draw a Circle
double[] centerPoint = new double[] { 5, 5, 0 };
double radius = 3;
Circle dsCircle = dsSketchMgr.InsertCircle(centerPoint[0], centerPoint[1], centerPoint[2], radius);
//Draw a 2D PolyLine
double[] coordinatesArray = new double[]
{
10, 4,
10, 6,
14, 6,
14, 4
};
bool closed = true;
PolyLine dsPolyLine = dsSketchMgr.InsertPolyline2D(coordinatesArray, closed);
//Linear pattern parameters
int numberElementsOnVerticalAxis = 4;
int numberElementsOnHorizontalAxis = 5;
double spacingOnVerticalAxis = 20;
double spacingOnHorizontalAxis = 40;
double patternAngle = Math.PI / 4; //In radians
//Prepare list of entity types
int[] dsEntityTypes = new int[]
{
(int)dsObjectType_e.dsCircleType,
(int)dsObjectType_e.dsPolyLineType
};
//Prepare list of entities
DispatchWrapper[] dsEntities = new DispatchWrapper[]
{
new DispatchWrapper(dsCircle),
new DispatchWrapper(dsPolyLine)
};
//Create linear pattern
dsSketchMgr.PatternLinear(numberElementsOnVerticalAxis, numberElementsOnHorizontalAxis,
spacingOnVerticalAxis, spacingOnHorizontalAxis, patternAngle,
dsEntityTypes, dsEntities);
//Zoom to fit
dsApp.Zoom(dsZoomRange_e.dsZoomRange_Fit, null, null);
}
}
}