This example shows how to get the names and options of the DimensionStyles in a document and how to export the current view of the drawing to a PNG file.
'------------------------------------------------------------- ' 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. Open the Immediate window. ' 5. Start DraftSight. ' 6. Run the macro. ' ' Postconditions: ' 1. Specified document is opened. ' 2. The document's DimensionStyle names and options are printed to ' the Immediate window. ' 3. The current view of the drawing is exported to a PNG file. ' 4. To verify step 3, open ' C:\ProgramData\Dassault Systemes\DraftSight\Examples\B-44563.PNG ' using an application like Microsoft Paint. '------------------------------------------------------------ Option Explicit
Sub main()
Dim dsApp As DraftSight.Application
'Connect to DraftSight application Set dsApp = GetObject(, "DraftSight.Application")
'Abort any command currently running in DraftSight 'to avoid nested commands dsApp.AbortRunningCommand
'Open document Dim dsDoc As DraftSight.Document Dim docName As String docName = "c:\ProgramData\Dassault Systemes\DraftSight\Examples\B-44563.DWG" Set dsDoc = dsApp.OpenDocument2(docName, dsDocumentOpenOption_e.dsDocumentOpen_Default, dsEncoding_e.dsEncoding_Default)
If dsDoc Is Nothing Then MsgBox ("Specified document did not open. Check path and file name.") Return End If
'Get DimensionStyle manager Dim dsDimStyleManager As DraftSight.DimensionStyleManager Set dsDimStyleManager = dsDoc.GetDimensionStyleManager()
'Get DimensionStyles and options for document Dim dsDimensionStyles As Variant dsDimensionStyles = dsDimStyleManager.GetDimensionStyles() Dim index As Long If IsArray(dsDimensionStyles) Then For index = 0 To UBound(dsDimensionStyles) - 1 Dim dsDimensionStyle As Object Set dsDimensionStyle = dsDimensionStyles(index) Debug.Print "" Debug.Print "Name of DimensionStyle: " & dsDimensionStyle.Name 'Print DimensionStyle's options PrintDimensionStyleOptions dsDimensionStyle Next End If
'Export current view of drawing to PNG Dim dsExportDocument As DraftSight.DocumentExporter Dim exportFileName As String Dim status As Boolean Set dsExportDocument = dsDoc.GetDocumentExporter() exportFileName = "C:\ProgramData\Dassault Systemes\DraftSight\Examples\B-44563.PNG" dsExportDocument.ExportToPng exportFileName, status Debug.Print "" If status Then Debug.Print "Drawing exported as " & exportFileName & "." Else Debug.Print "Export of drawing to PNG failed!" End If
End Sub
Function PrintDimensionStyleOptions(ByRef dsDimensionStyle As DraftSight.DimensionStyle) 'Angular DimensionStyle options Dim dsDimensionStyleAngularDimensionOptions As DraftSight.DimensionStyleAngularDimensionOptions Set dsDimensionStyleAngularDimensionOptions = dsDimensionStyle.GetDimensionStyleAngularDimensionOptions() Debug.Print " Angular DimensionStyle options: " Debug.Print " Precision: " & dsDimensionStyleAngularDimensionOptions.Precision Debug.Print " Format: " & dsDimensionStyleAngularDimensionOptions.Format Debug.Print " Hide leading zeroes: " & dsDimensionStyleAngularDimensionOptions.HideLeadingZeroes Debug.Print " Hide trailing zeroes: " & dsDimensionStyleAngularDimensionOptions.HideTrailingZeroes
'Dual DimensionStyle options Dim dsDimensionStyleDualDimensionOptions As DraftSight.DimensionStyleDualDimensionOptions Set dsDimensionStyleDualDimensionOptions = dsDimensionStyle.GetDimensionStyleDualDimensionOptions() Debug.Print " Dual DimensionStyle options: " Debug.Print " Precision: " & dsDimensionStyleDualDimensionOptions.Precision Debug.Print " Format: " & dsDimensionStyleDualDimensionOptions.Format Debug.Print " Hide leading zeroes: " & dsDimensionStyleDualDimensionOptions.HideLeadingZeroes Debug.Print " Hide trailing zeroes: " & dsDimensionStyleDualDimensionOptions.HideTrailingZeroes
'Fit DimensionStyle options Dim dsDimensionStyleFitOptions As DraftSight.DimensionStyleFitOptions Set dsDimensionStyleFitOptions = dsDimensionStyle.GetDimensionStyleFitOptions() Debug.Print " Fit DimensionStyle options: " Debug.Print " Placement of text: " & dsDimensionStyleFitOptions.FitDimensionText Debug.Print " Entity to move outside Dimension's extension lines: " & dsDimensionStyleFitOptions.FitGeometry Debug.Print " Hide arrows: " & dsDimensionStyleFitOptions.HideArrows Dim dimensionScale As dsDimensionScale_e Dim scaleFactor As Double dsDimensionStyleFitOptions.GetDimensionScale dimensionScale, scaleFactor Debug.Print " Scale factor: " & scaleFactor
'Linear DimensionStyle options Dim dsDimensionStyleLinearDimensionOptions As DraftSight.DimensionStyleLinearDimensionOptions Set dsDimensionStyleLinearDimensionOptions = dsDimensionStyle.GetDimensionStyleLinearDimensionOptions() Debug.Print " Linear DimensionStyle options: " Debug.Print " Precision: " & dsDimensionStyleLinearDimensionOptions.Precision Debug.Print " Format: " & dsDimensionStyleLinearDimensionOptions.Format Debug.Print " Hide leading zeroes: " & dsDimensionStyleLinearDimensionOptions.HideLeadingZeroes Debug.Print " Hide trailing zeroes: " & dsDimensionStyleLinearDimensionOptions.HideTrailingZeroes
'Tolerance DimensionStyle options Dim dsDimensionStyleToleranceOptions As DraftSight.DimensionStyleToleranceOptions Set dsDimensionStyleToleranceOptions = dsDimensionStyle.GetDimensionStyleToleranceOptions() Debug.Print " Tolerance DimensionStyle options: " Debug.Print " Precision: " & dsDimensionStyleToleranceOptions.Precision Debug.Print " Minimum value: " & dsDimensionStyleToleranceOptions.MinimumValue Debug.Print " Maximum value: " & dsDimensionStyleToleranceOptions.MaximumValue Debug.Print " Hide leading zeroes: " & dsDimensionStyleToleranceOptions.HideLeadingZeroes Debug.Print " Hide trailing zeroes: " & dsDimensionStyleToleranceOptions.HideTrailingZeroes
End Function