Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
draftsight / opt / dassault-systemes / DraftSight / APISDK / Insert_Splines_Example_CSharp.htm
Size: Mime:
<html>

<head>
<title>Insert Splines 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,Splines">
<meta name=MS-HKWD content="C# examples,points">
<meta name=MS-HKWD content="C# examples,prompts">
<meta name=MS-HKWD content="C# examples,commands">
<meta name=MS-HKWD content="C# examples,events">
<meta name=MS-HKWD content="C# examples,notifications">
<meta name=MS-HKWD content="C# examples,entities">
<meta name=MS-HKWD content="C# examples,Layers">

</head>


<body>
<h1>Insert Splines Example (C#)</h1>

<p>This example shows how to:</p>
<ul>
	<li><font face="Verdana" style="font-size: 8pt">construct several Splines, which are displayed as 
the Dassault Systèmes logo in a DraftSight drawing. </font></li>
	<li><font face="Verdana" style="font-size: 8pt">fire events before 
	and after commands are executed.</font></li>
	<li><font face="Verdana" style="font-size: 8pt">select a group of entities 
	and modify a member in that group of entities.</font></li>
	<li><font face="Verdana" style="font-size: 8pt">execute a command using 
	IApplication::RunCommand.</font></li>
</ul>
<pre style="font-family: Consolas; font-size: 13; color: black; background: white"><span style="color:green;">//--------------------------------------------------------------</span>
<span style="color:green;">//&nbsp;Preconditions:</span>
<span style="color:green;">//&nbsp;1.&nbsp;Create&nbsp;a&nbsp;C#&nbsp;Windows&nbsp;console&nbsp;project.</span>
<span style="color:green;">//&nbsp;2.&nbsp;Copy&nbsp;and&nbsp;paste&nbsp;this&nbsp;example&nbsp;into&nbsp;the&nbsp;C#&nbsp;IDE.</span>
<span style="color:green;">//&nbsp;3.&nbsp;Add&nbsp;a&nbsp;reference&nbsp;to&nbsp;the&nbsp;DraftSight&nbsp;type&nbsp;library,</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;i<i>nstall_dir</i>\<b>APISDK\tlb\DraftSight.Interop.dsAutomation.dll.</b></span>
<span style="color:green;">//&nbsp;4.&nbsp;Add&nbsp;references&nbsp;to&nbsp;<b>System</b>&nbsp;and&nbsp;<b>System.Windows.Forms</b>.</span>
<span style="color:green;">//&nbsp;5.&nbsp;Start&nbsp;DraftSight.</span>
<span style="color:green;">//&nbsp;6.&nbsp;Press F5.</span>
<span style="color:green;">//</span>
<span style="color:green;">//&nbsp;Postconditions:</span>
<span style="color:green;">//&nbsp;1.&nbsp;CommandPreNotify&nbsp;event&nbsp;is&nbsp;fired.&nbsp;Click&nbsp;<b>OK</b>&nbsp;to&nbsp;close</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;message&nbsp;box.</span>
<span style="color:green;">//&nbsp;2.&nbsp;Click&nbsp;anywhere&nbsp;in&nbsp;the&nbsp;drawing&nbsp;when&nbsp;you&nbsp;are&nbsp;prompted</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;in&nbsp;the&nbsp;command&nbsp;window&nbsp;to&nbsp;<b>Click&nbsp;to&nbsp;insert&nbsp;a&nbsp;point</b></span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;<b>for&nbsp;the&nbsp;lower-left&nbsp;corner&nbsp;for&nbsp;the&nbsp;3DS&nbsp;logo</b>.</span>
<span style="color:green;">//&nbsp;3.&nbsp;CommandPostNotify&nbsp;event&nbsp;is&nbsp;fired.&nbsp;Click&nbsp;<b>OK</b>&nbsp;to&nbsp;close</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;message&nbsp;box.</span>
<span style="color:green;">//&nbsp;4.&nbsp;The&nbsp;Dassault&nbsp;Systemes&nbsp;logo&nbsp;is&nbsp;constructed&nbsp;in&nbsp;the&nbsp;drawing.</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;a.&nbsp;Examine&nbsp;the&nbsp;drawing&nbsp;to&nbsp;verify.</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;b.&nbsp;</span><span style="color:green;">Press&nbsp;F5&nbsp;</span><span style="color:green;">in&nbsp;the&nbsp;IDE.</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;Dassault&nbsp;Systemes&nbsp;logo's&nbsp;letter&nbsp;D&nbsp;is&nbsp;changed&nbsp;</span>
<span style="color:green;">// &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from&nbsp;blue&nbsp;to&nbsp;yellow.</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;c.&nbsp;</span><span style="color:green;">Press&nbsp;F5&nbsp;to&nbsp;</span><span style="color:green;">in&nbsp;the&nbsp;IDE.</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;The&nbsp;Dassault&nbsp;Systemes&nbsp;logo's&nbsp;letter&nbsp;D&nbsp;is&nbsp;changed</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;back&nbsp;to&nbsp;blue.</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;d.&nbsp;</span><span style="color:green;">Press&nbsp;F5&nbsp;</span><span style="color:green;">in&nbsp;the&nbsp;IDE.</span>
<span style="color:green;">//&nbsp;5.&nbsp;CommandPreNotify&nbsp;event&nbsp;is&nbsp;fired.&nbsp;Click&nbsp;OK&nbsp;to&nbsp;close&nbsp;the</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;the&nbsp;message&nbsp;box.</span>
<span style="color:green;">//&nbsp;6.&nbsp;CommandPostNotify&nbsp;event&nbsp;is&nbsp;fired.&nbsp;Click&nbsp;OK&nbsp;to&nbsp;close&nbsp;the</span>
<span style="color:green;">//&nbsp;&nbsp;&nbsp;&nbsp;message&nbsp;box.</span>
<span style="color:green;">//&nbsp;7.&nbsp;The&nbsp;Dassault&nbsp;Systemes&nbsp;logo&nbsp;is&nbsp;deleted.</span>
<span style="color:green;">//----------------------------------------------------------------</span>
<span style="color:blue;">using</span>&nbsp;DraftSight.Interop.dsAutomation;
<span style="color:blue;">using</span>&nbsp;System;
<span style="color:blue;">using</span>&nbsp;System.Windows.Forms;
<span style="color:blue;">using</span>&nbsp;System.Runtime.InteropServices;
 
<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">class</span>&nbsp;<span style="color:#2b91af;">Module1</span>
{</pre>
<pre style="font-family: Consolas; font-size: 13; color: black; background: white">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">static</span>&nbsp;DraftSight.Interop.dsAutomation.<span style="color:#2b91af;">Application</span>&nbsp;dsApp&nbsp;=&nbsp;<span style="color:blue;">default</span>(DraftSight.Interop.dsAutomation.<span style="color:#2b91af;">Application</span>);
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">string</span>&nbsp;commandPreNotifyCommand&nbsp;=&nbsp;<span style="color:#a31515;">&quot;&nbsp;&quot;</span>;
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">string</span>&nbsp;commandPostNotifyCommand&nbsp;=&nbsp;<span style="color:#a31515;">&quot;&nbsp;&quot;</span>;
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:#2b91af;">Document</span>&nbsp;dsDoc&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">Document</span>);
 
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">	public</span>&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">void</span>&nbsp;Main()
    	{</pre>
<pre style="font-family: Consolas; font-size: 13; color: black; background: white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">		SketchManager</span>&nbsp;dsSketchMgr;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">		SelectionManager</span>&nbsp;dsSelectionManager;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">		SelectionFilter</span>&nbsp;dsSelectionFilter;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">		EntityHelper</span>&nbsp;dsEntityHelper; 

		<span style="color:green;">// Connect&nbsp;to&nbsp;DraftSight</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;          dsApp&nbsp;=&nbsp;(DraftSight.Interop.dsAutomation.<span style="color:#2b91af;">Application</span>)<span style="color:#2b91af;">Marshal</span>.GetActiveObject(<span style="color:#a31515;">&quot;DraftSight.Application&quot;</span>);
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">          //&nbsp;Abort&nbsp;any&nbsp;command&nbsp;currently&nbsp;running&nbsp;in&nbsp;DraftSight&nbsp;to</span>
		<span style="color:green;">//&nbsp;avoid&nbsp;nested&nbsp;commands</span>
		dsApp.<b>AbortRunningCommand</b>();</pre>
<pre style="font-family: Consolas; font-size: 13; color: black; background: white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">		//Set&nbsp;up&nbsp;dsApp&nbsp;events</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;		AttachAppEventHandlers();
 
		<span style="color:green;">// Get&nbsp;command&nbsp;message&nbsp;object</span>
		<span style="color:#2b91af;">CommandMessage</span>&nbsp;dsCommandMessage&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">CommandMessage</span>);
		dsCommandMessage&nbsp;=&nbsp;dsApp.<b>GetCommandMessage</b>();
 
		<span style="color:green;">//Get&nbsp;active&nbsp;document</span>
		dsDoc&nbsp;=&nbsp;dsApp.<b>GetActiveDocument</b>();
		<span style="color:blue;">if</span>&nbsp;(dsDoc&nbsp;==&nbsp;<span style="color:blue;">null</span>)&nbsp;{
			<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">&quot;There&nbsp;are&nbsp;no&nbsp;open&nbsp;documents&nbsp;in&nbsp;DraftSight.&quot;</span>);
			<span style="color:blue;">return</span>;
		}
 
		<span style="color:green;">// Get&nbsp;model&nbsp;space</span>
		<span style="color:#2b91af;">Model</span>&nbsp;dsModel&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">Model</span>);
		dsModel&nbsp;=&nbsp;dsDoc.<b>GetModel</b>();
 
		<span style="color:green;">// Get&nbsp;Sketch&nbsp;Manager</span>
		dsSketchMgr&nbsp;=&nbsp;dsModel.<b>GetSketchManager</b>();
 
		<span style="color:blue;">double</span>&nbsp;x&nbsp;=&nbsp;0;
		<span style="color:blue;">double</span>&nbsp;y&nbsp;=&nbsp;0;
		<span style="color:blue;">double</span>&nbsp;z&nbsp;=&nbsp;0;
 
		<span style="color:green;">//&nbsp;Prompt&nbsp;to&nbsp;insert&nbsp;the&nbsp;a&nbsp;point&nbsp;for&nbsp;lower-left&nbsp;corner&nbsp;of&nbsp;the&nbsp;3DS&nbsp;logo</span>
		<span style="color:#2b91af;">MathUtility</span>&nbsp;dsMathUtility&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">MathUtility</span>);
		<span style="color:#2b91af;">MathPlane</span>&nbsp;dsMathPlane&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">MathPlane</span>);
		dsMathUtility&nbsp;=&nbsp;dsApp.<b>GetMathUtility</b>();
		dsMathPlane&nbsp;=&nbsp;dsMathUtility.<b>CreateXYPlane</b>();
		<span style="color:blue;">bool</span>&nbsp;status&nbsp;=&nbsp;<span style="color:blue;">false</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">		string</span>&nbsp;mssge&nbsp;=&nbsp;<span style="color:#a31515;">&quot;Click&nbsp;to&nbsp;insert&nbsp;a&nbsp;point&nbsp;for&nbsp;the&nbsp;lower-left&nbsp;corner&nbsp;for&nbsp;the&nbsp;3DS&nbsp;logo&quot;</span>;
		status&nbsp;=&nbsp;dsCommandMessage.<b>PromptForPoint2</b>(mssge,&nbsp;<span style="color:blue;">true</span>,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;<span style="color:blue;">out</span>&nbsp;x,&nbsp;<span style="color:blue;">out</span>&nbsp;y,&nbsp;<span style="color:blue;">out</span>&nbsp;z,&nbsp;dsMathPlane);
 
		<span style="color:blue;">double</span>[]&nbsp;spArray1&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:blue;">double</span>[27];
		<span style="color:blue;">double</span>[]&nbsp;spArray2&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:blue;">double</span>[24];
		<span style="color:blue;">double</span>[]&nbsp;spArray3&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:blue;">double</span>[18];
 
		<span style="color:green;">//&nbsp;Construct&nbsp;the&nbsp;D</span>
		spArray1[0]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.4513;
		spArray1[1]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.3825;
		spArray1[2]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray1[3]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.324;
		spArray1[4]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.1912;
		spArray1[5]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray1[6]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.1261;
		spArray1[7]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.0932;
		spArray1[8]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray1[9]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.2571;
		spArray1[10]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.3839;
		spArray1[11]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray1[12]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.0023;
		spArray1[13]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.0086;
		spArray1[14]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray1[15]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.2132;
		spArray1[16]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.0711;
		spArray1[17]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray1[18]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.5275;
		spArray1[19]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.4664;
		spArray1[20]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray1[21]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.428;
		spArray1[22]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.5052;
		spArray1[23]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray1[24]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.1237;
		spArray1[25]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.4568;
		spArray1[26]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
 
		<span style="color:#2b91af;">Spline</span>&nbsp;spline1&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">Spline</span>);
		spline1&nbsp;=&nbsp;dsSketchMgr.<b>InsertSpline</b>(spArray1,&nbsp;<span style="color:blue;">true</span>,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0);
 
		<span style="color:green;">//&nbsp;Construct&nbsp;the&nbsp;S</span>
		spArray2[0]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.4659;
		spArray2[1]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.1472;
		spArray2[2]&nbsp;=&nbsp;0.0;
		spArray2[3]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.8218;
		spArray2[4]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.2052;
		spArray2[5]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray2[6]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.6099;
		spArray2[7]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.5472;
		spArray2[8]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray2[9]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.7898;
		spArray2[10]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.6372;
		spArray2[11]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray2[12]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.9877;
		spArray2[13]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.5952;
		spArray2[14]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray2[15]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.7158;
		spArray2[16]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.5472;
		spArray2[17]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray2[18]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.9318;
		spArray2[19]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.2232;
		spArray2[20]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray2[21]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.7818;
		spArray2[22]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.1112;
		spArray2[23]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
 
		<span style="color:#2b91af;">Spline</span>&nbsp;spline2&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">Spline</span>);
		spline2&nbsp;=&nbsp;dsSketchMgr.<b>InsertSpline</b>(spArray2,&nbsp;<span style="color:blue;">true</span>,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0);
 
		<span style="color:green;">//&nbsp;Construct&nbsp;the&nbsp;3</span>
		spArray3[0]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.6319;
		spArray3[1]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.8672;
		spArray3[2]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray3[3]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.33;
		spArray3[4]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.9233;
		spArray3[5]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray3[6]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.5;
		spArray3[7]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.9642;
		spArray3[8]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray3[9]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.7318;
		spArray3[10]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.8952;
		spArray3[11]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray3[12]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.6279;
		spArray3[13]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.6892;
		spArray3[14]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
		spArray3[15]&nbsp;=&nbsp;x&nbsp;+&nbsp;0.369;
		spArray3[16]&nbsp;=&nbsp;y&nbsp;+&nbsp;0.5563;
		spArray3[17]&nbsp;=&nbsp;z&nbsp;+&nbsp;0.0;
 
		<span style="color:#2b91af;">Spline</span>&nbsp;spline3&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">Spline</span>);
		spline3&nbsp;=&nbsp;dsSketchMgr.<b>InsertSpline</b>(spArray3,&nbsp;<span style="color:blue;">true</span>,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0,&nbsp;0);
 
		<span style="color:green;">//&nbsp;Set&nbsp;the&nbsp;colors&nbsp;for&nbsp;the&nbsp;logo</span>
		<span style="color:#2b91af;">Color</span>&nbsp;color1&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">Color</span>);
		<span style="color:#2b91af;">Color</span>&nbsp;color2&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">Color</span>);
		<span style="color:#2b91af;">Color</span>&nbsp;color3&nbsp;=&nbsp;<span style="color:blue;">default</span>(<span style="color:#2b91af;">Color</span>);
 
		color1&nbsp;=&nbsp;spline1.<b>Color</b>;
		color2&nbsp;=&nbsp;spline2.<b>Color</b>;
		color3&nbsp;=&nbsp;spline3.<b>Color</b>;
 
		color1.<b>SetNamedColor</b>(<span style="color:#2b91af;">dsNamedColor_e</span>.dsNamedColor_Blue);
		color2.<b>SetNamedColor</b>(<span style="color:#2b91af;">dsNamedColor_e</span>.dsNamedColor_Yellow);
		color3.<b>SetNamedColor</b>(<span style="color:#2b91af;">dsNamedColor_e</span>.dsNamedColor_Red);
 
		spline1.<b>Color</b>&nbsp;=&nbsp;color1;
		spline2.<b>Color</b>&nbsp;=&nbsp;color2;
		spline3.<b>Color</b>&nbsp;=&nbsp;color3;</pre>
<pre style="font-family: Consolas; font-size: 13; color: black; background: white">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">		//&nbsp;Examine&nbsp;the&nbsp;drawing&nbsp;to&nbsp;verify&nbsp;that</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">		//&nbsp;the&nbsp;logo&nbsp;was&nbsp;created and that</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">		//&nbsp;the&nbsp;letter&nbsp;D&nbsp;is&nbsp;blue,&nbsp;the&nbsp;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">		//&nbsp;letter&nbsp;S&nbsp;is&nbsp;yellow,&nbsp;and&nbsp;the&nbsp;non-letter&nbsp;</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">		//&nbsp;is&nbsp;red</span>
 
		System.Diagnostics.<span style="color:#2b91af;">Debugger</span>.Break();
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//&nbsp;Press&nbsp;F5&nbsp;to&nbsp;change&nbsp;the&nbsp;colors&nbsp;of&nbsp;the&nbsp;logo</span>
 
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//Get&nbsp;Selection&nbsp;Manager</span>
	&nbsp;&nbsp;&nbsp;&nbsp;	dsSelectionManager&nbsp;=&nbsp;dsDoc.<b>GetSelectionManager</b>();
 
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//Get&nbsp;selection&nbsp;filter</span>
	&nbsp;&nbsp;&nbsp;&nbsp;	dsSelectionFilter&nbsp;=&nbsp;dsSelectionManager.<b>GetSelectionFilter</b>();
 
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//Clear&nbsp;selection&nbsp;filter</span>
	&nbsp;&nbsp;&nbsp;&nbsp;	dsSelectionFilter.<b>Clear</b>();
 
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//Add&nbsp;Spline&nbsp;entities&nbsp;to&nbsp;the&nbsp;selection&nbsp;filter</span>
	&nbsp;&nbsp;&nbsp;&nbsp;	dsSelectionFilter.<b>AddEntityType</b>(<span style="color:#2b91af;">dsObjectType_e</span>.dsSplineType);
 
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//Activate&nbsp;selection&nbsp;filter</span>
	&nbsp;&nbsp;&nbsp;&nbsp;	dsSelectionFilter.<b>Active</b>&nbsp;=&nbsp;<span style="color:blue;">true</span>;
 
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//Get&nbsp;all&nbsp;layer&nbsp;names</span> 
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">	string</span>[]&nbsp;layerNames&nbsp;=&nbsp;GetLayers(dsDoc);
 
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">	object</span>&nbsp;entityType&nbsp;=&nbsp;<span style="color:blue;">null</span>;
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">	object</span>&nbsp;entityObject&nbsp;=&nbsp;<span style="color:blue;">null</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">		object</span>[]&nbsp;entityObjects&nbsp;=&nbsp;<span style="color:blue;">null</span>;
 
 
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//Get&nbsp;Spline&nbsp;entities</span>
	&nbsp;&nbsp;&nbsp;&nbsp;	dsSketchMgr.<b>GetEntities</b>(dsSelectionFilter,&nbsp;layerNames,&nbsp;<span style="color:blue;">out</span>&nbsp;entityType,&nbsp;<span style="color:blue;">out</span>&nbsp;entityObject);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;		entityObjects&nbsp;=&nbsp;(<span style="color:blue;">object</span>[])entityObject;
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">		//&nbsp;Get&nbsp;EntityHelper</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;		dsEntityHelper&nbsp;=&nbsp;(<span style="color:#2b91af;">EntityHelper</span>)dsApp.<b>GetEntityHelper</b>();
 
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//&nbsp;Change&nbsp;the&nbsp;letter&nbsp;D&nbsp;in&nbsp;the&nbsp;logo&nbsp;from&nbsp;blue&nbsp;to&nbsp;yellow</span>
	&nbsp;&nbsp;&nbsp;&nbsp;	dsEntityHelper.<b>SetColor</b>(entityObjects[0],&nbsp;color2);
 
	&nbsp;&nbsp;&nbsp;&nbsp;	System.Diagnostics.<span style="color:#2b91af;">Debugger</span>.Break();
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//&nbsp;Examine&nbsp;the&nbsp;drawing&nbsp;to&nbsp;verify&nbsp;that</span>
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//&nbsp;the&nbsp;color&nbsp;of&nbsp;D&nbsp;has&nbsp;changed&nbsp;from&nbsp;blue&nbsp;to&nbsp;yellow</span>
	&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">	//&nbsp;Press&nbsp;F5&nbsp;to&nbsp;continue</span>
 
	&nbsp;&nbsp;&nbsp;&nbsp;	dsEntityHelper.<b>SetColor</b>(entityObjects[0],&nbsp;color1);
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;		System.Diagnostics.<span style="color:#2b91af;">Debugger</span>.Break();
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">		//&nbsp;Examine&nbsp;the&nbsp;drawing&nbsp;to&nbsp;verify&nbsp;that</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">		//&nbsp;the&nbsp;color&nbsp;of&nbsp;D&nbsp;has&nbsp;changed&nbsp;back&nbsp;to&nbsp;blue</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">		//&nbsp;Press&nbsp;F5&nbsp;to&nbsp;delete&nbsp;the&nbsp;logo</span>
	
		<span style="color:blue;">int</span>&nbsp;state;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;		state&nbsp;=&nbsp;(<span style="color:blue;">int</span>)dsApp.<b>RunCommand</b>(<span style="color:#a31515;">&quot;DELETE&nbsp;ALL\n\n&quot;</span>,&nbsp;<span style="color:blue;">false</span>);
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;		DetachEventHandlers();</pre>
<blockquote>
	<pre style="font-family: Consolas; font-size: 13; color: black; background: white"> 
    }
 
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Attach&nbsp;dsApp&nbsp;event&nbsp;handlers</span>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">void</span>&nbsp;AttachAppEventHandlers()
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;AttachAppEvents();
&nbsp;&nbsp;&nbsp;&nbsp;}

&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">void</span>&nbsp;AttachAppEvents()
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsApp.CommandPreNotify&nbsp;+=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">_IApplicationEvents_CommandPreNotifyEventHandler</span>(CommandPreNotify);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsApp.CommandPostNotify&nbsp;+=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">_IApplicationEvents_CommandPostNotifyEventHandler</span>(CommandPostNotify);
&nbsp;&nbsp;&nbsp;&nbsp;}
 
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Detach&nbsp;all&nbsp;event&nbsp;handlers</span>
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">void</span>&nbsp;DetachEventHandlers()
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsApp.CommandPreNotify&nbsp;-=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">_IApplicationEvents_CommandPreNotifyEventHandler</span>(CommandPreNotify);
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dsApp.CommandPostNotify&nbsp;-=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:#2b91af;">_IApplicationEvents_CommandPostNotifyEventHandler</span>(CommandPostNotify);
&nbsp;&nbsp;&nbsp;&nbsp;}
 
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">void</span>&nbsp;CommandPreNotify(<span style="color:blue;">string</span>&nbsp;commandPreNotifyCommand,&nbsp;<span style="color:#2b91af;">Document</span>&nbsp;Document)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">&quot;CommandPreNotify&nbsp;event&nbsp;was&nbsp;fired&nbsp;before&nbsp;&quot;</span>&nbsp;+&nbsp;commandPreNotifyCommand&nbsp;+&nbsp;<span style="color:#a31515;">&quot;&nbsp;was&nbsp;executed.&quot;</span>);
&nbsp;&nbsp;&nbsp;&nbsp;}
 
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">public</span>&nbsp;<span style="color:blue;">void</span>&nbsp;CommandPostNotify(<span style="color:blue;">string</span>&nbsp;commandPostNotifyCommand,&nbsp;<span style="color:#2b91af;">Document</span>&nbsp;Document)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">MessageBox</span>.Show(<span style="color:#a31515;">&quot;CommandPostNotify&nbsp;event&nbsp;was&nbsp;fired&nbsp;after&nbsp;&quot;</span>&nbsp;+&nbsp;commandPostNotifyCommand&nbsp;+&nbsp;<span style="color:#a31515;">&quot;&nbsp;was&nbsp;executed.&quot;</span>);
&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;	</pre>
	<pre style="font-family: Consolas; font-size: 13; color: black; background: white">&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">private</span>&nbsp;<span style="color:blue;">static</span>&nbsp;<span style="color:blue;">string</span>[]&nbsp;GetLayers(<span style="color:#2b91af;">Document</span>&nbsp;dsDoc)
