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 ppsx

11 768 6
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 ppsx

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 106 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) 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 107 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 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 108 - 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) 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 109 ' 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") 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 110 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 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 111 Dim Sel As VDSELECTIONSET Dim rect As VDRECT, cir As VDCIRCLE Set Doc = VDRAW41.ActiveDocument Set Ents = Doc.Entities Set cir = Ents.AddCircle(Array(0, 0), 10) ' Vẽ đường tròn Set rect = Ents.AddRect(Array(0, 0), 10, 10) ' Vẽ hình chữ nhật Set Sel = Doc.SelectionSetList.Add("quang") ' Tạo selection 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. 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 112 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() VDRAW41.CommandAction.CmdSelect "USER" ' Chuyển sang chế độ người dùng chọn MsgBox "Chon xong roi" ' Hộp thoại này sẽ hiện ra khi ' 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 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 113 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 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 114 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 (default) VdCaddefault DWG/DXF Release 2000/2002 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. 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 115 - 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 [...]...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 . 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. InstallSheld IV .3. Tạo film demo với WinCam 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 116 Tài liệu tham khảo [1]. Hướng dẫn học Visual. 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 106 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

Ngày đăng: 22/07/2014, 08:21

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan