Repository URL to install this package:
|
Version:
2016.3.0.4050 ▾
|
draftsight
/
opt
/
dassault-systemes
/
DraftSight
/
APISDK
/
Rotate_and_Copy_Entities_Example_VBNET.htm
|
|---|
<html>
<head>
<title>Rotate and Copy Entities Example (VB.NET)</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="VB.NET examples">
<meta name=MS-HKWD content="VB.NET examples,rotate entities">
<meta name=MS-HKWD content="VB.NET examples,copy entities">
<meta name=MS-HKWD content="VB.NET examples,command window">
<meta name=MS-HKWD content="VB.NET examples,selection filter">
<meta name=MS-HKWD content="VB.NET examples,Sketch Manager">
<meta name=MS-HKWD content="VB.NET examples,Selection Manager">
</head>
<body>
<h1>Rotate and Copy Entities Example (VB.NET)</h1>
<p>This example shows how to rotate and copy selected entities.</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 VB.NET Windows console project.<br>
' 2. Copy and paste this example into the VB.NET 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 <b>System</b> and <b>System.Windows.Forms</b>.<br>
' 5. Start DraftSight and open a new document.<br>
' 6. Construct multiple entities (e.g., circle, rectangle, 2D PolyLine,
etc.).<br>
' 7. Start debugging the project.<br>
'<br>
' Postconditions: <br>
' 1. When the prompt appears in the DraftSight command window,<br>
' select the entities to rotate and press the Enter key. The<br>
' selected entities are rotated.<br>
' 2. Execution stops so that you can examine the drawing to<br>
' verify that the selected entities were rotated. Click the <br>
' Continue button in the IDE to continue.<br>
' 3. The selected entities are copied.<br>
'----------------------------------------------------------------<br>
<br>
</span><span style="color: Blue">Imports</span><span style="color: Black">
System.Collections.Generic<br>
</span><span style="color: Blue">Imports</span><span style="color: Black">
System.Text<br>
</span><span style="color: Blue">Imports</span><span style="color: Black">
DraftSight.Interop.dsAutomation<br>
</span><span style="color: Blue">Imports</span><span style="color: Black">
System.Runtime.InteropServices<br>
</span><span style="color: Blue">Imports</span><span style="color: Black">
System.Windows.Forms<br>
</span><span style="color: Blue">Imports</span><span style="color: Black">
System.Diagnostics<br>
<br>
</span><span style="color: Blue">Module</span><span style="color: Black">
Module1<br>
<br>
<br>
</span><span style="color: Blue">Sub</span><span style="color: Black">
Main()<br>
<br>
</span><span style="color: Green">'Connect to DraftSight application<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
dsApp </span><span style="color: Blue">As</span><span style="color: Black">
DraftSight.Interop.dsAutomation.Application<br>
dsApp = GetObject(, </span><span style="color: #a31515">"DraftSight.Application"</span><span style="color: Black">)<br>
<br>
</span><span style="color: Blue">If</span><span style="color: Black">
dsApp </span><span style="color: Blue">Is</span><span style="color: Black">
</span><span style="color: Blue">Nothing</span><span style="color: Black">
</span><span style="color: Blue">Then<br>
</span><span style="color: Black"> </span><span style="color: Blue">Return<br>
</span><span style="color: Black"> </span><span style="color: Blue">End</span><span style="color: Black">
</span><span style="color: Blue">If<br>
<br>
</span>dsApp.<b>AbortRunningCommand</b>() ' abort any command currently running in DraftSight to avoid nested commands<span style="color: Blue"><br>
<br>
</span><span style="color: Black"> </span><span style="color: Green">'Get
active document<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
dsDoc </span><span style="color: Blue">As</span><span style="color: Black">
Document = dsApp.<b>GetActiveDocument</b>()<br>
</span><span style="color: Blue">If</span><span style="color: Black">
dsDoc </span><span style="color: Blue">Is</span><span style="color: Black">
</span><span style="color: Blue">Nothing</span><span style="color: Black">
</span><span style="color: Blue">Then<br>
</span><span style="color: Black"> MessageBox.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<br>
</span><span style="color: Black"> </span><span style="color: Blue">End</span><span style="color: Black">
</span><span style="color: Blue">If<br>
<br>
</span><span style="color: Black"> </span><span style="color: Green">'Get
model space<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
dsModel </span><span style="color: Blue">As</span><span style="color: Black">
Model = dsDoc.<b>GetModel</b>()<br>
<br>
</span><span style="color: Green">'Get Sketch Manager<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
dsSketchMgr </span><span style="color: Blue">As</span><span style="color: Black">
SketchManager = dsModel.<b>GetSketchManager</b>()<br>
<br>
</span><span style="color: Green">'Get selection manager<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
dsSelectionMgr </span><span style="color: Blue">As</span><span style="color: Black">
SelectionManager = dsDoc.<b>GetSelectionManager</b>()<br>
<br>
</span><span style="color: Green">'Get selection filter<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
dsSelectionFilter </span><span style="color: Blue">As</span><span style="color: Black">
SelectionFilter = dsSelectionMgr.<b>GetSelectionFilter</b>()<br>
<br>
</span><span style="color: Green">'Clear selection filter<br>
</span><span style="color: Black"> dsSelectionFilter.<b>Clear</b>()<br>
<br>
</span><span style="color: Green">'Add all entities to the selection
filter<br>
</span><span style="color: Black"> </span><span style="color: Blue">For</span><span style="color: Black">
</span><span style="color: Blue">Each</span><span style="color: Black">
entityType </span><span style="color: Blue">As</span><span style="color: Black">
dsObjectType_e </span><span style="color: Blue">In</span><span style="color: Black">
[Enum].GetValues(</span><span style="color: Blue">GetType</span><span style="color: Black">(dsObjectType_e))<br>
dsSelectionFilter.AddEntityType(entityType)<br>
</span><span style="color: Blue">Next<br>
<br>
</span><span style="color: Black"> </span><span style="color: Green">'Activate
selection filter<br>
</span><span style="color: Black"> dsSelectionFilter.<b>Active</b> =
</span><span style="color: Blue">True<br>
<br>
</span><span style="color: Black"> </span><span style="color: Green">'Get
command message object<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
dsCommandMessage </span><span style="color: Blue">As</span><span style="color: Black">
CommandMessage = dsApp.<b>GetCommandMessage</b>()<br>
<br>
</span><span style="color: Green">'Clear previous selection<br>
</span><span style="color: Black"> dsSelectionMgr.<b>ClearSelections</b>(dsSelectionSetType_e.dsSelectionSetType_Previous)<br>
<br>
</span><span style="color: Green">'Run prompt to select entities<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
singleSelection </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Boolean</span><span style="color: Black"> =
</span><span style="color: Blue">False<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
prompt </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">String</span><span style="color: Black"> =
</span><span style="color: #a31515">"Select entities"<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
errorMessage </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">String</span><span style="color: Black"> =
</span><span style="color: #a31515">"Unknown entity"<br>
</span><span style="color: Black"> </span><span style="color: Blue">If</span><span style="color: Black">
dsCommandMessage.<b>PromptForSelection</b>(singleSelection, prompt,
errorMessage) </span><span style="color: Blue">Then<br>
</span><span style="color: Black"> </span><span style="color: Green">'Get
number of selected objects<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
count </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Integer</span><span style="color: Black"> =
dsSelectionMgr.<b>GetSelectedObjectCount</b>(dsSelectionSetType_e.dsSelectionSetType_Previous)<br>
<br>
</span><span style="color: Blue">Dim</span><span style="color: Black">
dsEntities </span><span style="color: Blue">As</span><span style="color: Black">
DispatchWrapper() = </span><span style="color: Blue">New</span><span style="color: Black">
DispatchWrapper(count - 1) {}<br>
</span><span style="color: Blue">Dim</span><span style="color: Black">
dsEntityTypes </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Integer</span><span style="color: Black">()
= </span><span style="color: Blue">New</span><span style="color: Black">
</span><span style="color: Blue">Integer</span><span style="color: Black">(count
- 1) {}<br>
<br>
</span><span style="color: Green">'Get selected entities<br>
</span><span style="color: Black"> </span><span style="color: Blue">For</span><span style="color: Black">
index </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Integer</span><span style="color: Black"> =
0 </span><span style="color: Blue">To</span><span style="color: Black">
count - 1<br>
</span><span style="color: Blue">Dim</span><span style="color: Black">
entityType </span><span style="color: Blue">As</span><span style="color: Black">
dsObjectType_e<br>
</span><span style="color: Blue">Dim</span><span style="color: Black">
selectedEntity </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Object</span><span style="color: Black"> =
dsSelectionMgr.<b>GetSelectedObject</b>(dsSelectionSetType_e.dsSelectionSetType_Previous,
index, entityType)<br>
dsEntities(index) = </span><span style="color: Blue">New</span><span style="color: Black">
DispatchWrapper(selectedEntity)<br>
<br>
dsEntityTypes(index) = </span><span style="color: Blue">CInt</span><span style="color: Black">(entityType)<br>
</span><span style="color: Blue">Next<br>
<br>
</span><span style="color: Black"> </span><span style="color: Green">'Rotation
parameters<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
pivotPointX </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Double</span><span style="color: Black"> =
0.0<br>
</span><span style="color: Blue">Dim</span><span style="color: Black">
pivotPointY </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Double</span><span style="color: Black"> =
0.0<br>
</span><span style="color: Blue">Dim</span><span style="color: Black">
rotateAngle </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Double</span><span style="color: Black"> =
Math.PI / 4 </span><span style="color: Green">'In radians</span></p>
<p class="APICODE"><span style="color: Green"><br>
</span><span style="color: Black"> </span><span style="color: Green">'Rotate
entities<br>
</span><span style="color: Black"> dsSketchMgr.<b>RotateEntities</b>(pivotPointX,
pivotPointY, rotateAngle, dsEntityTypes, dsEntities)<br>
<br>
</span><span style="color: Green">'Stop execution<br>
</span><span style="color: Black"> </span><span style="color: Green">'Examine
the document<br>
</span><span style="color: Black"> System.Diagnostics.Debugger.Break()<br>
<br>
</span><span style="color: Green">'Click the Continue button in
the IDE<br>
<br>
</span><span style="color: Black"> </span><span style="color: Green">'Copy
parameters<br>
</span><span style="color: Black"> </span><span style="color: Blue">Dim</span><span style="color: Black">
displacementX </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Double</span><span style="color: Black"> =
2.0<br>
</span><span style="color: Blue">Dim</span><span style="color: Black">
displacementY </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Double</span><span style="color: Black"> =
2.0<br>
</span><span style="color: Blue">Dim</span><span style="color: Black">
displacementZ </span><span style="color: Blue">As</span><span style="color: Black">
</span><span style="color: Blue">Double</span><span style="color: Black"> =
0.0<br>
<br>
</span><span style="color: Green">'Copy entities<br>
</span><span style="color: Black"> dsSketchMgr.<b>CopyEntities</b>(displacementX,
displacementY, displacementZ, dsEntityTypes, dsEntities)<br>
<br>
</span><span style="color: Blue">End</span><span style="color: Black">
</span><span style="color: Blue">If</span></p>
<p class="APICODE"><span style="color: Blue"><br>
</span><span style="color: Black"> </span><span style="color: Blue">End</span><span style="color: Black">
</span><span style="color: Blue">Sub<br>
<br>
End</span><span style="color: Black"> </span><span style="color: Blue">
Module<br>
<br>
</span></div>
<p> </p>
</body>
</html>