&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:green;">//Get&nbsp;Layer&nbsp;Manager&nbsp;and&nbsp;Layer&nbsp;names</span>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">LayerManager</span>&nbsp;dsLayerManager&nbsp;=&nbsp;dsDoc.<b>GetLayerManager</b>();
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">object</span>[]&nbsp;dsLayers&nbsp;=&nbsp;(<span style="color:blue;">object</span>[])dsLayerManager.<b>GetLayers</b>();
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">string</span>[]&nbsp;layerNames&nbsp;=&nbsp;<span style="color:blue;">new</span>&nbsp;<span style="color:blue;">string</span>[dsLayers.Length];
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">for</span>&nbsp;(<span style="color:blue;">int</span>&nbsp;index&nbsp;=&nbsp;0;&nbsp;index&nbsp;&lt;&nbsp;dsLayers.Length;&nbsp;++index)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:#2b91af;">Layer</span>&nbsp;dsLayer&nbsp;=&nbsp;dsLayers[index]&nbsp;<span style="color:blue;">as</span>&nbsp;<span style="color:#2b91af;">Layer</span>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;layerNames[index]&nbsp;=&nbsp;dsLayer.<b>Name</b>;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}
 
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color:blue;">return</span>&nbsp;layerNames;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</pre>
</blockquote>
<pre style="font-family: Consolas; font-size: 13; color: black; background: white">}</pre>

</body>

</html>