Tải bản đầy đủ (.pdf) (34 trang)

BÁO CÁO CHUYÊN ĐỀ I LẬP TRÌNH MDL

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (296.1 KB, 34 trang )


BÁO CÁO CHUYÊN ĐỀ I
LẬP TRÌNH MDL
Giáo viên giảng dạy : KS.Trần Trung Chuyên
Sinh viên thực hiện : Trần Nhật Tâm
Nguyễn Mai Phương
Lớp : Tin học Trắc địa K47

Mở đầu

MDL – “MicroStation Development Language
được giới thiệu trong Microstation v.4 năm
1991 như là một giải pháp cho việc phát triển
những ứng dụng của Microstation .

MDL là một thế mạnh của Microstation về
khía cạnh lập trình. Để phát triển các ứng dụng
chuyên nghiệp trong Microstation cần nắm
được những yếu tố cơ bản của lập trình MDL

Nội dung chính
Mở đầu
I. Cơ sở lý thuyết
1. Tổng quan về MDL
2. MDL framework
3. MDL API
4. Cách tạo file.bat để biên dịch chương trình
nguồn
II. Chương trình minh hoạ
Kết luận


Tổng quan về MDL

MDL 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.v.v. để
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.

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.

Các đặc điểm của MDL

Chương trình biên dịch của MDL biên dịch các file
gốc của C thành các code giả được hiểu bởi
MicroStation.

Chương trình thông dịch code giả trong MicroStation
thực hiện các chương trình MDL.

Một môi trường phát triển hoàn thiện bao gồm các
công cụ sau:

Trình biên dịch C, thư viện và bộ kết nối

Chương trình biên dịch tài nguyên và thư viện


Chương trình gỡ rối

Tạo thành chương trình

Các đặc điểm của MDL

Môi trường runtime cung cấp các hàm tiêu
chuẩn của hệ điều hành như truy nhập file,
quản lí và bảo vệ bộ nhớ.

MDl cung cấp công cụ cho việc phát triển
giao diện đồ hoạ của người sử dụng không
phụ thuộc vào hệ thống.

Được thiết kế để tạo thành các ứng dụng dễ
dàng chuyển từ nền MicroStation sang hệ
thống khác

MDL framework

MDL framework

State machine engine : theo dõi tất cả các sự
kiện, kiểm tra trạng thái của nó và tác động trở
lại sự kiện.

MDL runtime : hỗ trợ sự thực thi của ứng
dụng MDL.

MDL virtual machine : mã nguồn MDL

không được biên dịch trực tiếp trong CPU mà
được đưa vào code giả được biên dịch bởi
MicroStation MDL virtual machine

MDL framework

MDL debuger : hoạt động theo kiểu
“command-line”, không phụ thuộc vào
platform

MDL Utilities

Các kiểu file nguồn

MDL Utilities
Dùng để tạo ra sự mô tả các kiểu cho một nhóm các hàm built-
in được sử dụng trong biểu ngữ C trong runtime.
Rsctype
Thư viện tài nguyên được dùng để trộn nhiều file tài nguyên
vào một file.
Rlib
Chương trình dịch tài nguyên được dùng để biên dịch tài
nguyên nguồn.
Rcomp
Linker được dùng để kết hợp các đối tượng vào chương trình.Mlink
Các thư viện được sử dụng để quản lý tệp hình ảnh trong file
thư viện.
Mlib
Là chương trình biên dịch được sử dụng để dịch file nguồn
MDL.

Mcomp
Làm cho các tiện ích được sử dụng trong biên dịch, liên kết tự
động, và xây dựng tài nguyên cho các ứng dụng phức tạp.
Bmake
Mô tảTên tiện ích

Các kiểu file nguồn
Được tham chiếu đến như map file, được tạo ra bởi mlink mm
Được tham chiếu đến như file thư viện, được tạo ra và cập
nhật bởi mlib.
.ml
Đượ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.
.mke
Được tham chiếu đến như nguồn MDL mc
Đượ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.
.ma
Đượ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.
.h
Mô tảKiểu file

Được tham chiếu đến như file tài nguyên, rcomp tạo ra
các file tài nguyên này.
.rsc
Được tham chiếu đến như file tài nguyên nguồn, chẳng
hạn như sự mô tả hộp thoại, bảng lệnh rcomp đọc các
file tài nguyên nguồn và tạo ra file tài nguyên.

