Hide Table of Contents

Attach Note and Tolerance Annotations to Leaders Example (VB.NET)

This example shows how to attach Note and Tolerance annotations to Leaders.

'-------------------------------------------------------------
' Preconditions:
' 1. Create a VB.NET Windows console project.
' 2. Copy and paste this example into the VB.NET IDE.
' 3. Add a reference to:
'    install_dir\APISDK\tlb\DraftSight.Interop.dsAutomation.dll
' 4. Start DraftSight and open a document.
' 5. Click Start Debugging.
'
' Postconditions: 
' 1. A Leader is constructed with a Note.
' 2. Click within the drawing to specify the point 
'    where to attach a geometric Tolerance annotation
'    to the Leader.
' 3. The geometric Tolerance annotation is attached to
'    the Leader.
' 4. A second leader is constructed with a Note.
' 5. Click within the drawing to specify the
'    point where to attach the New Note annotation to 
'    the Leader.
' 6. The New Note annotation is attached to the Leader.
' 7. The drawing is zoomed to fit.
'------------------------------------------------------------
Imports System.IO
Imports DraftSight.Interop.dsAutomation
 
Module Module1
 
    Dim dsApp As Application
 
    Sub Main()
 
        'Connect to DraftSight application
        dsApp = GetObject(, "DraftSight.Application")
        dsApp.AbortRunningCommand() ' Abort any command currently running in DraftSight to avoid nested commands
 
        'Get active document
        Dim dsDoc As Document = dsApp.GetActiveDocument()
        If dsDoc Is Nothing Then
            MsgBox("There are no open documents in DraftSight.")
            Return
        End If
 
        'Get model space
        Dim dsModel As Model = dsDoc.GetModel()
 
        'Get the Sketch Manager
        Dim dsSketchMgr As SketchManager = dsModel.GetSketchManager()
 
        'Add first Leader
        Dim leaderCoordinates As Double() = New Double() {6.5, 7.2, 0, 7.7, 8.6, 0}
        Dim noteWidth As Double = 1.0
        Dim noteText As String = "L1 "
        Dim dsLeader As Leader = dsSketchMgr.InsertLeader(leaderCoordinates, noteWidth, noteText)
 
        'Get command message
        Dim dsCommandMessage As CommandMessage = dsApp.GetCommandMessage()
 
        'Get math utility
        Dim dsMathUtility As MathUtility = dsApp.GetMathUtility()
 
        'Prompt to select the point where to insert the 
        'Tolerance annotation to the Leader
        Dim firstX As Double = 0
        Dim firstY As Double = 0
        Dim firstZ As Double = 0
        Dim dsMathPlane As MathPlane
        dsMathUtility = dsApp.GetMathUtility()
        dsMathPlane = dsMathUtility.CreateXYPlane()
        Dim status As Boolean
        status = dsCommandMessage.PromptForPoint2("Click within the drawing to insert the geometric Tolerance"True, 0, 0, 0, firstX, firstY, firstZ, dsMathPlane)

        'Create the first math point
        Dim dsFirstMathPoint As MathPoint = dsMathUtility.CreatePoint(firstX, firstY, firstZ)

        'Attach the Tolerance annotation     
        dsLeader.SetToleranceAnnotation("{\Fgdt;j}%%v{\Fgdt;n}0.7{\Fgdt;m}", dsFirstMathPoint)
 
        'Add second Leader
        Dim leaderCoordinates2 As Double() = New Double() {18, 29, 0, 30, 26, 0}
        Dim noteWidth2 As Double = 1.0
        Dim noteText2 As String = "L2 "
        Dim dsLeader2 As Leader = dsSketchMgr.InsertLeader(leaderCoordinates2, noteWidth2, noteText2)
 
        'Prompt to select the point where to insert a  
        'Note annotation to the Leader
        Dim secondX As Double = 0
        Dim secondY As Double = 0
        Dim secondZ As Double = 0
        Dim dsMathPlane2 As MathPlane

        'Get math utility
        Dim dsMathUtility2 As MathUtility = dsApp.GetMathUtility()
        dsMathUtility2 = dsApp.GetMathUtility()
        dsMathPlane2 = dsMathUtility2.CreateXYPlane()
        dsCommandMessage.PromptForPoint2("Click within the drawing to insert the new Note"True, 0, 0, 0, secondX, secondY, secondZ, dsMathPlane2)

        'Create the second math point
        Dim dsSecondMathPoint As MathPoint = dsMathUtility.CreatePoint(secondX, secondY, secondZ)
        'Attach the New Note annotation
        dsLeader2.SetNoteAnnotation("New Note", dsSecondMathPoint)
 
        dsApp.Zoom(dsZoomRange_e.dsZoomRange_Fit, NothingNothing)
 
    End Sub
 
End Module


Provide feedback on this topic

SOLIDWORKS welcomes your feedback concerning the presentation, accuracy, and thoroughness of the documentation. Use the form below to send your comments and suggestions about this topic directly to our documentation team. The documentation team cannot answer technical support questions. Click here for information about technical support.

* Required

 
*Email:  
Subject:   Feedback on Help Topics
Page:   Attach Note and Tolerance Annotations to Leaders Example (VB.NET)
*Comment:  
*   I acknowledge I have read and I hereby accept the privacy policy under which my Personal Data will be used by Dassault Systèmes

Print Topic

Select the scope of content to print:

x

We have detected you are using a browser version older than Internet Explorer 7. For optimized display, we suggest upgrading your browser to Internet Explorer 7 or newer.

 Never show this message again
x

Web Help Content Version: API Help (English only) 2022 SP05

To disable Web help from within SOLIDWORKS and use local help instead, click Help > Use SOLIDWORKS Web Help.

To report problems encountered with the Web help interface and search, contact your local support representative. To provide feedback on individual help topics, use the “Feedback on this topic” link on the individual topic page.