Repository URL to install this package:
|
Version:
2016.3.0.4050 ▾
|
draftsight
/
opt
/
dassault-systemes
/
DraftSight
/
APISDK
/
Insert_Block_Instance_Example_CSharp.htm
|
|---|
<html>
<head>
<title>Insert Block Instance 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,Block instances">
</head>
<body>
<h1>Insert Block Instance Example (C#)</h1>
<p>This example shows how to insert a Block instance in a drawing document.</p>
<pre>//--------------------------------------------------------------
// Preconditions:
// 1. Create a C# Windows console project.
// 2. Copy and paste this example into the C# IDE.
// 3. Add a reference to:
// <i>install_dir</i>\<b>APISDK\tlb\DraftSight.Interop.dsAutomation.dll</b>.
// 4. Add references to <b>System</b> and <b>System.Windows.Forms</b>.
// 5. Start DraftSight and open a new document.
// 6. If C:\<b>Block.dwg</b> exists, then skip this step.
// - or -
// If C:\<b>Block.dwg</b> does not exist, then construct
// some geometry in the drawing, save the drawing
// as C:\<b>Block.dwg</b>, and open a new drawing document.
// 7. Start debugging the project.
//
// Postconditions: A message box pops up when a Block Instance is
// inserted in the drawing document.
//----------------------------------------------------------------</pre>
<pre>using DraftSight.Interop.dsAutomation;
using System;
using System.Runtime.InteropServices;
using System.Windows.Forms;</pre>
<pre>static class Module1
{
static void Main(string[] args)
{
DraftSight.Interop.dsAutomation.Application dsApp;
Document dsDoc = default(Document);
Model dsModel = default(Model);
SketchManager dsSketchManager = default(SketchManager);
BlockInstance dsBlockInstance = default(BlockInstance);
string pathName;
double insertX = 0;
double insertY = 0;
double insertZ = 0;
double scaleX = 0;
double scaleY = 0;
double scaleZ = 0;
double rotation = 0;</pre>
<pre> //Connect to DraftSight
dsApp = (DraftSight.Interop.dsAutomation.Application)Marshal.GetActiveObject("DraftSight.Application");
dsApp.<b>AbortRunningCommand</b>(); // abort any command currently running in DraftSight to avoid nested commands
//Get active document
dsDoc = dsApp.<b>GetActiveDocument</b>();
if (dsDoc != null)
{
//Get model space
dsModel = dsDoc.<b>GetModel</b>();</pre>
<pre> //Get Sketch Manager
dsSketchManager = dsModel.<b>GetSketchManager</b>();</pre>
<pre> //Block instance parameters (rotation value should be in radians)
pathName = "C:\\Block.dwg";
insertX = 0.0;
insertY = 0.0;
insertZ = 0.0;
scaleX = 1.0;
scaleY = 1.0;
scaleZ = 1.0;
rotation = 0.0;
//Add a Block instance
dsBlockInstance = dsSketchManager.<b>InsertBlock2</b>(pathName, insertX, insertY, insertZ, scaleX, scaleY, scaleZ, rotation);
if (dsBlockInstance != null)
{
MessageBox.Show("A Block instance from '" + pathName + "' file was added to the drawing.");
}
else
{
MessageBox.Show(pathName + " file was not found.");
}
}
else
{
MessageBox.Show("There are no open documents in DraftSight.");
}
}
}</pre>
<pre> </pre>
<pre> </pre>
<p> </p>
</body>
</html>