referat, referate , referat romana, referat istorie, referat geografie, referat fizica, referat engleza, referat chimie, referat franceza, referat biologie
 
Astronomie Istorie Marketing Matematica
Medicina Psihologie Religie Romana
Arte Plastice Spaniola Mecanica Informatica
Germana Biologie Chimie Diverse
Drept Economie Engleza Filozofie
Fizica Franceza Geografie Educatie Fizica
 

Proiect PAC

Categoria: Referat Informatica

Descriere:

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

Varianta Printabila 


1 Universitatea din Craiova






Facultatea de Automatică, Calculatoare şi Electronică





Proiect P.A.C.










COORDONATOR:                         STUDENTĂ:

PROF.DR.ING. COJOCARU DORIAN                  Stănică Roxana
                                                                               Master - A.S.C
                       











     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
Private Sub raza1_AfterUpdate()
piesa.listaAfisare.AddItem ("s-a introdus raza arcului 1")
piesa.listaAfisare.AddItem ("valoarea introdusa este raza1=" + piesa.raza1.Value)
verificare_numar (piesa.raza1.Value)
If corect = False Then
piesa.raza1.Value = ""
End If
End Sub
Private Sub raza3_afterupdate()
piesa.listaAfisare.AddItem ("s-a introdus raza arcului 3")
piesa.listaAfisare.AddItem ("valoarea introdusa este raza3=" + piesa.raza3.Value)
x = piesa.raza1.Value / 3
y = piesa.raza1.Value / 5
If piesa.raza3.Value >x Then
mesaj = MsgBox("raza3 trebuie sa fie mai mica decat" +str(x), vbOKOnly + vbCritical, "atentie")
corect = False
ElseIf piesa.raza3.Value < y Then
mesaj = MsgBox("raza3 trebuie sa fie mai mare decat" +str(y), vbOKOnly + vbCritical, "atentie")
corect = False
Else
corect = True
piesa.listaAfisare.AddItem ("valoarea introdusa este corecta")
End If
End Sub
Private Sub verificare_numar(valoare)
If IsNumeric(valoare) = False Then
mesaj = MsgBox("ati introdus un caracter trebuie sa introduceti un numar", vbOKOnly + vbCritical, "atentie")
corect = False
piesa.listaAfisare.AddItem ("valoare este incorecta nefiind o cifra")
ElseIf Val(valoare) <= 0 Then
mesaj = MsgBox("numarul introdus trebuie sa fie strict pozitiv", vbOKOnly + vbCritical, "atentie")
corect = False
piesa.listaAfisare.AddItem ("valoarea introdusa este incorecta trebuie o valoare mai mare ca zero")
x = piesa.raza1.Value / 3
y= piesa.raza1.Value / 5
If piesa.raza3.Value > x Then
mesaj = MsgBox("raza3 trebuie sa fie mai mica decat" +str(x), vbOKOnly + vbCritical, "atentie")
corect = False
ElseIf piesa.raza3.Value < y Then
mesaj = MsgBox("raza3 trebuie sa fie mai mare decat" +str(y),  vbOKOnly + vbCritical, "atentie")
corect = False
Else
corect = True
piesa.listaAfisare.AddItem ("valoarea introdusa este corecta")
End If
End If
End Sub

 
Dacă de exemplu se introduce raza primului arc raza1=6 şi raza arcului 3 raza3=2 atunci după rularea programullui din Visual Basic īn Autocad apare desenul următor:

 
 
Explicarea instrucţiunilor

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

     Cu aceste intrucţiuni se definesc:
-    O variabilă corect de tip boolean.
-    Centrul – un vector cu trei componente: x, y, z.
-    Razele arcelor 2 şi 3, raza cercului 4, x şi y sunt valori reale.
-    Pentru a desena un cerc trebuie definit ca AcadCircle.
-    Pentru a desena un arc trebuie definit ca AcadArc.
-    Alfa este un unghi de valoare reală.
-    Pi are valoare īntreagă.

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
 

 

      

     Codul introdus īn acestă metodă este executat la iniţializarea formei. Apare un mesaj atunci cānd dorim scrierea valorilor de intrare īn căsuţele razei1 şi razei2.

     
