Share

Creating hole tables

Description

This sample demonstrates the creation of hole tables in a drawing.

Code Samples

Select a drawing view that contains holes and run the following sample.
Sub CreateHoleTables()
    ' Set a reference to the drawing document.
    ' This assumes a drawing document is active.
    Dim oDrawDoc As DrawingDocument
    Set oDrawDoc = ThisApplication.ActiveDocument

    ' Set a reference to the active sheet.
    Dim oActiveSheet As Sheet
    Set oActiveSheet = oDrawDoc.ActiveSheet
    
    ' Set a reference to the drawing view.
    ' This assumes that a drawing view is selected.
    Dim oDrawingView As DrawingView
    Set oDrawingView = oDrawDoc.SelectSet.Item(1)
    
    ' Create origin indicator if it has not been already created.
    If Not oDrawingView.HasOriginIndicator Then
        ' Create point intent to anchor the origin to.
        Dim oDimIntent As GeometryIntent
        Dim oPointIntent As Point2d
        
        ' Get the first curve on the view
        Dim oCurve As DrawingCurve
        Set oCurve = oDrawingView.DrawingCurves.Item(1)
       
        ' Check if it has a strt point
        Set oPointIntent = oCurve.StartPoint
        
        If oPointIntent Is Nothing Then
            ' Else use the center point
            Set oPointIntent = oCurve.CenterPoint
        End If
        
        Set oDimIntent = oActiveSheet.CreateGeometryIntent(oCurve, oPointIntent)
        
        oDrawingView.CreateOriginIndicator oDimIntent
    End If
    
    Dim oPlacementPoint As Point2d
    
    ' Set a reference to th sheet's border
    Dim oBorder As Border
    Set oBorder = oActiveSheet.Border
    
    If Not oBorder Is Nothing Then
        ' A border exists. The placement point
        ' is the top-left corner of the border.
        Set oPlacementPoint = ThisApplication.TransientGeometry.CreatePoint2d(oBorder.RangeBox.MinPoint.X, oBorder.RangeBox.MaxPoint.Y)
    Else
        ' There is no border. The placement point
        ' is the top-left corner of the sheet.
        Set oPlacementPoint = ThisApplication.TransientGeometry.CreatePoint2d(0, oActiveSheet.height)
    End If
    
    ' Create a 'view' hole table
    ' This hole table includes all holes as specified by the active hole table style
    Dim oViewHoleTable As HoleTable
    Set oViewHoleTable = oActiveSheet.HoleTables.Add(oDrawingView, oPlacementPoint)
    
    oPlacementPoint.X = oActiveSheet.width / 2
    
    ' Create a 'feature type' hole table
    ' This hole table includes specified hole types only
    Dim oFeatureHoleTable As HoleTable
    Set oFeatureHoleTable = oActiveSheet.HoleTables.AddByFeatureType(oDrawingView, oPlacementPoint, _
            True, True, True, True, False, False, False)
End Sub


Was this information helpful?