Fire Events When Dragging Instant3D Manipulator in an Assembly Example
(C#)
This example shows how to fire events when dragging an Instant3D manipulator
in an assembly document.
//------------------------------------
// Preconditions:
// 1. Open an assembly document.
// 2. Open the Immediate window.
// 3. Run this macro (press F5).
// NOTE:
Instant3D is enabled by the macro.
//
// Postconditions:
// 1. Select an Instant3D manipulator in the
// open
assembly by right-clicking a floating
// assembly
component, clicking the down arrows
// at
the bottom of the shortcut menu, and selecting
// "Move
with Triad". Drag the Instant3D handle
// to
move the assembly component. A debug statement is
// written
to the Immediate window informing you that
// dragging
of an Instant3D manipulator has started.
// 2. Stop dragging the manipulator.
// A
debug statement is written to the Immediate
// window
informing you that dragging of
// an
Instant3D manipulator has stopped.
//----------------------------------------
using SolidWorks.Interop.sldworks;
using SolidWorks.Interop.swconst;
using System;
using System.Collections;
using System.Diagnostics;
namespace DragStateChangeNotifyAssemblyCSharp.csproj
{ partial
class SolidWorksMacro
{
public
AssemblyDoc pDoc;
public
FeatureManager swFeatMgr;
public
void Main()
{
ModelDoc2
swModel;
Hashtable
openAssembly;
swModel
= (ModelDoc2)swApp.ActiveDoc;
//Enable
Instant3D manipulators
swFeatMgr
= (FeatureManager)swModel.FeatureManager;
swFeatMgr.MoveSizeFeatures = true;
//
Set up event handler
pDoc
= (AssemblyDoc)swModel;
openAssembly
= new Hashtable();
AttachEventHandlers();
}
public
void AttachEventHandlers()
{
AttachSWEvents();
}
public
void AttachSWEvents()
{
if
((pDoc != null))
{
pDoc.DragStateChangeNotify += this.pDoc_DragStateChangeNotify;
}
}
private
int pDoc_DragStateChangeNotify(bool
State)
{
int
functionReturnValue = 0;
//
Write debug statement when dragging of manipulator started and stopped
if
(State == true)
{
Debug.Print("Dragging
of manipulator started.");
functionReturnValue
= 1;
}
else
{
Debug.Print("Dragging
of manipulator stopped.");
functionReturnValue
= 0;
}
return
functionReturnValue;
}
///
<summary>
///
The SldWorks swApp variable is pre-assigned for you.
///
</summary>
public
SldWorks swApp;
}
}