Pentru desenare se foloseşte funcţia:

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 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 linie(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 linie(0) = ThisDrawing.ModelSpace.AddLine(punctstart, punctfinal)
punctfinal(0) = 0# - raza2 + 7 * raza3 / 6: punctfinal(1) = 0# - raza3 / 2: punctstart(2) = 0#
Set linie(1) = ThisDrawing.ModelSpace.AddLine(linie(0).EndPoint, punctfinal)
punctfinal(0) = 0# - raza2 + 6 * raza3 / 7: punctfinal(1) = 0# - raza3 / 2: punctstart(2) = 0#
Set linie(2) = ThisDrawing.ModelSpace.AddLine(linie(1).EndPoint, punctfinal)


    

1 Pentru a desena arcul  de rază1 se folosesc următoarele instrucţiuni:

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 raza1")
”afişează īn lista de afişare că se desenează arcul de rază1”

raza2 = (raza1 * 5) / 4
raza4 = (4 * raza3) / 3
„se calculează raza 2 pentru arcul 2 şi raza 4 pentru cercul 4”

    Pentru a desena arcul vom avea nevoie de fapt de două arcuri:
-    un arc de la 0 la pi-unghi
-    un arc de la pi+unghi la 2*pi

   Se foloseşte comanda: Set arcobj= ThisDrawing.ModelSpace.AddArc(centru, raza, unghiul de īnceput, unghiul final).
    Se va defini arcobj ca AcadArc (Dim arcobj As AcadArc)
     Pentru arcul de la 0 la pi-unghi se consideră:
•    Centrul:centru(0) = 0#: centru(1) = 0#: centru(2) = 0#
•    cos(alfa)= (raza2 * raza2 + raza1 * raza1 - raza4 * raza4) / (2 * raza2 * raza1)
•    unghi = Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1) (se face arccos(alfa))
•    unghiul de īnceput este 0
•    unghiul final este pi -unghi
•    pi = 3.14159265
•    Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza1, 0, pi - unghi) (se desenează un arc cu centrul=centru, raza=raza1, unghiul de īnceput este 0, unghiul final este pi –unghi).
 
     Pentru arcul de la pi+unghi la 2*pi se consideră:
•    Centrul:centru(0) = 0#: centru(1) = 0#: centru(2) = 0#
•    cos(alfa)= (raza2 * raza2 + raza1 * raza1 - raza4 * raza4) / (2 * raza2 * raza1)
•    unghi = Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1) (se face arccos(alfa))
•    unghiul de īnceput este pi+unghi
•    unghiul final este 2*pi
•    pi = 3.14159265
•    Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza1, pi + unghi, 2 * pi) (se desenează un arc cu centrul=centru, raza=raza1, unghiul de īnceput este pi + unghi, unghiul final este 2 * pi).
 
Pentru a calcula unghiul alfa s-au parcurs următorii paşi:

 
 
 
 

unghi=arccos(alfa)=Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1)
Arcul  de rază2


 

     Pentru a desena arcul de rază2 se folosesc următoarele instrucţiuni:

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 raza2")
”afişează īn lista de afişare că se desenează arcul de rază2”

    Pentru calcule se vor folosi aceleaşi valori pentru raza2, raza4.
raza2 = (raza1 * 5) / 4
raza4 = (4 * raza3) / 3
„se calculează raza 2 pentru arcule 2 şi raza 4 pentru cercul 4”

     Pentru a desena arcul vom avea nevoie de fapt de două arcuri:
-    un arc de la 0 la pi-unghi
-    un arc de la pi+unghi la 2*pi

     Se foloseşte comanda: Set arcobj= ThisDrawing.ModelSpace.AddArc(centru, raza, unghiul de īnceput, unghiul final)

     Pentru arcul de la 0 la pi-unghi se consideră:
•    se foloseşte acelaşi centru ca la arcul 1- centru(0) = 0#: centru(1) = 0#: centru(2) = 0#
•    cos(alfa)= alfa = 1 - (raza4 * raza4) / (2 * raza2 * raza2)
•    unghi = Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1) (se face arccos(alfa))
•    unghiul de īnceput este 0
•    unghiul final este pi -unghi
•    pi = 3.14159265
•    Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza2, 0, pi - unghi)

     Pentru arcul de la pi+unghi la 2*pi se consideră:
•    Centrul:centru(0) = 0#: centru(1) = 0#: centru(2) = 0#
•    cos(alfa)= (raza2 * raza2 + raza1 * raza1 - raza4 * raza4) / (2 * raza2 * raza1)
•    unghi = Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1) (se face arccos(alfa))
•    unghiul de īnceput este pi+unghi
•    unghiul final este 2*pi
•    pi = 3.14159265
•    Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza2, pi + unghi, 2 * pi)

Pentru a calcula unghiul alfa s-au parcurs următorii paşi:

 

unghi=arccos(alfa)=Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1)






Arcul de rază 3

 

     Pentru a desena arcul de rază3 se folosesc următoarele instrucţiuni:

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)
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 arcul de raza3")
”afişează īn lista de afişare că se va desena arcul de rază3”

