Repository URL to install this package:
|
Version:
2016.3.0.4050 ▾
|
<html>
<head>
<title>Create PolygonMesh Example (C#)</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="C# examples">
<meta name=MS-HKWD content="C# examples,PolygonMeshes">
</head>
<body>
<h1>Create PolygonMesh Example (C#)</h1>
<p>This example shows how to create a PolygonMesh.</p>
<div style="font-family:Monospace; font-size: 10pt; background-color: white;">
<p class="APICODE"><span style="color:Green">
//-------------------------------------------------------------<br>
// Preconditions:<br>
// 1. Create a C# Windows console project.<br>
// 2. Copy and paste this example into the C# IDE.<br>
// 3. Add a reference to:<br>
// <i>install_dir</i>\<b>APISDK\tlb\DraftSight.Interop.dsAutomation.dll</b>.<br>
// 4. Add references to <b>System</b> and <b>System.Windows.Forms</b>.<br>
// 5. Start DraftSight and open a document.<br>
// 6. Open the Immediate window.<br>
// 7. Click Start Debugging.<br>
//<br>
// Postconditions: <br>
// 1. A PolygonMesh is created and zoomed to fit.<br>
// 2. All PolygonMesh parameters are printed to the Immediate <br>
// window.<br>
//------------------------------------------------------------<br>
<br>
</span><span style="color:Blue">using</span><span style="color:Black">
System;<br>
</span><span style="color:Blue">using</span><span style="color:Black">
System.Collections.Generic;<br>
</span><span style="color:Blue">using</span><span style="color:Black">
System.Text;<br>
</span><span style="color:Blue">using</span><span style="color:Black">
DraftSight.Interop.dsAutomation;<br>
</span><span style="color:Blue">using</span><span style="color:Black">
System.Runtime.InteropServices;<br>
</span><span style="color:Blue">using</span><span style="color:Black">
System.Windows.Forms;<br>
</span><span style="color:Blue">using</span><span style="color:Black">
System.Diagnostics;<br>
<br>
</span><span style="color:Blue">namespace</span><span style="color:Black">
AddPolygonMesh<br>
{<br>
</span><span style="color:Blue">class</span><span style="color:Black">
</span><span style="color:#2b91af">Program<br>
</span><span style="color:Black"> {<br>
</span><span style="color:Blue">private</span><span style="color:Black">
</span><span style="color:Blue">static</span><span style="color:Black">
DraftSight.Interop.dsAutomation.</span><span style="color:#2b91af">Application</span><span style="color:Black">
dsApp;<br>
<br>
</span><span style="color:Blue">static</span><span style="color:Black">
</span><span style="color:Blue">void</span><span style="color:Black"> Main(</span><span style="color:Blue">string</span><span style="color:Black">[]
args)<br>
{<br>
</span><span style="color:Green">//Connect to DraftSight
application<br>
</span><span style="color:Black"> dsApp = (DraftSight.Interop.dsAutomation.</span><span style="color:#2b91af">Application</span><span style="color:Black">)</span><span style="color:#2b91af">Marshal</span><span style="color:Black">.GetActiveObject(</span><span style="color:#a31515">"DraftSight.Application"</span><span style="color:Black">);<br>
dsApp.<b>AbortRunningCommand</b>();
// </span>abort any command currently running in DraftSight to avoid nested
commands<span style="color:Black"><br>
<br>
</span><span style="color:Green">//Get active document<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">Document</span><span style="color:Black">
dsDoc = dsApp.<b>GetActiveDocument</b>();<br>
</span><span style="color:Blue">if</span><span style="color:Black">
(</span><span style="color:Blue">null</span><span style="color:Black"> ==
dsDoc)<br>
{<br>
</span><span style="color:#2b91af">MessageBox</span><span style="color:Black">.Show(</span><span style="color:#a31515">"There
are no open documents in DraftSight."</span><span style="color:Black">);<br>
</span><span style="color:Blue">return</span><span style="color:Black">;<br>
}<br>
<br>
</span><span style="color:Green">//Get model space<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">Model</span><span style="color:Black">
dsModel = dsDoc.<b>GetModel</b>();<br>
<br>
</span><span style="color:Green">//Get Sketch Manager<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">SketchManager</span><span style="color:Black">
dsSketchMgr = dsModel.<b>GetSketchManager</b>();<br>
<br>
</span><span style="color:Green">//PolygonMesh parameters<br>
</span><span style="color:Black"> </span><span style="color:Blue">double</span><span style="color:Black">[]
coordinatesArray = </span><span style="color:Blue">new</span><span style="color:Black">
</span><span style="color:Blue">double</span><span style="color:Black">[]<br>
{<br>
0, 0, -4,<br>
-1.53073372946036,0,-3.69551813004515,<br>
-2.82842712474619,0,-2.82842712474619,<br>
-3.69551813004515,0,-1.53073372946036,<br>
-4, 0, 0,<br>
0, 0, -4,<br>
-0.76536686473018,-1.32565429614237,-3.69551813004515,<br>
-1.4142135623731,-2.44948974278318,-2.82842712474619,<br>
-1.84775906502257,-3.20041258076506,-1.53073372946036,<br>
-2,-3.46410161513776,0,<br>
0, 0, -4,<br>
0.765366864730179,-1.32565429614237,-3.69551813004515,<br>
1.41421356237309,-2.44948974278318,-2.82842712474619,<br>
1.84775906502257,-3.20041258076506,-1.53073372946036,<br>
2,-3.46410161513776,0,<br>
0, 0, -4,<br>
1.53073372946036,0,-3.69551813004515,<br>
2.82842712474619,0,-2.82842712474619,<br>
3.69551813004515,0,-1.53073372946036,<br>
4, 0, 0,<br>
0, 0, -4,<br>
0.76536686473018,1.32565429614237,-3.69551813004515,<br>
1.4142135623731,2.44948974278318,-2.82842712474619,<br>
1.84775906502257,3.20041258076506,-1.53073372946036,<br>
2,3.46410161513775,0,<br>
0, 0, -4,<br>
-0.765366864730179,1.32565429614237,-3.69551813004515,<br>
-1.41421356237309,2.44948974278318,-2.82842712474619,<br>
-1.84775906502257,3.20041258076506,-1.53073372946036,<br>
-2,3.46410161513776, 0<br>
};<br>
</span><span style="color:Blue">int</span><span style="color:Black">
mVertexCount = 6;<br>
</span><span style="color:Blue">int</span><span style="color:Black">
nVertexCount = 5;<br>
<br>
</span><span style="color:Green">//Add PolygonMesh<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">PolygonMesh</span><span style="color:Black">
dsPolygonMesh = dsSketchMgr.<b>InsertPolygonMesh</b>(mVertexCount, nVertexCount,
coordinatesArray);<br>
<br>
</span><span style="color:Green">//Make PolygonMesh continuous
from the last row to the first row<br>
</span><span style="color:Black"> dsPolygonMesh.<b>MClosed</b> = </span>
<span style="color:Blue">true</span><span style="color:Black">;<br>
<br>
</span><span style="color:Green">//Zoom to fit<br>
</span><span style="color:Black"> dsApp.<b>Zoom</b>(</span><span style="color:#2b91af">dsZoomRange_e</span><span style="color:Black">.dsZoomRange_Fit,
</span><span style="color:Blue">null</span><span style="color:Black">,
</span><span style="color:Blue">null</span><span style="color:Black">);<br>
<br>
</span><span style="color:Green">//Print PolygonMesh properties<br>
</span><span style="color:Black"> PrintParameters(dsPolygonMesh);<br>
}<br>
<br>
</span><span style="color:Blue">private</span><span style="color:Black">
</span><span style="color:Blue">static</span><span style="color:Black">
</span><span style="color:Blue">void</span><span style="color:Black">
PrintParameters(</span><span style="color:#2b91af">PolygonMesh</span><span style="color:Black">
dsPolygonMesh)<br>
{<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#2b91af">Environment</span><span style="color:Black">.NewLine
+ </span><span style="color:#a31515">"Polygon mesh parameters..."</span><span style="color:Black">);<br>
<br>
</span><span style="color:Green">//Print common entity
parameters<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Handle
= "</span><span style="color:Black"> + dsPolygonMesh.<b>Handle</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Color
= "</span><span style="color:Black"> + dsPolygonMesh.Color.<b>GetNamedColor</b>());<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Erased
= "</span><span style="color:Black"> + dsPolygonMesh.<b>Erased</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Layer
= "</span><span style="color:Black"> + dsPolygonMesh.<b>Layer</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"LineScale
= "</span><span style="color:Black"> + dsPolygonMesh.<b>LineScale</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"LineStyle
= "</span><span style="color:Black"> + dsPolygonMesh.<b>LineStyle</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"LineWeight
= "</span><span style="color:Black"> + dsPolygonMesh.<b>LineWeight</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Visible
= "</span><span style="color:Black"> + dsPolygonMesh.<b>Visible</b>);<br>
<br>
</span><span style="color:Blue">double</span><span style="color:Black">
x1, y1, z1;<br>
</span><span style="color:Blue">double</span><span style="color:Black">
x2, y2, z2;<br>
dsPolygonMesh.<b>GetBoundingBox</b>(</span><span style="color:Blue">out</span><span style="color:Black">
x1, </span><span style="color:Blue">out</span><span style="color:Black"> y1,
</span><span style="color:Blue">out</span><span style="color:Black"> z1,
</span><span style="color:Blue">out</span><span style="color:Black"> x2,
</span><span style="color:Blue">out</span><span style="color:Black"> y2,
</span><span style="color:Blue">out</span><span style="color:Black"> z2);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:Blue">string</span><span style="color:Black">.Format(</span><span style="color:#a31515">"BoundingBox:
({0},{1},{2}) and ({3},{4},{5})"</span><span style="color:Black">, x1, y1,
z1, x2, y2, z2));<br>
<br>
</span><span style="color:Green">//Print PolygonMesh parameters<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"FitSmooth
= "</span><span style="color:Black"> + dsPolygonMesh.<b>FitSmooth</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"NDensity
= "</span><span style="color:Black"> + dsPolygonMesh.<b>NDensity</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"MDensity
= "</span><span style="color:Black"> + dsPolygonMesh.<b>MDensity</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"NClosed
= "</span><span style="color:Black"> + dsPolygonMesh.<b>NClosed</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"MClosed
= "</span><span style="color:Black"> + dsPolygonMesh.<b>MClosed</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"MVertexCount
= "</span><span style="color:Black"> + dsPolygonMesh.<b>GetMVertexCount</b>());<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"NVertexCount
= "</span><span style="color:Black"> + dsPolygonMesh.<b>GetNVertexCount</b>());<br>
<br>
</span><span style="color:Green">//Print PolygonMesh coordinates<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Coordinates
of polygon mesh vertices:"</span><span style="color:Black">);<br>
</span><span style="color:Blue">for</span><span style="color:Black">
(</span><span style="color:Blue">int</span><span style="color:Black">
vertexIndex = 0; vertexIndex < dsPolygonMesh.<b>GetVerticesCount</b>(); ++vertexIndex)<br>
{<br>
</span><span style="color:Blue">double</span><span style="color:Black">
x, y, z;<br>
dsPolygonMesh.<b>GetVertexCoordinate</b>(vertexIndex, </span>
<span style="color:Blue">out</span><span style="color:Black"> x, </span>
<span style="color:Blue">out</span><span style="color:Black"> y, </span>
<span style="color:Blue">out</span><span style="color:Black"> z);<br>
<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:Blue">string</span><span style="color:Black">.Format(</span><span style="color:#a31515">"Vertex({0}):
({1},{2},{3})"</span><span style="color:Black">, vertexIndex, x, y, z));<br>
}<br>
}<br>
}<br>
}<br>
</span></div>
<p> </p>
<p> </p>
</body>
</html>