G G I I Á Á O O T T R R Ì Ì N N H H T T Ự Ự Đ Đ Ộ Ộ N N G G H H O O Á Á T T H H I I Ế Ế T T K K Ế Ế C C Ầ Ầ U U Đ Đ Ư Ư Ờ Ờ N N G G 8 Hình I-7: Wizard trợ giúp nhập dữ liệu cho kết cấu cầu đúc hẫng của MIDAS/Civil Công cụ lập trình để tạo ra các tính năng mới cho phần mềm hiện có rất nhiều và khá dễ dùng. Hầu hết chúng tập trung hỗ trợ cho AutoCAD và Office, bởi hai phần mềm này được dùng rất phổ biến trong công tác thiết kế. Với AutoCAD ta có thể sử dụng những công cụ sau: Các công cụ lập trình nhúng sẵn bên trong AutoCAD: AutoLISP: là một ngôn ngữ lập trình dạng thông dịch, cho phép người dùng tận dụng tối đa những lệnh sẵn có của AutoCAD để tổ hợp lại nhằm tạo ra những tính năng mới có mức độ tự động hóa cao. . M M Ở Ở Đ Đ Ầ Ầ U U 9 Hình I-8: Visual LISP: công cụ hỗ trợ cho lập trình với AutoLISP trong AutoCAD VBA: là một công cụ lập trình dựa trên Visual Basic, nó cho phép người dùng kết hợp tính dễ dùng và hiệu quả của môi trường lập trình Visual Basic với các tính năng và hệ thống đối tượng sẵn có trong AutoCAD. Hiện nay đây là công cụ được dùng rất phổ biến để xây dựng thêm những tính năng mới, với quy mô không lớn và không quá phức tạp trên AutoCAD. Trong lĩnh vực thiết kế côngtrìnhgiao thông, công việc chiếm khối lượng lớn nhấ t và mất nhiều công nhất là tạo bản vẽ kỹ thuật. Mặc dù hầu hết người thiết kế đều dùng AutoCAD để tạo bản vẽ kỹ thuật nhưng mức độ tự động hóa vẫn rất thấp, chủ yếu sử dụng các lệnh đơn của AutoCAD (thông qua dòng lệnh hay nút bấm trong AutoCAD) cùng với các thông số hình học tính toán được (có thể bằng các phần mềm khác, ví dụ phần m ềm tính kết cấu) để xây dựng bản vẽ. Vấn đề này hoàn toàn có thể tự động hóa được khi người dùng biết kết hợp quy tắc vẽ đối tượng thiết kế với số liệu hình học tính được trong một chương trình VBA do chính họ tạo ra. G G I I Á Á O O T T R R Ì Ì N N H H T T Ự Ự Đ Đ Ộ Ộ N N G G H H O O Á Á T T H H I I Ế Ế T T K K Ế Ế C C Ầ Ầ U U Đ Đ Ư Ư Ờ Ờ N N G G 10 Hình I-9: Môi trường lập trình VBA trong AutoCAD Công cụ lập trình bên ngoài: bao gồm bất cứ ngôn ngữ lập trình nào mà có hỗ trợ công nghệ COM (Component Object Model) của Microsoft như: VB, VC++, Delphi Công cụ lập trình ObjectARX (AutoCAD Runtime Extension): là một cách mở rộng AutoCAD hiệu quả nhất và phức tạp nhất. Các phần mở rộng AutoCAD được xây dựng trên VC++ với việc sử dụng các thư viện lập trình mở rộng của AutoCAD (chính là ObjectARX). Bởi việc cho phép điều khiển trực tiếp nhân và cấu trúc dữ liệu của chương trình AutoCAD, cho nên những chương trình được viết với ObjectARX sẽ có tính linh hoạt rất cao, tốc độ chạy nhanh và nhỏ gọn hơn so với chương trình cùng loại viết bằng công cụ lập trình khác, nhưng mức độ phức tạp của việc lập trình sẽ tăng lên. Hầu hết các ứng dụng lớn chạy trên nền AutoCAD đều được xây dựng dựa trên ObjectARX: Land Desktop, Civil 3D, Nova-TDN . M M Ở Ở Đ Đ Ầ Ầ U U 11 Hình I-10: Mở rộng khả năng cho AutoCAD dùng ObjectARX 5. Kết chương Như vậy, trong chương này, toàn cảnh về việc ứng dụng công nghệ thông tin để tự động hóa công tác thiết kế côngtrìnhgiaothông đã được đề cập đến. Vấn đề cốt lõi để tự động hóa thiết kế bao gồm: Ø Ø Quá trình thiết kế côngtrìnhgiaothôngvà sản phẩm của từng công đoạn. Ø Ø Khả năng của phần cứng máy tính và các hệ thống phần m ềm, bao gồm cả các phần mềm chuyên dụng. Ø Ø Sự đa dạng của các bài toán thiết kế cũng như những hạn chế trong các phần mềm chuyên dụng. Ø Ø Những đặc điểm của phần mềm và các công cụ phát triển, để từ đó có được định hướng trong việc giải quyết các vấn đề phát sinh, vốn thường gặp suốt quá trình thi ết kế. Trong khuôn khổ giáotrình của một môn học, nhiều mảng kiến thức sẽ được kế thừa từ những môn học khác là điều đương nhiên, và do đó, chỉ có những nội dung mới, chưa được đề cập đến trong những môn học khác, mới BỘ TÀI NGUYÊN VÀ MÔI TRƢỜNG TRƯỜNG ĐẠI HỌC TÀI NGUN VÀ MƠI TRƯỜNG HÀ NỘI GIÁOTRÌNH TRẮC ĐỊA CƠNGTRÌNHGIAOTHƠNGVÀTHỦY LỢI Nguyễn Duy Đơ - Nguyễn Văn Quang HÀ NỘI, 2013 LỜI NÓI ĐẦU “Trắc địa cơng trình” mơn học mang tính chất chun mơn chủ yếu chương trình đào tạo kỹ sư trắc địa Để học môn học này, sinh viên học xong môn học: Trắc địa sở, học phần Trắc địa Ảnh Trắc địa cao cấp “Trắc địa cơngtrìnhGiaothơngThủy lợi - Thủy điện” học phần “Trắc địa cơng trình” Giáotrình “Trắc địa cơngtrìnhGiaothôngThủy lợi - Thủy điện” biên soạn theo đề cương chi tiết học phần hội đồng giáotrình trường đại học Tài ngun Mơi trường Hà Nội xét duyệt Giáotrình phục vụ việc dạy học cho giảng viên, sinh viên hệ cao đẳng, đại học trường đại học thuộc Bộ Tài ngun Mơi trường Giáotrình gồm chương giới thiệu nhiệm vụ công tác Trắc địa khảo sát, thiết kế, bố trí theo dõi thi công, theo dõi chuyển dịch biến dạng cơng trình: Đường tơ, cầu vượt chướng ngại vật, thủy lợi - thủy điện Những người tham gia biên soạn giáo trình: Tiến sĩ Nguyễn Duy Đơ biên soạn chương 1,2 chương 3; Thạc sĩ Nguyễn Văn Quang biên soạn chương chương Khi biên soạn giáotrình chúng tơi cố gắng trình bày vấn đề ngắn gọn, mạch lạc để người đọc dễ hiểu Giáotrình hội đồng giáotrình trường đại học Tài nguyên Môi trường Hà Nội nghiệm thu công nhận Do khả tác giả có hạn, giáotrình tồn số lỗi, kính mong nhận góp ý phê bình người sử dụng, để lần tái sau tốt Xin chân thành cảm ơn Nhóm biên soạn MỤC LỤC Chƣơng 1: CƠNG TÁC TRẮC ĐỊA TRONG KHẢO SÁT VÀ XÂY DỰNG TUYẾN ĐƢỜNG GIAOTHÔNG 1.1 Khái niệm tuyến đƣờng định tuyến đƣờng giaothông 1.1.1 Khái niệm 1.1.2 Các yếu tố tuyến đƣờng giaothông 1.1.3 Các thông số việc định tuyến đƣờng giaothông 1.1.4 Đặc điểm định tuyến đƣờng đồng miền núi 1.2 Khảo sát đƣờng giaothông 13 1.2.1 Phân loại tuyến đƣờng 13 1.2.2 Quy định kỹ thuật thiết kế tuyến đƣờng 17 1.2.3 Quy trìnhcơng nghệ việc khảo sát tuyến đƣờng 18 1.3 Phƣơng pháp định tuyến đƣờng 21 1.3.1 Định tuyến đƣờng phòng .21 1.3.2 Định tuyến thực địa 24 1.4 Đƣờng cong tròn ngang .29 1.4.1 Khái niệm 29 1.4.2 Bố trí đƣờng cong tròn ngang 31 1.5 Đƣờng cong chuyển tiếp 42 1.5.1 Ý nghĩa phƣơng trình đƣờng cong chuyển tiếp 42 1.5.2 Tính bố trí đƣờng cong tổng hợp 46 1.6 Đƣờng cong hình rắn 54 1.6.1 Các yếu tố đƣờng cong hình rắn 54 1.6.2 Bố trí đƣờng cong hình rắn 55 1.7 Đo độ cao vẽ mặt cắt dọc, mặt cắt ngang 61 1.7.1 Đo độ cao vẽ mặt cắt dọc .61 1.7.2 Đo vẽ mặt cắt ngang 66 1.8 Bố trí chi tiết đƣờng 69 1.8.1 Khái niệm mặt cắt ngang thi công 69 1.8.2 Bố trí mặt cắt ngang chỗ đắp đất 70 1.8.3 Bố trí mặt cắt ngang chỗ đào đất 73 Chƣơng:CÔNG TÁC TRẮC ĐỊA TRONG KHẢO SÁT VÀ THI CÔNG CẦU 84 2.1 Khái niệm cơngtrình cầu 84 2.1.1 Những yếu tố cầu 84 2.1.2 Phân loại cầu 87 2.1.3 Các tiêu chuẩn kỹ thuật lựa chọn địa điểm xây dựng cầu 88 2.2 Đo vẽ địa hình khu vực xây dựng cầu 89 2.2.1 Bản đồ địa vật 89 2.2.2 Bản đồ chi tiết tỷ lệ lớn 90 2.3 Lƣới khống chế trắc địa xây dựng cầu 91 2.3.1 Thiết kế lƣới 91 2.3.2 Thi công lƣới 93 2.4 Bố trí tâm trụ mố cầu 94 2.4.1 Bố trí tuyến đƣờng qua cầu 94 2.4.2 Các phƣơng pháp bố trí tâm trụ mố cầu 94 2.5 Bố trí chi tiết trụ mố cầu 98 2.5.1 Khái niệm móng trụ cầu 98 2.5.2 Bố trí trụ cầu cạn đảo 99 2.5.3 Bố trí móng trụ cầu bè (khung vây cọc ống) 99 2.6 Công tác trắc địa xây dựng thân trụ 100 2.6.1 Xác định độ sâu hạ giếng 101 2.6.2 Xác định độ xê dịch mặt độ nghiêng 102 2.6.3 Kiểm tra ván khn móng trụ cầu 103 2.6.4 Đo vẽ trạng trụ cầu 104 2.7 Kiểm tra kết cấu nhịp cầu, quan trắc lún biến dạng cầu 105 2.7.1 Kiểm tra kết cấu nhịp cầu 105 2.7.2 Quan trắc lún biến dạng cầu 107 Chƣơng3:CÔNG TÁC TRẮC ĐỊA TRONG KHẢO SÁT THIẾT KẾ CƠNGTRÌNHTHUỶ LỢI - THUỶ ĐIỆN 110 3.1 Khái niệm cơngtrìnhthuỷ lợi - thuỷ điện 110 3.2 Đo vẽ địa hình lòng sơng 112 3.2.1 Lƣới khống chế tỷ lệ đo vẽ 112 3.2.2 Cơng tác đo sâu xác định vị trí điểm đo sâu .113 3.3 Thành lập mặt cắt dọc mặt cắt ngang sông 113 3.3.1 Thành lập mặt cắt dọc sông 113 3.3.2 Thành lập mặt cắt ngang sông 120 3.4 Cơng tác trắc địa địa hình khu vực hồ chứa nƣớc 120 3.4.1 Công tác trắc địa giai đoạn thiết kế hồ chứa nƣớc 120 3.4.2 Xác định biên giới hồ chứa nƣớc thực địa 124 3.5 Khảo sát xây dựng tuyến kênh mƣơng .126 3.5.1 Các tài liệu địa hình cần thiết cho thiết kế .126 3.5.2 Lƣới khống chế trắc địa cho tuyến kênh mƣơng .127 3.5.3 Bố trí tuyến kênh mƣơng .129 Chƣơng CÔNG TÁC TRẮC ĐỊA TRONG XÂY DỰNG CƠNGTRÌNH ĐẦU ... 38 CHÚ Ý Các khai báo dữ liệu với các từ khoá trên được thực hiện trong phần General của một mô-đun. Các dữ liệu đó còn được gọi là dữ liệu cấp mô-đun (module level). Trong mỗi mô-đun, phần đầu tiên (của phần viết mã lệnh) được gọi là phần General của mô-đun đó. Theo quy ước, các thiết lập cho mô-đun được đặt ở đây và VBA IDE sẽ tự động phân cách phần này. Không có giới hạn về kích thước cho phần này. Hình III-15: Phần General trong mô-đun 6.1. Khai báo hằng số Hằng số là một loại biến đặc biệt mà giá trị của nó được xác định ngay lúc khai báo và luôn không thay đổi. Ta nên dùng cách này cho những hằng số hay phải dùng lặp lại trong chương trình, ví dụ như hằng số π = 3.14159. Sau khi khai báo hằng số này: Const Pi=3.14159 ta luôn có thể sử dụng giá trị 3.14159 bất cứ chỗ nào trong chương trình với cái tên dễ nhớ hơn là Pi. Cú pháp: [Public/ Private] Const <tên_hằng>=<giá_trị_hằng_số> Các từ khoá Public hay Private xác định phạm vi hiệu lực của hằng số, với từ khoá Public, hằng số này có thể sử dụng ở bất cứ đâu trong ứng dụng, còn với từ khoá Private thì hằng số này chỉ có thể sử dụng bên trong mô-đun nơi khai báo hằng số đó. Ý nghĩa của hai từ khóa này cũng không thay đổi cho tất cả các phần khác mà có sử dụng chúng. 6.2. Khai báo biến Cú pháp: Dim <tên_biến> as <Kiểu_dữ_liệu> Khi dùng từ khóa Public hay Private nhằm xác định phạm vi hiệu lực của biến thay cho từ khóa Dim trong khai báo biến thì cú pháp như sau: Public <tên_biến> as <Kiểu_dữ_liệu> Hay: C C H H Ư Ư Ơ Ơ N N G G I I I I I I : : C C Ơ Ơ B B Ả Ả N N V V Ề Ề N N G G Ô Ô N N N N G G Ữ Ữ L L Ậ Ậ P P T T R R Ì Ì N N H H V V I I S S U U A A L L B B A A S S I I C C 39 Private <tên_biến> as <Kiểu_dữ_liệu> 6.3. Khai báo kiểu tự định nghĩa Trong VB có thể khai báo các kiểu dữ liệu theo nhu cầu của người sử dụng. Cú pháp khai báo như sau: Type <Tên_ kiểu> <tên_trường_1> as <Kiểu_dữ_liệu> <tên_trường_2> as <Kiểu_dữ_liệu> … <tên_trường_n> as <Kiểu_dữ_liệu> End Type Sau khi khai báo kiểu tự định nghĩa, người dùng có thể sử dụng các biến có kiểu tự định nghĩa bằng cách khai báo như các biến thông thường, với <Kiểu_dữ_liệu> được thay bằng <Tên_kiểu>. Để truy cập tới một trường của biến kiểu bản ghi, dùng toán tử (.) hoặc dùng cặp từ khóa With… End With. CHÚ Ý Các từ khoá Public hay Private nhằm xác định phạm vi hoạt động của kiểu dữ liệu được khai báo. Đồng thời khai báo kiểu chỉ được thực hiện ở cấp mô-đun (không thực hiện được trong các chương trình con). Khi không chỉ rõ thì phạm vi hoạt động thì mặc định của một kiểu dữ liệu tự định nghĩa là Public. 6.4. Khai báo mảng tĩnh Cú pháp: [Public/Private/Dim] <tên_mảng> (<thông_số_về_chiều>) as <tên_kiểu> Các thông số về chiều có thể biểu diễn qua các ví dụ sau: Dim a(3 To 5) As Integer ‘ Mảng 1 chiều với các chỉ số từ 3 đến 5 Dim A(3) As Long ‘ Mảng 1 chiều với chỉ số đến 3 (mảng 1 chiều có 4 phần tử với chỉ số từ 0 đến 3) Dim A(2 To 4, 6) As Double ‘ Mảng 2 chiều với một miền chỉ số từ 2 tới 4 và một miền có chỉ số từ 0 đến 6. GỢI Ý Các từ khoá Public hay Private xác định phạm vi hoạt động của biến mảng (trong trường hợp mảng được khai báo mức mô-đun). Các qui định về phạm vi hoạt động của mảng tương tự với biến thông thường - đã được trình bày ở phần trước. 6.5. Khai báo mảng động Cú pháp: 40 [Public/ Private/ Dim] <tên_mảng> () as <tên_kiểu> Trong khai báo trên không chứa các thông số về chiều và đó thuần túy chỉ là một khai báo. Các phần tử của mảng chưa được tạo ra (hay nói cách khác mảng vẫn chưa thực sự được cấp phát bộ nhớ) và vẫn chưa sẵn sàng để sử dụng. Trước khi sử dụng mảng động hoặc khi muốn thay đổi kích thước của mảng, sử dụng lệnh Redim. Cú pháp như sau: Redim <tên_mảng> (<các thông số về chiều>) as <tên kiểu> Chú ý rằng C C H H Ư Ư Ơ Ơ N N G G I I : : K K H H Á Á I I N N I I Ệ Ệ M M 13 Hình I-1: Lập bảng tính kết cấu mặt đường trên Excel Hình I-2: Tạo bản vẽ bình đồ tuyến đường ô tô trên AutoCAD Để có thể kết nối với nhau, các phần mềm chuyên dụng thường cung cấp kết quả tính toán dưới dạng dữ liệu có cấu trúc và được lưu trữ trong các tệp có định dạng TEXT, ví dụ như CSV hay DXF. Với các dữ liệu có cấu trúc này, người dùng sẽ tự thực hiện việc kết nối các phần mềm lại với nhau. Việc kết nối này cũng chỉ có thể giải quyết thêm m ột số bài toán phát sinh, cho nên một số phần mềm đã cho phép người dùng có thể can thiệp sâu hơn nữa vào bên trong nó bằng các công cụ lập trình, để họ có thể tự giải quyết các bài toán phát sinh mà người thiết kế phần mềm không thể dự kiến trước được. Khi người dùng xây dựng những chương trình của họ dựa trên những ứng dụng được thiết kế theo cấu trúc mở này, họ sẽ tậ n dụng những khả năng 14 sẵn có của chúng để làm nền, giúp cho việc lập trình được nhanh và hiệu quả hơn rất nhiều so với cách lập trìnhthông thường, và do đó, có thể gọi chúng là các ứng dụng nền, điển hình và được sử dụng nhiều nhất làm ứng dụng nền trong lĩnh vực thiết kế là AutoCAD và Excel, ngoài việc phù hợp với định dạng tài liệu trong hồ sơ thiết kế (bản vẽ và bảng tính) chúng còn cho phép ng ười dùng xây dựng các chương trình chạy cùng với mục đích bổ sung thêm các chức năng chuyên biệt. Như vậy, một phần mềm được gọi là ứng dụng nền khi nó thỏa mãn đồng thời các tiêu chí sau: Ø Ø Cho phép một chương trình chạy bên trong và cùng với nó (tương tự như một lệnh). Ø Ø Cho phép sử dụng các tính năng của nó thông qua công cụ lập trình thích hợp. Hình I-3: Mô hình lập trình trên ứng dụng nền Một lệnh mới hay một chức năng mới được xây dựng trên ứng dụng nền thực chất là một chương trình hoàn chỉnh, vì vậy, để xây dựng nó cần có công cụ lập trình tương ứng. Thông thường công cụ lập trình được hiểu như là một tập hợp bao gồm: Ø Ø Ngôn ngữ lập trình. Ø Ø Môi trường lập trình. Ø Ø Thư việ n hỗ trợ lập trình. Một ví dụ về công cụ lập trình trên AutoCAD, đó là AutoLISP. Với công cụ lập trình này, không nhất thiết phải có môi trường lập trìnhvà thư viện hỗ trợ lập trình, ta chỉ cần tạo ra một tệp dạng TEXT chứa các mã lệnh viết bằng ngôn ngữ AutoLISP. Tuy nhiên từ phiên bản AutoCAD R14, để thuận tiện cho người lập trình, một môi trường lập trình dành cho AutoLISP đã được bổ sung, đó là Visual LISP. Với môi tr ường lập trình này, việc lập và kiểm soát chương trình trở nên thuận lợi hơn rất nhiều, bởi Visual LISP đã được tích hợp nhiều tính năng hỗ trợ lập trình chuyên nghiệp, trong khi đó, nếu ta không sử dụng môi trường lập trình, thì tuy ta có thể viết được một chương trình AutoLISP hoàn chỉnh, song trong suốt quá trình xây dựng chương trình này ta luôn phải vất vả để tự kiểm soát chương trình. C C H H Ư Ư Ơ Ơ N N G G I I : : K K H H Á Á I I N N I I Ệ Ệ M M 15 Hình I-4: Xây dựng chương trình bằng ngôn ngữ AutoLISP khi không sử dụng môi trường lập trình, ta sẽ luôn phải tự kiểm soát cú pháp và các lệnh mà không có bất cứ hỗ trợ nào vì thế khả năng nhầm lẫn là rất lớn. Hình I-5: Lập trình bằng ngôn ngữ AutoLISP trên môi trường lập trình Visual LISP, ta luôn nhận được sự hỗ trợ tự động bằng màu sắc hay các tính năng khác trong môi trường lập trình. Thư viện hỗ trợ lập trình có thể rất đa dạng và thường là những phần bổ sung giúp cho việc xây dựng chương trình được nhanh hơn thông qua sự kế thừa những thứ đã được làm từ trước. Khi lập trình bằng AutoLISP thì thư viện hỗ trợ lập trình là tập hợp các chương trình hoàn chỉnh cũng viết bằng AutoLISP. Để sử dụng thư viện hỗ trợ lậ p trình thì mỗi công cụ lập trình có một quy định về cách thức sử dụng riêng, ví dụ với AutoLISP, để sử dụng một chương trình con trong thư viện, ta chỉ cần tải chương trình AutoLISP chứa chương trình con đó thông qua một câu lệnh từ chương trình chính. 16 Tương ứng C C H H Ư Ư Ơ Ơ N N G G I I I I I I : : C C Ơ Ơ B B Ả Ả N N V V Ề Ề N N G G Ô Ô N N N N G G Ữ Ữ L L Ậ Ậ P P T T R R Ì Ì N N H H V V I I S S U U A A L L B B A A S S I I C C 43 GỢI Ý Cửa sổ Immediate là một bộ phận trong VBA IDE, bật / tắt cửa sổ này được thực hiện trong menu View của VBA IDE. Khi sử dụng lệnh Debug.Print <tên_biến> thì giá trị của biến sẽ được thể hiện trong cửa sổ Immediate khi chương trình hoạt động và được lưu lại ngay cả khi chương trình kết thúc. Cửa sổ này thường được dùng với mục đích gỡ rối khi lập trình. Khi nội dung trong cửa sổ này nhiều quá thì ta có thể xóa bớt bằng cách chọn vùng cần xóa và bấm phím Delete. 7.4. Các hàm xử lý chuỗi Các hàm loại này được chứa trong thư viện Strings (có thể tra cứu thư viện này bằng Object Browser). Sau đây là một số hàm thông dụng: Hàm Mô tả Asc(x) Trả về mã ASCII của ký tự đầu trong một chuỗi Chr(x) Chuyển đổi từ mã ASCII sang một ký tự Left(String, Length as Long) Trích dữ liệu bên trái của một chuỗi Mid(String, Start As Long, [Length]) Trích dữ liệu phần giữa của một chuỗi Right(String, Length As Long) Trích dữ liệu phần bên phải của một chuỗi Split(String) Tách một chuỗi dài thành một mảng gồm nhiều chuỗi nhỏ hơn Joint(StringArray) Gộp một mảng các chuỗi thành một chuỗi duy nhất Len(String) Trả về độ dài của chuỗi (số lượng ký tự trong chuỗi bao gồm cả ký tự trống) Ucase(String) Hàm thực hiện đổi tất cả các ký tự trong chuỗi thành chữ HOA. InStr([start, ]string1, string2[, compare]) Trả về vị trí bắt đầu của chuỗi String2 trong chuỗi String1. Ví dụ: Public Sub Test() Dim StrArDes() As String ' Mảng các chuỗi được khai báo dạng mảng động Dim StrScr As String 'Chuỗi ban đầu StrScr = "Point1_23.5_4.5_44.8" StrArDes = Split(StrScr, "_") ' Tách chuỗi StrScr thành một mảng các chuỗi và đưa vào StrArDes, ' kí tự ngăn cách là "_" ' Khi đó StrArDes(0)="Point1”, StrArDes(1)="23.5" ' StrArDes(2)="4.5", StrArDes(3)="44.8" Debug.Print StrArDes(0), StrArDes(1), StrArDes(2), StrArDes(3) End Sub Kết quả sẽ như sau: 44 Lưu ý là dấu “_” trong ví dụ trên có thể thay thế bằng bất cứ ký tự nào. CHÚ Ý Trong tất cả các ngôn ngữ lập trình, khái niệm chuỗi số và số là khác nhau. Ví dụ khi gán A=”123” thì giá trị của A là một chuỗi ký tự gồm “1”, “2” và “3”. Còn khi gán B=123 thì giá trị của B là một trăm hai mươi ba. Để tạo ra một chuỗi có chứa dấu nháy kép (“) bên trong nó thì cần sử dụng thêm hai dấu nháy kép nữa. Ví dụ, trong biểu thức sau: s = “ABC” “123” thì giá trị của biến s là: ABC”123 8. Các cấu trúc điều khiển 8.1. Cấu trúc điều kiện Các từ khóa: If, Then, Else, ElseIf, End If Cú pháp: If <biểu_thức_điều_kiện> then Khối_lệnh End If Diễn giải tiến trình của cấu trúc điều kiện như sau: nếu <biểu_thức_điều_kiện> là đúng thì chương trình sẽ thực hiện <khối_lệnh>, nếu sai thì chương trình sẽ thoát khỏi cấu trúc lệnh này. Sơ đồ khối của cấu trúc lệnh kiểu này có thể được biểu diễn như sau: Dim A As Double Dim B As Double A = 20: B = 10 If A > B Then Debug.Print ("Hieu cua hai so A va B >0") Kết quả như sau: C C H H Ư Ư Ơ Ơ N N G G I I I I I I : : C C Ơ Ơ B B Ả Ả N N V V Ề Ề N N G G Ô Ô N N N N G G Ữ Ữ L L Ậ Ậ P P T T R R Ì Ì N N H H V V I I S S U U A A L L B B A A S S I I C C 45 GỢI Ý Nếu như [khối_lệnh] có thể viết trên một dòng như ví dụ trên thì không dùng từ khóa End If. Để phân tách nhiều lệnh trên cùng một dòng, sử dụng dấu hai chấm (:) để ngăn cách giữa các lệnh. Ngoài cấu trúc cơ bản và trường hợp riêng ở trên, trong nhiều trường hợp, ta buộc phải xử lý khi <Biểu_thức_điều_kiện> trả về giá trị False (sai). Để giải quyết tình huống này ta sử dụng cấu trúc điều kiện mở rộng như sau: If <biểu_thức_điều_kiện> Khối_lệnh_1 Else Khối_lệnh_2 End Bộ tài nguyên môi trờng Trờng đại học tài nguyên môi trờng hà nội =============== Giáotrình Trắc địa côngtrìnhgiaothôngthủy lợi LI NểI U Trc a cụng trỡnh l mt nhng mụn hc mang tớnh cht chuyờn mụn ch yu chng trỡnh o to k s trc a hc c mụn hc ny, sinh viờn ó hc xong cỏc mụn hc: Trc a c s, cỏc hc phn c bn ca Trc a nh v Trc a cao cp Trc a cụng trỡnh Giao thụng v Thy li Thy in l mt Hà Nội, 2015 cỏc hc phn c bn ca Trc a năm cụng trỡnh Giỏo trỡnh Trc a cụng trỡnh Giao thụng v Thy li Thy in c biờn son theo cng chi tit hc phn c hi ng giỏo trỡnh ca trng i hc Ti nguyờn v Mụi trng H Ni xột duyt Giỏo trỡnh ny phc v vic dy v hc cho ging viờn, sinh viờn h cao ng, i hc ca cỏc trng i hc thuc B Ti nguyờn v Mụi trng Giỏo trỡnh gm chng gii thiu nhim v ca cụng tỏc Trc a kho sỏt, thit k, b trớ v theo dừi thi cụng, theo dừi chuyn dch v bin dng cỏc cụng trỡnh: ng ụ tụ, cu vt chng ngi vt, thy li - thy in Nhng ngi tham gia biờn son giỏo trỡnh: Tin s Nguyn Duy ụ biờn son chng v chng 2; Thc s Nguyn Vn Quang biờn son chng v chng Khi biờn son giỏo trỡnh ny chỳng tụi c gng trỡnh by cỏc ngn gn, mch lc ngi c d hiu Giỏo trỡnh ny ó c hi ng giỏo trỡnh trng i hc Ti nguyờn v Mụi trng H Ni nghim thu v cụng nhn Do kh nng ca cỏc tỏc gi cú hn, cho nờn giỏo trỡnh s tn ti mt s li, kớnh mong nhn c gúp ý phờ bỡnh ca ngi s dng, ln tỏi bn sau c tt hn Xin chõn thnh cm n Nhúm biờn son MC LC Chng CễNG TC TRC A TRONG KHO ST V XY DNG TUYN NG GIAO THễNG 1.1 Khỏi nim v tuyn ng v nh tuyn ng giao thụng 1.1.1 Khỏi nim Tuyn ng giao thụng l ng ni gia cỏc im tim ng vi nhau, dựng cho ngi i li v chuyn Tim ng l cỏc im nm gia nn, cỏch u hai mộp nn ng Do iu kin t nhiờn, tuyn ng khụng th ch l mt hay nhiu on thng; m gm nhiu on thng, on chuyn hng v cỏc ng cong hp li vi theo mt quy tc nht nh Nhỡn chung, tuyn ng l mt ng cong khụng gian bt k v rt phc Trong mt phng, nú bao gm cỏc on thng cú hng khỏc v chờm gia chỳng l nhng ng cong phng cú bỏn kớnh c nh hoc thay i; mt ct dc, tuyn bao gm cỏc on thng cú dc khỏc v ni cỏc on thng ú l nhng ng cong ng cú bỏn kớnh khụng i (Tham kho: ng l mt l trỡnh, ng i cú th phõn bit gia cỏc a im Cỏc ng núi chung u phng, c tri nha, hay lm theo mt cỏch no ú cho phộp giao thụng d dng; dự khụng cn thit phi luụn nh vy, v lch s nhiu ng ch n gin l nhng tuyn ng c nhn bit m khụng c xõy dng hay bo dng chớnh thc- Wikipedia ting Vit) 1.1.2 Cỏc yu t tuyn ng giao thụng Mt ng giao thụng thng c th hin trờn ba bn v c bn: Bỡnh dc tuyn, mt ct dc v mt ct ngang tuyn ng Bỡnh dc tuyn l hỡnh chiu bng ca b mt a hỡnh dc tuyn ng lờn mt phng Ngoi cỏc yu t a hỡnh c biu din bng cỏc ng ng mc, tuyn ng xỏc nh bng cỏc yu t sau: - im u, im cui v cỏc im nh ngot; - Cỏc gúc chuyn hng , , ch i hng tuyn; - Chiu di v gúc phng v ca cỏc on thng; - Cỏc yu t ng cong gm cú gúc chuyn hng , bỏn kớnh ng cong R, chiu di on tip c T, chiu di ng cong K, on phõn c B, on o trn D; - Cỏc cc lý trỡnh: Cc Hm (100 m) v cc Km (1000 m), cỏc v trớ cụng trỡnh cu cng Mt ct dc tuyn ng l mt ct thng ng theo trc (ng tim) tuyn ng ó dui thng, giao tuyn gia mt ct dc tuyn v mt t t nhiờn biu din s thay i a hỡnh dc tuyn Mt t t nhiờn th hin trờn mt ct dc bng mu en Trc ng thit k c th hin trờn mt ct dc bng mu ng xỏc nh bng: - Cao thit k im u v im cui ca on dc; - dc dc (biu th bng phn trm hay phn nghỡn) v chiu di cỏc on dc; - ng cong ng li v lừm ti cỏc ch i dc v cỏc yu t ca nú; - Cao thit k (c biu th bng mu v gi tt l cao ) ca cỏc im trung gian, cỏc im cú cụng trỡnh, cỏc im thay i a hỡnh Cn c vo cao v cao en, xỏc nh cỏc cao o v cao p Vỡ dc dc ca tuyn thng khụng ln, cho nờn biu din dc ca tuyn c rừ rng, thỡ t l ng ca mt ct dc thng c chn ln hn 10 ln so vi t l ngang Mt ct ngang tuyn l mt ct thng ng vuụng gúc vi trc ng thit k, giao tuyn gia mt ct ngang tuyn v mt t t nhiờn biu din s thay i a hỡnh ngang tuyn ng ti v trớ o v mt ct ngang Trờn mt ct ngang, mt t t nhiờn cng th hin bng mu en nờn c gi l ng en ... Đƣờng cong tròn ngang .29 1.4.1 Khái niệm 29 1.4.2 Bố trí đƣờng cong tròn ngang 31 1.5 Đƣờng cong chuyển tiếp 42 1.5.1 Ý nghĩa phƣơng trình đƣờng cong. .. 42 1.5.2 Tính bố trí đƣờng cong tổng hợp 46 1.6 Đƣờng cong hình rắn 54 1.6.1 Các yếu tố đƣờng cong hình rắn 54 1.6.2 Bố trí đƣờng cong hình rắn 55 1.7... SÁT VÀ XÂY DỰNG TUYẾN ĐƢỜNG GIAO THÔNG 1.1 Khái niệm tuyến đƣờng định tuyến đƣờng giao thông 1.1.1 Khái niệm 1.1.2 Các yếu tố tuyến đƣờng giao thông 1.1.3 Các