Pentru calcule se vor folosi aceleaşi valori pentru raza2 şi raza4.
raza2 = (raza1 * 5) / 4
raza4 = (4 * raza3) / 3

     Pentru a desena arcul vom avea nevoie de fapt de două arcuri:
-    un arc de la unghi la pi
-    un arc de la pi la 2 * pi - unghi

     Se foloseşte comanda: Set arcobj= ThisDrawing.ModelSpace.AddArc(centru, raza, unghiul de īnceput, unghiul final)

     Pentru arcul de la unghi la pi se consideră:
•    Centrul: centru(0) = 0# - raza2: centru(1) = 0#: centru(2) = 0#
•    cos(alfa)= alfa = 1 - (raza4 * raza4) / (2 * raza2 * raza2)
•    unghi = Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1) (se face arccos(alfa))
•    unghiul de īnceput este unghi
•    unghiul final este pi
•    pi = 3.14159265
•    Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza3, unghi, pi)

     Pentru arcul de la pi la 2 * pi - unghi se consideră:
•    Centrul:centru(0) = 0#: centru(1) = 0#: centru(2) = 0#
•    cos(alfa)= (raza2 * raza2 + raza1 * raza1 - raza4 * raza4) / (2 * raza2 * raza1)
•    unghi = Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1) (se face arccos(alfa))
•    unghiul de īnceput este pi
•    unghiul final este 2*pi -unghi
•    pi = 3.14159265
•    Set arcobj = ThisDrawing.ModelSpace.AddArc(centru, raza3, pi, 2 * pi - unghi)

     Triunghiul din figură este echilateral  
unghi=arccos(alfa)=Atn(-alfa / Sqr(-alfa * alfa + 1)) + 2 * Atn(1)


Cercul 4 de rază 4

     Pentru a desena cercul 4 de rază4 se folosesc următoarele instrucţiuni:

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)

piesa.listaAfisare.AddItem ("se deseneaza cercul 4 de raza4")
”afişează īn lista de afişare că se va desena cercul 4 de rază4”

   Pentru a desena un cerc se foloseşte:
Set circleobj = ThisDrawing.ModelSpace.AddCircle (centru, raza) :
-    centrul este centru(0) = 0# - raza2: centru(1) = 0#: centru(2) = 0#
-    raza=raza4

Se va defini circleobj ca AcadCircle (Dim circleobj As AcadCircle)



Polilinia

     Pentru a desena polilinia se folosesc următoarele instrucţiuni:

Dim punctstart(0 To 2) As Double
Dim punctfinal(0 To 2) As Double
Dim linie(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 linie(0) = ThisDrawing.ModelSpace.AddLine(punctstart, punctfinal)
punctfinal(0) = 0# - raza2 + 7 * raza3 / 6: punctfinal(1) = 0# - raza3 / 2: punctstart(2) = 0#
Set linie(1) = ThisDrawing.ModelSpace.AddLine(linie(0).EndPoint, punctfinal)
punctfinal(0) = 0# - raza2 + 6 * raza3 / 7: punctfinal(1) = 0# - raza3 / 2: punctstart(2) = 0#
Set linie(2) = ThisDrawing.ModelSpace.AddLine(linie(1).EndPoint, punctfinal)

    ThisDrawing.ModelSpace.AddLine(punctstart, punctfinal) –desenează o linie īntre punctele punctstart şi punctfinal

     Pentru a desena o linie se parcurg paşii:
-    se vor defini: punctul de start, punctul final şi linia ca vectori de trei elemente,  (componentele x, y şi z pentru puncte iar polilinia are trei linii).
-    se desenează o linie īntre punctul de start şi punctul final: Set linie(0) = ThisDrawing.ModelSpace.AddLine(punctstart, punctfinal): punctstart(0) = 0# - raza2 + 6 * raza3 / 7: punctstart(1) = 0# + raza3 / 2: punctstart(2) = 0# şi punctfinal(0) = 0# - raza2 + 7 * raza3 / 6: punctfinal(1) = 0# + raza3 / 2: punctstart(2) = 0#
-    se desenează o linie īntre punctul final al liniei precedente (linie(0).EndPoint) şi noul punctul final: punctfinal(0) = 0# - raza2 + 7 * raza3 / 6: punctfinal(1) = 0# - raza3 / 2: punctstart(2) = 0# Set linie(1) = ThisDrawing.ModelSpace.AddLine(linie(0).EndPoint, punctfinal)  
-    se desenează o linie īntre punctul final al liniei precedente (linie(1).EndPoint) şi noul punctul final: punctfinal(0) = 0# - raza2 + 6 * raza3 / 7: punctfinal(1) = 0# - raza3 / 2: punctstart(2) = 0# Set linie(2) = ThisDrawing.ModelSpace.AddLine(linie(1).EndPoint, punctfinal)





Private Sub raza3_afterupdate()
piesa.listaAfisare.AddItem ("s-a introdus raza arcului 3")
piesa.listaAfisare.AddItem ("valoarea introdusa este raza3=" + piesa.raza3.Value)
verificare_numar (piesa.raza1.Value)
x = piesa.raza1.Value / 3
y = piesa.raza1.Value / 5
If piesa.raza3.Value > x Then
mesaj = MsgBox("raza3 trebuie sa fie mai mica decat" + str(x), vbOKOnly + vbCritical, "atentie")
corect = False
ElseIf piesa.raza3.Value < y Then
mesaj = MsgBox("raza3 trebuie sa fie mai mare decat" +str(y), vbOKOnly + vbCritical, "atentie")
corect = False
Else
corect = True
piesa.listaAfisare.AddItem ("valoarea introdusa este corecta")
End If
End Sub


 





Private Sub raza1_AfterUpdate()
piesa.listaAfisare.AddItem ("s-a introdus raza arcului 1")
piesa.listaAfisare.AddItem ("valoarea introdusa este raza1=" + piesa.raza1.Value)
verificare_numar (piesa.raza1.Value)
If corect = False Then
piesa.raza1.Value = ""
End If
End Sub

Private Sub verificare_numar(valoare)
If IsNumeric(valoare) = False Then
mesaj = MsgBox("ati introdus un caracter trebuie sa introduceti un numar", vbOKOnly + vbCritical, "atentie")
corect = False
piesa.listaAfisare.AddItem ("valoare este incorecta nefiind o cifra")
ElseIf Val(valoare) <= 0 Then
mesaj = MsgBox("numarul introdus trebuie sa fie strict pozitiv", vbOKOnly + vbCritical, "atentie")
corect = False
piesa.listaAfisare.AddItem ("valoarea introdusa este incorecta trebuie o valoare mai mare ca zero")
Else
corect = True
piesa.listaAfisare.AddItem ("valoarea introdusa este corecta")
End If
End Sub

 

   AfterUpdate este o metodă asociată casetelor de editare din Visual Basic, care execută o acţiune la terminarea editării textului īn aceste casete.
   Prima linie de cod din Private Sub raza1_afterupdate() afişază textul "s-a introdus raza arcului 1" īn caseta listă, apoi dacă valoarea razei 1 este corectă īn lista de afişare apare mesajul "valoarea introdusa este raza1=" + piesa.raza1.Value (īn loc de piesa.raza1.Value apare valoarea razei1 introduse de la tastatură).
      Prima linie de cod din Private Sub raza3_afterupdate() afişază textul "s-a introdus raza arcului 3" īn caseta listă, apoi dacă valoarea razei 3 este corectă īn lista de afişare apare mesajul "valoarea introdusa este raza3=" + piesa.raza3.Value (īn loc de piesa.raza3.Value apare valoarea razei3 introduse de la tastatură)
     Īn metoda Private Sub raza3_afterupdate()  mai apar nişte condiţii:
-    dacă raza1/5<raza3 şi raza3<raza1/3 atunci valoarea razei3 este corectă şi se va folosi pentru desenare
-    dacă raza1/5>raza3 şi raza3>raza1/3 valoarea razei 3 este incorectă şi apar mesaje de tipul "raza3 trebuie sa fie mai mica decat " +str(x), sau "raza3 trebuie sa fie mai mare decat " +str(y),
-    str(x) afişază valoarea raza1/3
-    str(y) afişază valoarea raza1/5
     Īn cazul īn care o valoare este greşită dorim să fim avertizaţi aşa că se mai crează o funcţie verificare_numar(valoare). Acestă funcţie ne avertizează dacă valoarea introdusă de la tastatură este un caracter sau un număr negativ şi ne permite modificarea valorii razei 1. Dacă se introduce o valoare greşită atunci apare pe ecran un mesaj de tipul "ati introdus un caracter trebuie sa introduceti un numar" sau "numarul introdus trebuie sa fie strict pozitiv". Această funţie este apelată īn funcţiile Private Sub raza1_afterupdate(): verificare_numar (piesa.raza1.Value) şi Private Sub raza3_afterupdate(): verificare_numar (piesa.raza3.Value) (se verifică valorile razelor 1 şi 3)
Referat oferit de www.ReferateOk.ro
Home : Despre Noi : Contact : Parteneri  
Horoscop
Copyright(c) 2008 - 2012 Referate Ok
referate, referat, referate romana, referate istorie, referate franceza, referat romana, referate engleza, fizica