home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 November / pcwk_11_98a.iso / Wtestowe / SOFTSRC / vtrial15.exe / DATA.1 / GLOBALS.BAS < prev    next >
BASIC Source File  |  1996-09-15  |  46KB  |  1,461 lines

  1. Attribute VB_Name = "Globals"
  2. Option Explicit
  3.  
  4. '
  5. '
  6. Public ERROR_COUNT As Integer       ' used for tracking number of failures detected during a test
  7.  
  8. '
  9. '   global object variables for Vdraft objects
  10. Public Vdraft As Object
  11. Public Docs As Object
  12. Public Doc As Object
  13. Public Entities As Object
  14. Public Units As Object
  15. Public Commands As Object
  16. Public EntitySnap As Object
  17. Public Layers As Object
  18. Public LineTypes As Object
  19. Public Colors As Object
  20. Public TextStyles As Object
  21.  
  22. '
  23. '   entity types
  24. Public Const gblNumEntities = 19
  25. Public gblEntities(gblNumEntities)
  26. Public Const entArc = 0
  27. Public Const entAttdef = 1
  28. Public Const entBlockInsert = 2
  29. Public Const entCircle = 3
  30. Public Const entDimHor = 4
  31. Public Const entDimRad = 5
  32. Public Const entDimVer = 6
  33. Public Const entFace = 7
  34. Public Const entLine = 8
  35. Public Const entPoint = 9
  36. Public Const entPolyline = 10
  37. Public Const entShape = 11
  38. Public Const entSolid = 12
  39. Public Const entStartCenterAngle = 13
  40. Public Const entStartInsert = 14
  41. Public Const entStartLine = 15
  42. Public Const entText = 16
  43. Public Const entThreePtArc = 17
  44. Public Const entTrace = 18
  45. Public Const entViewport = 19
  46.  
  47.  
  48. '
  49. '   miscellaneous
  50. Public gblPView As Integer  ' path for launching pview.exe
  51. Public ecoWhich As Integer  ' for entity creation options form
  52. Public CRLF As String
  53. Public IsGlobalUpdating     ' shows that the UpdateGlboalObjs routine is running
  54. Public RandomClick%
  55.  
  56. Sub DrawArc(X#, Y#, R#, S#, E#, Lyr$, Clr%, Regen%)
  57. '
  58. '   creates and verifies an arc
  59. '
  60.  
  61. '
  62. '   X#, Y#  are the center point
  63. '   R#      is the radius
  64. '   S#      is the start angle  (in radians)
  65. '   E#      is the end angle    (in radians)
  66. '   L$      is the layer
  67. '   C%      is the color
  68. '   Reg%    is whether to regen when done or not
  69. '
  70.     If (Not Entities Is Nothing) Then
  71.         Dim iArc As Object                      ' the arc itself
  72.         Dim iCenter As Object                   ' the various properties of the arc
  73.  
  74.         Set iArc = Entities.AddArc              ' create the arc
  75.         
  76.         If (Not iArc Is Nothing) Then           ' if the arc created successfully....
  77.             Set iCenter = iArc.Center           ' set the center point of the arc
  78.             iCenter.X = X
  79.             iCenter.Y = Y
  80.             iArc.Center iCenter
  81.             Set iCenter = Nothing
  82.             
  83.             iArc.Radius = R                     ' the radius of the arc
  84.             iArc.StartAngle = S                 ' start angle
  85.             iArc.EndAngle = E                   ' ending angle of the arc
  86.             
  87.             If (Len(Lyr$) > 0) Then
  88.                 iArc.Layer Layers.Item(Lyr$)    ' switch arc to the given layer
  89.             End If
  90.     
  91.             If (Clr% > -1) Then                 ' switch arc to the given color
  92.                 Dim iColor As Object
  93.                 Set iColor = Colors.Item(Clr%)
  94.                 iArc.Color iColor
  95.                 Set iColor = Nothing
  96.             End If
  97.     
  98.             If Regen% <> 0 Then                 ' regen the new arc if supposed to
  99.                 iArc.Regen
  100.             End If
  101.             
  102.         '
  103.         '   verify all the parameters of the arc
  104.             VerifyArc iArc, X#, Y#, R#, S#, E#, Lyr$, Clr%
  105.                         
  106.             Set iArc = Nothing
  107.         Else
  108.             Debug.Print "Arc creation failed !!!!"
  109.         End If
  110.     Else
  111.         Debug.Print "Can't create arc.  Entities object is not valid"
  112.     End If
  113. End Sub
  114. Sub DrawCircle(X#, Y#, R#, Lyr$, Clr%, Regen%)
  115. '
  116. '   draws a circle with the given parameters
  117. '   to indicated layer (Lyr$), Color (Clr%)
  118. '
  119. '   If Lyr$ is an empty string, then the active layer is used
  120. '   if Clr% = -1, then the color is ByLayer
  121. '
  122.     If ((Not Layers Is Nothing) And (Not Entities Is Nothing)) Then
  123.         Dim Circ As Object, Pt As Object            ' Circ and its points
  124.  
  125.         Set Circ = Entities.AddCircle()             ' create the new Circle
  126.  
  127.         Set Pt = Circ.Center                        ' start point of Circle
  128.         Pt.X = X#
  129.         Pt.Y = Y#
  130.         Circ.Center Pt                              ' set the new value back into the circle
  131.         Set Pt = Nothing
  132.  
  133.         Circ.Radius = R                             ' radius
  134.  
  135.         If (Len(Lyr$) > 0) Then
  136.             Circ.Layer Layers.Item(Lyr$)            ' switch Circle to the given layer
  137.         End If
  138.  
  139.         If (Clr% > -1) Then                         ' switch Circle to the given color
  140.             Dim iColor As Object
  141.             Set iColor = Colors.Item(Clr%)
  142.             Circ.Color iColor
  143.             Set iColor = Nothing
  144.         End If
  145.  
  146.         If Regen% <> 0 Then
  147.             Circ.Regen
  148.         End If
  149.         
  150.         VerifyCircle Circ, X#, Y#, R#, Lyr$, Clr%
  151.         Set Circ = Nothing                          ' release the automation objects
  152.     End If
  153. End Sub
  154. Sub DrawFace(X1#, Y1#, X2#, Y2#, X3#, Y3#, X4#, Y4#, Lyr$, Clr%, Regen%)
  155. '
  156. '   draws a face
  157. '
  158.  
  159. '
  160. '   X#, Y# 1-4  are the faces coordinates
  161. '   L$          is the layer
  162. '   C%          is the color
  163. '   Reg%        is whether to regen when done or not
  164. '
  165.     If (Not Entities Is Nothing) Then
  166.         Dim iFace As Object                         ' the Face itself
  167.         Dim iWhere As Object                        ' the various properties of the Face
  168.  
  169.         Set iFace = Entities.AddFace                ' create the Face
  170.         
  171.         If (Not iFace Is Nothing) Then              ' if the Face created successfully....
  172.             Set iWhere = iFace.Where(1)             ' get a point
  173.             iWhere.X = X1
  174.             iWhere.Y = Y1
  175.             Set iFace.Where(1) = iWhere             ' set point 1
  176.             
  177.             iWhere.X = X2
  178.             iWhere.Y = Y2
  179.             Set iFace.Where(2) = iWhere             ' set point 2
  180.             
  181.             iWhere.X = X3
  182.             iWhere.Y = Y3
  183.             Set iFace.Where(3) = iWhere             ' set point 3
  184.             
  185.             iWhere.X = X4
  186.             iWhere.Y = Y4
  187.             Set iFace.Where(4) = iWhere             ' set point 4
  188.             Set iWhere = Nothing
  189.             
  190.             If (Len(Lyr$) > 0) Then
  191.                 iFace.Layer Layers.Item(Lyr$)       ' switch Face to the given layer
  192.             End If
  193.     
  194.             If (Clr% > -1) Then                     ' switch Face to the given color
  195.                 Dim iColor As Object
  196.                 Set iColor = Colors.Item(Clr%)
  197.                 iFace.Color iColor
  198.                 Set iColor = Nothing
  199.             End If
  200.     
  201.             If Regen% <> 0 Then                     ' regen the new Face if supposed to
  202.                 iFace.Regen
  203.             End If
  204.                         
  205.             VerifyFace iFace, X1#, Y1#, X2#, Y2#, X3#, Y3#, X4#, Y4#, Lyr$, Clr%
  206.             Set iFace = Nothing
  207.         Else
  208.             Debug.Print "Face creation failed !!!!"
  209.         End If
  210.     Else
  211.         Debug.Print "Can't create Face.  Entities object is not valid"
  212.     End If
  213. End Sub
  214.  
  215. Sub DrawPoint(X#, Y#, Lyr$, Clr%, Regen%)
  216. '
  217. '   creates an Point
  218. '
  219.  
  220. '
  221. '   X#, Y#  are the point's coordinates
  222. '   L$      is the layer
  223. '   C%      is the color
  224. '   Reg%    is whether to regen when done or not
  225. '
  226.     If (Not Entities Is Nothing) Then
  227.         Dim iPoint As Object                      ' the Point itself
  228.         Dim iWhere As Object                      ' the various properties of the Point
  229.  
  230.         Set iPoint = Entities.AddPoint            ' create the Point
  231.         
  232.         If (Not iPoint Is Nothing) Then           ' if the Point created successfully....
  233.             Set iWhere = iPoint.Where             ' set the center point of the Point
  234.             iWhere.X = X
  235.             iWhere.Y = Y
  236.             iPoint.Where iWhere
  237.             Set iWhere = Nothing
  238.             
  239.             If (Len(Lyr$) > 0) Then
  240.                 iPoint.Layer Layers.Item(Lyr$)    ' switch Point to the given layer
  241.             End If
  242.     
  243.             If (Clr% > -1) Then                   ' switch Point to the given color
  244.                 Dim iColor As Object
  245.                 Set iColor = Colors.Item(Clr%)
  246.                 iPoint.Color iColor
  247.                 Set iColor = Nothing
  248.             End If
  249.     
  250.             If Regen% <> 0 Then                    ' regen the new Point if supposed to
  251.                 iPoint.Regen
  252.             End If
  253.             
  254.             VerifyPoint iPoint, X#, Y#, Lyr$, Clr%
  255.             Set iPoint = Nothing
  256.         Else
  257.             Debug.Print "Point creation failed !!!!"
  258.         End If
  259.     Else
  260.         Debug.Print "Can't create Point.  Entities object is not valid"
  261.     End If
  262. End Sub
  263.  
  264. Sub DrawPolyline(ByVal oList As Object, Lyr$, Clr%, Regen%)
  265. '
  266. '   draws a line with the given parameters
  267. '   to indicated layer (Lyr$), Color (Clr%)
  268. '
  269. '   If Lyr$ is an empty string, then the active layer is used
  270. '   if Clr% = -1, then the color is ByLayer
  271. '
  272.     If oList.ListCount < 1 Then
  273.         Debug.Print "DrawPolyline() -- no verticies in the listbox"
  274.         Exit Sub
  275.     End If
  276.  
  277.     Debug.Print "DrawPolyline() -- polylines cause Server Exceptions"
  278.     Exit Sub
  279.  
  280.     If ((Not Layers Is Nothing) And (Not Entities Is Nothing)) Then
  281.         Dim iLine As Object, Pt As Object           ' line and its points
  282.         Dim iVerticies As Object                     ' the verticies for the polyline
  283.         Dim iVertex As Object                       ' each vertex on the polyline
  284.         Dim iPt As Object                           ' the actual point data for the vertex
  285.         Dim i%, X#, Y#, C$
  286.         Set iLine = Entities.AddPolyline()          ' create the new line
  287.         Set iVerticies = iLine.Verticies
  288.  
  289.         For i% = 0 To oList.ListCount               ' create all the verticies in the list box
  290.             C$ = oList.List(i%)
  291.             ParseCoords X, Y, C$
  292.             
  293.             Set iVertex = iVerticies.Add            ' add the new vertex
  294.             Set iPt = iVertex.Where
  295.             
  296.             iPt.X = X                               ' the coordinates
  297.             iPt.Y = Y
  298.             iVertex.Where iPt                       ' set the point data back in to the vertex
  299.             
  300.             Set iPt = Nothing                       ' clear the objects, to avoid memory leaks
  301.             Set iVertex = Nothing
  302.         Next
  303.         Set iVerticies = Nothing
  304.  
  305.         If (Clr% > -1) Then                         ' switch line to the given color
  306.             Dim iColor As Object
  307.             Set iColor = Colors.Item(Clr%)
  308.             iLine.Color iColor
  309.             Set iColor = Nothing
  310.         End If
  311.  
  312.         If (Regen% <> 0) Then
  313.             iLine.Regen
  314.         End If
  315.         
  316.         VerifyPolyline iLine, oList, Lyr$, Clr%
  317.         Set iLine = Nothing                         ' release the automation objects
  318.     End If
  319. End Sub
  320.  
  321. Sub DrawSolid(X1#, Y1#, X2#, Y2#, X3#, Y3#, X4#, Y4#, Lyr$, Clr%, Regen%)
  322. '
  323. '   draws a Solid
  324. '
  325.  
  326. '
  327. '   X#, Y# 1-4  are the Solids coordinates
  328. '   L$          is the layer
  329. '   C%          is the color
  330. '   Reg%        is whether to regen when done or not
  331. '
  332.     If (Not Entities Is Nothing) Then
  333.         Dim iSolid As Object                        ' the Solid itself
  334.         Dim iWhere As Object                        ' the various properties of the Solid
  335.  
  336.         Set iSolid = Entities.AddSolid              ' create the Solid
  337.         
  338.         If (Not iSolid Is Nothing) Then             ' if the Solid created successfully....
  339.             Set iWhere = iSolid.Where(1)            ' get a point
  340.             iWhere.X = X1
  341.             iWhere.Y = Y1
  342.             Set iSolid.Where(1) = iWhere            ' set point 1
  343.             
  344.             iWhere.X = X2
  345.             iWhere.Y = Y2
  346.             Set iSolid.Where(2) = iWhere            ' set point 2
  347.             
  348.             iWhere.X = X3
  349.             iWhere.Y = Y3
  350.             Set iSolid.Where(3) = iWhere            ' set point 3
  351.             
  352.             iWhere.X = X4
  353.             iWhere.Y = Y4
  354.             Set iSolid.Where(4) = iWhere            ' set point 4
  355.             Set iWhere = Nothing
  356.             
  357.             If (Len(Lyr$) > 0) Then
  358.                 iSolid.Layer Layers.Item(Lyr$)      ' switch Solid to the given layer
  359.             End If
  360.     
  361.             If (Clr% > -1) Then                     ' switch Solid to the given color
  362.                 Dim iColor As Object
  363.                 Set iColor = Colors.Item(Clr%)
  364.                 iSolid.Color iColor
  365.                 Set iColor = Nothing
  366.             End If
  367.     
  368.             If Regen% <> 0 Then                     ' regen the new Solid if supposed to
  369.                 iSolid.Regen
  370.             End If
  371.                         
  372.             VerifySolid iSolid, X1#, Y1#, X2#, Y2#, X3#, Y3#, X4#, Y4#, Lyr$, Clr%
  373.             Set iSolid = Nothing
  374.         Else
  375.             Debug.Print "Solid creation failed !!!!"
  376.         End If
  377.     Else
  378.         Debug.Print "Can't create Solid.  Entities object is not valid"
  379.     End If
  380. End Sub
  381. Sub DrawTrace(X1#, Y1#, X2#, Y2#, X3#, Y3#, X4#, Y4#, Lyr$, Clr%, Regen%)
  382. '
  383. '   draws a Trace
  384. '
  385.  
  386. '
  387. '   X#, Y# 1-4  are the Traces coordinates
  388. '   L$          is the layer
  389. '   C%          is the color
  390. '   Reg%        is whether to regen when done or not
  391. '
  392.     If (Not Entities Is Nothing) Then
  393.         Dim iTrace As Object                         ' the Trace itself
  394.         Dim iWhere As Object                         ' the various properties of the Trace
  395.  
  396.         Set iTrace = Entities.AddTrace               ' create the Trace
  397.         
  398.         If (Not iTrace Is Nothing) Then              ' if the Trace created successfully....
  399.             Set iWhere = iTrace.Where(1)             ' get a point
  400.             iWhere.X = X1
  401.             iWhere.Y = Y1
  402.             Set iTrace.Where(1) = iWhere             ' set point 1
  403.             
  404.             iWhere.X = X2
  405.             iWhere.Y = Y2
  406.             Set iTrace.Where(2) = iWhere             ' set point 2
  407.             
  408.             iWhere.X = X3
  409.             iWhere.Y = Y3
  410.             Set iTrace.Where(3) = iWhere             ' set point 3
  411.             
  412.             iWhere.X = X4
  413.             iWhere.Y = Y4
  414.             Set iTrace.Where(4) = iWhere             ' set point 4
  415.             Set iWhere = Nothing
  416.             
  417.             If (Len(Lyr$) > 0) Then
  418.                 iTrace.Layer Layers.Item(Lyr$)       ' switch Trace to the given layer
  419.             End If
  420.     
  421.             If (Clr% > -1) Then                     ' switch Trace to the given color
  422.                 Dim iColor As Object
  423.                 Set iColor = Colors.Item(Clr%)
  424.                 iTrace.Color iColor
  425.                 Set iColor = Nothing
  426.             End If
  427.     
  428.             If Regen% <> 0 Then                     ' regen the new Trace if supposed to
  429.                 iTrace.Regen
  430.             End If
  431.             
  432.             VerifyTrace iTrace, X1#, Y1#, X2#, Y2#, X3#, Y3#, X4#, Y4#, Lyr$, Clr%
  433.             Set iTrace = Nothing
  434.         Else
  435.             Debug.Print "Trace creation failed !!!!"
  436.         End If
  437.     Else
  438.         Debug.Print "Can't create Trace.  Entities object is not valid"
  439.     End If
  440. End Sub
  441. Sub GenerateRandomPLine()
  442. '
  443. '   generates a random collection of polyline vertex
  444. '   points.  Mainly useful for the automated polyline
  445. '   generation routines.
  446. '
  447.     Dim C$, X#, Y#, v%, i%
  448.     Dim LX#, LY#, UX#, UY#
  449.  
  450.     v% = 0
  451.     While v% < 2
  452.         v% = Int(100 * Rnd)             ' up to 100 vertex points
  453.     Wend
  454.  
  455.     For i% = 0 To v%
  456.     '
  457.     '   create the X and Y coords, but stay within the specified extents
  458.         ParseCoords UX, UY, EntCreationForm.ectUpperExtents.Text
  459.         ParseCoords LX, LY, EntCreationForm.ectLowerExtents.Text
  460.             
  461.         X = (((UX - LX + 1) * Rnd) + LX)
  462.         Y = (((UY - LY + 1) * Rnd) + LY)
  463.     
  464.         C$ = Trim$(Format$(X, "#.##")) & "," & Trim$(Format$(Y, "#.##"))
  465.         ECOForm.ecoPolylinePtList.AddItem C$
  466.     Next
  467. End Sub
  468.  
  469.  
  470. Sub ParseCoords(X#, Y#, K$)
  471. '
  472. '   parse the given string into X and Y coordinates
  473. '   allows for only one coordinate to be present,
  474. '   either first or second
  475. '
  476.     X# = 0#
  477.     Y# = 0#
  478.     
  479.     Dim pComma As Integer
  480.     pComma = InStr(K$, ",")
  481.     If (pComma = 1) Then                ' second coordinate only
  482.         Y# = CDbl(Val(Mid$(K$, pComma + 1)))
  483.     Else
  484.         If (pComma <> 0) Then
  485.             X# = Val(Left$(K$, pComma - 1))
  486.             Y# = Val(Mid$(K$, pComma + 1))
  487.         Else
  488.             X# = CDbl(Val(K$))          ' no second coordinate
  489.         End If
  490.     End If
  491. End Sub
  492.  
  493. Sub DrawLine(X1#, Y1#, X2#, Y2#, Lyr$, Clr%, Regen%)
  494. '
  495. '   draws a line with the given parameters
  496. '   to indicated layer (Lyr$), Color (Clr%)
  497. '
  498. '   If Lyr$ is an empty string, then the active layer is used
  499. '   if Clr% = -1, then the color is ByLayer
  500. '
  501.     If ((Not Layers Is Nothing) And (Not Entities Is Nothing)) Then
  502.         Dim Line As Object, Pt As Object            ' line and its points
  503.  
  504.         Set Line = Entities.AddLine()               ' create the new line
  505.  
  506.         Set Pt = Line.Where1                        ' start point of line
  507.         Pt.X = X1#
  508.         Pt.Y = Y1#
  509.         Line.Where1 Pt
  510.         Set Pt = Nothing
  511.  
  512.         Set Pt = Line.Where2                        ' end point of line
  513.         Pt.X = X2#
  514.         Pt.Y = Y2#
  515.         Line.Where2 Pt
  516.         Line.Regen
  517.         Set Pt = Nothing
  518.  
  519.         If (Len(Lyr$) > 0) Then
  520.             Line.Layer Layers.Item(Lyr$)            ' switch line to the given layer
  521.         End If
  522.  
  523.         If (Clr% > -1) Then                         ' switch line to the given color
  524.             Dim iColor As Object
  525.             Set iColor = Colors.Item(Clr%)
  526.             Line.Color iColor
  527.             Set iColor = Nothing
  528.         End If
  529.  
  530.         If (Regen% <> 0) Then
  531.             Line.Regen
  532.         End If
  533.         
  534.         VerifyLine Line, X1#, Y1#, X2#, Y2#, Lyr$, Clr%
  535.         
  536.         Set Line = Nothing                          ' release the automation objects
  537.     End If
  538. End Sub
  539.  
  540. Sub InitEntitiesArray()
  541. '
  542. '   set up the entities array
  543. '
  544.     gblEntities(0) = "Arc"
  545.     gblEntities(1) = "Attdef"
  546.     gblEntities(2) = "Block Insert"
  547.     gblEntities(3) = "Circle"
  548.     gblEntities(4) = "Dim, Hor"
  549.     gblEntities(5) = "Dim, Rad"
  550.     gblEntities(6) = "Dim, Ver"
  551.     gblEntities(7) = "Face"
  552.     gblEntities(8) = "Line"
  553.     gblEntities(9) = "Point"
  554.     gblEntities(10) = "Polyline"
  555.     gblEntities(11) = "Shape"
  556.     gblEntities(12) = "Solid"
  557.     gblEntities(13) = "Start Center Angle ???"
  558.     gblEntities(14) = "Start Insert ???"
  559.     gblEntities(15) = "Start Line ???"
  560.     gblEntities(16) = "Text"
  561.     gblEntities(17) = "Trace"
  562.     gblEntities(18) = "Viewport"
  563. End Sub
  564.  
  565. Sub InitVdraft()
  566. '
  567. '   check if Vdraft is up or not and, if it is
  568. '   grab all the global objects.  If there is
  569. '   no active drawing, then create one.  Also
  570. '   fills in the Current Drawings listbox with
  571. '   all the current drawings, if any.
  572. '
  573.     Screen.MousePointer = 11
  574.     ReleaseVdraft                       ' clear all global objects
  575.     MainForm.ActiveDrawing.Caption = ""
  576.     MainForm.ActiveDrawingsList.Clear
  577.     MainForm.VdraftStatus.Caption = ""
  578.     MainForm.VdraftStatus2.Caption = ""
  579.  
  580. '
  581. '   attempt to get the Vdraft Object
  582.     Dim Cntr%
  583.     Cntr% = 0
  584.  
  585.     On Error GoTo InitVdraft_Err1
  586. InitVdraft_Loop1:
  587.     Set Vdraft = CreateObject("Vdraft.Application")
  588.     GoTo InitVdraft_Cont1
  589.     
  590. InitVdraft_Err1:
  591.     Cntr% = Cntr% + 1
  592.     If (Cntr% < 10) Then GoTo InitVdraft_Loop1
  593.     MsgBox "Error -- Unable to open Vdraft"
  594.     MainForm.VdraftStatus.Caption = "Vdraft is not available"
  595.     MainForm.VdraftStatus2.Caption = "Vdraft is not available"
  596.     MainForm.StatusBar.Panels(1).Text = "Vdraft was not opened"
  597.     Resume InitVdraft_Exit
  598.  
  599. InitVdraft_Cont1:
  600.     On Error GoTo 0
  601.     Set Docs = Vdraft.Documents
  602.  
  603.     On Error GoTo InitVdraft_Err2
  604.     Set Doc = Vdraft.ActiveDocument
  605.     GoTo InitVdraft_Cont2
  606.  
  607. InitVdraft_Err2:
  608.     MsgBox "Error -- No Active Document found"
  609.     Resume InitVdraft_Cont2
  610.  
  611. InitVdraft_Cont2:
  612.     On Error GoTo 0
  613.     If ValidateDok() Then
  614.         Set Entities = Doc.Entities
  615.         Set Units = Doc.Units
  616.         Set Commands = Doc.Commands
  617.         Set EntitySnap = Doc.EntitySnap
  618.         Set Layers = Doc.Layers
  619.         Set LineTypes = Doc.LineTypes
  620.         Set Colors = Doc.Colors
  621.         Set TextStyles = Doc.TextStyles
  622.     End If
  623.  
  624. InitVdraft_Exit:
  625.     On Error GoTo 0
  626.     UpdateGlobalObjs
  627.     Screen.MousePointer = 0
  628. End Sub
  629.  
  630. Sub UpdateGlobalObjs()
  631. '
  632. '   update the displays showing status Vdraft, the
  633. '   global objs, et al...
  634. '
  635.     IsGlobalUpdating = True
  636.     MainForm.GlobalObjsList.Clear
  637.     If ValidateVdraft() Then
  638.         MainForm.GlobalObjsList.AddItem "x Vdraft"
  639.         MainForm.VdraftStatus.Caption = "Vdraft is Open"
  640.         MainForm.VdraftStatus2.Caption = "Vdraft is Open"
  641.         MainForm.EndCmd.Enabled = True
  642.         MainForm.CloseCmd.Enabled = True
  643.         MainForm.LoadDwgCmd.Enabled = True
  644.         MainForm.NewDwgCmd.Enabled = True
  645.         MainForm.RunCmd.Enabled = True
  646.         MainForm.RunAllCmd.Enabled = True
  647.         MainForm.ExecuteCmd.Enabled = True
  648.         MainForm.OpenCmd(0).Enabled = True
  649.         MainForm.OpenCmd(1).Enabled = True
  650.         MainForm.ReleaseCmd.Enabled = True
  651.         MainForm.GrabCmd.Enabled = True
  652.     Else
  653.         MainForm.GlobalObjsList.AddItem "  Vdraft"
  654.         MainForm.VdraftStatus.Caption = "Vdraft is not Open"
  655.         MainForm.VdraftStatus2.Caption = "Vdraft is not Open"
  656.         MainForm.EndCmd.Enabled = False
  657.         MainForm.CloseCmd.Enabled = False
  658.         MainForm.LoadDwgCmd.Enabled = False
  659.         MainForm.NewDwgCmd.Enabled = False
  660.         MainForm.RunCmd.Enabled = False
  661.         MainForm.RunAllCmd.Enabled = False
  662.         MainForm.ExecuteCmd.Enabled = False
  663.         MainForm.ReleaseCmd.Enabled = False
  664.         MainForm.GrabCmd.Enabled = False
  665.     End If
  666.  
  667.     If (Not Colors Is Nothing) Then
  668.         MainForm.GlobalObjsList.AddItem "x Colors"
  669.     Else
  670.         MainForm.GlobalObjsList.AddItem "  Colors"
  671.     End If
  672.     
  673.     If (Not Commands Is Nothing) Then
  674.         MainForm.GlobalObjsList.AddItem "x Commands"
  675.     Else
  676.         MainForm.GlobalObjsList.AddItem "  Commands"
  677.     End If
  678.     
  679.     If ValidateDok() Then
  680.         MainForm.GlobalObjsList.AddItem "x Doc"
  681.     Else
  682.         MainForm.GlobalObjsList.AddItem "  Doc"
  683.     End If
  684.         
  685.     If ValidateVdraft() Then
  686.         MainForm.GlobalObjsList.AddItem "x Docs"
  687.     Else
  688.         MainForm.GlobalObjsList.AddItem "  Docs"
  689.     End If
  690.     
  691.     If (Not Entities Is Nothing) Then
  692.         MainForm.GlobalObjsList.AddItem "x Entities"
  693.     Else
  694.         MainForm.GlobalObjsList.AddItem "  Entities"
  695.     End If
  696.     
  697.     If (Not EntitySnap Is Nothing) Then
  698.         MainForm.GlobalObjsList.AddItem "x EntitySnap"
  699.     Else
  700.         MainForm.GlobalObjsList.AddItem "  EntitySnap"
  701.     End If
  702.  
  703.     If (Not Layers Is Nothing) Then
  704.         MainForm.GlobalObjsList.AddItem "x Layers"
  705.     Else
  706.         MainForm.GlobalObjsList.AddItem "  Layers"
  707.     End If
  708.  
  709.     If (Not LineTypes Is Nothing) Then
  710.         MainForm.GlobalObjsList.AddItem "x Linetypes"
  711.     Else
  712.         MainForm.GlobalObjsList.AddItem "  Linetypes"
  713.     End If
  714.  
  715.     If (Not TextStyles Is Nothing) Then
  716.         MainForm.GlobalObjsList.AddItem "x TextStyles"
  717.     Else
  718.         MainForm.GlobalObjsList.AddItem "  TextStyles"
  719.     End If
  720.  
  721.     If (Not Units Is Nothing) Then
  722.         MainForm.GlobalObjsList.AddItem "x Units"
  723.     Else
  724.         MainForm.GlobalObjsList.AddItem "  Units"
  725.     End If
  726.     
  727. '
  728. '   update the list of current drawings.
  729. '    Dim prev$
  730. '    prev$ = ""
  731. '    If (MainForm.ActiveDrawingsList.ListIndex <> -1) Then
  732. '    '   save the existing highlight, if there is one
  733. '        prev$ = MainForm.ActiveDrawingsList.List(MainForm.ActiveDrawingsList.ListIndex)
  734. '    End If
  735. '
  736. '    MainForm.ActiveDrawingsList.Clear
  737. '    If (Not Docs Is Nothing) Then
  738. '        Dim i%, j%
  739. '        Dim Dok As Object
  740. '        i% = Docs.Count
  741. '        For j% = 1 To i%
  742. '            Set Dok = Docs.Item(j%)
  743. '            MainForm.ActiveDrawingsList.AddItem Dok.Name
  744. '            Set Dok = Nothing
  745. '        Next
  746. '    End If
  747. '
  748. '    If (prev$ <> "") Then
  749. '    '   restore the previous highlight
  750. '        If (MainForm.ActiveDrawingsList.ListCount > 0) Then
  751. '            For i% = 0 To MainForm.ActiveDrawingsList.ListCount
  752. '                If (MainForm.ActiveDrawingsList.List(MainForm.ActiveDrawingsList.ListIndex) = prev$) Then
  753. '                    MainForm.ActiveDrawingsList.ListIndex = i%
  754. '                    Exit For
  755. '                End If
  756. '            Next
  757. '        End If
  758. '    End If
  759.  
  760.     With MainForm.ActiveDrawingsList
  761.         Dim prev$
  762.         prev$ = ""
  763.         If (.ListIndex <> -1) Then
  764.         '   save the existing highlight, if there is one
  765.             prev$ = .List(.ListIndex)
  766.         End If
  767.      
  768.         .Clear
  769.     '   get all the current drawings from Vdraft
  770.         If (Not Docs Is Nothing) Then
  771.             Dim i%, j%
  772.             Dim Dok As Object
  773.             i% = Docs.Count
  774.             For j% = 1 To i%
  775.                 Set Dok = Docs.Item(j%)
  776.                 .AddItem Dok.Name
  777.                 Set Dok = Nothing
  778.             Next
  779.         End If
  780.        
  781.         If (prev$ <> "") Then
  782.         '   restore the previous highlight
  783.             If (.ListCount > 0) Then
  784.                 For i% = 0 To .ListCount
  785.                     If (UCase$(Trim$(.List(i%))) = UCase$(Trim$(prev$))) Then
  786.                         .ListIndex = i%
  787.                         Exit For
  788.                     End If
  789.                 Next
  790.             End If
  791.         End If
  792.     End With
  793.  
  794. '
  795. '   the active drawing
  796.     MainForm.ActiveDrawing.Caption = "No Active Drawing"
  797.     MainForm.DwgFullName.Text = ""
  798.     MainForm.DwgName.Text = ""
  799.     MainForm.DwgPath.Text = ""
  800.     MainForm.DwgSaved.Caption = ""
  801.     If ValidateDok() Then
  802.         MainForm.ActiveDrawing.Caption = "Active Drawing is '" & Doc.Fullname & "'"
  803.         MainForm.DwgFullName.Text = Doc.Fullname
  804.         MainForm.DwgName.Text = Doc.Name
  805.         MainForm.DwgPath.Text = Doc.Path
  806.         If (Doc.Saved = False) Then
  807.             MainForm.DwgSaved.Caption = "No"
  808.         Else
  809.             MainForm.DwgSaved.Caption = "Yes"
  810.         End If
  811.     End If
  812.     
  813. '
  814. '   the undo list
  815.     UpdateUndoList
  816.  
  817. '
  818. '   the number of entities in the current drawing
  819.     If (Not Entities Is Nothing) Then
  820.         MainForm.NumOfEntities.Caption = Str$(Entities.Count)
  821.     Else
  822.         MainForm.NumOfEntities.Caption = ""
  823.     End If
  824.  
  825.  
  826.     IsGlobalUpdating = False
  827. End Sub
  828. Function ValidateDok() As Integer
  829. '
  830. '   verify that the object refers to a live, real, breathing document
  831. '
  832.     If (Doc Is Nothing) Then
  833.         ValidateDok = False
  834.         GoTo ValidateDok_Exit
  835.     End If
  836.     On Error GoTo ValidateDok_Err
  837.  
  838.     Dim n$
  839.     n$ = Space(250)
  840.     n$ = Doc.Name               ' it will fail here or not
  841.  
  842.     ValidateDok = True          ' did not fail
  843.     GoTo ValidateDok_Exit
  844.  
  845. ValidateDok_Err:
  846.     ValidateDok = False         ' did fail.  Assume faulty pointer
  847.     MainForm.StatusBar.Panels(1).Text = "'Doc' object is invalid"
  848.     Resume ValidateDok_Exit
  849.  
  850. ValidateDok_Exit:
  851.     On Error GoTo 0
  852. End Function
  853. Sub ReleaseVdraft()
  854. '
  855. '   release all the global Vdraft Objects
  856. '
  857.     Set Vdraft = Nothing
  858.     Set Docs = Nothing
  859.     Set Doc = Nothing
  860.     Set Entities = Nothing
  861.     Set Units = Nothing
  862.     Set Commands = Nothing
  863.     Set EntitySnap = Nothing
  864.  
  865.     UpdateGlobalObjs
  866. End Sub
  867.  
  868.  
  869.  
  870. Sub UpdateUndoList()
  871. '
  872. '   update the undo list tab page
  873. '
  874.     MainForm.UndoCount = ""
  875.     MainForm.UndoList.Clear
  876.     If (Not Commands Is Nothing) Then
  877.         Dim i, C%, Cmd As Object
  878.         C% = Commands.Count
  879.         MainForm.UndoCount = "There are " & Trim$(Str$(C%)) & " entries in the Undo List"
  880.         For i = 1 To C%
  881.             Set Cmd = Commands.Item(i)
  882.             MainForm.UndoList.AddItem Cmd.Description
  883.             Set Cmd = Nothing
  884.         Next
  885.         MainForm.UndoList.ListIndex = -1            ' highlight nothing
  886.     End If
  887. End Sub
  888.  
  889.  
  890. Function ValidateVdraft() As Integer
  891. '
  892. '   verify that the Vdraft object is alive and well
  893. '
  894.     If Vdraft Is Nothing Then
  895.         ValidateVdraft = False
  896.         GoTo ValidateVdraft_Exit
  897.     End If
  898.     On Error GoTo ValidateVdraft_Err
  899.  
  900.     Dim n$
  901.     n$ = Space(250)
  902.     n$ = Vdraft.Name                ' it will fail here or not
  903.  
  904.     ValidateVdraft = True           ' did not fail
  905.     GoTo ValidateVdraft_Exit
  906.  
  907. ValidateVdraft_Err:
  908.     ValidateVdraft = False          ' did fail.  Assume faulty pointer
  909.     MainForm.StatusBar.Panels(1).Text = "'Vdraft' object is invalid"
  910.     Resume ValidateVdraft_Exit
  911.  
  912. ValidateVdraft_Exit:
  913.     On Error GoTo 0
  914. End Function
  915.  
  916. Sub VerifyArc(ByVal iArc As Object, X#, Y#, R#, S#, E#, Lyr$, Clr%)
  917. '
  918. '   verifies that the given object is an arc and has
  919. '   the specified parameters
  920. '
  921.  
  922. '
  923. '   X#, Y#  are the center point
  924. '   R#      is the radius
  925. '   S#      is the start angle  (in radians)
  926. '   E#      is the end angle    (in radians)
  927. '   L$      is the layer
  928. '   C%      is the color
  929. '
  930.     Dim eMsg$
  931.     eMsg$ = "VerifyArc()" & CRLF & "Arc does not have the indicated "
  932.     
  933.  
  934.     If (iArc Is Nothing) Then
  935.         Debug.Print "VerifyArc() -- iArc is not an object !"
  936.         MsgBox "VerifyArc()" & CRLF & "Huffffff!  Not even close."
  937.         ERROR_COUNT = ERROR_COUNT + 1
  938.     Else
  939.         If (iArc.Type <> 8) Then
  940.             MsgBox "VerifyArc()" & CRLF & "Object is not an ARC !"
  941.             ERROR_COUNT = ERROR_COUNT + 1
  942.         End If
  943.         
  944.         Dim iCenter As Object
  945.         Set iCenter = iArc.Center
  946.         If iCenter.X <> X# Or iCenter.Y <> Y# Then
  947.             MsgBox eMsg$ & " center point"
  948.             ERROR_COUNT = ERROR_COUNT + 1
  949.         End If
  950.         Set iCenter = Nothing
  951.         
  952.         If iArc.Radius <> R# Then
  953.             MsgBox eMsg$ & "radius"
  954.             ERROR_COUNT = ERROR_COUNT + 1
  955.         End If
  956.         
  957.         If iArc.StartAngle <> S# Then
  958.             MsgBox eMsg$ & "start angle"
  959.             ERROR_COUNT = ERROR_COUNT + 1
  960.         End If
  961.         
  962.         If iArc.EndAngle <> E# Then
  963.             MsgBox eMsg$ & "end angle"
  964.             ERROR_COUNT = ERROR_COUNT + 1
  965.         End If
  966.     
  967.         If (Len(Lyr$) > 0) Then
  968.             Dim iLayer As Object
  969.             Set iLayer = iArc.Layer
  970.             If iLayer.Name <> Lyr$ Then
  971.                 MsgBox eMsg$ & "layer"
  972.                 ERROR_COUNT = ERROR_COUNT + 1
  973.             End If
  974.             Set iLayer = Nothing
  975.         End If
  976.         
  977.         If (Clr% <> -1) Then
  978.             Dim iColor As Object
  979.             Set iColor = iArc.Color
  980.             If iColor.Number <> Clr% Then
  981.                 MsgBox eMsg$ & "color"
  982.                 ERROR_COUNT = ERROR_COUNT + 1
  983.             End If
  984.             Set iColor = Nothing
  985.         End If
  986.     End If
  987. End Sub
  988.  
  989.  
  990. Sub VerifyCircle(ByVal iCircle As Object, X#, Y#, R#, Lyr$, Clr%)
  991. '
  992. '   verifies that the given object is a Circle and has
  993. '   the specified parameters
  994. '
  995.  
  996. '
  997. '   X#, Y#  are the center point
  998. '   R#      is the radius
  999. '   L$      is the layer
  1000. '   C%      is the color
  1001. '
  1002.     Dim eMsg$
  1003.     eMsg$ = "VerifyCircle()" & CRLF & "Circle does not have the indicated "
  1004.     
  1005.  
  1006.     If (iCircle Is Nothing) Then
  1007.         Debug.Print "VerifyCircle() -- iCircle is not an object !"
  1008.         MsgBox "VerifyCircle()" & CRLF & "Huffffff!  Not even close."
  1009.         ERROR_COUNT = ERROR_COUNT + 1
  1010.     Else
  1011.         If (iCircle.Type <> 3) Then
  1012.             MsgBox "VerifyCircle()" & CRLF & "Object is not an Circle !"
  1013.             ERROR_COUNT = ERROR_COUNT + 1
  1014.         End If
  1015.         
  1016.         Dim iCenter As Object
  1017.         Set iCenter = iCircle.Center
  1018.         If iCenter.X <> X# Or iCenter.Y <> Y# Then
  1019.             MsgBox eMsg$ & " center point"
  1020.             ERROR_COUNT = ERROR_COUNT + 1
  1021.         End If
  1022.         Set iCenter = Nothing
  1023.         
  1024.         If iCircle.Radius <> R# Then
  1025.             MsgBox eMsg$ & "radius"
  1026.             ERROR_COUNT = ERROR_COUNT + 1
  1027.         End If
  1028.         
  1029.         If (Len(Lyr$) > 0) Then
  1030.             Dim iLayer As Object
  1031.             Set iLayer = iCircle.Layer
  1032.             If iLayer.Name <> Lyr$ Then
  1033.                 MsgBox eMsg$ & "layer"
  1034.                 ERROR_COUNT = ERROR_COUNT + 1
  1035.             End If
  1036.             Set iLayer = Nothing
  1037.         End If
  1038.         
  1039.         If (Clr% <> -1) Then
  1040.             Dim iColor As Object
  1041.             Set iColor = iCircle.Color
  1042.             If iColor.Number <> Clr% Then
  1043.                 MsgBox eMsg$ & "color"
  1044.                 ERROR_COUNT = ERROR_COUNT + 1
  1045.             End If
  1046.             Set iColor = Nothing
  1047.         End If
  1048.     End If
  1049. End Sub
  1050.  
  1051. Sub VerifyFace(ByVal iFace As Object, X1#, Y1#, X2#, Y2#, X3#, Y3#, X4#, Y4#, Lyr$, Clr%)
  1052. '
  1053. '   verifies that the given object is a Face and has
  1054. '   the specified parameters
  1055. '
  1056.  
  1057. '
  1058. '   X#, Y#  are the center point
  1059. '   R#      is the radius
  1060. '   S#      is the start angle  (in radians)
  1061. '   E#      is the end angle    (in radians)
  1062. '   L$      is the layer
  1063. '   C%      is the color
  1064. '
  1065.     Dim eMsg$
  1066.     eMsg$ = "VerifyFace()" & CRLF & "Face does not have the indicated "
  1067.  
  1068.     If (iFace Is Nothing) Then
  1069.         Debug.Print "VerifyFace() -- iFace is not an object !"
  1070.         MsgBox "VerifyFace()" & CRLF & "Huffffff!  Not even close."
  1071.         ERROR_COUNT = ERROR_COUNT + 1
  1072.     Else
  1073.         If (iFace.Type <> 22) Then
  1074.             MsgBox "VerifyFace()" & CRLF & "Object is not an Face !"
  1075.             ERROR_COUNT = ERROR_COUNT + 1
  1076.         End If
  1077.  
  1078.         Dim iWhere As Object
  1079.         Set iWhere = iFace.Where(1)
  1080.         If (iWhere.X <> X1# Or iWhere.Y <> Y1#) Then
  1081.             MsgBox eMsg & " vertex point 1"
  1082.             ERROR_COUNT = ERROR_COUNT + 1
  1083.         End If
  1084.         Set iWhere = Nothing
  1085.  
  1086.         Set iWhere = iFace.Where(2)
  1087.         If (iWhere.X <> X2# Or iWhere.Y <> Y2#) Then
  1088.             MsgBox eMsg & " vertex point 2"
  1089.             ERROR_COUNT = ERROR_COUNT + 1
  1090.         End If
  1091.         Set iWhere = Nothing
  1092.  
  1093.         Set iWhere = iFace.Where(3)
  1094.         If (iWhere.X <> X3# Or iWhere.Y <> Y3#) Then
  1095.             MsgBox eMsg & " vertex point 3"
  1096.             ERROR_COUNT = ERROR_COUNT + 1
  1097.         End If
  1098.         Set iWhere = Nothing
  1099.  
  1100.         Set iWhere = iFace.Where(4)
  1101.         If (iWhere.X <> X4# Or iWhere.Y <> Y4#) Then
  1102.             MsgBox eMsg & " vertex point 4"
  1103.             ERROR_COUNT = ERROR_COUNT + 1
  1104.         End If
  1105.         Set iWhere = Nothing
  1106.     
  1107.         If (Len(Lyr$) > 0) Then
  1108.             Dim iLayer As Object
  1109.             Set iLayer = iFace.Layer
  1110.             If iLayer.Name <> Lyr$ Then
  1111.                 MsgBox eMsg$ & "layer"
  1112.                 ERROR_COUNT = ERROR_COUNT + 1
  1113.             End If
  1114.             Set iLayer = Nothing
  1115.         End If
  1116.         
  1117.         If (Clr% <> -1) Then
  1118.             Dim iColor As Object
  1119.             Set iColor = iFace.Color
  1120.             If iColor.Number <> Clr% Then
  1121.                 MsgBox eMsg$ & "color"
  1122.                 ERROR_COUNT = ERROR_COUNT + 1
  1123.             End If
  1124.             Set iColor = Nothing
  1125.         End If
  1126.     End If
  1127. End Sub
  1128.  
  1129. Sub VerifyLine(ByVal iLine As Object, X1#, Y1#, X2#, Y2#, Lyr$, Clr%)
  1130. '
  1131. '   verifies that the given object is a line and has
  1132. '   the specified parameters
  1133. '
  1134.  
  1135. '
  1136. '   X1#, Y1# is the start point
  1137. '   X2#, Y2# is the end point
  1138. '   Lyr$     is the layer
  1139. '   Clr%     is the color
  1140. '
  1141.     Dim eMsg$
  1142.     eMsg$ = "VerifyLine()" & CRLF & "Line does not have the indicated "
  1143.  
  1144.     If (iLine Is Nothing) Then
  1145.         Debug.Print "VerifyLine() -- iLine is not an object !"
  1146.         MsgBox "VerifyLine()" & CRLF & "Huffffff!  Not even close."
  1147.         ERROR_COUNT = ERROR_COUNT + 1
  1148.     Else
  1149.         If (iLine.Type <> 1) Then
  1150.             MsgBox "VerifyLine()" & CRLF & "Object is not a Line !"
  1151.             ERROR_COUNT = ERROR_COUNT + 1
  1152.         End If
  1153.         
  1154.         Dim iWhere1 As Object
  1155.         Set iWhere1 = iLine.Where1
  1156.         If iWhere1.X <> X1# Or iWhere1.Y <> Y1# Then
  1157.             MsgBox eMsg$ & "start point"
  1158.             ERROR_COUNT = ERROR_COUNT + 1
  1159.         End If
  1160.         Set iWhere1 = Nothing
  1161.         
  1162.         Dim iWhere2 As Object
  1163.         Set iWhere2 = iLine.Where2
  1164.         If iWhere2.X <> X2# Or iWhere2.Y <> Y2# Then
  1165.             MsgBox eMsg$ & "start point"
  1166.             ERROR_COUNT = ERROR_COUNT + 1
  1167.         End If
  1168.         Set iWhere2 = Nothing
  1169.         
  1170.         If (Len(Lyr$) > 0) Then
  1171.             Dim iLayer As Object
  1172.             Set iLayer = iLine.Layer
  1173.             If iLayer.Name <> Lyr$ Then
  1174.                 MsgBox eMsg$ & "layer"
  1175.                 ERROR_COUNT = ERROR_COUNT + 1
  1176.             End If
  1177.             Set iLayer = Nothing
  1178.         End If
  1179.         
  1180.         If (Clr% <> -1) Then
  1181.             Dim iColor As Object
  1182.             Set iColor = iLine.Color
  1183.             If iColor.Number <> Clr% Then
  1184.                 MsgBox eMsg$ & "color"
  1185.                 ERROR_COUNT = ERROR_COUNT + 1
  1186.             End If
  1187.             Set iColor = Nothing
  1188.         End If
  1189.     End If
  1190. End Sub
  1191.  
  1192.  
  1193. Sub VerifyPoint(ByVal iPoint As Object, X#, Y#, Lyr$, Clr%)
  1194. '
  1195. '   verifies that the given object is a Point and has
  1196. '   the specified parameters
  1197.  
  1198. '
  1199. '   X#, Y#  are the center point
  1200. '   L$      is the layer
  1201. '   C%      is the color
  1202. '
  1203.     Dim eMsg$
  1204.     eMsg$ = "VerifyPoint()" & CRLF & "Point does not have the indicated "
  1205.     
  1206.  
  1207.     If (iPoint Is Nothing) Then
  1208.         Debug.Print "VerifyPoint() -- iPoint is not an object !"
  1209.         MsgBox "VerifyPoint()" & CRLF & "Huffffff!  Not even close."
  1210.         ERROR_COUNT = ERROR_COUNT + 1
  1211.     Else
  1212.         If (iPoint.Type <> 2) Then
  1213.             MsgBox "VerifyPoint()" & CRLF & "Object is not a Point !"
  1214.             ERROR_COUNT = ERROR_COUNT + 1
  1215.         End If
  1216.         
  1217.         Dim iWhere As Object
  1218.         Set iWhere = iPoint.Where
  1219.         If iWhere.X <> X# Or iWhere.Y <> Y# Then
  1220.             MsgBox eMsg$ & " coordinates"
  1221.             ERROR_COUNT = ERROR_COUNT + 1
  1222.         End If
  1223.         Set iWhere = Nothing
  1224.         
  1225.         If (Len(Lyr$) > 0) Then
  1226.             Dim iLayer As Object
  1227.             Set iLayer = iPoint.Layer
  1228.             If iLayer.Name <> Lyr$ Then
  1229.                 MsgBox eMsg$ & "layer"
  1230.                 ERROR_COUNT = ERROR_COUNT + 1
  1231.             End If
  1232.             Set iLayer = Nothing
  1233.         End If
  1234.         
  1235.         If (Clr% <> -1) Then
  1236.             Dim iColor As Object
  1237.             Set iColor = iPoint.Color
  1238.             If iColor.Number <> Clr% Then
  1239.                 MsgBox eMsg$ & "color"
  1240.                 ERROR_COUNT = ERROR_COUNT + 1
  1241.             End If
  1242.             Set iColor = Nothing
  1243.         End If
  1244.     End If
  1245. End Sub
  1246.  
  1247.  
  1248. Sub VerifyPolyline(ByVal iLine As Object, ByVal oList As Object, Lyr$, Clr%)
  1249. '
  1250. '   verifies that the given object is an Polyline and has
  1251. '   the specified parameters
  1252. '
  1253.  
  1254. '
  1255. '   X#, Y#  are the center point
  1256. '   R#      is the radius
  1257. '   S#      is the start angle  (in radians)
  1258. '   E#      is the end angle    (in radians)
  1259. '   L$      is the layer
  1260. '   C%      is the color
  1261. '
  1262.     Dim eMsg$
  1263.     eMsg$ = "VerifyPolyline()" & CRLF & "Polyline does not have the indicated "
  1264.     
  1265.  
  1266.     If (iPolyline Is Nothing) Then
  1267.         Debug.Print "VerifyPolyline() -- iPolyline is not an object !"
  1268.         MsgBox "VerifyPolyline()" & CRLF & "Huffffff!  Not even close."
  1269.         ERROR_COUNT = ERROR_COUNT + 1
  1270.     Else
  1271.         If (iPolyline.Type <> 19) Then
  1272.             MsgBox "VerifyPolyline()" & CRLF & "Object is not a Polyline !"
  1273.             ERROR_COUNT = ERROR_COUNT + 1
  1274.         End If
  1275.  
  1276.  
  1277.     Debug.Print "VerifyPolyline() --  not finished"
  1278.  
  1279.     
  1280.         If (Len(Lyr$) > 0) Then
  1281.             Dim iLayer As Object
  1282.             Set iLayer = iPolyline.Layer
  1283.             If iLayer.Name <> Lyr$ Then
  1284.                 MsgBox eMsg$ & "layer"
  1285.                 ERROR_COUNT = ERROR_COUNT + 1
  1286.             End If
  1287.             Set iLayer = Nothing
  1288.         End If
  1289.         
  1290.         If (Clr% <> -1) Then
  1291.             Dim iColor As Object
  1292.             Set iColor = iPolyline.Color
  1293.             If iColor.Number <> Clr% Then
  1294.                 MsgBox eMsg$ & "color"
  1295.                 ERROR_COUNT = ERROR_COUNT + 1
  1296.             End If
  1297.             Set iColor = Nothing
  1298.         End If
  1299.     End If
  1300. End Sub
  1301.  
  1302.  
  1303. Sub VerifySolid(ByVal iSolid As Object, X1#, Y1#, X2#, Y2#, X3#, Y3#, X4#, Y4#, Lyr$, Clr%)
  1304. '
  1305. '   verifies that the given object is a Solid and has
  1306. '   the specified parameters
  1307. '
  1308.  
  1309. '
  1310. '   X#, Y#  are the center point
  1311. '   R#      is the radius
  1312. '   S#      is the start angle  (in radians)
  1313. '   E#      is the end angle    (in radians)
  1314. '   L$      is the layer
  1315. '   C%      is the color
  1316. '
  1317.     Dim eMsg$
  1318.     eMsg$ = "VerifySolid()" & CRLF & "Solid does not have the indicated "
  1319.  
  1320.     If (iSolid Is Nothing) Then
  1321.         Debug.Print "VerifySolid() -- iSolid is not an object !"
  1322.         MsgBox "VerifySolid()" & CRLF & "Huffffff!  Not even close."
  1323.         ERROR_COUNT = ERROR_COUNT + 1
  1324.     Else
  1325.         If (iSolid.Type <> 11) Then
  1326.             MsgBox "VerifySolid()" & CRLF & "Object is not a Solid !"
  1327.             ERROR_COUNT = ERROR_COUNT + 1
  1328.         End If
  1329.  
  1330.         Dim iWhere As Object
  1331.         Set iWhere = iSolid.Where(1)
  1332.         If (iWhere.X <> X1# Or iWhere.Y <> Y1#) Then
  1333.             MsgBox eMsg & " vertex point 1"
  1334.             ERROR_COUNT = ERROR_COUNT + 1
  1335.         End If
  1336.         Set iWhere = Nothing
  1337.  
  1338.         Set iWhere = iSolid.Where(2)
  1339.         If (iWhere.X <> X2# Or iWhere.Y <> Y2#) Then
  1340.             MsgBox eMsg & " vertex point 2"
  1341.             ERROR_COUNT = ERROR_COUNT + 1
  1342.         End If
  1343.         Set iWhere = Nothing
  1344.  
  1345.         Set iWhere = iSolid.Where(3)
  1346.         If (iWhere.X <> X3# Or iWhere.Y <> Y3#) Then
  1347.             MsgBox eMsg & " vertex point 3"
  1348.             ERROR_COUNT = ERROR_COUNT + 1
  1349.         End If
  1350.         Set iWhere = Nothing
  1351.  
  1352.         Set iWhere = iSolid.Where(4)
  1353.         If (iWhere.X <> X4# Or iWhere.Y <> Y4#) Then
  1354.             MsgBox eMsg & " vertex point 4"
  1355.             ERROR_COUNT = ERROR_COUNT + 1
  1356.         End If
  1357.         Set iWhere = Nothing
  1358.     
  1359.         If (Len(Lyr$) > 0) Then
  1360.             Dim iLayer As Object
  1361.             Set iLayer = iSolid.Layer
  1362.             If iLayer.Name <> Lyr$ Then
  1363.                 MsgBox eMsg$ & "layer"
  1364.                 ERROR_COUNT = ERROR_COUNT + 1
  1365.             End If
  1366.             Set iLayer = Nothing
  1367.         End If
  1368.         
  1369.         If (Clr% <> -1) Then
  1370.             Dim iColor As Object
  1371.             Set iColor = iSolid.Color
  1372.             If iColor.Number <> Clr% Then
  1373.                 MsgBox eMsg$ & "color"
  1374.                 ERROR_COUNT = ERROR_COUNT + 1
  1375.             End If
  1376.             Set iColor = Nothing
  1377.         End If
  1378.     End If
  1379. End Sub
  1380.  
  1381.  
  1382. Sub VerifyTrace(ByVal iTrace As Object, X1#, Y1#, X2#, Y2#, X3#, Y3#, X4#, Y4#, Lyr$, Clr%)
  1383. '
  1384. '   verifies that the given object is a Trace and has
  1385. '   the specified parameters
  1386. '
  1387.  
  1388. '
  1389. '   X#, Y#  are the center point
  1390. '   R#      is the radius
  1391. '   S#      is the start angle  (in radians)
  1392. '   E#      is the end angle    (in radians)
  1393. '   L$      is the layer
  1394. '   C%      is the color
  1395. '
  1396.     Dim eMsg$
  1397.     eMsg$ = "VerifyTrace()" & CRLF & "Trace does not have the indicated "
  1398.  
  1399.     If (iTrace Is Nothing) Then
  1400.         Debug.Print "VerifyTrace() -- iTrace is not an object !"
  1401.         MsgBox "VerifyTrace()" & CRLF & "Huffffff!  Not even close."
  1402.         ERROR_COUNT = ERROR_COUNT + 1
  1403.     Else
  1404.         If (iTrace.Type <> 9) Then
  1405.             MsgBox "VerifyTrace()" & CRLF & "Object is not a Trace !"
  1406.             ERROR_COUNT = ERROR_COUNT + 1
  1407.         End If
  1408.  
  1409.         Dim iWhere As Object
  1410.         Set iWhere = iTrace.Where(1)
  1411.         If (iWhere.X <> X1# Or iWhere.Y <> Y1#) Then
  1412.             MsgBox eMsg & " vertex point 1"
  1413.             ERROR_COUNT = ERROR_COUNT + 1
  1414.         End If
  1415.         Set iWhere = Nothing
  1416.  
  1417.         Set iWhere = iTrace.Where(2)
  1418.         If (iWhere.X <> X2# Or iWhere.Y <> Y2#) Then
  1419.             MsgBox eMsg & " vertex point 2"
  1420.             ERROR_COUNT = ERROR_COUNT + 1
  1421.         End If
  1422.         Set iWhere = Nothing
  1423.  
  1424.         Set iWhere = iTrace.Where(3)
  1425.         If (iWhere.X <> X3# Or iWhere.Y <> Y3#) Then
  1426.             MsgBox eMsg & " vertex point 3"
  1427.             ERROR_COUNT = ERROR_COUNT + 1
  1428.         End If
  1429.         Set iWhere = Nothing
  1430.  
  1431.         Set iWhere = iTrace.Where(4)
  1432.         If (iWhere.X <> X4# Or iWhere.Y <> Y4#) Then
  1433.             MsgBox eMsg & " vertex point 4"
  1434.             ERROR_COUNT = ERROR_COUNT + 1
  1435.         End If
  1436.         Set iWhere = Nothing
  1437.     
  1438.         If (Len(Lyr$) > 0) Then
  1439.             Dim iLayer As Object
  1440.             Set iLayer = iTrace.Layer
  1441.             If iLayer.Name <> Lyr$ Then
  1442.                 MsgBox eMsg$ & "layer"
  1443.                 ERROR_COUNT = ERROR_COUNT + 1
  1444.             End If
  1445.             Set iLayer = Nothing
  1446.         End If
  1447.         
  1448.         If (Clr% <> -1) Then
  1449.             Dim iColor As Object
  1450.             Set iColor = iTrace.Color
  1451.             If iColor.Number <> Clr% Then
  1452.                 MsgBox eMsg$ & "color"
  1453.                 ERROR_COUNT = ERROR_COUNT + 1
  1454.             End If
  1455.             Set iColor = Nothing
  1456.         End If
  1457.     End If
  1458. End Sub
  1459.  
  1460.  
  1461.