VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "step2a"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
' step2a -   

' 1.                             - StrIndefiniteArray
' 2.               - PointIndefiniteArray
' 3.    ""           - TextIndefiniteArray
' 4.               - AttrIndefiniteArray
' 5.                         - PolyLineArray
' 6.         - RectArray
' 7.              - UserDataArray
' 8.     - UserClassArray

Public Kompas As Kompas6API5.Application      '  KompasObject

'   

Public Function GetLibraryName() As String
  GetLibraryName = "  "  '  
End Function

'        MathPointParam

Sub PointIndefiniteArray(doc As Kompas6API5.Document2D)
  If doc Is Nothing Then                      '     - 
    Exit Sub                                  '    
  End If
  
  Dim mathPar As Kompas6API5.MathPointParam   '  ksMathPointParam
  '     
  Set mathPar = Kompas.GetParamStruct(ko_MathPointParam)
  
  Dim arr As Kompas6API5.DynamicArray         '  ksDynamicArray
  '      
  Set arr = Kompas.GetDynamicArray(POINT_ARR)

  '  
  If (Not mathPar Is Nothing) And (Not arr Is Nothing) Then
    '    
    mathPar.x = 10                            '  
    mathPar.y = 10
    arr.ksAddArrayItem -1, mathPar            '  1- ,     
  
    mathPar.x = 20                            '  
    mathPar.y = 20
    arr.ksAddArrayItem -1, mathPar            '  2- ,     
  
    mathPar.x = 30                            '  
    mathPar.y = 30
    arr.ksAddArrayItem -1, mathPar            '  3- ,     
  
    Kompas.ksMessageBoxResult                 '  
    
    Dim n As Integer
    n = arr.ksGetArrayCount                   '      
    Kompas.ksMessage "n = " & n               ' 
  
    For i = 0 To n - 1                        '    
      arr.ksGetArrayItem i, mathPar           '    
      Kompas.ksMessage "i = " & i & " x = " & mathPar.x & " y = " & mathPar.y ' 
    Next i
    
    '   1-    
    mathPar.x = 50                            '  
    mathPar.y = 50
    arr.ksSetArrayItem 1, mathPar             '    1- 

    '   0-    
    mathPar.x = 60                            '  
    mathPar.y = 60
    arr.ksSetArrayItem 0, mathPar             '    0- 
       
    n = arr.ksGetArrayCount                   '      
  
    For i = 0 To n - 1                        '    
      arr.ksGetArrayItem i, mathPar           '    
      Kompas.ksMessage "i = " & i & " x = " & mathPar.x & " y = " & mathPar.y ' 
    Next i
    
    arr.ksDeleteArray                         '     
  End If
  
  Kompas.ksMessageBoxResult                   '  
  
End Sub

'     

Sub StrIndefiniteArray(doc As Kompas6API5.Document2D)
  If doc Is Nothing Then                      '     - 
    Exit Sub                                  '    
  End If
  
  Dim arr As Kompas6API5.DynamicArray         '  ksDynamicArray
  '     
  Set arr = Kompas.GetDynamicArray(CHAR_STR_ARR)
  
  Dim charBuf As Kompas6API5.Char255          '  ksChar255
  '     255 
  Set charBuf = Kompas.GetParamStruct(ko_Char255)
    
  '  
  If (Not charBuf Is Nothing) And (Not arr Is Nothing) Then
    charBuf.Str = "12345"                     '  
    arr.ksAddArrayItem -1, charBuf            '  1- ,     
  
    charBuf.Str = "67890"                     '  
    arr.ksAddArrayItem -1, charBuf            '  2- ,     
  
    charBuf.Str = "qwerty"                    '  
    arr.ksAddArrayItem -1, charBuf            '  3- ,     
  
    Kompas.ksMessageBoxResult                 '  
    
    Dim n As Integer
    n = arr.ksGetArrayCount                   '     
    
    Kompas.ksMessage "n = " & n               ' 
  
    For i = 0 To n - 1                        '   
      arr.ksGetArrayItem i, charBuf           '    
      Kompas.ksMessage charBuf.Str            ' 
    Next i
    
    arr.ksExcludeArrayItem 1                  '    1- 
    n = arr.ksGetArrayCount                   '     
    
    For i = 0 To n - 1                        '   
      arr.ksGetArrayItem i, charBuf           '    
      Kompas.ksMessage charBuf.Str            ' 
    Next i
  
    arr.ksDeleteArray                         '    
  End If
  
  Kompas.ksMessageBoxResult                   '  
