Professional Documents
Culture Documents
Bao Cao
Bao Cao
I. Cơ sở lý thuyết
1. Khái niệm
Trước hết, MDL không phải là ngôn ngữ C cho Microstation. Chúng
ta dùng C làm nền tảng và sử dụng các tính năng cần thiết như chương trình
dịch, linker, runtime, giao diện đồ họa người dùng... để phát triển
Microstation.
MDL cho phép phát triển những ứng dụng có khả năng tương tác với
nhau chạy trên MicroStation và nhưng ứng dụng này thoạt nhìn có vẻ giống
như là một phần của MicroStation. Thực tế, các chức năng MicroStation
chính là những ứng dụng của nó.
Phát triển các ứng dụng có khả năng thích nghi với các chuẩn phẩn
cứng khác nhau. MDL loại bỏ ở mức độ cho phép những hệ đồ hoạ phụ, hệ
điều hành và CPU. Việc chuyển các ứng dụng của MDL sang một hệ phần
cứng khác chỉ đơn thuần là việc chuyển các file nguồn và xây dựng lại.
Đồng thời cho phép sắp xếp những thông tin về giao diện để để dịch sang
những ngôn ngữ khác nhau một cách hiệu quả.
Kiểu file Mô tả
.h Được tham chiếu đến như tệp tiêu đề
hay tệp include. Tệp tiêu đề được
khai báo trong file .mc, .mt và .r.
.ma Được tham chiếu đến như tệp ứng
dụng, đây là file nguồn nơi tất cả các
tài nguyên được liên kết với nhau
trong một ứng dụng. File ứng dụng
có thể được tạo ra bởi mlink hay rlib.
.mc Được tham chiếu đến như nguồn
MDL.
.mke Được tham chiếu đến như makefile,
dược đọc bởi bmake để biết cách
thức xây dựng một ứng dụng.
.ml Được tham chiếu đến như file thư
viện, được tạo ra và cập nhật bởi
mlib.
.mm Được tham chiếu đến như map file,
được tạo ra bởi mlink.
htmllib.fdf
miscilib.fdf
..and otheres
View 193 msview....fdf mdlView.... Cho phép xem và quản
handling lý các nhóm xem
Digitizer 3 msinput.fdf mdlDigitize_ Điều khiển sự kiện số
function hóa
7. Hệ thống
API của MDL không chỉ chứa các hàm mà còn bao gồm một tập hợp
các biến toàn cục mà bạn có thể truy nhập vào trong ứng dụng MDL của
bạn. Các biến này như là bộ nhớ dùng chung giữa Microstation và các ứng
dụng MDL. Mặc dù tên và kiểu của các biến toàn cục này đã được chương
trình biên dich của Microstation biết nên bạn không cần khai báo rõ ràng
chúng trong chương trình nhưng để lập trình tốt thì nên khai báo các biến đó
như là các biến ngoài.
Rất nhiều các biến built-in là kiểu cấu trúc hoặc kiểu hợp (union),
chẳng hạn như biến tcb (terminal control block) là một con trỏ trỏ đến cấu
trúc lưu thông tin về file design hiện thời..
Bảng dưới đây liệt kê một số kiểu biến cơ bản với tên, mô tả và tệp
tiêu đề chứa nó.
statedata MSStateData
Chứa các thông tin trong hàm
trạng thái hiện thời, được định
nghĩa trong global.h
tcb Tcb* “Terminal Control Block” giữ tất
cả các thông tin trong file DGN
hiện thời, được định nghĩa trong
tcb.h
mgds_modes Mgds_modes Chứa các thông tin về sự thực thi
hiện thời của MicroStation, được
định nghĩa trong global.h
graphConfig MSGraphConfig Chứa các cấu hình đồ hoạ, được
định nghĩa trong global.h
mdlCommandNumber long Chứa số lệnh của ứng dụng MDL
gần nhất
userPrefsP UserPrefs* Chứa các thói quen khác nhau của
người sử dụng, được định nghĩa
trong userpref.h
mgdsPrompt[35] char Giữ các bài text treong dấu nhắc,
mặc định là "uStn>"
render_designLightP void* Cho phép định nghiã các độ sáng
thích hợp, được định nghĩa trong
light.h
msTransientElmP TransDescrP Mục đích chung cho sự miêu tả
tạm thời
mdlErrno int Số lỗi cho các hàm MDL khác
nhau
III. Chương trình minh họa
Chương trình có chức năng chính là tính toán tọa độ điểm đo chi tiết
từ file số liệu đầu vào, hiển thị các điểm đó lên file dgn trong Microstation
và tạo ra file tọa độ các điểm chi tiết.
Chương trình sử dụng các hàm chính là
- Hàm double Phvi(double XM,double YM,double XH,double YH)
để tính phương vị của một cạnh.
- Hàm int File_Read(void) đọc file đầu vào.
- Hàm int File_getFile(char *filename,char *defaultExtension,char
*prompt) nhận file được nhập vào.
- Hàm int File_pushButtonHook(DialogItemMessage *dimP) hiển
thị các mức móc nối trong hộp thoại mở file.
- Hàm int File_unloadFunction(void) có chức năng unload một hàm.
- Hàm int File_dialogBoxHook để nhận hộp thoại.
Chương trình gồm các file
- file.mc : là file nguồn
- file.h và filetxt.h : là 2 tệp tiêu đề.
- filetyp.r và filedlg.r: là 2 file tài nguyên
- filetyp.mt
- File số liệu đo chi tiết đầu vào.
- File bat để chạy chương trình.
Kết luận
MDL là một môi trường phát triển hoàn chỉnh, cho phép các ứng dụng
lợi dụng tối đa khả năng của Microstation CAD engine. MDL có thể được
dung để phát triển các tiện ích đơn giản, những yêu cầu của khách hàng, hay
những ứng dụng trong thương mại đòi hỏi cần sự tinh vi, chi tiết.
Trên đây chúng ta đã tìm hiểu ngôn ngữ MDL để lập trình trong
Microstation. Đây là một hướng phát triển các ứng dụng chuyên nghiệp
trong Microstation để mang lại hiệu quả cao trong công việc. Chuơng trình
minh họa còn đơn giản và có nhiều thiếu sót nên sẽ được nghiên cứu phát
triển trong thời gian sắp tới để có thể hoàn thiện hơn.