Логотип сайта поддержки пользователей САПРО сайте поддержки пользователей САПР Translate to:

Примеры диалоговых окон

Во многих примерах, описанных в других разделах, уже использовались диалоговые окна. Вот ссылки на эти примеры:

Эквидистантная копия на заданный слой с примером диалогового окна для выбора слоев

Масштабирование изображения по блоку, выбранному с помощью диалогового окна

Создание текстовых стилей на основании текстового файла

Удаление из базы данных чертежа всех неиспользуемых объектов с помощью диалогового окна

Пример диалогового окна с информацией о слоях

Диалоговое окно для вставки блока

Диалоговое окно для вставки в чертеж внешних ссылок

Сохранение строки текста в области расширенных данных

Сохранение в области расширенных данных имени пользователя, даты и примечаний

Выбор цвета в диалоговом окне с помощью функции API

Перевод стандартных цветов AutoCAD в формат RGB

Перевод цветов AutoCAD в формат RGB (учтены все 256 цветов)

Открытие и сохранение файлов с помощью API

Выбор папки в диалоговом окне с помощью API

Открытие всех файлов dwg из выбранной папки и выполнение над всеми примитивами чертежей этих файлов одинаковых преобразований.

Форма с окном просмотра выбранных на чертеже примитивов

Добавьте в проект новую форму и разместите на ней следующие элементы:

У меня получилось вот что:

Добавьте в модуль формы следующий код:

Option Explicit

Public Function MakePreview() As String
  Dim objSelSet As AcadSelectionSet
  Dim strCurDir As String

  On Error GoTo Err_Control
  If Right(CurDir, 1) <> "\" Then
    strCurDir = CurDir & "\"
  Else
    strCurDir = CurDir
  End If
  Set objSelSet = vbdPowerSet("userselection")
  objSelSet.SelectOnScreen
  ThisDrawing.Export strCurDir & "temp", "wmf", objSelSet
  MakePreview = strCurDir & "temp.wmf"
Exit_Here:
  Exit Function
Err_Control:
  MsgBox Err.Description
  MakePreview = vbNullString
  Resume Exit_Here
End Function
 
Public Function vbdPowerSet(strName As String) As AcadSelectionSet
  Dim objSelSet As AcadSelectionSet
  Dim objSelCol As AcadSelectionSets

  Set objSelCol = ThisDrawing.SelectionSets
    For Each objSelSet In objSelCol
      If objSelSet.Name = strName Then
        objSelCol.Item(strName).Delete
        Exit For
      End If
    Next
  Set objSelSet = ThisDrawing.SelectionSets.Add(strName)
  Set vbdPowerSet = objSelSet
End Function
 
Private Sub CommandButton1_Click()
  Dim strFile As String
  Me.Hide
  strFile = MakePreview
  If Not strFile = vbNullString Then
    Image1.Picture = LoadPicture(strFile)
    Kill strFile
  End If
  Me.Show
End Sub
 
Private Sub CommandButton2_Click()
  Unload Me
End Sub

Private Sub OptionButton1_Click()
  Image1.PictureSizeMode = fmPictureSizeModeClip
End Sub
 
Private Sub OptionButton2_Click()
  Image1.PictureSizeMode = fmPictureSizeModeStretch
End Sub
 
Private Sub OptionButton3_Click()
  Image1.PictureSizeMode = fmPictureSizeModeZoom
End Sub
 
Private Sub UserForm_Initialize()
  Frame1.Caption = "Preview Selection"
  OptionButton1.Value = True
  OptionButton1.Caption = "Clip image"
  OptionButton2.Caption = "Stretch image"
  OptionButton3.Caption = "Zoom image"
  CommandButton1.Caption = "Select Entities"
  CommandButton2.Caption = "Close"
End Sub



Copyright © Сайт поддержки пользователей САПР by Victor Tkachenko