intTypePromotion=3

Tài liệu hướng dẫn thực tập tốt nghiệp Tin học xây dựng - Chương 3

Chia sẻ: Nguyễn Nhi | Ngày: | Loại File: PDF | Số trang:11

0
121
lượt xem
28
download

Tài liệu hướng dẫn thực tập tốt nghiệp Tin học xây dựng - Chương 3

Mô tả tài liệu
  Download Vui lòng tải xuống để xem tài liệu đầy đủ

Tài liệu này được lập ra nhằm mục đích hướng dẫn sinh viên ngành Tin học Xây dựng trong việc xây dựng các hệ đồ họa phục vụ cho đồ án tốt nghiệp. Cấu trúc của tài liệu: Các ch ức năng chính c ủa 1 h ệ đồ họa: Liệt kê các ch ức n ăng mà m ột hệ đồ họa điển hình phải có Sử dụng VDraw Component: Hướng dẫn sử dụng VDraw Component (là một hệ đồ họa phổ biến rất thích h ợp cho l ập trình các ứng dụng ph ải thể hi...

Chủ đề:
Lưu

Nội dung Text: Tài liệu hướng dẫn thực tập tốt nghiệp Tin học xây dựng - Chương 3

  1. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp CHƯƠNG III. Đồ họa III.1. Mục đích Tài liệu này được lập ra nhằm mục đích hướng dẫn sinh viên ngành Tin học Xây dựng trong việc xây dựng các hệ đồ họa phục vụ cho đồ án tốt nghiệp. Cấu trúc của tài liệu: Các ch ức n ăng chính c ủa 1 h ệ đồ h ọa: Li ệt kê các ch ức n ăng mà m ột h ệ đồ h ọa - điển hình phải có Sử dụng VDraw Component: Hướng dẫn sử dụng VDraw Component (là một hệ đồ - họa ph ổ bi ến r ất thích h ợp cho l ập trình các ứng d ụng ph ải th ể hi ện các d ữ li ệu đồ họa cũng như tương tác giữa người dùng và các dữ liệu đồ họa) III.2. Các chức năng chính của 1 hệ đồ họa Các h ệ th ống đồ h ọa được đề c ập ở đây là các h ệ th ống phục v ụ các bài toán thi ết k ế ho ặc hỗ tr ợ thi ết k ế. Đây th ực ch ất là các h ệ CAD đơn gi ản, m ột h ệ th ống CAD đơn gi ản điển hình bao gồm các chức năng chính sau Vẽ các đố i tượng cơ b ản: Điểm, đoạn th ẳng, text, đường tròn, m ặt (face), biểu t ượng. - Không gi ống như các chương trình v ẽ (draft) đơn gi ản, các đối tượng hình h ọc trong hệ CAD phải được quản lý, có thể thêm, xóa, sửa... Thay đổ i vùng nhìn (zoom, pan) để quan sát toàn bộ hoặc một phần bản vẽ - Lựa chọn các đối tượng (bằng chuột: pick hoặc window) - Đọc và lưu các đối tượng ra bản vẽ (comment: dạng DXF) - III.3. Sử dụng VDraw Component Chủ đề này nhằm mục đích hướng dẫn sinh viên s ử dụng Component rất phổ biến hỗ trợ th ể hiện, quản lý, tương tác v ới các bản vẽ dưới các định dạng quen thuộc của AutoCAD. Chú ý rằng VDraw được cung cấp dưới dạng ActiveX component nên bạn có thể sử dụng trong bất cứ môi tr ường l ập trình nào trên Windows (Visual C++ hay Visual Basic). Trong các ví d ụ cung cấp theo tài liệu này, chúng tôi chọn Visual Basic làm ví dụ. III.3.1. Cài đăt VDraw VDraw là m ột ActiveX, do đó các b ước cài đặt VDraw tuân theo các b ước đã h ướng d ẫn trong ph ần ActiveX. L ưu ý r ằng các phiên b ản VDraw có trên th ị tr ường đĩa l ậu th ường không phải là phiên bản tự cài đặt, do đó bạn phải sử dụng công cụ regsvr32 để đăng ký với cú pháp sau (chú ý đường dẫn đền file vdraw.ocx có thể khác trên máy tính của bạn) 106
  2. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp regsvr32.exe c:\vdraw\vdraw.ocx Sau khi cài đặt VDraw b ạn có th ể s ử d ụng trong VB nh ư nh ững ActiveX đã h ướng d ẫn trong phần trước (Đánh dấu vào mục Vector Draw... trong hộp thoại Components) III.3.2. Kiến trúc VDraw Kiến trúc VDraw mô ph ỏng ki ến trúc c ủa AutoCAD, m ột b ản v ẽ được qu ản lý b ởi đối tượng document (VDRAWDocument). Các đối t ượng qu ản lý b ởi document được chia thành 2 loại Đối t ượng nhìn th ấy (g ọi là th ực th ể - entity ho ặc hình v ẽ - figure): Các đối t ượng - này k ế th ừa t ừ l ớp vdFigure, bao g ồm: vdLine, vdPolyline, vdArc, vdCircle, vdEllipse, vdRectangle, vdImage, vdPoint, vd3DFace, vdPolyface, vdViewport, vdText, vdDimension, vdInsert, vdPolyhatch Đối t ượng tr ừu t ượng (không nhìn th ấy đượ c), s ử d ụng để t ổ ch ức và qu ản lý các - entity khác, bao gồm: vdLayer, vdTextstyle, vdDimstyle, vdBlock, vdLayout... Ngoài quản lý các thực thể, đối tượng document còn cung cấp các đối tượng hỗ trợ vdLayers (Layers): quản lý các layer - vdBlocks (Blocks): qu ản lý các block - vdDimStyles (DimStyles): qu ản lý các kiểu dim - vdTextStyles (TextStyles): quản lý các kiểu text - 107
  3. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp vdSelections (Selections): quản lý các nhóm chọn - Để người dùng tương tác (zoom, v ẽ các đố i tượng, tổ chức đối tượng, layer...), VDraw cung cấp đối tượng vdCommand với các phương thức sau: - Cmd???: CmdLine, CmdCircle, CmdSelect, CmdCopy, CmdDim, CmdTrim, CmdText, CmdStretch... cho phép ng ười dùng v ẽ các đố i t ượng v ới input t ừ ch ương trình hoặc bàn phím và chuột Zoom: Thay đổi khung nhìn v ới tham s ố t ừ ch ương trình ho ặc do ng ười dùng vào t ừ - bàn phím, chuột - .... III.3.3. Vẽ đối tượng Các đối t ượng được v ẽ trên VDraw th ực ch ất là thêm các th ực th ể (entity) trong danh sách entities của đối tượng document. N ếu tham s ố đầu vào c ủa hàm là điểm, b ạn có th ể đưa vào dưới dạng Mảng 3 phần tử tương ứng với 3 tọa độ (x, y, z) - Mảng 2 phần tử tương ứng với 2 tọa độ (x, y), phần tử z mặc định = 0 - Trong Visual Basic, cách đơn gi ản nh ất để đưa input d ạng điểm là s ử d ụng hàm - Array (xem ví dụ) Ví dụ về tạo đối tượng với VDraw: Tạo mới Project - Ctrl+T (m ở h ộp tho ại Components), đánh d ấu vào VDraw trong danh sách các - Component Đưa VDraw component t ừ ToolBox và form, đưa nút l ệnh có tên Command1 vào - form Click đúp vào nút lệnh để lập trình cho sự kiện Click của nút lệnh - Private Sub Command1_Click() ' VDENTITYLIST là class c ủa thư viện VDraw, là danh sách các hình v ẽ ' Trong tr ường hợp này, bi ến Ents là danh sách các hình v ẽ của document Dim Ents As VDENTITYLIST ' VDCIRCLE là class c ủa hình vẽ đường tròn trong th ư viện VDraw Dim C As VDCIRCLE, C2 As VDCIRCLE ' Khởi tạo Ents là danh sách các hình v ẽ của document hi ện tại Set Ents = VDRAW41.ActiveDocument.Entities ' Thêm vào document m ột đoạn thẳng từ điểm (0,0) đến điểm (5,5) Ents.AddLine Array(0, 0), Array(5, 5) ' Thêm vào document m ột đường tròn tâm (0,0), bán kính 10 ' Lưu nó trong biến [C] Set C = Ents.AddCircle(Array(0, 0, 0), 10) 108
  4. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp ' Thêm vào document m ột đường polyline qua 4 điểm Ents.AddPolyLine Array(Array(0, 0), Array(10, 5), _ Array(2, 10), Array(-4, 3)) ' Thêm vào document m ột đường kích thước xiên từ điểm (0,0) đến điểm (5,5) ' Đặt text của đường kích thước đó tại điểm (2,2) Ents.AddDimAligned Array(0, 0), Array(5, 5), Array(2, 2) ' Tạo thêm 1 bản sao c ủa đường tròn [C], l ưu nó trong bi ến [C2] Set C2 = C.Copy ' Thêm đường tròn này vào document Ents.AddItem C2 ' Sửa lại bán kính c ủa nó là 5 đơn vị C2.radius = 5 ' Zoom "E" VDRAW41.CommandAction.Zoom "E", "USER", "USER" End Sub III.3.4. Thay đổi vùng nhìn, điểm nhìn Để thay đổi vùng nhìn, gi ống nh ư trong AutoCAD, v ới VDraw ta c ũng sử d ụng l ệnh Zoom với cú pháp sau: object.Zoom ( Type, FirstCorner, OtherCorner ) Type: Kiểu zoom (giống với tham số zoom trong lệnh zoom của AutoCAD) - o "E" Zooms extents o "P" Zooms previous o "W" Zooms window (hai góc vùng nhìn: FirstCorner, OtherCorner) o "A" Zoom all. o "S" Zoom theo t ỷ l ệ t ương đối v ới vùng nhìn hi ện t ại, ví d ụ FirstCorner = 0.5 thì kích th ước vùng nhìn s ẽ l ớn g ấp đôi (t ức là so v ới màn hình các v ật thể s ẽ bé đi ½) FirstCorner, OtherCorner: Hai góc xác định vùng nhìn - o Dạng điểm (mảng các tọa độ) o "USER": người dùng vào tham số o Khi không cần thiết, có thể nhập vào giá trị bất kỳ (ví dụ Empty) Các ví dụ: - object.Zoom ("E", "USER", "USER") object.Zoom ("W", Array(0,0), Array(100,100)) object.Zoom ("P", "USER", "USER") object.Zoom ("W", "USER", "USER") object.Zoom ("W", Array(0,0), "USER") 109
  5. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp Cũng gi ống v ới AutoCAD, VDraw đượ c kh ởi t ạo v ới ch ế độ quan sát 2D nh ưng th ực ch ất đây là h ệ thống 3D, các b ạn có th ể v ẽ các đối t ượng 3D và quan sát chúng ở nhi ều góc độ khác nhau. Để thay đổ i góc nhìn quan sát các hình vẽ, ta sử dụng lệnh LookAt (xem ví dụ) Private Sub Command1_Click() Dim Ents As VDENTITYLIST Set Ents = VDRAW41.ActiveDocument.Entities ' Vẽ đường tròn tâm (0,0) bán kính 10 Ents.AddCircle Array(0, 0), 10 ' Vẽ hình chữ nhật tâm t ại (0,0), chi ều ngang 10, chiều cao 10 Ents.AddRect Array(0, 0), 10, 10 ' Zoom "E" VDRAW41.CommandAction.Zoom "E", Empty, Empty End Sub Private Sub Command2_Click() ' Zoom Window (v ị trí của cửa sổ xác định bởi người dùng) VDRAW41.CommandAction.Zoom End Sub Private Sub Command3_Click() ' Đặt mắt tại điểm (3, 4, 5), nhìn t ới điểm (0, 0, 0) VDRAW41.CommandAction.LookAt Array(3, 4, 5), Array(0, 0, 0) ' Zoom "E" VDRAW41.CommandAction.Zoom "E", Empty, Empty ' Zoom nhỏ hình vẽ lại còn 1/2 VDRAW41.CommandAction.Zoom "S", 0.5, Empty End Sub III.3.5. Lựa chọn đối tượng Để thao tác v ới nhi ều đối t ượng 1 l ần, s ử d ụng đối t ượng vdSelection, đối t ượng này đượ c sử d ụng v ới các l ệnh Cmd??? (CmdCopy, CmdRotate, CmdErase...). vdSelection được t ạo bằng phương thức Add của đối tượng SelectionSetList (xem ví dụ). Các phương thức của vdSelection RemoveAll: Lo ại b ỏ t ất c ả các th ực th ể kh ỏi selection, selection v ẫn t ồn t ại nh ưng - không chứa thực thể nào RemoveItem: Loại bỏ một thực thể khỏi selection - ClearAll: Xóa tất cả các đối tượng trong selection, selection vẫn tồn t ại - Free: Xóa selection (giải phóng các vùng nhớ sử dụng bởi selection) - Private Sub Command1_Click() Dim Ents As VDENTITYLIST Dim Doc As VDRAWDOCUMENT 110
  6. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp Dim Sel As VDSELECTIONSET Dim rect As VDRECT, cir As VDCIRCLE Set Doc = VDRAW41.ActiveDocument Set Ents = Doc.Entities ' Vẽ đường tròn Set cir = Ents.AddCircle(Array(0, 0), 10) ' Vẽ hình chữ nhật Set rect = Ents.AddRect(Array(0, 0), 10, 10) ' Tạo selection Set Sel = Doc.SelectionSetList.Add("quang") Sel.AddItem rect ' Thêm rect vào selection VDRAW41.CommandAction.CmdCopy Sel, Array(0, 0), Array(0, 0) ' Copy selection VDRAW41.CommandAction.CmdRotate Sel, Array(0, 0), 3.14 / 4 ' Quay hình ch ữ nhật, 45 do VDRAW41.CommandAction.Zoom "E", Empty, Empty End Sub III.3.6. Người dùng chọn đối tượng Trong ch ương trình, ngoài vi ệc v ẽ các đối t ượng, VDraw còn cho phép ng ười dùng t ương tác với các đối tượng đó. Ví dụ như khi b ạn xây dựng một chương trình vẽ sơ đồ kết cấu với VDraw. Sau đó, ng ười dùng ch ọn các thanh ho ặc nút trong s ơ đồ để nh ập các giá tr ị t ải trọng. Để th ực hi ện được ch ức n ăng này, ta dùng ph ương th ức Select c ủa đối t ượng con CommandAction trong VDraw với cú pháp sau: VDraw41.CommandAction.CmdSelect( SelectMode ) Trong đó: VDraw41: Tên đối t ượng VDraw, tên được s ử d ụng trong ví d ụ là tên m ặc định c ủa - đối tượng đối với phiên bản 4.1 CommandAction: đối t ượng thu ộc l ớp VDCOMMAND dùng để t ương tác v ới - VDraw thông qua các l ệnh t ương t ự các l ệnh th ường s ử d ụng trong AutoCAD (Zoom, Select, Copy, Move, Erase, Line, Rectangle, Circle...) SelectMode: Tham số xác định cách thức để lựa chọn đối tượng, có th ể có các giá trị - như sau: o "ALL": Chọn tất cả các đối tượng trong Document o "LAST": Đối tượng được tạo ra sau cùng o "PREV": Chọn các đối tượng được chọn ở lệnh g ần nh ất o "USER": Cho phép ng ười dùng ch ọn đối t ượng b ằng chu ột (ch ọn b ằng cách pick đối t ượng ho ặc b ằng c ửa s ổ - gi ống AutoCAD). Để xác nh ận các đối tượng được chọn (kết thúc lệnh chọn), người dùng click phải chuột. 111
  7. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp o Một SelectionSet o Một đối tượng (ví dụ: đoạn thẳng, đường tròn....) Trong trường hợp để người dùng chọn đối tượng, ta s ử dụng tham s ố SelectMode v ới giá tr ị "USER". Tuy nhiên, giải pháp này gặp phải một số vấn đề, xét ví dụ sau: Tạo m ới 1 Project, trên form m ặc định, thêm vào 1 VDraw control (tên là VDRAW41) và một nút lệnh (tên là Command1), sau đó nhập vào đoạn chương trình sau: Private Sub Form_Load() VDRAW41.ActiveDocument.Entities.AddLine Array(0, 0), Array(5, 5) VDRAW41.ActiveDocument.Entities.AddCircle Array(0, 0), 2 End Sub Private Sub Command1_Click() ' Chuyển sang ch ế độ người dùng ch ọn VDRAW41.CommandAction.CmdSelect "USER" ' Hộp thoại này sẽ hiện ra khi... MsgBox "Chon xong roi" ' ...người dùng ch ọn xong đối tượng End Sub Khi ch ạy chương trình, chúng ta th ấy VDraw control có m ột đoạn thẳng và m ột đường tròn (do Sub Form_Load vẽ ra). Click chu ột vào Command1 r ồi di chu ột đến đoạn th ẳng và click ti ếp, ta th ấy đoạn th ẳng được ch ọn nh ưng không th ấy h ộp tho ại hi ện ra. N ếu ti ếp t ục click vào đường tròn thì c ả đường tròn cũng được chọn nhưng hộp thoại cũng không hiện ra. Click ph ải chuột trong VDraw control thì b ạn mới thấy hộp thoại xuất hiện, có ngh ĩa là lệnh tiếp sau của lệnh CmdSelect chỉ được gọi khi người dùng click ph ải chuột. Điều này dễ gây hiểu lầm cho người sử dụng, do đó chúng tôi đưa ra một giải pháp khác, xét ví dụ sau: Tạo mới 1 Project, trên form m ặc định, thêm vào 1 VDraw control (tên là VDRAW41) và 2 nút lệnh (tên là Command1 và Command2), sau đó nhập vào đoạn chương trình sau: Private Sub Form_Load() VDRAW41.ActiveDocument.Entities.AddLine Array(0, 0), Array(5, 5) VDRAW41.ActiveDocument.Entities.AddCircle Array(0, 0), 2 VDRAW41.ActiveDocument.Entities.AddRect Array(2, 2), 2, 2 End Sub Private Sub Command1_Click() VDRAW41.CommandAction.CmdSelect "USER" End Sub Private Sub Command2_Click() Dim ob As VDFIGURE For Each ob In VDRAW41.ActiveDocument.Entities If ob.HighLight Then MsgBox ob.Type End If Next 112
  8. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp VDRAW41.CommandAction.Cancel End Sub Đoạn chương trình trên cũng gần giống ở ví dụ trước: Sub Form_Load: Vẽ một đoạn thẳng, một đường tròn và một hình chữ nhật - Sub Command1_Click : Chuy ển sang ch ế độ ng ười dùng ch ọn đối t ượng (nh ưng - không đợi người dùng click phải chuột) Sub Command2_Click : S ử d ụng c ấu trúc For Each...Next để duy ệt qua t ất c ả các - đối t ượng c ủa VDraw, tìm xem đối t ượng nào đang b ị đánh d ấu (thu ộc tính HighLight) thì hi ển th ị ki ểu ( Type) c ủa nó ra b ằng MsgBox. Sau khi duy ệt xong thì bỏ chế độ chọn bằng phương thức Cancel của CommandAction. Bây giờ b ạn có th ể chạy thử nghiêm chương trình. Click nút Command1 để chọn đối tượng. Sau khi ch ọn xong đối t ượng c ần thi ết, b ạn Click nút Command2 để xem đối t ượng nào đang được chọn. Tóm l ại, vi ệc l ựa ch ọn đối t ượng theo ph ương pháp th ứ nh ất ho ặc th ứ 2 tùy thu ộc vào yêu cầu c ủa ứng d ụng. Yêu c ầu đặt ra là ph ải l ựa ch ọn được ph ương pháp thích h ợp sao cho người dùng không cảm thấy khó chịu khi sử dụng. III.3.7. Đọc và lưu bản vẽ VDraw cho phép đọc và l ưu b ản v ẽ b ằng định d ạng DWG (phiên b ản hi ện t ại 4.0 h ỗ tr ợ DWG 2000). Để đọc và l ưu b ản v ẽ ta s ử d ụng hai ph ương th ức Open và Save c ủa VDraw control. retval = object.Open (FileName, WindowHandleToPlaceCaption, DwgFileChecking) FileName: Tên file, nếu là xâu rỗng thì hiện hộp thoại mở file - WindowHandleToPlaceCaption: Handle c ủa c ửa s ổ c ần thay tiêu đề b ằng tên file - được mở DwgFileChecking: Cách xử lý trong trường hợp file mở bị lỗi (0: Có gắng mở, 1: Bỏ - qua) retval = object.Save Mô tả: Lưu file vào ổ đĩa. - retval: TRUE nếu thành công, FALSE nếu không - retval = object.SaveAs(FullFileName, CADVersion) FullFilename: Đường dẫn (đầ y đủ) đến file - CADVersion: số hiệu phiên bản - retval: TRUE nếu thành công, FALSE nếu không - Giá trị Tên hằng Giải thích 0 VdCadVer25 DWG/DXF Release 2.5 113
  9. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp 1 VdCadVer26 DWG/DXF Release 2.6 2 VdCadVer9 DWG/DXF Release 9 3 VdCadVer10 DWG/DXF Release 10 4 VdCadVer11 DWG/DXF Release 11 5 VdCadVer13 DWG/DXF Release 13 6 VdCadVer14 DWG/DXF Release 14 7 VdCadVer2000 DWG/DXF Release 2000/2002 100 VdCaddefault DWG/DXF Release 2000/2002 (default) III.3.8. Một số mẹo vặt với VDraw Khi phải tạo ra các b ản vẽ với VDraw, bạn có nên dùng các lệnh của Vdraw để tạo từ - đầu các layer, đặt màu s ắc cho chúng, t ạo các textstyle, dimstyle...? Câu tr ả l ời là không nên làm nh ư v ậy! Để thu ận ti ện h ơn, b ạn ch ỉ c ần s ử d ụng AutoCAD để tạo sẵn nh ững b ản v ẽ đã có các tính ch ất trên (c ấu trúc layer, màu s ắc, ki ểu ch ữ, ki ểu dim). Đồng th ời b ản v ẽ của b ạn c ũng có th ể có s ẵn m ột số block s ẽ s ử d ụng (các ký hiệu ho ặc khung tên...). Sau đó, ch ỉ c ần dùng l ệnh Open đã trình bày ở trên để m ở bản vẽ, bạn đã có sẵn một môi trường hoàn chỉnh để làm việc. Chú ý rằng, để VDraw có thể sử dụng bản vẽ sẵn của bạn, phải lưu bản vẽ về định dạng AutoCAD 2000. 114
  10. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp - CHƯƠNG IV. Trợ giúp và đóng gói IV.1. Lập trợ giúp với RoboHelp IV.2. Đóng gói với InstallSheld IV.3. Tạo film demo với WinCam 115
  11. Bộ môn Tin h ọc Xây dựng – ĐHXD Tài li ệu hướng dẫn thực tập tốt nghiệp Tài liệu tham khảo [1]. Hướng dẫn học Visual Basic 6.0 (www.vovisoft.com) [2]. Learning VB6 24h [3]. Phân tích thi ết k ế h ướng đối t ượng b ằng UML – Đặng V ăn Đức – Nhà xu ất b ản Giáo dục [4]. Object-oriented Analysis and Design using the UML, Rational, Software engineering 116

CÓ THỂ BẠN MUỐN DOWNLOAD

 

Đồng bộ tài khoản