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