End Sub

'          ,
'       ,    
'    ,   
'  (  ,  ,   . .)

Sub TextIndefiniteArray(doc As Kompas6API5.Document2D)
  If doc Is Nothing Then                      '     - 
    Exit Sub                                  '    
  End If
  
  Dim itemPar As Kompas6API5.TextItemParam    '  ksTextItemParam
  '     
  Set itemPar = Kompas.GetParamStruct(ko_TextItemParam)

  Dim linePar As Kompas6API5.TextLineParam    '  ksTextLineParam
  '    
  Set linePar = Kompas.GetParamStruct(ko_TextLineParam)
  
  '  
  If (Not itemPar Is Nothing) And (Not linePar Is Nothing) Then
    itemPar.Init                              '  
    linePar.Init                              '  
  
    Dim itemArr As Kompas6API5.DynamicArray   '  ksDynamicArray
    Set itemArr = linePar.GetTextItemArr      '    
  
    Dim font As Kompas6API5.TextItemFont      '  ksTextItemFont
    Set font = itemPar.GetItemFont            '  

    '  1-  
    font.HEIGHT = 10                          '  
    font.ksu = 1                              ' C 
    font.COLOR = 1000                         ' 
    font.bitVector = 1                        '   ( , , ,
                                              '   ( , , 
                                              '   ) )
    itemPar.s = "1  1 "       '  
    itemArr.ksAddArrayItem -1, itemPar        '  1-    ,
                                              '     
    
    '  2-  
    font.HEIGHT = 20                          '  
    font.ksu = 2                              '  
    font.COLOR = 2000                         ' 
    font.bitVector = 2                        '   (, , ,
                                              '   (, , 
                                              '  ))
    itemPar.s = "2  1 "       '  
    itemArr.ksAddArrayItem -1, itemPar        '  2-    ,
                                              '     
      
    '    
    linePar.Style = 1                         '    
  
    Dim lineArr As Kompas6API5.DynamicArray   '  ksDynamicArray
    '     
    Set lineArr = Kompas.GetDynamicArray(TEXT_LINE_ARR)
    
    If Not lineArr Is Nothing Then            '  
      lineArr.ksAddArrayItem -1, linePar      '   ,  
                                              '   
      itemArr.ksClearArray                    '   ,  
                                              '   2-  
      
      '    
      font.HEIGHT = 30                        '  
      font.ksu = 3                            '  
      font.COLOR = 3000                       ' 
      font.bitVector = 3                      '   (, , ,
                                              '   (, , 
                                              '  ))
      itemPar.s = "1  2 "     '  
      itemArr.ksAddArrayItem -1, itemPar      '  1-    ,
                                              '     
          
      '  2-  
      font.HEIGHT = 40                        '  
      font.ksu = 4                            '  
      font.COLOR = 4000                       ' 
      font.bitVector = 4                      '   (, , ,
                                              '   (, , 
                                              '  ))
      itemPar.s = "2  2 "     '  
      itemArr.ksAddArrayItem -1, itemPar      '  2-    ,
                                              '     
          
      ' 2-             
      linePar.Style = 2                       '    
      lineArr.ksAddArrayItem -1, linePar      '   ,     
      Kompas.ksMessageBoxResult               '     
    
      Dim n As Integer
      n = lineArr.ksGetArrayCount             '     
      Kompas.ksMessage "n = " & n             ' 
      
      Dim n1 As Integer
        
      '    
      For i = 0 To n - 1                      '    
        lineArr.ksGetArrayItem i, linePar     '    
        Kompas.ksMessage "i = " & i & " style = " & linePar.Style ' 
        
        Set itemArr = linePar.GetTextItemArr  '    
        If Not itemArr Is Nothing Then        '  
          n1 = itemArr.ksGetArrayCount        '     
          
          For j = 0 To n1 - 1                 '     
            itemArr.ksGetArrayItem j, itemPar '    
            
            Set font = itemPar.GetItemFont    ' 
            Kompas.ksMessage "j = " & j & " h = " & font.HEIGHT & " s = " & itemPar.s ' 
          Next j
        End If
      Next i
      
      lineArr.ksDeleteArray                   '    
      itemArr.ksDeleteArray                   '     
    
    End If
  End If
  
  Kompas.ksMessageBoxResult                   '     
  
End Sub

'     