.r
Được tham chiếu đến như type file, file nguồn dược sử
dụng để tạo định nghĩa kiểu cho các biểu thức C trong
hàm built-in. rsctype đọc type file và tạo ra file tài
nguyên nguồn
.mt
Được tham chiếu đến như file chương trình. Đây là một
kiểu file tài nguyên mà có thể trộn với các tài nguyên
khác sử dụng rlib.File chương trình được tạo ra bởi
mlink.
.mp
Được tham chiếu đến như file đối tượng, được tạo ra bởi
mcomp. Những file này là đầu vào của mlink.
.mo

MDL API

Giao diện lập trình ứng dụng MDL (MDL API) là một
tập hợp các hàm và biến được khai báo mà trong đó
Microstation cung cấp chủ yếu cho người lập trình
phần mềm.

Các hàm của MDL API thuờng được coi như các hàm
gắn liền (built-in)

Có thể chia các hàm API thành 4 nhóm:

Hàm của cơ chế CAD

Hàm của ứng dụng và hệ thống


Hàm cơ sở dữ liệu

Giao diện người dùng đồ họa (GUI)

MDL API

MDL API

Cấu trúc chung của hàm như sau :
mdl + lĩnh vực + gạch dưới + thao tác
Ví dụ: mdlFile_create, mdlLineString_create

Mã nguồn viết bằng ngôn ngữ C sẽ được
chương trình biên dịch chuyển thành
pseudocodes (code giả - viết tắt là p-code)
được thông dịch bởi Microstation runtime.

Tổng quan về các hàm built-in trong
API của MDL

Hàm các đối tượng có thể hiển thị được

Tìm kiếm đối tượng

Hàm container

Giao diện người dùng

Tài nguyên


Thao tác

Hệ thống

Hàm các đối tượng có thể hiển thị được
Dùng cho sự tạo thành các đối
tượng ( Arc, Circle, Cone,
Curve, Ellipse, Line,
LineString, PointString,
Shape, Surface, Text,
TextNode, ComplexChain)
mdl _createmselemen.fdf20Element creation
Cho phép giám sát mọi sự thay
đổi trong file DGN
mdlChangeTrack_changetrack.f
df
2Element
change tracking
Dùng để đọc, lặp lại, tạo
thành, thực hiện hoặc xoá
các cell trong thư viện cell,
và để đặt các cell vào file
design
mdlCell_
mdlCellIterator_
mdlSharedCell_
mscell.fdf

msscell.fdf

42

21
Cell functions

Shared Cell
functions

để Accudraw đạt được sự tối
ưu
mdlAccudraw_mdllib.fdf1Accudraw
Dùng để thiết lập và quản lí B-
spline
mdlBspline_msbsplin.fdf
15
B-spline
functions
Chú giảiTiền tố trong hàm
API
File fdf#Kiểu API

Cho phép gắn kết, thay đổi, xoá
hoặc tách các gói cơ sở dữ liệu
của các đối tượng
mdlLinkage_mslinkge.fdf34Element linkage
Cung cấp sự truy cập vào khả
năng liên kết các đối tượng để
tạo thành các điểm liên kết trong
kích thước, các đường và các
cell dùng chung

mdlAsoc_msassoc.fdf23Element association
Cho phép liên kết các đối tượng mdlClip_msmisc.fdf5Element clipping
Dùng để thực hiện các thao tác
với các đối tượng thành phần
trong các đối tượng phức tạp
mdlElmdscr_
mdlCopyContext_
mselmdsc.fdf10
5
Element descriptor
functions
Cho phép thay đổi các đối tượng
đơn hoặc sự miêu tả các đối
tượng
mdlModify_msmisc.fdf4Element
modification
Đáp ứng như API cho các đối
tượng giao nhau
mdlIntersect_msmisc.fdf4Element
intersection
Dùng cho thao tác trên các đối
tượng đơn phổ biến
mdlElement_mselemen.fdf43Element common
functions
Để tách thông tin từ các đối
tượng cụ thể.
mdl _extractmselemen.fdf13Element
information
extraction


