Repository URL to install this package:
|
Version:
2016.3.0.4050 ▾
|
<html>
<head>
<title>Insert Shapes 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,shapes">
<meta name=MS-HKWD content="VB.NET examples,Shape Manager">
</head>
<body>
<h1> Insert Shapes Example (VB.NET)</h1>
<p>This example shows how to load a shape file and insert the shapes in the
loaded shape file into a drawing.</p>
<pre style="font-family: Consolas; font-size: 13; color: black; background: white"><span style="color:green;">'--------------------------------------------------------------</span>
<span style="color:green;">' Preconditions:</span>
<span style="color:green;">' 1. Create a VB.NET Windows console project.</span>
<span style="color:green;">' 2. Copy and paste this example into the VB.NET IDE.</span>
<span style="color:green;">' 3. Add a reference to:</span>
<span style="color:green;">' <i>install_dir</i>\<b>APISDK\tlb\DraftSight.Interop.dsAutomation.dll</b>.</span>
<span style="color:green;">' 4. Add references to <b>System</b> and <b>System.Windows.Forms</b>.</span>
<span style="color:green;">' 5. Start DraftSight and open a document.</span>
<span style="color:green;">' 6. Start debugging the project.</span>
<span style="color:green;">'</span>
<span style="color:green;">' Postconditions: </span>
<span style="color:green;">' 1. Gets the Shape Manager.</span>
<span style="color:green;">' 2. Loads a shape file.</span>
<span style="color:green;">' 3. Gets the shapes in the loaded shape file.</span>
<span style="color:green;">' 4. Inserts the shapes, with an obliquing angle of 30, in the drawing.</span>
<span style="color:green;">' 5. Examine the drawing.</span>
<span style="color:green;">'----------------------------------------------------------------</span>
<span style="color:blue;">Imports</span> DraftSight.Interop.dsAutomation
<span style="color:blue;">Imports</span> System.Runtime.InteropServices
<span style="color:blue;">Imports</span> System.Windows.Forms
<span style="color:blue;">Module</span> <span style="color:#2b91af;">Module1</span>
<span style="color:blue;">Sub</span> Main()
<span style="color:blue;">Dim</span> dsApp <span style="color:blue;">As</span> DraftSight.Interop.dsAutomation.<span style="color:#2b91af;">Application</span>
<span style="color:green;">'Connect to DraftSight application</span>
dsApp = <span style="color:blue;">DirectCast</span>(<span style="color:#2b91af;">Marshal</span>.GetActiveObject(<span style="color:#a31515;">"DraftSight.Application"</span>), DraftSight.Interop.dsAutomation.<span style="color:#2b91af;">Application</span>)
<span style="color:green;">' Abort any command currently running in DraftSight to avoid nested commands</span>
dsApp.<b>AbortRunningCommand</b>()
<span style="color:blue;">If</span> dsApp <span style="color:blue;">Is</span> <span style="color:blue;">Nothing</span> <span style="color:blue;">Then</span>
<span style="color:blue;">Return</span>
<span style="color:blue;">End</span> <span style="color:blue;">If</span>
<span style="color:green;">'Get active document</span>
<span style="color:blue;">Dim</span> dsDoc <span style="color:blue;">As</span> <span style="color:#2b91af;">Document</span> = dsApp.<b>GetActiveDocument</b>()
<span style="color:blue;">If</span> dsDoc <span style="color:blue;">Is</span> <span style="color:blue;">Nothing</span> <span style="color:blue;">Then</span>
<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">"There are no open documents in DraftSight."</span>)
<span style="color:blue;">Return</span>
<span style="color:blue;">End</span> <span style="color:blue;">If</span>
<span style="color:green;">'Get the Shape Manager</span>
<span style="color:blue;">Dim</span> dsShapeMgr <span style="color:blue;">As</span> <span style="color:#2b91af;">ShapeManager</span> = dsDoc.<b>GetShapeManager</b>()
<span style="color:green;">'Load shape file LTypeShp.shx</span>
<span style="color:blue;">Dim</span> dsSysFile <span style="color:blue;">As</span> <span style="color:#2b91af;">SystemFiles</span> = dsApp.<b>GetSystemFiles</b>()
<span style="color:blue;">Dim</span> FontsPathObj <span style="color:blue;">As</span> <span style="color:blue;">Object</span>() = <span style="color:blue;">DirectCast</span>(dsSysFile.FontsPaths, <span style="color:blue;">Object</span>())
<span style="color:blue;">Dim</span> fontPath <span style="color:blue;">As</span> <span style="color:blue;">String</span> = <span style="color:#a31515;">""</span>
<span style="color:blue;">If</span> FontsPathObj.Length > 0 <span style="color:blue;">Then</span>
fontPath = FontsPathObj(0).ToString()
<span style="color:blue;">End</span> <span style="color:blue;">If</span>
<span style="color:blue;">Dim</span> shapeFileName <span style="color:blue;">As</span> <span style="color:blue;">String</span> = System.IO.<span style="color:#2b91af;">Path</span>.Combine(fontPath, <span style="color:#a31515;">"LTypeShp.shx"</span>)
dsShapeMgr.<b>Load</b>(shapeFileName)
<span style="color:green;">'Get shapes</span>
<span style="color:blue;">Dim</span> shapesStrList <span style="color:blue;">As</span> <span style="color:blue;">Object</span>() = <span style="color:blue;">DirectCast</span>(dsShapeMgr.<b>GetAvailableShapes</b>(), <span style="color:blue;">Object</span>())
<span style="color:blue;">Dim</span> shapesCount <span style="color:blue;">As</span> <span style="color:blue;">Integer</span> = shapesStrList.Length
<span style="color:green;">'Get Sketch Manager</span>
<span style="color:blue;">Dim</span> dsSketchMgr <span style="color:blue;">As</span> <span style="color:#2b91af;">SketchManager</span> = dsDoc.<b>GetModel</b>().<b>GetSketchManager</b>()
<span style="color:green;">'Insert shapes</span>
<span style="color:blue;">Dim</span> PositionX <span style="color:blue;">As</span> <span style="color:blue;">Double</span> = 0.0, PositionY <span style="color:blue;">As</span> <span style="color:blue;">Double</span> = 0.0, PositionZ <span style="color:blue;">As</span> <span style="color:blue;">Double</span> = 0.0
<span style="color:blue;">For</span> i <span style="color:blue;">As</span> <span style="color:blue;">Integer</span> = 0 <span style="color:blue;">To</span> shapesCount - 1
<span style="color:blue;">Dim</span> dsShape <span style="color:blue;">As</span> <span style="color:#2b91af;">Shape</span> = dsSketchMgr.<b>InsertShape</b>(shapesStrList(i).ToString(), PositionX, PositionY, PositionZ, 1, 0.0)
<span style="color:green;">'Change obliquing property</span>
dsShape.<b>Obliquing</b> = 30 * <span style="color:#2b91af;">Math</span>.PI / 180
<span style="color:blue;">Dim</span> X1 <span style="color:blue;">As</span> <span style="color:blue;">Double</span>, Y1 <span style="color:blue;">As</span> <span style="color:blue;">Double</span>, Z1 <span style="color:blue;">As</span> <span style="color:blue;">Double</span>, X2 <span style="color:blue;">As</span> <span style="color:blue;">Double</span>, Y2 <span style="color:blue;">As</span> <span style="color:blue;">Double</span>, Z2 <span style="color:blue;">As</span> <span style="color:blue;">Double</span>
dsShape.<b>GetBoundingBox</b>(X1, Y1, Z1, X2, Y2, Z2)
PositionX += (X2 - X1) + 5
<span style="color:blue;">Next</span>
<span style="color:blue;">End</span> <span style="color:blue;">Sub</span>
<span style="color:blue;">End</span> <span style="color:blue;">Module</span>
</pre>
</body>
</html>