Create Linear Pattern Example (VB.NET)
This example shows how to create a linear pattern.
'-------------------------------------------------------------
' Preconditions:
' 1. Create a VB.NET Windows console project.
' 2. Copy and paste this example into the VB.NET 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.
'------------------------------------------------------------
Imports
System.Collections.Generic
Imports
System.Text
Imports
DraftSight.Interop.dsAutomation
Imports
System.Runtime.InteropServices
Imports
System.Windows.Forms
Module
Module1
Sub
Main()
'Connect to DraftSight application
Dim
dsApp = GetObject(, "DraftSight.Application")
dsApp.AbortRunningCommand() '
abort any command currently running in DraftSight to avoid nested commands
'Get active document
Dim
dsDoc As
Document = dsApp.GetActiveDocument()
If
dsDoc Is
Nothing
Then
MessageBox.Show("There
are no open documents in DraftSight.")
Return
End
If
'Get
model space
Dim
dsModel As
Model = dsDoc.GetModel()
'Get Sketch Manager
Dim
dsSketchMgr As
SketchManager = dsModel.GetSketchManager()
'Draw a Circle
Dim
centerPoint As
Double()
= New
Double()
{5, 5, 0}
Dim
radius As
Double =
3
Dim
dsCircle As
Circle = dsSketchMgr.InsertCircle(centerPoint(0), centerPoint(1),
centerPoint(2), radius)
'Draw a 2D PolyLine
Dim
coordinatesArray As
Double()
= New
Double()
{10, 4, 10, 6, 14, 6, _
14, 4}
Dim
closed As
Boolean =
True
Dim
dsPolyLine As
PolyLine = dsSketchMgr.InsertPolyline2D(coordinatesArray, closed)
'Linear pattern parameters
Dim
numberElementsOnVerticalAxis As
Integer =
4
Dim
numberElementsOnHorizontalAxis As
Integer =
5
Dim
spacingOnVerticalAxis As
Double =
20
Dim
spacingOnHorizontalAxis As
Double =
40
Dim
patternAngle As
Double =
Math.PI / 4 'In radians
'Prepare
list of entity types
Dim
dsEntityTypes As
Integer()
= New
Integer()
{CInt(dsObjectType_e.dsCircleType),
CInt(dsObjectType_e.dsPolyLineType)}
'Prepare list of entities
Dim
dsEntities As
DispatchWrapper() = 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,
Nothing,
Nothing)
End
Sub
End
Module