Repository URL to install this package:
|
Version:
2016.3.0.4050 ▾
|
draftsight
/
opt
/
dassault-systemes
/
DraftSight
/
APISDK
/
Create_Polygon_Face_Mesh_Example_CSharp.htm
|
|---|
<html>
<head>
<title>Create Polygon Face Mesh 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,polygon face meshes">
</head>
<body>
<h1>Create Polygon Face Mesh Example (C#)</h1>
<p>This example shows how to create a polygon face mesh.</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 Polygon face mesh is created and zoomed to fit.<br>
// 2. All Polygon face mesh parameters are printed to the Immediate <br>
// window.<br>
//------------------------------------------------------------<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">
AddPolyfaceMesh<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 opened 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">//Polygon face mesh parameters<br>
</span><span style="color:Black"> </span><span style="color:Blue">int</span><span style="color:Black">
verticesCount = 8;<br>
</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>
2, 2, 0,<br>
2, 6, 0,<br>
6, 6, 0,<br>
6, 2, 0,<br>
2, 2, 2,<br>
2, 6, 2,<br>
6, 6, 2,<br>
6, 2, 2<br>
};<br>
</span><span style="color:Blue">int</span><span style="color:Black">[]
faceVerticesCountArray = </span><span style="color:Blue">new</span><span style="color:Black">
</span><span style="color:Blue">int</span><span style="color:Black">[] { 4,
4, 4, 4, 4, 4 };<br>
</span><span style="color:Blue">int</span><span style="color:Black">[]
faceVerticesArray = </span><span style="color:Blue">new</span><span style="color:Black">
</span><span style="color:Blue">int</span><span style="color:Black">[]<br>
{<br>
1, 2, 3, 4,<br>
5, 6, 7, 8,<br>
1, 5, 8, 4,<br>
2, 6, 7, 3,<br>
3, 7, 8, 4,<br>
1, 2, 6, 5<br>
};<br>
<br>
</span><span style="color:Green">//Add polygon face mesh<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">PolyFaceMesh</span><span style="color:Black">
dsPolyFaceMesh = dsSketchMgr.<b>InsertPolyFaceMesh</b>(verticesCount,
coordinatesArray, faceVerticesCountArray, faceVerticesArray);<br>
</span><span style="color:Blue">if</span><span style="color:Black">
(</span><span style="color:Blue">null</span><span style="color:Black"> !=
dsPolyFaceMesh)<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 polygon face mesh
parameters<br>
</span><span style="color:Black"> PrintParameters(dsPolyFaceMesh);<br>
}<br>
</span><span style="color:Blue">else<br>
</span><span style="color:Black"> {<br>
</span><span style="color:#2b91af">MessageBox</span><span style="color:Black">.Show(</span><span style="color:#a31515">"Polygon
face mesh entity was not added to the current drawing."</span><span style="color:Black">);<br>
}<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">PolyFaceMesh</span><span style="color:Black">
dsPolyFaceMesh)<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 face 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"> + dsPolyFaceMesh.<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"> + dsPolyFaceMesh.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"> + dsPolyFaceMesh.<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"> + dsPolyFaceMesh.<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"> + dsPolyFaceMesh.<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"> + dsPolyFaceMesh.<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"> + dsPolyFaceMesh.<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"> + dsPolyFaceMesh.<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>
dsPolyFaceMesh.<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 polygon face mesh faces<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Count
of faces = "</span><span style="color:Black"> + dsPolyFaceMesh.<b>GetFacesCount</b>());<br>
</span><span style="color:Blue">for</span><span style="color:Black">
(</span><span style="color:Blue">int</span><span style="color:Black">
faceIndex = 0; faceIndex < dsPolyFaceMesh.<b>GetFacesCount</b>(); ++faceIndex)<br>
{<br>
</span><span style="color:Blue">int</span><span style="color:Black">
corner1Vertex, corner2Vertex, corner3Vertex, corner4Vertex;<br>
dsPolyFaceMesh.<b>GetFace</b>(faceIndex, </span>
<span style="color:Blue">out</span><span style="color:Black"> corner1Vertex,
</span><span style="color:Blue">out</span><span style="color:Black">
corner2Vertex, </span><span style="color:Blue">out</span><span style="color:Black">
corner3Vertex, </span><span style="color:Blue">out</span><span style="color:Black">
corner4Vertex);<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">"Face({0}):
({1},{2},{3},{4})"</span><span style="color:Black">, faceIndex,
corner1Vertex, corner2Vertex, corner3Vertex, corner4Vertex));<br>
}<br>
<br>
</span><span style="color:Green">//Print polygon face mesh
vertices<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Count
of vertices = "</span><span style="color:Black"> + dsPolyFaceMesh.<b>GetVerticesCount</b>());<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 < dsPolyFaceMesh.<b>GetVerticesCount</b>(); ++vertexIndex)<br>
{<br>
</span><span style="color:Blue">double</span><span style="color:Black">
x, y, z;<br>
dsPolyFaceMesh.<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>
}</span></div>
</body>
</html>