Interfete functionale


Interfete functionale

Marime:
Descarcari: 2

Interfete functionale Programul următor crează o interfaţă funcţională şi completă pentru programul piesă. Se vor introduce de la tastatură 2 parametrii raza1 şi raza3 pentru arcul 1 şi arcul 3 şi după rularea programului se va obţine figura următoare. Dim corect As Boolean Dim centru(0 To 2) As Double Dim raza2 As Double Dim raza3 As Double Dim raza4 As Double Dim x As Double Dim y As Double Dim circleobj As AcadCircle Dim arcobj As AcadArc Dim alfa As Double Dim unghi As Double Dim pi As Double Private Sub userform_initialize() piesa.raza1.ControlTipText = "trebuie introdus un numar strict pozitiv pentru raza 1" piesa.raza3.ControlTipText = "trebuie introdus un numar strict pozitiv pentru raza 3 mai mic decat raza1" piesa.deseneaza.ControlTipText = "deseneaza piesa" piesa.afisare.ControlTipText = "afiseaza fereastra pentru urmarirea executiei programului" piesa.listaAfisare.ControlTipText = "afiseaza operatiile efectuate" corect = True piesa.afisare.Value = True piesa.listaAfisare.AddItem ("s-a lansat programul") End Sub Private Sub afisare_click() If piesa.afisare.Value = True Then piesa.listaAfisare.Visible = True Else piesa.listaAfisare.Visible = False End If End Sub Private Sub deseneaza_Click() If (piesa.raza1.Value = "") Or (piesa.raza3.Value = "") Then mesaj = MsgBox("trebuie sa introduceti toate datele inainte de a desena piesa", vbOKOnly + vbCritical, "atentie") piesa.listaAfisare.AddItem ("s-a incercat desenarea fara toate datele introduse") End If piesa.listaAfisare.AddItem ("se incepe desenarea") piesa.listaAfisare.AddItem ("se deseneaza arcul de raza1") centru(0) = 0#: centru(1) = 0#: centru(2) = 0# raza2 = (raza1 * 5) / 4 raza4 = (4 * raza3) / 3 alfa = (raza2 * raza2 + raza1 * raza1 - raza4 * raza4) / (2 * raza2 * raza1) unghi = Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1) pi = 3.14159265 Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza1, 0, pi - unghi) Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza1, pi + unghi, 2 * pi) piesa.listaAfisare.AddItem ("se deseneaza arcul de raza2") alfa = 1 - (raza4 * raza4) / (2 * raza2 * raza2) unghi = Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1) Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza2, 0, pi - unghi) Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza2, pi + unghi, 2 * pi) piesa.listaAfisare.AddItem ("se deseneaza arcul de raza3") centru(0) = 0# - raza2: centru(1) = 0#: centru(2) = 0# alfa = Sqr(3) / 2 unghi = Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1) pi = 3.14159265 Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza3, unghi, pi) Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza3, pi, 2 * pi - unghi) piesa.listaAfisare.AddItem ("se deseneaza cercul 4 de raza4") centru(0) = 0# - raza2: centru(1) = 0#: centru(2) = 0# Set circleobj = ThisDrawing.ModelSpace.AddCircle(centru, raza4) Dim punctstart(0 To 2) As Double Dim punctfinal(0 To 2) As Double Dim frontiera(0 To 2) As AcadEntity piesa.listaAfisare.AddItem ("se deseneaza polilinia") punctstart(0) = 0# - raza2 + 6 * raza3 / 7: punctstart(1) = 0# + raza3 / 2: punctstart(2) = 0# punctfinal(0) = 0# - raza2 + 7 * raza3 / 6: punctfinal(1) = 0# + raza3 / 2: punctstart(2) = 0# Set frontiera(0) = ThisDrawing.ModelSpace.AddLine(punctstart, punctfinal) punctfinal(0) = 0# - raza2 + 7 * raza3 / 6: punctfinal(1) = 0# - raza3 / 2: punctstart(2) = 0# Set frontiera(1) = ThisDrawing.ModelSpace.AddLine(frontiera(0).EndPoint, punctfinal) punctfinal(0) = 0# - raza2 + 6 * raza3 / 7: punctfinal(1) = 0# - raza3 / 2: punctstart(2) = 0# Set frontiera(2) = ThisDrawing.ModelSpace.AddLine(frontiera(1).EndPoint, punctfinal) End Sub

DESCARCA