Sub ShowColumns(arr As Object, ByVal f1 As Boolean)
  If Not arr Is Nothing Then                  '  
  
    Dim par As Kompas6API5.ColumnInfoParam    '  ksColumnInfoParam
    '     
    Set par = Kompas.GetParamStruct(ko_ColumnInfoParam)
    
    If Not par Is Nothing Then                    '  
      par.Init                                    ' 
      
      Dim columnArr As Kompas6API5.DynamicArray   '  ksDynamicArray
      '        
      Set columnArr = par.GetColumns()
      
      Dim fieldEnum As Kompas6API5.DynamicArray   '  ksDynamicArray
      '       
      Set fieldEnum = par.GetFieldEnum()
      
      '  
      If (Not columnArr Is Nothing) And (Not fieldEnum Is Nothing) Then
        n = arr.ksGetArrayCount                   '     
        
        For i = 0 To n - 1                        '   
          If arr.ksGetArrayItem(i, par) = 0 Then  '    
            Kompas.ksMessageBoxResult             '      
          Else
            '    
            Kompas.ksMessage s & "i = " & i & " header = " & par.header & " type = " & par.Type & _
                             " def = " & par.def & " flagEnum = " & par.flagEnum
        
            '      - ( RECORD ),   columns   
            '  ,    .
            If par.Type = RECORD_ATTR_TYPE Then                 '  
              ShowColumns par.GetColumns, True
            Else
              
              If par.flagEnum Then                              '   
                
                Kompas.ksMessage " "
                
                Dim charBuf As Kompas6API5.Char255              '  ksChar255
                '     255 
                Set charBuf = Kompas.GetParamStruct(ko_Char255)
                
                If Not charBuf Is Nothing Then                  '  
                  
                  For i1 = 0 To fieldEnum.ksGetArrayCount() - 1 '   
                  
                    '    
                    If fieldEnum.ksGetArrayItem(i1, charBuf) = 0 Then
                      Kompas.ksMessageBoxResult                 '      
                    Else
                      Kompas.ksMessage charBuf.Str
                    End If
                  Next i1
                End If
              End If
            End If
          End If
        Next i
      End If
    End If
  End If
End Sub

'         ,
'       

