Create and Attach HyperLink Example (VBA)

This example shows how to create and attach a HyperLink to a Circle.

'--------------------------------------------------------------
' Preconditions:
' 1. Create a VBA macro in a software product in which VBA is
'    embedded.
' 2. Copy and paste this example into the Visual Basic IDE.
' 3. Add a reference to the DraftSight type library,
'    install_dir\bin\dsAutomation.dll.
' 4. Start DraftSight and open a drawing document.
' 5. Run the macro.
'
' Postconditions:
' 1. A Circle is constructed in the drawing document.
' 2. A HyperLink is created and attached to the Circle.
' 3. In DraftSight, put the cursor on the Circle to see the
'    the hyperlink and Ctrl+click to open DraftSight's website.
'----------------------------------------------------------------
Option Explicit
Sub main()
    Dim dsApp As DraftSight.Application
    Dim dsDoc As DraftSight.Document
    Dim dsModel As DraftSight.Model
    Dim dsSketchManager As DraftSight.SketchManager
    Dim dsCircle As DraftSight.Circle
    Dim centerX, centerY, centerZ, radius As Double
    
    'Connect to DraftSight
    Set dsApp = GetObject(, "DraftSight.Application")
    'Abort any command currently running in DraftSight 
    'to avoid nested commands
    dsApp.AbortRunningCommand
    'Get active document
    Set dsDoc = dsApp.GetActiveDocument()
    If Not dsDoc Is Nothing Then
        
        'Get model space
        Set dsModel = dsDoc.GetModel()
        
        'Get Sketch Manager
        Set dsSketchManager = dsModel.GetSketchManager()
        
        'Circle parameters
        centerX = 1#
        centerY = 2#
        centerZ = 0#
        radius = 5#
        
        'Construct a Circle
        Set dsCircle = dsSketchManager.InsertCircle(centerX, centerY, centerZ, radius)
        
        'Create and attach HyperLink to Circle
        Dim startCornerX As Double
        startCornerX = 0#
        Dim startCornerY As Double
        startCornerY = 0#
        Dim startCornerZ As Double
        startCornerZ = 0#
        Dim oppositeCornerX As Double
        startCornerX = 0#
        Dim oppositeCornerY As Double
        startCornerY = 0#
        Dim oppositeCornerZ As Double
        startCornerZ = 0#
        Dim hyperLinkAddress As String
        hyperLinkAddress = "http://www.3ds.com/products/draftsight/free-cad-software/"
        Dim description As String
        description = "DraftSight's website"
        Dim ds3DPolyLine As DraftSight.PolyLine3D
        Dim dsHyperLink As DraftSight.HyperLink
        
        Set dsHyperLink = dsSketchManager.AttachLinkToArea(startCornerX, startCornerY, startCornerZ, oppositeCornerX, oppositeCornerY, oppositeCornerZ, hyperLinkAddress, description, ds3DPolyLine)
        dsCircle.SetHyperLink dsHyperLink
    
    Else
        
        MsgBox "There are no open documents in DraftSight."
        
    End If
End Sub