Giới thiệu
Nhắc đến tệp tin *.NTD (gọi tắt là file NTD), chắc không ai trong ngành Khảo sát - Thiết kế đường bộ là không biết. Nhưng trong các tài liệu hướng dẫn về NOVA, có rất ít thông tin về loại tệp tin có thể coi là bộ xương của một tuyến đường này. Chính vì vậy, trong bài viết này, chúng ta sẽ đi sâu nghiên cứu cấu trúc của một file NTD, để có một cái nhìn chi tiết hơn về loại tệp tin này.
Một tệp tin NTD thông thường |
Nội dung của bài viết:
Các phiên bản file NTD
Trong phạm vi bài viết, tôi chỉ để cập đến file NTD của phiên bản NOVA TDN16 (phiên bản chạy trên AutoCAD2004 - 2005 - 2006) mới nhất của Harmony.
Một lần nữa, bạn nên tải chương trình Notepad ++ làm trình soạn thảo mặc định cho các loại tệp tin *.txt, *.lsp và *.ntd
Download Notepad ++ |
Mục đích của bài viết:
- Hiểu một cách tổng quan về tệp tin NTD
- Tìm ra và khắc phục lỗi của tệp tin NTD
- Chỉnh sửa tệp tin NTD theo ý muốn
- Xây dựng các ứng dụng có khả năng tương tác với Nova nói chung và tệp tin *.NTD nói riêng.
Chúc các bạn có thể tìm ra những kiến thức bổ ích cho riêng mình!
Phần 1: Dòng tiêu đề của tệp tin (03 dòng đầu tiên)
Khi mở 1 tệp tin *.NTD bất kỳ, bạn sẽ thấy 3 dòng tiêu đề quan trọng sau:
TDN Version 3.5 SYMBOLS ND TD P TC NC TYPEINPUT 0 0 0 0 0
Dòng 1:
TDN Version 3.5Bao gồm hai thành phần "TDN" và "Version 3.5" được phân cách bởi một dấu tab.
Dòng này có tác dụng khai báo chương trình và phiên bản của chương trình Nova, Topo (hay nói chính xác hơn là phiên bản của tệp tin *.NTD). Ở đây là phiên bản 3.5.
Không có nhiều thông tin khác về dòng tiêu đề này. Ngoại trừ việc bạn nên sử dụng đúng khai báo này trong mọi tệp tin *.NTD.
Dòng 2:
SYMBOLS ND TD P TC NC
Bao gồm 6 thành phần:
- SYMBOLS Là tiêu đề của dòng.
- 5 thành phần còn lại là "ND", "TD", P", "TC", "NC" có tác dụng khai báo các tên cọc trong đường cong tròn và đường cong chuyển tiếp.
Lệnh GP Tạo cọc đặc biệt trong TOPO |
Tuy việc này không hề ảnh hưởng đến tuyến đường trong bản vẽ đang làm việc, nhưng lại hết sức tai hại với tệp tin NTD mà bạn sẽ xuất ra từ lệnh EACD, SSLT (trong NOVA).
Theo một chuẩn thống nhất (giữa NOVA, TOPO) được thể hiện rất rõ trong dòng khai báo chúng ta đang nhắc tới. Thì tên cọc trong đường cong bắt buộc phải là:
- ND cho cọc Nối đầu
- TD cho cọc Tiếp đầu
- P cho cọc Phân giác
- TC cho cọc Tiếp cuối
- NC cho cọc Nối cuối
Mọi việc tuỳ biến tên cọc khác với tiêu chuẩn trên đều có thể khiến tuyến đường tạo từ tệp tin NTD bị sai khác, hư hỏng. Bởi đơn giản, các chương trình đọc tệp tin NTD này sẽ không hiểu và không tìm ra các cọc trong đường cong.
Đúng vậy!
Tôi đã thí nghiệm đặt tên cọc lần lượt là NDA, TDA, E, TCA, NCA. Khi xuất số liệu, cả NOVA và TOPO vẫn xuất ra dòng khai báo mặc định "SYMBOLS ND TD P TC NC".
Như đã cảnh báo, nếu tạo tuyến từ tệp tin này, thì tuyến đường sẽ không chính xác như mong muốn. Lúc này, bạn hãy nghĩ đến việc chỉnh sửa dòng khai báo theo ý mình. Và tuyến đường thân yêu sẽ lại hiện ra!
Bạn vẫn có thể tạo tên cọc theo ý mình?
Đúng vậy!
Tôi đã thí nghiệm đặt tên cọc lần lượt là NDA, TDA, E, TCA, NCA. Khi xuất số liệu, cả NOVA và TOPO vẫn xuất ra dòng khai báo mặc định "SYMBOLS ND TD P TC NC".
Như đã cảnh báo, nếu tạo tuyến từ tệp tin này, thì tuyến đường sẽ không chính xác như mong muốn. Lúc này, bạn hãy nghĩ đến việc chỉnh sửa dòng khai báo theo ý mình. Và tuyến đường thân yêu sẽ lại hiện ra!
SYMBOLS NDA TDA E TCA NCA
Đến đây, ít nhất là bạn đã có thể tương tác với một tệp tin NTD (theo cách mà không mấy ai rỗi việc muốn làm). :)
Lỗi Thiếu cọc đường cong
Nếu bạn làm việc trên một bản vẽ tuyến gốc, (không phải qua bước biên tập tệp tin NTD), thì bạn không phải quan tâm đến việc thừa hay thiếu cọc.
Tuy nhiên, với những người phải làm công việc không mấy vui vẻ là dựng lại tuyến từ những bản vẽ "chết" (bản vẽ Bình đồ, Trắc dọc, Trắc ngang trên giấy) thì lại thường xuyên gặp lỗi thiếu cọc, dẫn đến không thể vẽ được tuyến từ tệp tin NTD.
Lỗi điển hình khi thiếu cọc |
Vì vậy, nếu chỉ sử dụng những thông tin có trên bản vẽ, chắc chắn họ sẽ không bao giờ dựng lại được tuyến đúng như yêu cầu.
Cách khắc phục lỗi thiếu cọc trong tệp tin NTD
TOPO và NOVA chỉ làm việc được nếu đường cong được coi là hoàn thiện, nghĩa là đường cong đó có đầy đủ các cọc. Đây là nguyên tắc cơ bản và cũng là kim chỉ nam để chúng ta "biên tập" lại tệp tin NTD.
Việc đầu tiên bạn cần làm là xác định được các thông số của đường cong, từ đó sử dụng tính toán để xác định hai yếu tố Tên cọc, Lý trình, Góc chuyển hướng.
Khi đã tìm được tên cọc và lý trình thích hợp, bạn điền thông tin vào một dòng khai báo theo mẫu dưới đây và chèn vào vị trí thích hợp trong tệp tin NTD.
POLE TC2 113.86000 0.00000 0.00000 0.00000 3.141592653590
Việc tính toán Lý trình và Góc chuyển hướng, Cách điền vào dòng khai báo sẽ được đề cập trong Phần 2: Khai báo thông tin cọc.
Dòng 3:
TYPEINPUT 0 0 0 0 0
Bao gồm 1 tiêu đề và 5 tham số:
- TYPEINPUT Là tiêu đề của dòng, có nghĩa là kiểu đầu vào.
- Tham số thứ 1: là tham số quy định khoảng cách giữa các cọc POLE là KC lẻ hay KC cộng dồn. Tham số này nhận 2 giá trị: 1 nếu là KC lẻ và 0 nếu là cộng dồn
- Tham số thứ 2: là tham số quy định khoảng cách giữa các điểm mia trên một trắc ngang (POLE).
Tham số nhận giá trị: 1 nếu là KC lẻ và 0 nếu là cộng dồn. - Tham số thứ 3: là tham số quy định chiều cao của các điểm mia trong 1 trắc ngang.
Tham số nhận giá trị: 1 nếu là chênh cao và 0 nếu là cao độ tuyệt đối. - Tham số thứ 4: quy định biến "Nhập tương đối so với cọc"
Nhận 2 giá trị là 0 và 1. - Tham số thứ 5: chưa tìm ra :)
Theo mặc định của NOVA, cả 5 tham số đều nhận giá trị 0 (như khai báo trong ví dụ ban đầu). Năm tham số này tương ứng với bảng lựa chọn của NOVA:
Nếu bạn nào làm khảo sát, chắc hẳn đã từng nhập trắc ngang dựa vào Sổ đo chênh cao trắc ngang.
Theo đó cao độ điểm mia được tính theo kiểu chênh cao lũy kế dựa vào cao độ tại tim. Và khoảng cách điểm mia cũng là khoảng cách lẻ. Công việc tiếp theo là nhập cao độ vào tệp tin NTD có sẵn.
Chính bước này sẽ gây ra một lỗi khá thú vị. Đó là mặc định của tệp tin là 0 0 0 0 0 (Cộng dồn, Cộng dồn, Tuyệt đối, ....). Nhưng sổ đo cao lại là (Cộng dồn, Khoảng cách lẻ, Tương đối). Ở đây, ta chỉ chú ý đến 2 tham số thứ 2 và 3, quy định kiểu số liệu trên Trắc ngang.
Kết quả của sai sót là vô cùng lớn, trắc ngang sai không kiểm soát. Nhưng bạn đừng sợ, đừng cuống cuồng tìm cách cắt ghép tệp tin NTD.
Bạn mở tệp tin NTD bằng chương trình Notepad, chỉnh sửa các tham số đã nói cho phù hợp với kiểu nhập trắc ngang của mình.
Xong xuôi, bạn Save lại và tận hưởng thành quả!
Một số lưu ý:
- Các thành phần trong cùng một dòng đều được phân cách bằng một dấu tab (Trong AutoLISP và ObjectARX là ký tự '\t').
(còn nữa ...)
Nếu bạn nào làm khảo sát, chắc hẳn đã từng nhập trắc ngang dựa vào Sổ đo chênh cao trắc ngang.
Theo đó cao độ điểm mia được tính theo kiểu chênh cao lũy kế dựa vào cao độ tại tim. Và khoảng cách điểm mia cũng là khoảng cách lẻ. Công việc tiếp theo là nhập cao độ vào tệp tin NTD có sẵn.
Chính bước này sẽ gây ra một lỗi khá thú vị. Đó là mặc định của tệp tin là 0 0 0 0 0 (Cộng dồn, Cộng dồn, Tuyệt đối, ....). Nhưng sổ đo cao lại là (Cộng dồn, Khoảng cách lẻ, Tương đối). Ở đây, ta chỉ chú ý đến 2 tham số thứ 2 và 3, quy định kiểu số liệu trên Trắc ngang.
Kết quả của sai sót là vô cùng lớn, trắc ngang sai không kiểm soát. Nhưng bạn đừng sợ, đừng cuống cuồng tìm cách cắt ghép tệp tin NTD.
Sai sót nghiêm trọng, nhưng cách khắc phục lại vô cùng đơn giản!
Bạn mở tệp tin NTD bằng chương trình Notepad, chỉnh sửa các tham số đã nói cho phù hợp với kiểu nhập trắc ngang của mình.
- Nếu khoảng cách các điểm mia theo kiểu Cự ly lẻ thì tham số thứ 2 đặt là 1, nếu là Cộng dồn thì đặt bằng 0.
- Nếu cao độ các điểm mia là Chênh cao, tham số thứ 3 đặt là 1, nếu là Cao độ tuyệt đối thì đặt bằng 0.
TYPEINPUT 0 1 1 0 0
Xong xuôi, bạn Save lại và tận hưởng thành quả!
Một số lưu ý:
- Các thành phần trong cùng một dòng đều được phân cách bằng một dấu tab (Trong AutoLISP và ObjectARX là ký tự '\t').
(còn nữa ...)