Sub AttrIndefiniteArray()
  '      3 
  '       int    ( 100, 200, 300 )
  '     -   
  '   {
  '     double ;//   123456789
  '     long   ;//   1000000
  '     char   ;//   10
  '   }
  '         "text"

  '   
  Dim pCol As Kompas6API5.DynamicArray                  '  ksDynamicArray
  Set pCol = Kompas.GetDynamicArray(ATTR_COLUMN_ARR)    '   
  Dim pStruct As Kompas6API5.DynamicArray               '  ksDynamicArray
  Set pStruct = Kompas.GetDynamicArray(ATTR_COLUMN_ARR) '    
  Dim pEnum As Kompas6API5.DynamicArray                 '  ksDynamicArray
  Set pEnum = Kompas.GetDynamicArray(CHAR_STR_ARR)      '    
      
  Dim parCol1 As Kompas6API5.ColumnInfoParam              '  ksColumnInfoParam
  Set parCol1 = Kompas.GetParamStruct(ko_ColumnInfoParam) '    
  
  '  
  If (Not pCol Is Nothing) And (Not pStruct Is Nothing) And (Not pEnum Is Nothing) _
      And (Not parCol1 Is Nothing) Then
    parCol1.Init                              '  
    
    parCol1.header = "int"                    ' o- 
    parCol1.Type = 3                          '     - .
    parCol1.Key = 0                           '  ,  
                                              '      
    parCol1.def = "100"                       '   
    parCol1.flagEnum = 1                      '   ,    
                                              '       1  0 
                                              '   ,    
                                              '       1  0 
    parCol1.SetFieldEnum pEnum                '     ()
    parCol1.SetColumns Nothing                '        
  
    '       ,     
    Dim charBuf As Kompas6API5.Char255        '  ksChar255
    '     255 
    Set charBuf = Kompas.GetParamStruct(ko_Char255)
    
    If Not charBuf Is Nothing Then            '  
      charBuf.Str = "100"                     ' 1- 
      pEnum.ksAddArrayItem -1, charBuf        '  1- ,     
  
      charBuf.Str = "200"                     ' 2- 
      pEnum.ksAddArrayItem -1, charBuf        '  2- ,     
  
      charBuf.Str = "300"                     ' 3- 
      pEnum.ksAddArrayItem -1, charBuf        '  3- ,     
  
      pCol.ksAddArrayItem -1, parCol1         '   ,     
  
      '      - ( RECORD ),   columns   
      '  ,    .
      Dim parCol2 As Kompas6API5.ColumnInfoParam '  ksColumnInfoParam
      '    
      Set parCol2 = Kompas.GetParamStruct(ko_ColumnInfoParam)
      
      If Not parCol2 Is Nothing Then          '  
        parCol2.Init                          '  
        parCol2.header = "struct"             ' o- 
        parCol2.Type = 9                      '     - .
        parCol2.Key = 0                       '  ,   
                                              '     
        parCol2.def = "\0"                    '   
        parCol2.flagEnum = 0                  '   ,      
                                              '     1  0 
        parCol2.SetFieldEnum Nothing          '     ()
        parCol2.SetColumns pStruct            '        
      
        Dim parStruct As Kompas6API5.ColumnInfoParam '  ksColumnInfoParam
        '     
        Set parStruct = Kompas.GetParamStruct(ko_ColumnInfoParam)
        
        If Not parStruct Is Nothing Then      '  
          '     
          '   
          parStruct.header = "double"         ' o- 
          parStruct.Type = 7                  '     - .
          parStruct.Key = 0                   '  ,    
                                              '    
          parStruct.def = "123456789"         '   
          parStruct.flagEnum = 0              '   ,    
                                              '       1  0 
      
          parStruct.SetFieldEnum Nothing      '     ()
          parStruct.SetColumns Nothing        '        
          '    ,     
          pStruct.ksAddArrayItem -1, parStruct
    
          '   
          parStruct.header = "long"           ' o- 
          parStruct.Type = 5                  '     - .
          parStruct.Key = 0                   '  ,    
                                              '    
          parStruct.def = "1000000"           '   
          parStruct.flagEnum = 0              '   ,    
                                              '       1  0 
      
          parStruct.SetFieldEnum Nothing      '     ()
          parStruct.SetColumns Nothing        '        
          '    ,     
          pStruct.ksAddArrayItem -1, parStruct
          
          '   
          parStruct.header = "char"           ' o- 
          parStruct.Type = 1                  '     - .
          parStruct.Key = 0                   '  ,    
                                              '    
          parStruct.def = "10"                '   
          parStruct.flagEnum = 0              '   ,    
                                              '       1  0 
      
          parStruct.SetFieldEnum Nothing      '     ()
          parStruct.SetColumns Nothing        '        
          '    ,     
          pStruct.ksAddArrayItem -1, parStruct
          
          '   ,     
          pCol.ksAddArrayItem -1, parCol2
          
          Dim parCol3 As Kompas6API5.ColumnInfoParam '  ksColumnInfoParam
          '     
          Set parCol3 = Kompas.GetParamStruct(ko_ColumnInfoParam)
          If Not parCol3 Is Nothing Then      '  
            parCol3.Init                      '   
            
            parCol3.header = "string"         ' o- 
            parCol3.Type = 8                  '     - .
            parCol3.Key = 0                   '  ,    
                                              '    
            parCol3.def = "text"              '   
            parCol3.flagEnum = 0              '   ,    
                                              '       1  0 
            parStruct.SetFieldEnum Nothing    '     ()
            parStruct.SetColumns Nothing      '        
      
            '   ,     
            pCol.ksAddArrayItem -1, parCol3
      
            ShowColumns pCol, False           '   
      
            Kompas.ksMessageBoxResult         '  
          
            '    2->1, 1->3, 3->2 (   )
            pCol.ksSetArrayItem 0, parCol2
            pCol.ksSetArrayItem 2, parCol1
            pCol.ksSetArrayItem 1, parCol3
  
            ShowColumns pCol, False           '   
          End If
        End If
      End If
    End If
    
    Kompas.ksMessageBoxResult                 '  
  
    '   
    pCol.ksDeleteArray                        '   
    pStruct.ksDeleteArray                     '    
    pEnum.ksDeleteArray                       '    
    
  End If
End Sub

'       

