home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 November / pcwk_11_98a.iso / Wtestowe / SOFTSRC / vtrial15.exe / DATA.1 / MainForm.frm < prev    next >
Text File  |  1997-02-14  |  10KB  |  322 lines

  1. VERSION 4.00
  2. Begin VB.Form MainForm 
  3.    Caption         =   "Blocks/Attributes"
  4.    ClientHeight    =   3615
  5.    ClientLeft      =   555
  6.    ClientTop       =   1455
  7.    ClientWidth     =   6000
  8.    Height          =   4020
  9.    Icon            =   "MainForm.frx":0000
  10.    Left            =   495
  11.    LinkTopic       =   "Form1"
  12.    ScaleHeight     =   241
  13.    ScaleMode       =   3  'Pixel
  14.    ScaleWidth      =   400
  15.    Top             =   1110
  16.    Width           =   6120
  17.    Begin VB.CommandButton ZoomButton 
  18.       Caption         =   "&Zoom to Insert"
  19.       Enabled         =   0   'False
  20.       Height          =   375
  21.       Left            =   4320
  22.       TabIndex        =   9
  23.       Top             =   3120
  24.       Width           =   1455
  25.    End
  26.    Begin VB.CommandButton EditButton 
  27.       Caption         =   "&Edit Attributes"
  28.       Enabled         =   0   'False
  29.       Height          =   375
  30.       Left            =   2520
  31.       TabIndex        =   8
  32.       Top             =   3120
  33.       Width           =   1695
  34.    End
  35.    Begin VB.CommandButton OutputButton 
  36.       Caption         =   "&Output..."
  37.       Enabled         =   0   'False
  38.       Height          =   375
  39.       Left            =   4320
  40.       TabIndex        =   6
  41.       Top             =   960
  42.       Width           =   1455
  43.    End
  44.    Begin VB.ListBox AttribList 
  45.       Height          =   1590
  46.       Left            =   2520
  47.       TabIndex        =   5
  48.       Top             =   1440
  49.       Width           =   3255
  50.    End
  51.    Begin VB.CommandButton GetAttribs 
  52.       Caption         =   "Get &Attributes"
  53.       Enabled         =   0   'False
  54.       Height          =   375
  55.       Left            =   2520
  56.       TabIndex        =   4
  57.       Top             =   960
  58.       Width           =   1695
  59.    End
  60.    Begin VB.CommandButton SelectAll 
  61.       Caption         =   "&Select All Inserts of Block"
  62.       Enabled         =   0   'False
  63.       Height          =   375
  64.       Left            =   240
  65.       TabIndex        =   3
  66.       Top             =   960
  67.       Width           =   2055
  68.    End
  69.    Begin VB.ListBox BlockList 
  70.       Height          =   1590
  71.       Left            =   240
  72.       Sorted          =   -1  'True
  73.       TabIndex        =   2
  74.       Top             =   1440
  75.       Width           =   2055
  76.    End
  77.    Begin VB.CommandButton GetBlocks 
  78.       Caption         =   "&Get Blocks in Current Drawing"
  79.       Height          =   375
  80.       Left            =   1800
  81.       TabIndex        =   0
  82.       Top             =   120
  83.       Width           =   2415
  84.    End
  85.    Begin MSComDlg.CommonDialog CommonDialog 
  86.       Left            =   5400
  87.       Top             =   120
  88.       _Version        =   65536
  89.       _ExtentX        =   847
  90.       _ExtentY        =   847
  91.       _StockProps     =   0
  92.    End
  93.    Begin VB.Label NumberLabel 
  94.       Height          =   255
  95.       Left            =   240
  96.       TabIndex        =   7
  97.       Top             =   3120
  98.       Width           =   2175
  99.    End
  100.    Begin VB.Label DrawingName 
  101.       Alignment       =   2  'Center
  102.       Caption         =   "<none>"
  103.       Height          =   255
  104.       Left            =   240
  105.       TabIndex        =   1
  106.       Top             =   600
  107.       Width           =   5535
  108.    End
  109. End
  110. Attribute VB_Name = "MainForm"
  111. Attribute VB_Creatable = False
  112. Attribute VB_Exposed = False
  113. ' (C) Copyright 1997 by SoftSource.  All rights reserved.
  114. ' Sample Visual Basic code for working with Vdraft
  115. '
  116. ' This code demonstrates getting block and attribute
  117. '   information out of a drawing
  118.  
  119.  
  120. ' the object we use to talk to Vdraft
  121. Dim vdraft As Object
  122. ' the drawing we're using
  123. Dim drawing As Object
  124.  
  125. Private Sub AttribList_Click()
  126.     EditButton.Enabled = True
  127.     ZoomButton.Enabled = True
  128. End Sub
  129.  
  130. Private Sub BlockList_Click()
  131.     Dim block As Object
  132.     
  133.     ' tell the user how many inserts of selected block there are
  134.     blockname$ = BlockList.List(BlockList.ListIndex)
  135.     Set block = drawing.blocks.Item(blockname$)
  136.     insertcount% = block.inserts.Count
  137.     NumberLabel.Caption = Str$(insertcount%) + " inserts of block in drawing"
  138.     
  139.     ' once they select a block, the buttons will do something
  140.     SelectAll.Enabled = True
  141.     GetAttribs.Enabled = block.HasAttributes
  142.     OutputButton.Enabled = False
  143.     AttribList.Clear
  144.     EditButton.Enabled = False
  145.     ZoomButton.Enabled = False
  146. End Sub
  147.  
  148. Private Sub EditButton_Click()
  149.     Dim inserts As Object
  150.     
  151.     ' find the selected insert
  152.     blockname$ = BlockList.List(BlockList.ListIndex)
  153.     Set inserts = drawing.blocks.Item(blockname$).inserts
  154.  
  155.     ' display properties for selected insert
  156.     inserts(AttribList.ListIndex + 1).Dialog
  157. End Sub
  158.  
  159. Private Sub Form_Load()
  160.     WindowOnTop hWnd
  161. End Sub
  162.  
  163. Private Sub GetAttribs_Click()
  164.     Dim inserts, attribs As Object
  165.     
  166.     MainForm.MousePointer = 11    ' hourglass
  167.     AttribList.Clear
  168.     EditButton.Enabled = False
  169.     ZoomButton.Enabled = False
  170.  
  171.     ' get associated list of inserts from Vdraft
  172.     blockname$ = BlockList.List(BlockList.ListIndex)
  173.     Set inserts = drawing.blocks.Item(blockname$).inserts
  174.     If inserts.Count = 0 Then
  175.         Exit Sub
  176.     End If
  177.     
  178.     ' build up attribute list
  179.     attribcount% = inserts(1).Attributes.Count
  180.     For i% = 1 To inserts.Count
  181.         Set attribs = inserts(i%).Attributes
  182.         output$ = attribs(1).Text
  183.         For j% = 2 To attribcount%
  184.             output$ = output$ + ", " + attribs(j%).Text
  185.         Next j%
  186.         AttribList.AddItem output$
  187.     Next i%
  188.     
  189.     ' once they have attributes, they can be output
  190.     OutputButton.Enabled = True
  191.     MainForm.MousePointer = 1    ' default
  192. End Sub
  193.  
  194. Private Sub GetBlocks_Click()
  195.     Dim blocks, block As Object
  196.     
  197.     MainForm.MousePointer = 11    ' hourglass
  198.     BlockList.Clear
  199.     
  200.     ' make sure we're talking to Vdraft
  201.     If vdraft Is Nothing Then
  202.         Set vdraft = CreateObject("Vdraft.Application")
  203.     End If
  204.     If vdraft.Documents.Count = 0 Then
  205.         MainForm.MousePointer = 1    ' default
  206.         Exit Sub
  207.     End If
  208.     
  209.     ' get current drawing & display its name
  210.     Set drawing = vdraft.ActiveDocument
  211.     DrawingName.Caption = drawing.FullName
  212.  
  213.     ' list all the blocks in the drawing
  214.     Set blocks = drawing.blocks
  215.     blockcount% = blocks.Count
  216.     For i% = 1 To blockcount%
  217.         Set block = blocks(i%)
  218.         ' don't list dimensions or hatches
  219.         If Not block.IsAnonymous Then
  220.             BlockList.AddItem blocks(i%)
  221.         End If
  222.     Next i%
  223.  
  224.     MainForm.MousePointer = 1    ' default
  225. End Sub
  226.  
  227. Private Sub OutputButton_Click()
  228.     Dim inserts, attribs As Object
  229.     
  230.     MainForm.MousePointer = 11    ' hourglass
  231.  
  232.     ' get associated list of inserts from Vdraft
  233.     blockname$ = BlockList.List(BlockList.ListIndex)
  234.     Set inserts = drawing.blocks.Item(blockname$).inserts
  235.     
  236.     ' ask the user for a file name
  237.     On Error GoTo Abort
  238.     CommonDialog.Filter = "Attributes (*.att)"
  239.     CommonDialog.CancelError = True
  240.     CommonDialog.ShowSave
  241.     ' the following line should check if the user cancelled
  242.     If Len(CommonDialog.filename) = 0 Then
  243.         MainForm.MousePointer = 1    ' default
  244.         Exit Sub
  245.     End If
  246.     
  247.     ' build up attribute list
  248.     Open CommonDialog.filename For Output As #1
  249.     attribcount% = inserts(1).Attributes.Count
  250.     For i% = 1 To inserts.Count
  251.         Set attribs = inserts(i%).Attributes
  252.         output$ = attribs(1).Text
  253.         For j% = 2 To attribcount%
  254.             output$ = output$ + ", " + attribs(j%).Text
  255.         Next j%
  256.         Print #1, output$
  257.     Next i%
  258.     Close #1
  259.     
  260. Abort:
  261.     MainForm.MousePointer = 1    ' default
  262. End Sub
  263.  
  264. Private Sub SelectAll_Click()
  265.     Dim block, inserts, selection As Object
  266.     
  267.     MainForm.MousePointer = 11    ' hourglass
  268.     
  269.     ' get associated list of inserts from Vdraft
  270.     blockname$ = BlockList.List(BlockList.ListIndex)
  271.     Set block = drawing.blocks.Item(blockname$)
  272.     Set inserts = block.inserts
  273.  
  274.     ' group all selections under one command
  275.     Set Commands = drawing.Commands
  276.     Commands.Group "select.inserts " + blockname$
  277.  
  278.     ' select all the inserts
  279.     Set selection = drawing.selection
  280.     For i% = 1 To inserts.Count
  281.         selection.Add inserts(i%)
  282.     Next i%
  283.  
  284.     MainForm.MousePointer = 1    ' default
  285. End Sub
  286.  
  287.  
  288. Private Sub ZoomButton_Click()
  289.     Dim block, insert As Object
  290.     Dim offset, corner1, corner2 As Object
  291.     Dim center, view As Object
  292.     
  293.     ' find the selected block
  294.     blockname$ = BlockList.List(BlockList.ListIndex)
  295.     Set block = drawing.blocks.Item(blockname$)
  296.     Set insert = block.inserts.Item(AttribList.ListIndex + 1)
  297.     
  298.     ' start out with the extents of the block
  299.     Set corner1 = block.ExtentsMin
  300.     Set corner2 = block.ExtentsMax
  301.     ' adjust the insert point by the block's basepoint
  302.     ' so we know how much to offset the block extents by
  303.     Set offset = block.Where
  304.     offset.Detach   ' we want to change the vector but not the basepoint
  305.     offset.SubtractAway insert.Where
  306.     corner1.SubtractAway offset
  307.     corner2.SubtractAway offset
  308.  
  309.     ' find the center & height/width of insert area
  310.     w# = corner2.x - corner1.x
  311.     h# = corner2.y - corner1.y
  312.     Set center = vdraft.NewVector(corner1.x + w# / 2, corner1.y + h# / 2)
  313.  
  314.     ' change the current view so it just shows the insert
  315.     Set view = drawing.Views.ActiveView
  316.     view.center center
  317.     view.Width = 2 * w#
  318.     view.Height = 2 * h#
  319. End Sub
  320.  
  321.  
  322.