Repository URL to install this package:
|
Version:
2016.3.0.4050 ▾
|
draftsight
/
opt
/
dassault-systemes
/
DraftSight
/
APISDK
/
Insert_Embedded_Object_Example_CSharp.htm
|
|---|
<html>
<head>
<title>Insert Embedded Object 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, embedded objects">
</head>
<body>
<h1>Insert Embedded Object Example (C#)</h1>
<p>This example shows how to embed a file object in a DraftSight drawing.</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 System and System.Windows.Forms.<br>
// 5. Place the document to embed in the project assembly folder.<br>
// 6. Right-click the project and select <b>Add > Existing Item</b>.<br>
// 7. Select the document to embed and click <b>Add</b>.<br>
</span><span style="color: #008000">//</span><span style="color:Green">
8. Right-click the file in Solution Explorer and select <b>Properties</b>.<br>
// 9. For the Copy to Output property select <b>Copy Always</b>.<br>
//10. Modify the document name referenced in the code. <br>
//11. Start DraftSight and open a drawing document.<br>
//12. Start debugging the project.<br>
//<br>
// Postconditions: <br>
// 1. The file object is embedded in the drawing.<br>
// 2. Inspect the Immediate window for its position and parameters.<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;<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.Runtime.InteropServices;<br>
</span><span style="color:Blue">using</span><span style="color:Black">
System.Diagnostics;<br>
</span><span style="color:Blue">using</span><span style="color:Black">
System.IO;<br>
</span><span style="color:Blue">using</span><span style="color:Black">
System.Reflection;<br>
<br>
</span><span style="color:Blue">namespace</span><span style="color:Black">
InsertEmbeddedObject<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">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"> DraftSight.</span><span style="color:#2b91af">Application</span><span style="color:Black">
dsApp = ConnectToDraftSight();<br>
</span><span style="color:Blue">if</span><span style="color:Black">
(</span><span style="color:Blue">null</span><span style="color:Black"> ==
dsApp)<br>
{<br>
</span><span style="color:Blue">return</span><span style="color:Black">;<br>
}<br>
<br>
dsApp.<b>AbortRunningCommand</b>(); </span>
<font color="#008000">// abort any command currently running in DraftSight
to avoid nested commands</font><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">//Embedded object parameters<br>
</span><span style="color:Black"> </span><span style="color:Blue">string</span><span style="color:Black">
filePath = </span><span style="color:#2b91af">Path</span><span style="color:Black">.Combine(</span><span style="color:#2b91af">Path</span><span style="color:Black">.GetDirectoryName(</span><span style="color:#2b91af">Assembly</span><span style="color:Black">.GetExecutingAssembly().Location),
</span><span style="color:#a31515">"SampleDoc.docx"</span><span style="color:Black">);<br>
</span><span style="color:Blue">bool</span><span style="color:Black">
link = </span><span style="color:Blue">true</span><span style="color:Black">;<br>
</span><span style="color:Blue">bool</span><span style="color:Black">
displayAsIcon = </span><span style="color:Blue">false</span><span style="color:Black">;<br>
<br>
</span><span style="color:Green">//Insert embedded object<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">EmbeddedObject</span><span style="color:Black">
dsEmbeddedObject = dsSketchMgr.<b>InsertEmbeddedObjectFromFile</b>(filePath,
link, displayAsIcon);<br>
</span><span style="color:Blue">if</span><span style="color:Black">
(</span><span style="color:Blue">null</span><span style="color:Black"> !=
dsEmbeddedObject)<br>
{<br>
PrintParameters(dsEmbeddedObject);<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">"Embedded
object 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">EmbeddedObject</span><span style="color:Black">
dsEmbeddedObject)<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">"Embedded object 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"> + dsEmbeddedObject.<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"> + dsEmbeddedObject.<b>Color</b>.<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"> + dsEmbeddedObject.<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"> + dsEmbeddedObject.<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"> + dsEmbeddedObject.<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"> + dsEmbeddedObject.<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"> + dsEmbeddedObject.<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"> + dsEmbeddedObject.<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>
dsEmbeddedObject.<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 embedded object
parameters<br>
</span><span style="color:Black"> </span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Height
= "</span><span style="color:Black"> + dsEmbeddedObject.<b>Height</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Width
= "</span><span style="color:Black"> + dsEmbeddedObject.<b>Width</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"PrintQuality
= "</span><span style="color:Black"> + dsEmbeddedObject.<b>PrintQuality</b>);<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"LinkPath
= "</span><span style="color:Black"> + dsEmbeddedObject.<b>GetLinkPath</b>());<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"SourceApplication
= "</span><span style="color:Black"> + dsEmbeddedObject.<b>GetSourceApplication</b>());<br>
</span><span style="color:#2b91af">Debug</span><span style="color:Black">.Print(</span><span style="color:#a31515">"Type
= "</span><span style="color:Black"> + dsEmbeddedObject.<b>GetType</b>());<br>
<br>
</span><span style="color:Green">//Get position of embedded
object<br>
</span><span style="color:Black"> </span><span style="color:Blue">double</span><span style="color:Black">
x, y, z;<br>
dsEmbeddedObject.<b>GetPosition</b>(</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>
</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">"Position
= ({0},{1},{2})"</span><span style="color:Black">, x, y, z));<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">
DraftSight.</span><span style="color:#2b91af">Application</span><span style="color:Black">
ConnectToDraftSight()<br>
{<br>
DraftSight.</span><span style="color:#2b91af">Application</span><span style="color:Black">
dsApp = </span><span style="color:Blue">null</span><span style="color:Black">;<br>
<br>
</span><span style="color:Blue">try<br>
</span><span style="color:Black"> {<br>
</span><span style="color:Green">//Connect to DraftSight<br>
</span><span style="color:Black"> dsApp = (DraftSight.</span><span style="color:#2b91af">Application</span><span style="color:Black">)</span><span style="color:#2b91af">Marshal</span><span style="color:Black">.<b>GetActiveObject</b>(</span><span style="color:#a31515">"DraftSight.Application"</span><span style="color:Black">);<br>
}<br>
</span><span style="color:Blue">catch</span><span style="color:Black">
(</span><span style="color:#2b91af">Exception</span><span style="color:Black">
ex)<br>
{<br>
</span><span style="color:#2b91af">MessageBox</span><span style="color:Black">.Show(</span><span style="color:#a31515">"Failed
to connect to DraftSight. Cause: "</span><span style="color:Black"> +
ex.Message);<br>
dsApp = </span><span style="color:Blue">null</span><span style="color:Black">;<br>
}<br>
<br>
</span><span style="color:Blue">return</span><span style="color:Black">
dsApp;<br>
}<br>
}<br>
}</span>
</div>
<p> </p>
</body>
</html>