Repository URL to install this package:
|
Version:
2016.3.0.4050 ▾
|
draftsight
/
opt
/
dassault-systemes
/
DraftSight
/
APISDK
/
Create_Circular_Pattern_Example_VBNET.htm
|
|---|
<html>
<head>
<title>Create Circular Pattern Example (VB.NET)</title>
<meta http-equiv="Content-Language" content="en-us">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<link rel="stylesheet" type="text/css" href="ApiHelp.css">
<meta name=MS-HKWD content="VB.NET examples">
<meta name=MS-HKWD content="VB.NET examples,circular patterns">
<meta name=MS-HKWD content="VB.NET examples,Circles">
</head>
<body>
<h1>Create Circular Pattern Example (VB.NET)</h1>
<p>This example shows how to construct a circular pattern of Circles in a
DraftSight drawing.</p>
<pre>'--------------------------------------------------------------
' 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:
' <i>install_dir</i>\<b>APISDK\tlb\DraftSight.Interop.dsAutomation.dll.
</b>' 4. Start DraftSight and open a drawing document.
' 5. Run the macro.
'
' Postconditions:
' 1. Constructs three Circles.
' 2. Creates a circular pattern using the Circles.
' 3. Zooms the drawing to fit.
' 4. Examine the drawing.
'----------------------------------------------------------------
Imports DraftSight.Interop.dsAutomation
Imports System.Runtime.InteropServices
</pre>
<pre>Module Module1</pre>
<pre> Sub Main()</pre>
<pre> Dim dsApp As Application
Dim dsDoc As Document
Dim dsModel As Model
Dim dsSketchManager As SketchManager
Dim dsCircle1 As Circle
Dim dsCircle2 As Circle
Dim dsCircle3 As Circle</pre>
<pre> 'Connect to DraftSight
dsApp = GetObject(, "DraftSight.Application")
dsApp.AbortRunningCommand() ' abort any command currently running in DraftSight to avoid nested commands</pre>
<pre> 'Get active document
dsDoc = dsApp.<b>GetActiveDocument</b>()
If Not dsDoc Is Nothing Then</pre>
<pre> 'Get model space
dsModel = dsDoc.<b>GetModel</b>()</pre>
<pre> 'Get Sketch Manager
dsSketchManager = dsModel.<b>GetSketchManager</b>()</pre>
<pre> 'Circle parameters
Dim center1X As Double, center2X As Double, center3X As Double
center1X = 30.0#
center2X = 60.0#
center3X = 90.0#</pre>
<pre> Dim center1Y As Double, center2Y As Double, center3Y As Double
center1Y = 30.0#
center2Y = 60.0#
center3Y = 90.0#</pre>
<pre> Dim center1Z As Double, center2Z As Double, center3Z As Double
center1Z = 0.0#
center2Z = 0.0#
center3Z = 0.0#</pre>
<pre> Dim radius1 As Double, radius2 As Double, radius3 As Double
radius1 = 10.0#
radius2 = 10.0#
radius3 = 10.0#</pre>
<pre> 'Draw the Circles
dsCircle1 = dsSketchManager.<b>InsertCircle</b>(center1X, center1Y, center1Z, radius1)
dsCircle2 = dsSketchManager.<b>InsertCircle</b>(center2X, center2Y, center2Z, radius2)
dsCircle3 = dsSketchManager.<b>InsertCircle</b>(center3X, center3Y, center3Z, radius3)</pre>
<pre> 'Circular pattern parameters
Dim angleBetween As Double
angleBetween = 3.14159265358979 / 2 '90 degrees in radians</pre>
<pre> Dim fillAngle As Double
fillAngle = 4.71238898 '270 degrees in radians
</pre>
<pre> Dim totalNumber As Integer
totalNumber = 4</pre>
<pre> Dim elementBasePointX As Double
Dim elementBasePointY As Double
Dim axisPointX As Double
Dim axisPointY As Double
elementBasePointX = 0.0#
elementBasePointY = 0.0#
axisPointX = 0.0#
axisPointY = 0.0#</pre>
<pre> Dim orientElementsAboutAxis As Boolean
orientElementsAboutAxis = True</pre>
<pre> 'Prepare list of entity types
Dim dsEntityTypes(0 To 2) As Integer
dsEntityTypes(0) = dsObjectType_e.dsCircleType
dsEntityTypes(1) = dsObjectType_e.dsCircleType
dsEntityTypes(2) = dsObjectType_e.dsCircleType</pre>
<pre> 'Prepare list of entities
Dim dsEntities As DispatchWrapper() = New DispatchWrapper(2) {}
dsEntities(0) = New DispatchWrapper(dsCircle1)
dsEntities(1) = New DispatchWrapper(dsCircle2)
dsEntities(2) = New DispatchWrapper(dsCircle3)</pre>
<pre> 'Create circular pattern
dsSketchManager.<b>PatternCircular</b>(dsBasePatternOn_e.dsBasePatternOn_AngleBetweenAndElementsNumber, angleBetween, fillAngle, totalNumber, elementBasePointX, elementBasePointY, axisPointX, axisPointY, orientElementsAboutAxis, dsEntityTypes, dsEntities)</pre>
<pre> 'Zoom to fit
dsApp.<b>Zoom</b>(dsZoomRange_e.dsZoomRange_Fit, Nothing, Nothing)
</pre>
<pre> Else</pre>
<pre> MsgBox("There are no open documents in DraftSight.")</pre>
<pre> End If
End Sub</pre>
<pre>End Module</pre>
</body>
</html>