plikPDF
Transkrypt
plikPDF
Politechnika Świętokrzyska w Kielcach Nr ćwiczenia: Data: Grupa: MZIA WMiBM 2 17 marca 2006 Temat: Baza Kołków Walcowych. AutoCAD & MS VisualBasci Wykonawca: Ocena: Data: Podpis: Piotr Wydra Wygląd okna macra dla programu AutoCAD. Wygląd wygenerowanych obiektów 3D Listing programu: Dim tk(0 To 5) As Double 'typ kolka' Const pi = 3.14159 Sub kolek_rzut_glowny() Dim linia As AcadLine Dim start_l(0 To 2) As Double Dim end_l(0 To 2) As Double Dim p(0 To 9, 0 To 2) As Double ' paramatry kolka z tablicy l_min = tk(2) l_max = tk(3) d = tk(0) c = tk(1) tk(0) = 8 tk(1) = 1.6 tk(2) = 14 tk(3) = 80 Case 3 tk(0) = 10 tk(1) = 2 tk(2) = 18 tk(3) = 95 End Select End Sub x = TextBox2.Value y = TextBox3.Value z = TextBox4.Value Private Sub ComboBox2_Change() lb = TextBox1.Value End Sub p(0, 0) = x + c p(0, 1) = y + 0.5 * d Private Sub CommandButton1_Click() p(1, 0) = x p(1, 1) = p(0, 1) - c * Tan(15 * pi / 180) p(2, 0) = x p(2, 1) = p(1, 1) - d + 2 * c * Tan(15 * pi / 180) p(3, 0) = x + c p(3, 1) = p(2, 1) - c * Tan(15 * pi / 180) p(4, 0) = p(0, 0) p(4, 1) = p(0, 1) p(5, 0) = p(4, 0) + lb - 2 * c p(5, 1) = p(4, 1) Select Case ComboBox2.ListIndex Case 0 kolek_rzut_glowny Case 1 'kolek_rzut_boczny' Case 2 'kolek_rzut_glowny' 'kolek_rzut_boczny' Case 3 ucs Case 4 'kolek_rzut_glowny' 'kolek_rzut_boczny' 'kolek_3d' End Select p(6, 0) = p(5, 0) + c p(6, 1) = p(5, 1) - c * Tan(15 * pi / 180) UserForm1.Hide p(7, 0) = p(6, 0) p(7, 1) = p(6, 1) - d + 2 * c * Tan(15 * pi / 180) End Sub p(8, 0) = p(7, 0) - c p(8, 1) = p(7, 1) - c * Tan(15 * pi / 180) Private Sub Frame1_Click() End Sub p(9, 0) = p(3, 0) p(9, 1) = p(3, 1) Private Sub TextBox1_Change() tk(4) = TextBox1.Value End Sub For i = 0 To 8 For j = 0 To 2 start_l(j) = p(i, j) end_l(j) = p(i + 1, j) Next j Set linia = ThisDrawing.ModelSpace.AddLine(start_l, end_l) Next i Private Sub UserForm_Click() End Sub Private Sub UserForm_Initialize() Dim srednice_kolkow(3) Dim rodzaj_rzutu(4) End Sub Private Sub ComboBox1_Change() Select Case ComboBox1.ListIndex Case 0 tk(0) = 5 tk(1) = 0.8 tk(2) = 10 tk(3) = 50 Case 1 tk(0) = 6 tk(1) = 1.2 tk(2) = 12 tk(3) = 60 Case 2 srednice_kolkow(0) = 5 srednice_kolkow(1) = 6 srednice_kolkow(2) = 8 srednice_kolkow(3) = 10 ComboBox1.ColumnCount = 3 ComboBox1.List = srednice_kolkow ComboBox1.ListIndex = 0 rodzaj_rzutu(0) = "Rzut Główny" rodzaj_rzutu(1) = "Rzut Boczny" rodzaj_rzutu(2) = "Rzut Główny + Boczny" rodzaj_rzutu(3) = "Rzut 3D" rodzaj_rzutu(4) = "Rzut Główny + Boczny + 3D " ComboBox2.ColumnCount = 1 ComboBox2.List = rodzaj_rzutu ComboBox2.ListIndex = 0 TextBox1.Value = 0 TextBox2.Value = 0 TextBox3.Value = 0 TextBox4.Value = 0 wys = tk(1) atap = 15 * pi / 180 'wyciagniecie extrude' Set bryla = ThisDrawing.ModelSpace.AddExtrudedSolid(obreg(0), wys, atap) Dim isoline As String End Sub Sub ucs() Dim ucs As AcadUCS Dim srodek(0 To 2) As Double Dim PX(0 To 2) As Double Dim PY(0 To 2) As Double Dim nazwa As String Dim okrag(0) As AcadCircle Dim sr(0 To 2) As Double Dim r As Double ThisDrawing.SetVariable "IsoLines", 32 ThisDrawing.SendCommand "_VPOINT R 135 45 " wys = -tk(4) atap = 0 Set bryla = ThisDrawing.ModelSpace.AddExtrudedSolid(obreg(0), wys, atap) sr(0) = x + tk(1) + 3 * l sr(1) = y sr(2) = 0 r = tk(0) / 2 Set okrag(0) = ThisDrawing.ModelSpace.AddCircle(sr, r) srodek(0) = 0: srodek(1) = 0: srodek(2) = 0 PX(0) = 0: PX(1) = 0: PX(2) = 1 PY(0) = 0: PY(1) = 1: PY(2) = 0 nazwa = "ZY" Set ucs = ThisDrawing.UserCoordinateSystems.Add(srodek, PX, PY, nazwa) ThisDrawing.ActiveUCS = ucs obreg = ThisDrawing.ModelSpace.AddRegion(okrag) l = tk(4) x = TextBox2.Value y = TextBox3.Value sr(0) = x + tk(1) + 2 * l sr(1) = y sr(2) = 0 r = tk(0) / 2 Set okrag(0) = ThisDrawing.ModelSpace.AddCircle(sr, r) Dim plineObj As AcadPolyline Dim points(0 To 14) As Double Dim obreg As Variant 'tworzymy region' obreg = ThisDrawing.ModelSpace.AddRegion(okrag) Dim bryla As Acad3DSolid Dim wys As Double Dim atap As Double wys = -tk(1) atap = 15 * pi / 180 Set bryla = ThisDrawing.ModelSpace.AddExtrudedSolid(obreg(0), wys, atap) ' Define the 2D polyline points points(0) = 1: points(1) = 1: points(2) = 0 points(3) = 1: points(4) = 2: points(5) = 0 points(6) = 2: points(7) = 2: points(8) = 0 points(9) = 3: points(10) = 2: points(11) = 0 points(12) = 4: points(13) = 4: points(14) = 0 ' Create a light weight Polyline object in model space Set plineObj = ThisDrawing.ModelSpace.AddPolyline(points) ThisDrawing.SendCommand "_UCS W" End Sub