VERSION 5.00 Begin VB.Form GaykaDlg BorderStyle = 3 'Fixed Dialog Caption = "Гайка ГОСТ 5915-70" ClientHeight = 4824 ClientLeft = 2760 ClientTop = 3756 ClientWidth = 4836 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 4824 ScaleWidth = 4836 ShowInTaskbar = 0 'False Begin VB.ComboBox DiamCombo Height = 315 Left = 960 TabIndex = 22 Top = 120 Width = 1335 End Begin VB.CheckBox AxisCheck Caption = "Ось рисовать" Height = 195 Left = 3240 TabIndex = 21 Top = 3600 Width = 1455 End Begin VB.CheckBox SimpleCheck Caption = "Упрощенно" Height = 255 Left = 3240 TabIndex = 20 Top = 3240 Width = 1335 End Begin VB.CheckBox AddKeyCheck Caption = "Дополнительный размер под ключ" Height = 255 Left = 120 TabIndex = 19 Top = 3960 Width = 3372 End Begin VB.CheckBox SmallStepCheck Caption = "Мелкий шаг" Height = 255 Left = 120 TabIndex = 18 Top = 3600 Width = 1335 End Begin VB.CheckBox SpcObjCheck Caption = "Создать объект спецификации" Height = 312 Left = 120 TabIndex = 17 Top = 3240 Width = 2892 End Begin VB.PictureBox ShowPicture Height = 1815 Left = 2400 ScaleHeight = 1764 ScaleWidth = 2244 TabIndex = 16 Top = 120 Width = 2295 End Begin VB.CommandButton Command1 Caption = "Справка" Height = 375 Left = 3240 TabIndex = 15 Top = 4320 Width = 1215 End Begin VB.Frame Frame3 Caption = "Параметры штриховки" Height = 1215 Left = 2400 TabIndex = 10 Top = 1920 Width = 2295 Begin VB.TextBox StepEdit BeginProperty DataFormat Type = 1 Format = "0" HaveTrueFalseNull= 0 FirstDayOfWeek = 0 FirstWeekOfYear = 0 LCID = 1049 SubFormatType = 1 EndProperty Height = 285 Left = 1200 TabIndex = 13 Top = 675 Width = 735 End Begin VB.TextBox AngleEdit BeginProperty DataFormat Type = 1 Format = "0" HaveTrueFalseNull= 0 FirstDayOfWeek = 0 FirstWeekOfYear = 0 LCID = 1049 SubFormatType = 1 EndProperty Height = 285 Left = 1200 TabIndex = 12 Top = 240 Width = 735 End Begin VB.Label Label2 AutoSize = -1 'True Caption = "Шаг, мм" Height = 195 Left = 240 TabIndex = 14 Top = 720 Width = 630 End Begin VB.Label Label1 AutoSize = -1 'True Caption = "Угол, град" Height = 195 Left = 240 TabIndex = 11 Top = 285 Width = 810 End End Begin VB.Frame Frame2 Height = 1215 Left = 120 TabIndex = 7 Top = 1920 Width = 2175 Begin VB.OptionButton Perform2Radio Caption = "Исполнение 2" Height = 195 Left = 120 TabIndex = 9 Top = 720 Width = 1455 End Begin VB.OptionButton Perform1Radio Caption = "Исполнение 1" Height = 195 Left = 120 TabIndex = 8 Top = 360 Width = 1455 End End Begin VB.Frame Frame1 Height = 1455 Left = 120 TabIndex = 2 Top = 480 Width = 2175 Begin VB.OptionButton ViewRadio Caption = "Вид/разрез" Height = 195 Index = 3 Left = 120 TabIndex = 6 Top = 1080 Width = 1200 End Begin VB.OptionButton ViewRadio Caption = "Вид сверху" Height = 195 Index = 2 Left = 120 TabIndex = 5 Top = 800 Width = 1200 End Begin VB.OptionButton ViewRadio Caption = "Вид сбоку" Height = 195 Index = 1 Left = 120 TabIndex = 4 Top = 520 Width = 1200 End Begin VB.OptionButton ViewRadio Caption = "Вид" Height = 195 Index = 0 Left = 120 TabIndex = 3 Top = 240 Width = 1200 End End Begin VB.CommandButton CancelButton Cancel = -1 'True Caption = "Отмена" Height = 375 Left = 1800 TabIndex = 1 Top = 4320 Width = 1215 End Begin VB.CommandButton OKButton Caption = "ОК" Default = -1 'True Height = 375 Left = 360 TabIndex = 0 Top = 4320 Width = 1215 End Begin VB.Label label Caption = "Диаметр" Height = 255 Left = 120 TabIndex = 23 Top = 150 Width = 735 End End Attribute VB_Name = "GaykaDlg" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False Option Explicit Dim gayka As GaykaObj Public Result As Boolean Public Sub SetBufObj(buf As GaykaObj) ' буфер Set gayka = buf End Sub Private Sub Form_Load() If gayka.GaykaObj_tmp.perform Then ' выделим исполнение Perform2Radio.Value = vbChecked ' исполнение 2 Else Perform1Radio.Value = vbChecked ' исполнение 1 End If Select Case gayka.GaykaObj_par.drawType ' выделим текущий вид Case ID_VID: ViewRadio(0).Value = vbChecked ' главный вид Case ID_SIDEVID: ViewRadio(1).Value = vbChecked ' вид сбоку Case ID_TOPVID: ViewRadio(2).Value = vbChecked ' вид сверху Case ID_VIDSEC: ViewRadio(3).Value = vbChecked ' главный вид \ разрез End Select ' заполним список диаметров Dim item As Object ' ksLtVariant Set item = iKompasObject.GetParamStruct(ko_LtVariant) Dim arr As Object ' ksDynamicArray Set arr = gayka.GaykaObj_paramTmp.GetUserArray If (Not item Is Nothing) And (Not arr Is Nothing) Then Dim i As Integer i = 1 Do While i i = gayka.GaykaObj_data.ksReadRecord(gayka.GaykaObj_base.bg, gayka.GaykaObj_base.rg, _ gayka.GaykaObj_paramTmp) If i > 0 Then arr.ksGetArrayItem 0, item DiamCombo.AddItem CStr(item.floatVal) End If Loop End If DiamCombo.SelText = CStr(gayka.GaykaObj_tmp.dr) ' выделим текущий диаметр гайки AngleEdit.Text = CStr(gayka.GaykaObj_tmp.hatchAng) ' угол штриховки StepEdit.Text = CStr(gayka.GaykaObj_tmp.hatchStep) ' шаг штриховки SmallStepCheck.Value = CByte(gayka.GaykaObj_tmp.pitch) SimpleCheck.Value = CByte(gayka.GaykaObj_tmp.simple) ' упрощенное изображение SpcObjCheck.Value = CByte(gayka.GaykaObj_par.flagAttr) ' объект спецификации AddKeyCheck.Value = CByte(gayka.GaykaObj_tmp.key_s) ' дополнительный размер под ключ If gayka.GaykaObj_tmp.axis_off = 0 Then AxisCheck.Value = vbChecked End If End Sub Private Sub Perform1Radio_Click() ' исполнение 1 If Perform1Radio.Value Then gayka.GaykaObj_perform = 0 ShowPicture_Paint End If End Sub Private Sub Perform2Radio_Click() ' исполнение 2 If Perform2Radio.Value Then gayka.GaykaObj_perform = 1 ShowPicture_Paint End If End Sub ' управление контролами с параметрами штриховки ( доступны\недоступны ) Private Sub EnableHatchParam(ByVal enable As Boolean) AngleEdit.Enabled = enable StepEdit.Enabled = enable End Sub Private Sub ViewRadio_Click(Index As Integer) Select Case Index Case 0: gayka.GaykaObj_drawType = ID_VID ' главный вид EnableHatchParam False Case 1: gayka.GaykaObj_drawType = ID_SIDEVID ' вид сбоку EnableHatchParam False Case 2: gayka.GaykaObj_drawType = ID_TOPVID ' вид сверху EnableHatchParam False Case 3: gayka.GaykaObj_drawType = ID_VIDSEC ' главный вид \ разрез EnableHatchParam True End Select ShowPicture_Paint End Sub Private Sub DiamCombo_Click() ' Изменение выделенного значения в списке Диаметров Dim val As Single val = CSng(DiamCombo.Text) gayka.GaykaObj_dr = val gayka.ReadGaykaBase val End Sub Private Sub AngleEdit_Validate(KeepFocus As Boolean) ' валидатор на значение угла штриховки If Not IsNumeric(AngleEdit.Text) Or val(AngleEdit.Text) < -360 Or _ val(AngleEdit.Text) > 360 Then KeepFocus = True MsgBox "Введите число от -360 до 360" End If End Sub Private Sub AngleEdit_Change() ' угол штриховки If IsNumeric(AngleEdit.Text) Then gayka.GaykaObj_angle = CSng(AngleEdit.Text) End If End Sub Private Sub StepEdit_Validate(KeepFocus As Boolean) ' валидатор на значение шага штриховки If Not IsNumeric(StepEdit.Text) Or val(StepEdit.Text) < 0 Or _ val(StepEdit.Text) > 100 Then KeepFocus = True MsgBox "Введите число от 0 до 100" End If End Sub Private Sub StepEdit_Change() ' шаг штриховки If IsNumeric(StepEdit.Text) Then gayka.GaykaObj_step = CSng(StepEdit.Text) End If End Sub Private Sub CancelButton_Click() Result = False Unload Me ' выгрузить форму End Sub Private Sub OKButton_Click() Result = True Unload Me ' выгрузить форму End Sub Private Sub SimpleCheck_Click() ' упрощенное изображение gayka.GaykaObj_simple = CByte(SimpleCheck.Value) ShowPicture_Paint End Sub Private Sub SpcObjCheck_Click() ' объект спецификации gayka.GaykaObj_attr = CByte(SpcObjCheck.Value) End Sub Private Sub SmallStepCheck_Click() ' мелкий шаг gayka.GaykaObj_SmallStep = CByte(SmallStepCheck.Value) End Sub Private Sub AddKeyCheck_Click() ' дополнительный размер под ключ gayka.GaykaObj_key_s = CByte(AddKeyCheck.Value) End Sub Private Sub AxisCheck_Click() ' рисовать ось If AxisCheck.Value Then gayka.GaykaObj_axis_off = 0 Else gayka.GaykaObj_axis_off = 1 End If ShowPicture_Paint End Sub Private Sub ShowPicture_Paint() ' отрисовка группы предварительного просмотра Dim gr As Long ' референс группы Dim buffer As GaykaObj Set buffer = New GaykaObj buffer.init ' инициализация параметров по умолчанию buffer.GaykaObj_drawType = gayka.GaykaObj_par.drawType buffer.GaykaObj_perform = gayka.GaykaObj_tmp.perform buffer.GaykaObj_axis_off = gayka.GaykaObj_tmp.axis_off buffer.GaykaObj_simple = gayka.GaykaObj_tmp.simple buffer.GetGroup gr ' собирем группу для отрисовки в окне предварительного просмотра Set buffer = Nothing iDocument2D.ksDrawKompasGroup ShowPicture.hWnd, gr ' отрисуем созданную группу End Sub