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_Block_Instance_Example_CSharp.htm
Size: Mime:
<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(&quot;DraftSight.Application&quot;);
	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 = &quot;C:\\Block.dwg&quot;;
            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(&quot;A Block instance from '&quot; + pathName + &quot;' file was added to the drawing.&quot;);
            }
            else
            {
                MessageBox.Show(pathName + &quot; file was not found.&quot;);
            }
        }
        else         
        {
            MessageBox.Show(&quot;There are no open documents in DraftSight.&quot;);        
        }
    }
}</pre>
<pre>&nbsp;</pre>
<pre>&nbsp;</pre>
<p>&nbsp;</p>

</body>

</html>