Sub PolyLineArray()
  Dim pPoly As Kompas6API5.DynamicArray       '  ksDynamicArray
  '   -   
  Set pPoly = Kompas.GetDynamicArray(POLYLINE_ARR)
  
  Dim par As Kompas6API5.MathPointParam       '  ksMathPointParam
  '    
  Set par = Kompas.GetParamStruct(ko_MathPointParam)
  
  Dim arr As Kompas6API5.DynamicArray         '  ksDynamicArray
  '     
  Set arr = Kompas.GetDynamicArray(POINT_ARR)
  
  '  
  If (Not pPoly Is Nothing) And (Not par Is Nothing) And (Not arr Is Nothing) Then
    par.x = 10                                '    
    par.y = 10
    arr.ksAddArrayItem -1, par                '  1- ,     
    
    par.x = 100
    par.y = 100
    arr.ksAddArrayItem -1, par                '  2- ,     

    par.x = 1000
    par.y = 1000
    arr.ksAddArrayItem -1, par                '  3- ,     
  
    '  1-      ,     
    pPoly.ksAddArrayItem -1, arr
  
    '    ,     2- 
    arr.ksClearArray
    
    par.x = 20                                '    
    par.y = 20
    arr.ksAddArrayItem -1, par                '  1- ,     

    par.x = 200
    par.y = 200
    arr.ksAddArrayItem -1, par                '  2- ,     

    par.x = 2000
    par.y = 2000
    arr.ksAddArrayItem -1, par                '  3- ,     
  
    '  2-      ,     
    pPoly.ksAddArrayItem -1, arr

    '    ,     3- 
    arr.ksClearArray
    
    par.x = 30                                '    
    par.y = 30
    arr.ksAddArrayItem -1, par                '  1- ,     
  
    par.x = 300
    par.y = 300
    arr.ksAddArrayItem -1, par                '  2- ,     
  
    par.x = 3000
    par.y = 3000
    arr.ksAddArrayItem -1, par                '  3- ,     
  
    '  3-      ,     
    pPoly.ksAddArrayItem -1, arr
    
    Dim count As Integer
    count = pPoly.ksGetArrayCount()           '     
    Kompas.ksMessage "count = " & count       '      
    
    '   
    '    -   
    Dim i As Integer
    For i = 0 To count - 1
      '    
      pPoly.ksGetArrayItem i, arr
  
      '      
      Dim count1 As Integer
      count1 = arr.ksGetArrayCount
      
      Dim j As Integer
      '    -   
      For j = 0 To count1 - 1
        '    
        arr.ksGetArrayItem j, par
        Kompas.ksMessage "i = " & i & " j = " & j & " x = " & par.x & " y = " & par.y
      Next j
    Next i

    '      (    )    
    par.x = 50
    par.y = 50
    arr.ksSetArrayItem 1, par                 '  
  
    par.x = 500
    par.y = 500
    arr.ksSetArrayItem 0, par                 '  
  
    '       
    pPoly.ksSetArrayItem 1, arr
    
    count = pPoly.ksGetArrayCount()           '     
  
    '   
    Dim arr2 As Kompas6API5.DynamicArray      '  ksDynamicArray
    '     
    Set arr2 = Kompas.GetDynamicArray(POINT_ARR)
    
    If Not arr2 Is Nothing Then               '  
      
      '   
      '    -   
      For i = 0 To count - 1
        pPoly.ksGetArrayItem i, arr2          '    
        
        '    -   
        For j = 0 To arr2.ksGetArrayCount() - 1 '      
          arr2.ksGetArrayItem j, par          '    
          Kompas.ksMessage "j = " & j & " x = " & par.x & " y = " & par.y
        Next j
      Next i
      
      arr2.ksDeleteArray                      '     
    End If
    
    Kompas.ksMessageBoxResult                 '  
    
    '   
    arr.ksDeleteArray                         '     
    pPoly.ksDeleteArray                       '   -   
  End If
End Sub

'     (  ksRectParam )