Dùng cho các khía cạnh hình họcmdlMesh_msmdlmesh.fd
f
71Mesh elements
mdlPattern_msmisc.fdf8Patterining
Dùng cho các thao tác bề mặtmdlSurface_mselemen.fdf7Surface creation
Cho phép nhận dạng duy nhất
một đối tượng trong session
elementRef_elementref.h30Element reference
Cho phép quản lí nhiều trường
hợp của đối tượng trong các file
hoặc cell tham chiếu
mdlDisplayPath_msdisplaypath
.h
30Nested
Element instances
presentation
Dùng cho các thao tác trên kích
thước của đối tượng
mdlDim_
mdlDimStyle_
msdim.fdf
msdimstyle.fd
f
23
28
Dimensioning
element Function
Cung cấp API cho các đối tượng
chuyển tiếp
mdlTransient mstrnsnt.fdf14Transient elements

Lấy các thuộc tính kích thước cơ
bản của sự miêu tả các đối tượng
mdlMeasure_msmisc.fdf8Measurments
functions
Dùng để thiết lập và thay đổi các
đối tượng đa đường
mdlMline_msmline.fdf21Multi-line
elements

Tìm kiếm đối tượng
Tìm kiếm đối tượng theo
cách gần các điểm kiểm
tra nhất
mdlHitPath_mshitpath.h10Hit list
Cho phép bắt các đối tượng
bằng cách thăm dò Các
điểm hoặc tự động khi
con chuột đi qia các đối
tượng
mdlSnap
mdlAccuSnap
_
mslocate.fdf19Snapping

API dùng để quét file cho
các đối tượng
mdlScan_
mdlScanCriter
ia_
msscan.fdf

msscancrit.fdf
62Scanning
Cho phép định vị các đối
tượng
mdlLocate_
mdlAutoL
ocate_
mslocate.fdf40Loacate elements

Hàm container
Cho phép sử dụng danh
sách các chuỗi như
một mảng động
mdlStringList
_
strlist_
msstrlst.h
rmgrstrl.h
37String List
cung cấp các mảng động
đơn
mdlDArray_.

msdarray.fdf13Dynamic
arrays
Cung cấp nhiều loại
linear container có giá
trị
jdmlEmbedd
ed

embedded fdf
16
5
Embedded
Arrays
Đáp ứng như một
container cho các ma
trận số
mdlMatrix_msmdlmatrix.f
df
26Matrix storage

Giao diện người dùng
Điều khiển sự kiện số hóamdlDigitize_msinput.fdf3Digitizer function
Cho phép xem và quản lý các
nhóm xem
mdlView msview fdf
19
3
View handling
API cho hộp thoại và danh mục
thoại
mdlDialog_msdialog.fdf
ditemlib.fdf
msritem.fdf
htmllib.fdf
miscilib.fdf
and otheres
70
5

Dialog box and
Dialog item
functions
Điều khiển thực đơn Func keymdlFuncKey_msmisc.fdf9Function key
Quản lí hệ điều hành window
một cách tổng quát
mdlWindow_mswindow.fdf87Windows
functions
Cho phép thực hiện các hàm
điều khiển trạng thái
mdlState_msstate.fdf21State control

API dùng cho các thông điêp
đầu ra
mdlOutput_msoutput.fdf47Output handling
API dùng cho việc quản lí đầu
vào
mdlInput_msinput.fdf23Input handling
functions

Tài nguyên
Hàm Command table mdlParse_msparse.fdf10Parse command
table
API cho quản lý tài
nguyên
mdlResourc
e_
msrmgr.h25Resource
management


Thao tác
Cho phép thao tác giữa
DLM(DLL) và
MDL
dlmSystem_dlmsys.fdf14Dynamic link
modules
Cho phép chương trình
bên ngoài giao tiếp
với Microstation
mdlExternal_
extprg_
extprg.fdf19inter program
communicat
ion
Sử dụng cho macro của
BASIC
mdlBasic_msbasic.fdf3BASIC
interface
Cho phép đánh giá biểu
thức C trong
runtime
mdlCExpression_mscexpr.fdf18C Expression

Hệ thống
Thay đổi các tham số
của Microstation
mdlParams_msmisc.fdf4Active setting
functions
Cho phép truy vấn các
thông tin bản

quyền
mdlLicense_mslicens.fdf14License API
Tách các thông tin về
các bản đang chạy
hiện thời của
MicroStation
mdlVersion_msver.fdf2Version
quản lí các hàm
redo/undo
mdlUndo_msundo.fdf9Undo API
API cho các hàm hệ
thống khác nhau,
điều khiển các sự
kiện và các biến
mdlSystem_mssystem.fdf85MDL system

×