Sub RectArray()
  Dim arr As Kompas6API5.DynamicArray         '  ksDynamicArray
  Set arr = Kompas.GetDynamicArray(RECT_ARR)  '     
  
  Dim par As Kompas6API5.RectParam            '  ksRectParam
  Set par = Kompas.GetParamStruct(ko_RectParam) '      
  
  Dim mathPar As Kompas6API5.MathPointParam   '  ksMathPointParam
  '    
  Set mathPar = Kompas.GetParamStruct(ko_MathPointParam)
  
  '  
  If (Not arr Is Nothing) And (Not par Is Nothing) And (Not mathPar Is Nothing) Then
    '     
    mathPar.x = 10                            '     
    mathPar.y = 10
    par.SetpTop mathPar
    
    mathPar.x = 20                            '     
    mathPar.y = -10
    par.SetpBot mathPar
  
    arr.ksAddArrayItem -1, par                '  1- ,     

    mathPar.x = 20                            '     
    mathPar.y = 50
    par.SetpTop mathPar
    
    mathPar.x = 50                            '     
    mathPar.y = 10
    par.SetpBot mathPar
  
    arr.ksAddArrayItem -1, par                '  2- ,     

    mathPar.x = 20                            '     
    mathPar.y = 150
    par.SetpTop mathPar
    
    mathPar.x = 50                            '     
    mathPar.y = 110
    par.SetpBot mathPar
    
    arr.ksAddArrayItem -1, par                '  3- ,     
    
    Dim n As Integer
    n = arr.ksGetArrayCount()                 '      
    Kompas.ksMessage "n = " & n
    
    Dim mathPar2 As Kompas6API5.MathPointParam '  ksMathPointParam
    '    
    Set mathPar2 = Kompas.GetParamStruct(ko_MathPointParam)
    
    If Not mathPar2 Is Nothing Then           '  
      
      For i = 0 To n - 1                      '    
        arr.ksGetArrayItem i, par             '    
        Set mathPar = par.GetpTop()           '     
        Set mathPar2 = par.GetpBot()          '     
        Kompas.ksMessage "i = " & i & " x1 = " & mathPar.x & " y1 = " & mathPar.y & _
                         " x1 = " & mathPar2.x & " y1 = " & mathPar2.y
      Next i
      
      '    
      mathPar.x = -20                         '     
      mathPar.y = -50
      par.SetpTop mathPar

      mathPar.x = 20                          '     
      mathPar.y = -10
      par.SetpBot mathPar
      '   1-     
      arr.ksSetArrayItem 0, par
      
      mathPar.x = 0                           '     
      mathPar.y = 0
      par.SetpTop mathPar

      mathPar.x = 10                          '     
      mathPar.y = -20
      par.SetpBot mathPar
      '   2-     
      arr.ksSetArrayItem 1, par

      mathPar.x = 5                           '     
      mathPar.y = 5
      par.SetpTop mathPar
      
      mathPar.x = 25                          '     
      mathPar.y = 0
      par.SetpBot mathPar
      arr.ksAddArrayItem -1, par              '  4- ,     
      
      n = arr.ksGetArrayCount()               '      
      
      For i = 0 To n - 1                      '    
        arr.ksGetArrayItem i, par             '    
        Set mathPar = par.GetpTop()           '     
        Set mathPar2 = par.GetpBot()          '     
        Kompas.ksMessage "i = " & i & " x1 = " & mathPar.x & " y1 = " & mathPar.y & _
                         " x1 = " & mathPar2.x & " y1 = " & mathPar2.y
      Next i
      
      Kompas.ksMessageBoxResult               '  
      
      arr.ksDeleteArray                       '     
    End If
  End If
End Sub

'    -      

Public Sub ExternalRunCommand(ByVal command As Integer, ByVal mode As Integer, ByVal kompas_ As Kompas6API5.Application)
  Set Kompas = kompas_                        '   
  
  Dim doc As Kompas6API5.Document2D           '  ksDocument2D
  Set doc = Kompas.ActiveDocument2D           '    2D 
  
  Select Case command
    Case 1                                    '  
      StrIndefiniteArray doc
      
    Case 2                                    '   
      PointIndefiniteArray doc
      
    Case 3                                    '    ""
      TextIndefiniteArray doc
      
    Case 4                                    '    
      AttrIndefiniteArray
      
    Case 5                                    '  
      PolyLineArray
  
    Case 6                                    '   
      RectArray
  End Select
End Sub
                
'   
                
Public Function ExternalMenuItem(ByVal number As Integer, itemType As Integer, command As Integer) As String
    itemType = 3 '"ENDMENU"'
    ExternalMenuItem = ""
    command = -1

    Select Case number
        Case 1                                '  1 -   
            itemType = 1 'MENUITEM'
            ExternalMenuItem = "  "
            command = 1
        Case 2                                '  2 -  
            itemType = 1 'MENUITEM'
            ExternalMenuItem = " "
            command = 2
        Case 3                                '  3 -   
            itemType = 1 'MENUITEM'
            ExternalMenuItem = "  "
            command = 3
        Case 4                                '  4 -    
            itemType = 1 'MENUITEM'
            ExternalMenuItem = "   "
            command = 4
        
        Case 5                                '  5 -  
            itemType = 1 'MENUITEM'
            ExternalMenuItem = " "
            command = 5
        Case 6                                '  6 -  . 
            itemType = 1 'MENUITEM'
            ExternalMenuItem = " . "
            command = 6
        Case 7                                '   
            itemType = 3 '"ENDMENU"'
            ExternalMenuItem = ""
            command = -1
    End Select
End Function




