Tải bản đầy đủ (.doc) (97 trang)

Xây dựng phần mềm mô tả cấu tạo hình học của một số cấu kiện dưới dạng số liệu vectơ

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 (2.8 MB, 97 trang )

ĐH GIAO THÔNG VẬN TẢI HÀ NỘI ĐỒ ÁN TỐT NGHIỆP
MỤC LỤC
MỤC LỤC 1
Phần 1: ĐẶT VẤN ĐỀ 3
1.1Phạm vi nghiên cứu của đồ án 6
1.2Các mục tiêu của đồ án 6
Phần 2: NGHIÊN CỨU KHẢ NĂNG CỦA THƯ VIỆN ĐỒ HỌA VECAD 7
2.1Giới thiệu về thư viện đồ họa VeCAD 7
2.2Thư viện đồ họa liên kết động VeCAD 9
2.2.1Hệ thống đối tượng 9
2.2.2Các sự kiện được cung cấp 13
2.3Điều khiển VeCAD ActiveX 14
2.4Nghiên cứu khả năng xây dựng đối tượng mới của VeCAD 15
2.4.1Cách thức tạo đối tượng tùy biến 16
2.4.2Hiển thị dữ liệu của đối tượng tùy biến trên cửa sổ “Properties” 20
2.4.3Các sự kiện của đối tượng tùy biến 22
2.4.4Các sự kiện dùng khi hiển thị đối tượng tùy biến 29
2.5Đánh giá về thư viện đồ họa VeCAD: 40
Phần 3: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 41
3.1Phân tích bài toán 41
3.1.1Các yêu cầu cần thiết 41
3.1.2 Phân tích sơ bộ các yếu tố của đối tượng “Mặt cắt ngang đường” 41
3.1.3Phân tích đặc điểm hình học của các cấu kiện khác: 43
3.2Phương pháp thiết kế hệ thống 46
3.3Thiết kế hệ thống đối tượng cho chương trình 46
3.3.1Các lớp mô tả đối tượng “Mặt cắt ngang nền đường” 46
3.3.2Các lớp mô tả đối tượng cấu kiện “Dầm BTCT”, “Cọc BTCT”, “Bản BTCT”: 50
3.3.3Các lớp quản lý chung phục vụ cho chương trình 55
3.3.4Định dạng các tệp dữ liệu được thiết kế trong chương trình 55
3.3.5Phân tích thiết kế các giao diện cho chương trình 58
Phần 4: XÂY DỰNG CHƯƠNG TRÌNH 59


4.1Môi trường lập trình và các công cụ phục vụ phát triển chương trình 59
4.2Ngôn ngữ lập trình C#: 60
4.3XML 60
4.3.1Khái niệm XML 60
4.3.2Ưu nhược điểm 61
4.4Xây dựng các lớp cho chương trình 61
4.4.1Các lớp mô tả đối tượng “Mặt cắt ngang nền đường” 61
4.4.2Các lớp mô tả các đối tượng cấu kiện hình học 64
4.4.3Lớp quản lý bản vẽ (clsDrawingManager), lớp quản lý các form (clsFormManager), lớp xử lý file
XML (clsXML) 66
4.5Xây dựng các giao diện cho chương trình 67
4.5.1Giao diện chính (frmMain) 67
4.5.2Giao diện nhập thông số hiển thị mặt cắt ngang đường (frmInputCSParam) 79
4.5.3Giao diện nhập thông số cho đầu trắc ngang (frmTableViewStyle) 80
4.5.4Giao diện nhập dữ liệu cho dầm bê tông cốt thép mặt cắt chữ nhật (frmBeamRect) 81
4.5.5Giao diện nhập dữ liệu cho cọc bê tông cốt thép mặt cắt vuông (frmPillingSquare) 83
Đỗ Xuân Cảnh - TĐH TKCĐ K44 1
ĐH GIAO THÔNG VẬN TẢI HÀ NỘI ĐỒ ÁN TỐT NGHIỆP
4.5.6Giao diện nhập dữ liệu cho cọc bê tông cốt thép mặt cắt tròn (frmPillingCircle) 84
4.5.7Giao diện nhập dữ liệu cho bản bê tông cốt thép (frmPlate) 85
4.5.8Giao diện để vẽ các đối tượng hình học (frmVeCAD) 86
4.5.9Giao diện thông tin về chương trình (frmAbout) 86
Phần 5: KẾT QUẢ ĐẠT ĐƯỢC VÀ HƯỚNG PHÁT TRIỂN 88
5.1Kết quả đạt được của đồ án: 88
5.1.1Một chương trình CAD thông dụng: 88
5.1.2Xây dựng và thể hiện đối tượng “Mặt cắt ngang nền đường” 89
5.1.3Xây dựng và hiển thị thành công đối tượng dầm BTCT 3D 90
5.1.4Xây dựng và hiển thị thành công đối tượng cọc BTCT 3D 92
5.2Hướng phát triển: 95
MỤC LỤC HÌNH VẼ 96

Đỗ Xuân Cảnh - TĐH TKCĐ K44 2
ĐH GIAO THÔNG VẬN TẢI HÀ NỘI ĐỒ ÁN TỐT NGHIỆP
Phần 1: ĐẶT VẤN ĐỀ
Thông thường sự ra đời của một công trình giao thông (cầu, đường, ) bắt đầu từ
việc nghiên cứu để chỉ ra sự cần thiết của công trình đó hay vai trò của nó trong đời
sống xã hội. Sau đó bước khảo sát thiết kế sẽ được triển khai, kết quả của quá trình
này là những tài liệu bao gồm bản vẽ, bản tính và bản thuyết minh để thể hiện cấu tạo
và cách thức cơ bản để thi công cũng như chi phí cho công trình đó. Quá trình thi công
sẽ dựa vào kết quả của quá trình thiết kế để trực tiếp tạo ra công trình trên thực địa.
Như vậy thiết kế là một khâu trong quá trình tạo ra một công trình.
Kết quả của quá trình thiết kế, như đã nêu ở trên, bao gồm hệ thống các bản vẽ,
bản tính và thuyết minh mà nội dung của nó chỉ rõ cấu tạo của công trình, phương
pháp chính để thực hiện và chi phí xây dựng công trình. Việc tạo ra hệ thống các tài
liệu trên luôn đòi hỏi một khối lượng tính toán và thao tác rất lớn vì thế việc giảm bớt
công sức cho người thiết kế đồng thời nâng cao được năng suất và chất lượng của đồ
án thiết kế là một công việc rất có ý nghĩa.
Quá trình thiết kế là sự vận dụng kiến thức chuyên môn và công cụ hỗ trợ để giải
quyết hàng loạt các vấn đề nhằm tạo ra hồ sơ thiết kế. Thực tế đã chứng tỏ rằng với
kiến thức chuyên môn tốt nhưng công cụ chưa tốt thì hiệu quả công việc không cao
còn nếu thiếu kiến thức chuyên môn thì dù có công cụ hỗ trợ tốt thì chất lượng đồ án
sẽ không đảm bảo. Như vậy đây chính là hai yếu tố chủ chốt tạo nên một đồ án thiết kế
có chất lượng.
Kiến thức chuyên môn ở đây bao gồm nhiều nội dung khác nhau và được cung cấp
trong suốt quá trình học đại học dưới dạng từng học phần hay môn học cụ thể. Mỗi
môn học sẽ đóng vai trò như một bộ phận tạo nên một khối kiến thức tổng hợp giúp
cho người kỹ sư có thể định hướng được cách giải quyết các vấn đề trong quá trình tạo
ra công trình.
Công cụ hỗ trợ thiết kế giúp người kỹ sư triển khai chi tiết ý tưởng của mình và
trong thực tế nó đóng một vai trò quan trọng trong việc quyết định năng suất và chất
lượng của quá trình thiết kế. Với những công cụ hỗ trợ vẽ, tính toán đơn giản thì nhiều

vấn đề phức tạp, mặc dù về mặt lý thuyết có thể giải quyết được, nhưng không thể
Đỗ Xuân Cảnh - TĐH TKCĐ K44 3
ĐH GIAO THÔNG VẬN TẢI HÀ NỘI ĐỒ ÁN TỐT NGHIỆP
triển khai trong thực tế, ví dụ tính toán kết cấu lớn, phức tạp theo sơ đồ không gian ba
chiều hoặc thể hiện kết quả thiết kế của tuyến đường dưới dạng mô hình ba chiều.
Với đặc thù của công tác thiết kế chủ yếu là tính toán và triển khai bản vẽ cho nên
những công cụ hỗ trợ mang lại hiệu quả thiết thực sẽ phải đáp ứng được những yêu
cầu về tính toán, tạo bản vẽ và lưu trữ dữ liệu. Do đặc điểm của những yêu cầu trên
cùng với sự phát triển của công nghệ thông tin cho nên có thể thấy rằng hệ thống các
phần mềm hỗ trợ thiết kế là công cụ thích hợp nhất.
Hệ thống phần mềm hỗ trợ thiết kế bao gồm những chương trình chuyên dụng
được xây dựng để giải quyết một hay nhiều vấn đề nào đó trong quá trình thiết kế công
trình, ví dụ như xử lý số liệu khảo sát, tính toán kết cấu, hoặc tạo bản vẽ. Bên trong
mỗi chương trình chuyên dụng bao giờ cũng chứa rất nhiều kiến thức chuyên môn vì
thế nhiều phần trong quá trình thiết kế có thể thực hiện được tự động. Tuy nhiên khi
thực hiện từng phần trong quá trình thiết kế hay một công đoạn nào đó luôn đòi hỏi rất
nhiều sự lựa chọn, phân tích, lập luận theo hình thức “chuyên gia”, điều này là một cản
trở cho quá trình xây dựng các chương trình chuyên dụng vì thế các chương trình này,
hiện nay, đa số mới chỉ thực hiện tự động hoàn toàn đối với những vấn đề độc lập và
có nhiều yếu tố cố định, như tính toán nội lực kết cấu, còn những vấn đề mang tính hệ
thống, đòi hỏi có sự suy luận, phân tích thì mức độ tự động đạt được chưa cao, ví dụ
như quá trình thiết kế bình đồ tuyến đường.
Tự động hóa thiết kế ở đây được hiểu là sự kết hợp giữa chương trình trợ giúp
thiết kế với kiến thức chuyên môn để đưa ra một cách nhanh chóng, chính xác và hợp
lý phương án thiết kế của công trình. Như vậy, khả năng của chương trình trợ giúp
thiết kế sẽ đóng một vai trò quan trọng trong việc tự động hóa thiết kế, do đó việc cân
nhắc lựa chọn một chương trình trợ giúp thiết kế phù hợp là rất quan trọng.
Trong công tác thiết kế đường, việc thiết kế hình học là một khâu rất quan
trọng. Nó ảnh hưởng đến kinh tế xã hội, kinh tế, quyết định đến sự thành công sự
thành công của một dự án. Do vậy, một chương trình trợ giúp thiết kế tốt sẽ tiết kiệm

thời gian thiết kế của người kỹ sư.
Hiện nay, tại Việt Nam, có rất nhiều hệ thống phần mềm đã được thương mại
hóa, được sản xuất bởi các công ty, tổ chức trong và ngoài nước để trợ giúp công tác
thiết kế đường. Có thể kể ra đây một số phần mềm đã được sử dụng tại Việt Nam như
phần mềm TKD của Bộ môn Tự động hóa Thiết kế cầu đường – Trường Đại học Giao
thông vận tải, phần mềm NovaTDN, RoadPlan của công ty Hài Hòa, phần mềm
Microstation Geopak của hãng Bentley, phần mềm Softdesk (phiên bản cũ), Land
Đỗ Xuân Cảnh - TĐH TKCĐ K44 4
ĐH GIAO THÔNG VẬN TẢI HÀ NỘI ĐỒ ÁN TỐT NGHIỆP
Desktop (phiên bản cũ), Civil 3D (phiên bản mới) của công ty Autodesk và còn nhiều
phần mềm khác nữa.
Các phần mềm nước ngoài sản xuất thường có quy mô rất lớn với nhiều tính
năng đáp ứng. Việc thiết kế hình học đường của các phần mềm này được đánh giá rất
tốt. Một điểm mạnh nữa của các phần mềm này là tạo ra mối quan hệ nhiều chiều và
khép kín giữa các đối tượng. Nhìn chung các phần mềm nước ngoài được chia thành 3
nhóm :
+ Nhóm chạy dựa trên một hệ thống CAD: hệ thống CAD tồn tại hai hệ thống
rất mạnh đó là AutoCAD của Autodesk và Microstation của Bentley.
- Hệ thống AutoCAD: phần mềm Softdesk (phiên bản cũ), Land
Desktop (phiên bản cũ), Civil 3D (phiên bản mới), MXRoad,…
- Hệ thống Microstation: Geopak của hãng Bentley, MXRoad,…
+ Nhóm độc lập.
+ Nhóm chạy trên các hệ thống CAD và độc lập: MXRoad,…
Các ưu điểm của phần mềm nước ngoài là khả năng phong phú trong việc xử lý,
tương tác cao trong quá trình thiết kế, quản lý tập trung một dự án thiết kế, tính đồng
bộ cao, Khả năng tạo tùy biến rất cao. Một số phần mềm còn cung cấp mô hình đối
tượng COM (Component Object Model) để nhà phát triển thứ bà có thể lập ra phần
mềm phù hợp với mục đích của riêng mình. Tuy nhiên nhược điểm của các phần mềm
này là do có qui mô lớn nên việc sử dụng và triển khai là rất khó khăn, đồng thời còn
đưa ra một số kết quả chưa phù hợp với qui trình, qui phạm hiện hành của Việt Nam

cũng như một số tình huống thiết kế.
Các phần mềm trong nước thường có qui mô nhỏ hơn và đã có thể đáp ứng được
phần nào nội dung công việc nhưng các phần mềm này đa số đều hoạt động dựa vào
một phần hoặc toàn bộ nền của hệ thống CAD. Ưu điểm của các phần mềm này là dễ
sử dụng, cho ra kết quả thiết kế (bản vẽ, bảng biểu) phù hợp với qui trình hiện hành.
Khả năng ứng dụng trong thực tiễn cao và triển khai dễ dàng. Tính cơ động cao, phù
hợp với các dự án thuần túy về đường bộ. Do hoạt động dựa trên một hệ thống CAD
nên để hoạt động được thì các phần mềm này đều phải cần phải đi kèm với một hệ
thông CAD (ví dụ AutoCAD). Điều này làm tính linh hoạt của các phần mềm này
không cao.
Do vậy, việc nghiên cứu xây dựng một phần mềm hỗ trợ thiết kế hình học đường
độc lập hoàn toàn và phù hợp với tiêu chuẩn của Việt Nam là rất cần thiết.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 5
ĐH GIAO THÔNG VẬN TẢI HÀ NỘI ĐỒ ÁN TỐT NGHIỆP
Chính vì vậy đồ án tốt nghiệp “Xây dựng phần mềm mô tả cấu tạo hình học
của một số cấu kiện dưới dạng số liệu Vectơ” nhằm tạo tiền đề cho việc xây dựng
một phần mềm hỗ trợ thiết kế hình học đường và phần mềm mô hình hóa kết cấu, tính
toán kết cấu.
1.1 Phạm vi nghiên cứu của đồ án
Phạm vi của đồ án này là nghiên cứu khả năng sử dụng thư viện đồ họa VeCAD
để xây dựng một phần mềm hỗ trợ thiết kế hình học. Trong đó đi sâu vào nghiên cứu
các vấn đề sau:
+ Nghiên cứu các đối tượng được cung cấp trong thư viện VeCAD và cách sử
dụng chúng.
+ Nghiên cứu xây dựng và thể hiện đối tượng hình học mới (Custom Object)
dựa trên các đối tượng sẵn có của thư viện. Từ đó đi xây dựng:
• Đối tượng “mặt cắt ngang nền đường”.
• Dầm BTCT 3D mặt cắt chữ nhật, chữ T, chữ I,…
• Cọc BTCT 3D mặt cắt vuông, hình tròn,…
• Bản BTCT 3D.

1.2 Các mục tiêu của đồ án
- Xây dựng chương trình hỗ trợ thiết kế hình học với đầy đủ các chức năng cần
thiết như vẽ được các đối tượng hình học đơn giản (điểm, đường thẳng, đường
tròn, hình chữ nhật,…) và các chức năng khác giống như một chương trình
CAD thông dụng.
- Xây dựng các mô dun thể hiện :
+ Mặt cắt ngang nền đường với đầy đủ các phần theo cách thể hiện mặt cắt
ngang của Việt Nam.
+ Dầm BTCT 3D mặt cắt chữ nhật, chữ T, chữ I,… trong không gian.
+ Cọc BTCT 3D mặt cắt vuông, hình tròn,…trong không gian.
+ Bản BTCT 3D trong không gian.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 6
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
Phần 2: NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
2.1 Giới thiệu về thư viện đồ họa VeCAD
VeCAD là một thư viện đồ họa vectơ. Nó có thể được sử dụng để xây dựng một
phần mềm đồ họa vectơ chuyên dụng của chính người lập trình (CAD/GIS). Thư viện
này được cụ thể hóa bằng hai phần: thư viện liên kết động 32bit của Windows và một
OCX (ActiveX control). Với thư viện này, việc sử dụng các ngôn ngữ lập trình như
Visual Basic, Delphi, C++ Builder và Visual C++, Visual C# với công cụ soạn thảo
IDE trực quan thì việc xây dựng các phần mềm đồ họa thiết kế hình học vectơ là hoàn
toàn có thể.
Các đặc điểm chính:
• Hỗ trợ các định dạng DWG và DXF của AutoCAD sử dụng công nghệ
OpenDWG.
• Cung cấp định dạng VEC cho các bản vẽ. Các bản vẽ cũng có thể được lưu lại
dưới dạng các loại ảnh “raster”.

• Lưu/đọc bản vẽ vào/từ bộ nhớ.
• Hỗ trợ các đối tượng phi hình học như: Pages, Layers, Linetypes, Blocks,
TextStyles, PoStyles, Multi-line Styles (parallel lines), Dimension styles,
Selection Sets.
• Các đối tượng hình học bao gồm: điểm (Points), đường thẳng (Lines), đường đa
tuyến (Sub-classed Polylines),hình tròn (Circles), cung tròn (Arcs), elíp
(Ellipses), hình chữ nhật (Rectangles), văn bản (Text), khối chèn (Block
Insertions), kích thước (Dimensions) và ảnh “raster” (Raster Images). Tất cả
các đối tượng đều có thể sử dụng hệ tọa độ 3D.
• Cung cấp các bộ lọc nhúng để mở các ảnh “raster” dưới nhiều định dạng khác
nhau. VeCAD cùng với một chương trình mã nguồn mở nhúng mà hỗ trợ các
định dạng GIF, JPEG và TIF.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 7
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
• Một định dạng duy nhất cho mỗi đối tượng bản vẽ làm thuận tiện cho việc
tham chiếu đến cơ sở dữ liệu ngoài.
• Truy xuất được đến toàn bộ các đặc tính của bất kỳ đối tượng nào, hoặc trong
lập trình hoặc thông qua hộp thoại.
• Khả năng phóng to – thu nhỏ cho phép người lập trình có thể quan sát được
toàn bộ bản vẽ hoặc bất kỳ vùng mong muốn nào của bản vẽ.
• Hỗ trợ chuột giữa dùng cho việc thu phóng và kéo rê bản vẽ.
• Xem trước bản in.
• Vẽ cả trong không gian vẽ (Model space) và/hoặc không gian in ấn (Paper
space).
• Các thao tác chỉnh sửa bao gồm: sao chép (Copy), di chuyển (Move), xoay
(Rotate), thay đổi tỉ lệ (Scale), nhân bản (Mirror), phá vỡ (Explode), liên kết
(Join), cắt xén (Trim), kéo dãn (Extend). Các đối tượng đơn có thể được chỉnh
sửa bằng việc di chuyển các điểm điều khiển của chúng (các điểm “grip”).

• Các chế độ bắt điểm khác nhau cho phép người lập trình có thể vẽ/chỉnh sửa
các đối tượng một cách chính xác mà không cần phải tính toán. Chế độ bắt
điểm sử dụng điểm đánh dấu để nâng cao tốc độ thao tác và quan sát.
• Khả năng theo vết đỉnh tốt hơn (Polar Tracking).
• Cơ chế theo sự kiện cho phép điều khiển của một chương trình tại mức giao
tiếp với người dùng.
• Giao tiếp thông qua lệnh có thể được đăng ký trực tiếp vào các menu, nút lệnh,
và các phím tăng tốc của một chương trình.
• Hỗ trợ các loại phông chữ của Windows (phông TTF) và của AutoCAD (phông
SHP/SHX).
• Hỗ trợ các mẫu tô của AutoCAD (PAT) và kiểu đường (LIN).
• Sao chép và dán bộ nhớ tạm.
• Bộ nhớ đệm Undo-redo có thể lưu trữ khoảng 100 lệnh.
• Một cửa sổ dòng lệnh phụ trợ tạo điều kiện thuận lợi cho việc thao các các dòng
lệnh, đây là một giao tiếp macro tiềm năng cho người lập trình.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 8
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
2.2 Thư viện đồ họa liên kết động VeCAD.
2.2.1 Hệ thống đối tượng
Thư viện đồ họa VeCAD bao gồm các đối tượng hình học và phi hình học. Người
dùng có thể sử dụng các đối tượng hình học như: điểm (Points), đường thẳng (Lines),
đường đa tuyến (Sub-classed Polylines), hình tròn (Circles), cung tròn (Arcs), elíp
(Ellipses), hình chữ nhật (Rectangles), văn bản (Text), khối chèn (Block Insertions),
kích thước (Dimensions) và ảnh “raster” (Raster Images) để tạo các thiết kế của họ.
Các đối tượng phi hình học bao gồm các đối tượng như kiểu chữ (Text style), kiểu ghi
kích thước (Dimension style), lớp (Layer), …
Đỗ Xuân Cảnh - TĐH TKCĐ K44 9
ĐỒ ÁN TỐT NGHIỆP

NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
Hnh 1. Mô hình đối tượng trong thư viện VeCAD
Đỗ Xuân Cảnh - TĐH TKCĐ K44 10
Phi hình học
VeCAD
Layers
Hình học
Layer
Linetypes
Linetype
Pages
Page
Blocks
Block
Text Styles
Text Style
Point Styles
Point Style
Multiline Styles
Multiline Style
Dimension Styles
Phi hình học
Points
Point
Lines
Line
Polylines
Polyline
Rectangles

s
Rectangle
Multilines
Multiline
Arcs
Arc
Circle
Ellipses
Texts
Text
Multiline Texts
Multiline Text
Raster Images
Raster Image
Block Insertions
Block Insertion
Hatchs
Hatch
External
references
External Reference
Dimensions
Dimension
Leaders
Leader
Block Attributes
Block Attribute
Custom Objects
Custom Object
Tập đối tượng

Đối tượng
Chú giải:
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
2.2.1.1 Đối tượng phi hình học
Các đối tượng phi hình học bao gồm các đối tượng như kiểu chữ (Text style),
kiểu ghi kích thước (Dimension style), lớp (Layer), …Tại một thời điểm, người dùng
sử dụng thông tin của đối tượng phi hình học để quản lý các thiết kế. Nói một cách
khác, các đối tượng phi hình học là các đối tượng hình học đặc biệt. Đối tượng phi
hình học giúp người dùng thiết kế hiệu quả hơn. Ví dụ, nếu người dùng sử dụng một
tập hợp các thuộc tính của kiểu đường một các thường xuyên, người dùng có thể lưu
các thuộc tính thành một kiểu đường và sau đó áp dụng kiểu đường này cho các đoạn
thẳng trong bản vẽ. Thư viện đồ họa VeCAD lưu trữ các đối tượng phi hình học theo
loại, trong các bảng khác nhau. Các hàm API của VeCAD cung cấp các hàm để thêm,
xóa, và thay đổi thuộc tính của các đối tượng phi hình học này.
Các đối tượng phi hình học của VeCAD được mô tả trong bảng sau:
Tên đối
tượng
Mô tả
Page
Định nghĩa môi trường mà ở đó người dùng có thể tạo và thiết kế các cổng
nhìn dùng để in.
Layer
Lớp chứa các thuộc tính mà người dùng đặt cho nó, như màu sắc, kiểu
đường.
Linetype
Lưu trữ thông tin để kiểm soát một đường thẳng hoặc một đường cong thể
hiện như thế nào. Ví dụ, đoạn thẳng hoặc là nét liền hoặc nét đứt.
Block Chứa tên khối, điểm chèn, và các đối tượng thành phần.

Multiline style
Lưu trữ các thiết lập mà kiểm sự thể hiện của các đối tượng đường song
song (multiline).
Point style Lưu trữ thiết lập mà kiểm soát sự thể hiện của các đối tượng điểm.
Text style
Lưu trữ các thiết lập mà kiểm soát sự thể hiện của đối tượng chữ… Ví dụ,
thuộc tính kéo dài, co ngắn, góc nghiêng, đối xứng,…
Dimension style
Lưu trữ thiết lập ghi kích thước mà kiểm soát sự thể hiện của các ghi chú
kích thước.
2.2.1.2 Đối tượng hình học
Thực thể hay còn gọi là các đối tượng hình học nhìn thấy được (đoạn thẳng,
đường tròn, ảnh “raster”, …) tạo nên một bản vẽ. Các đối tượng hình học có đầy đủ
các đặc điểm cơ bản như chỉ số xác định, lớp (Layer), kiểu đường (Linetype), màu sắc
(Color),… Chúng cũng có các thuộc tính đặc biệt, phụ thuộc vào loại hình học của
chúng như tâm, bán kính và diện tích.
Thư viện đồ họa VeCAD hỗ trợ các loại đối tượng hình học sau:
Tên đối Mô tả
Đỗ Xuân Cảnh - TĐH TKCĐ K44 11
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
tượng
Điểm (Point)
Điểm là một vạch dấu mà có thể được thể hiện như một dâu chấm (“.”), hình
vuông, hình tròn, dấu “X”, hoặc dấu cộng (“+”), hoặc như là một điểm chèn
khối khi áp dụng cho đối tượng chữ. Thể hiện của điểm phụ thuộc vào kiểu
điểm (Po Style) được gán. Các điểm có thể đóng vai trò như các nút mà
người dùng có thể bắt điểm các đối tượng.
Đoạn thẳng (Line) Một đoạn thẳng đơn chỉ có hai điểm. Các đoạn thẳng có thể chỉ có một đoạn

hoặc một loạt các đoạn nối với nhau, nhưng mỗi đoạn là một đối tượng
đoạn thẳng riêng biệt. Đoạn thẳng được sử dụng nếu người dùng muốn
hiệu chỉnh một đoạn riêng biệt. Nếu người dùng muốn vẽ một loạt các đoạn
thẳng như một đối tượng đơn thì sử dụng đối tượng đường đa tuyến
(Polyline).
Đường đa tuyến
(Polyline)
Một đường đa tuyến là một chuỗi nối liên tục các đoạn thẳng hoặc đoạn
công để tạo nên một đối tượng đơn. Sử dụng các đường đa tuyến nếu
người dung muốn hiệu chỉnh toàn bộ đoạn một lúc (mặc dù cũng có hiệu
chỉnh chúng từng đoạn một). Người dùng có thể áp dụng các loại phương
thức khác nhau cho đường đa tuyến để tạo nên một đa giác. Một đường đa
tuyến khép kín có thể được tô đặc.
Hình chữ nhật
(Rectangle)
Đối tượng hình chữ nhật là đối tượng tạo nên từ các đoạn thẳng.
Đoạn song song
(Multiline)
Một đối tượng đường song song là một đối tượng tương tự như đối tượng
đường đa tuyến nhưng dưới dạng đường song song với nhau.
Cung tròn (Arc)
Đường tròn (Circle)
Elíp (Ellipse)
Text Đối tượng này truyền tải thông tin quan trọng trong bản vẽ của người dùng.
Người dùng có thể sử dụng đối tượng dòng chữ đơn cho tiêu đề của các
khối, để gán nhãn cho các phần của bản vẽ, mang đến sự khác biệt hoặc
viết dòng chú giải. Những đối tượng Text mới được tạo ra sẽ được gán cho
kiểu chữ hiện tại.
Mutiline Text Đối tượng “Multiline text” bao gồm nhiều dòng chữ hoặc một đoạn văn bản
mà sẽ được điền vừa độ rộng người dùng xác định. Nó có thể kéo dãn theo

phương đứng theo một chiều dài không xác định. Không quan tâm đến số
dòng, mỗi một tập hợp các đoạn văn bản tạo theo một định dạng đối tượng
đơn , mà người dùng có thể di chuyển, xoay, xóa, copy, đối xứng hoặc thay
đổi tỷ lệ. Ví dụ người dùng có thể thiết lập phông chữ, màu và chiều cao
chữ cho từng kí tự, chữ hoặc câu riêng biệt trong một đoạn văn bản.
Khối (Block) Chèn một khối đã được định nghĩa vào bản vẽ hiện tại. Chèn một khối vào
trong một khối khác để tạo nên các khối cần thiết. Một khối được chèn có
thể được vẽ như một mảng các khối giống nhau nếu số hàng và số cột lớn
hơn 1.
Ảnh “raster” Ảnh “raster” bao gồm một lưới chữ nhật các hình vuông nhỏ hoặc các dấu
chấm được biết như một điểm ảnh. Thư viện VeCAD không lưu trữ các ảnh
“raster” trong định dạng tệp của nó. Nó chỉ lưu trữ liên kết đến đường dẫn
của tệp ảnh được chèn vào bản vẽ. Thư viện VeCAD chỉ hỗ trợ định dạng
ảnh BMP.
Gạch bóng (Hatch) Đối tượng “Hatch” là một ranh giới được tô đặc bởi một mẫu các đoạn thẳng
hoặc bởi một màu nào đó. Phạm vi to có một vùng không được tô bên trong.
Thư viện VeCAD sử dụng các mẫu tô giống như định dạng của AutoCAD.
Tệp “hatches.pat” đi kèm với thư viện VeCAD bao gồm 68 mẫu tô được định
nghĩa sẵn. Người dùng có thể tạo mẫu tô của riêng mình.
Tham chiếu ngoài Đối tượng chèn một bản vẽ ngoài, hoặc tham chiếu ngoài là một đối tượng
Đỗ Xuân Cảnh - TĐH TKCĐ K44 12
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
(External
Referrence)
đóng vai trò như một khối, nhưng các định nghĩa của nó được lưu trữ trong
tệp bản vẽ chèn vào. Đối tượng XrefAn insertion of an external drawing, or
external reference (Xref), is an object that acts like a block, but its definitions
are stored in the inserted drawing's file. Xref objects don't inherit any

properties of the current drawing (layers, colors, etc.). An Xref drawing is
drawn with its own properties.
Ghi chú kích thước
(Dimension)
Đối tượng “Dimensions” chỉ ra kích thước của các đối tượng, khoảng cách
hoặc góc đo giữa các đối tượng, show the measurements of objects, the
distances or angles between objects, hoặc khoảng cách tính từ điểm một
điểm này đến một điểm khác do người dùng xác định. Thư viện VECAD
cung cấp 2 loại khi kích thước cơ bản: kích thước đoạn thẳng, kích thước
bán kính, và góc đo. Đối tượng “Dimensions” có thể nằm ngang, thẳng
đứng, được xoay,…
Chú giải (Leader) Một đối tượng “leader” là một đoạn thẳng hoặc một đoạn cong cùng với một
đầu mũi tên ở một một đầu và một xâu ký tự ở đầu còn lại. Thư viện VeCAD
đặt đối tượng “leader” vào lớp hiện tại. Mỗi một đối tượng “leader” đều
được mặc định nhận kiểu ghi kích thước hiện tại.
Thuộc tính
(Attribute)
Đối tượng “attribute” là một nhãn hoặc một thẻ mà gắn dữ liệu vào một khối.
Bất cứ khi nào người dùng chèn một khối có thuộc tính, VeCAD gán giá trị
mặc định cho các thuộc tính này. Sau đó người dùng có thể thay đổi giá trị
thuộc tính trong hộp thoại hoặc qua cửa sổ “Properties”. Các đối tượng
thuộc tính có thể đặt ẩn. Một thuộc tính ẩn không được hiển thị hoặc in ra,
tuy nhiên, thông tin của đối tượng này được lưu trữ trong tệp bản vẽ.
Đối tượng tùy biến
(Custom Object)
Đây là điểm mạnh của thư viện VeCAD. Nó cung cấp cho người dùng khả
năng tạo ra đối tượng hình học của riêng mình. Cách tạo và sử dụng đối
tượng này sẽ được nói kỹ trong phần sau.
2.2.2 Các sự kiện được cung cấp
Các sự kiện được cung cấp cho phép người lập trình có thể kiểm soát các hành

động của người dùng khi người dùng chạy chương trình. Thư viện VeCAD cung cấp
một vài loại sự kiện có thể được sử dụng để thêm mã thực thi. Với mỗi loại sự kiện
này người lập trình có thể tạo một hàm sự kiện riêng trong khi viết chương trình.
Những hàm này có một cú pháp xác định và cú pháp này bị phụ thuộc vào mẫu hàm đã
định sẵn. Trong quá trình viết mã, người lập trình phải đăng ký các hàm sự kiện vào hệ
thống theo các mẫu hàm khai báo sau:
Tên hàm Xảy ra khi…
CadOnEventMouseMove Người dùng di chuyển chuột trên cửa sổ bản vẽ.
CadOnEventMouseDown Người dùng nhấn chuột trong phạm vi cửa sổ bản vẽ.
CadOnEventMouseUp Người dùng nhả nút nhấn chuột trong phạm vi cửa sổ bản vẽ.
CadOnEventMouseDblClk Người dùng nhấn đúp chuột trong phạm vi cửa sổ bản vẽ.
CadOnEventMouseWheel Người dùng xoay chuột giữa.
CadOnEventMouseSnap Con trỏ chuột di chuyển (Khi hiệu ứng bắt điểm được bật)
CadOnEventKeyDown Người dùng nhấn một phím.
CadOnEventRegen Tái tạo lại bản vẽ.
CadOnEventLoadSave Tải hoặc ghi bản vẽ.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 13
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
CadOnEventDistance Người dùng đo chiều dài
CadOnEventArea Người dùng đo diện tích
CadOnEventSelCodepage Người dùng lựa chọn trang đã được tải lên.
CadOnEventFontReplace Thay thế phông chữ
CadOnEventPa Vẽ lại bản vẽ trong một cửa sổ.
CadOnEventDrawImage Vẽ các ảnh tùy biến.
CadOnEventSaveDib Lưu bản vẽ lại thành một ảnh “raster”.
CadOnEventPrompt Thông điệp hiển thi nhắc được đưa ra.
CadOnEventSelPage Trang in hiện tại được thay đổi
CadOnEventEntCreate Người dùng tạo một đối tượng.

CadOnEventEntLoad Một đối tượng được tải vào từ một tệp tin.
CadOnEventEntCopy Một đối tượng được copy.
CadOnEventEntErase Người dùng xóa một đối tượng.
CadOnEventEntMove Người dùng di chuyển một đối tượng.
CadOnEventEntRotate Người dùng xoay một đối tượng.
CadOnEventEntScale Người dùng thay đổi tỷ lệ của đối tượng.
CadOnEventEntChange Người dùng hiệu chỉnh một đối tượng.
CadOnEventEntSelect Người dùng thay đổi trạng thái lựa chọn của đối tượng.
CadOnEventExecute Khi một câu lệnh được thực hiện từ cửa sổ lệnh của VeCAD.
CadOnEventGripDrag Điểm “grip” đang được kéo.
CadOnEventGripMove Điểm “grip” được di chuyển.
CadOnEventCmdStart Ảnh hưởng của câu lệnh được bắt đầu.
CadOnEventCmdLBDown Người dùng nhấn chuột trong khi thực hiện lệnh trong cửa sổ lệnh.
CadOnEventCmdFinish Tác động của câu lệnh hết hiệu lực.
CadOnEventView Vùng hiển thị của bàn vẽ bị thay đổi.
CadOnEventEngrave Tạo các đường gạch cùng với hàm CadEngrave.
CadOnEventPolyFill Tô các đối tượng đa giác.
2.3 Điều khiển VeCAD ActiveX.
VeCAD ActiveX là một phần của hệ thống VeCAD, sau khi cài đặt VeCAD người
lập trình có thể thấy chúng trong danh sách các ActiveX với tên là VeCAD control. Nó
được mô tả bởi tệp tin “vecad.ocx” và sử dụng tệp “vecad.dll” cho quá trình làm việc
của nó. Giao tiếp của VeCAD OCX được dựa trên VeCAD API, tuy nhiên người lập
trình phải tuân theo các hướng dẫn của VeCAD API và áp dụng chúng cho OCX với
một vài quy tắc sau:
Đỗ Xuân Cảnh - TĐH TKCĐ K44 14
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
• Các tên dùng cho các phương thức OCX cũng giống như các hàm API, bỏ qua
từ “Cad” ở đầu. Ví dụ, để áp sử dụng hàm “CadAddLine” trong OCX phải sử

dụng phương thức Object.AddLine.
• Mỗi đối tượng OCX đều đã bao gồm đối tượng VeCAD và VeCAD cửa sổ
trong đó, tuy nhiên không cần thiết phải xác định “handle” của chúng như các
tham số cho các phương thức của OCX.
Ví dụ, để quan sát toàn bộ bản vẽ trong một cửa sổ:
 Khi sử dụng hàm API:
CadExecute (hDwg, hWnd, CAD_CMD_ZOOM_EXT ).
 Khi sử dụng hàm OCX:
Object.Execute( CAD_CMD_ZOOM_EXT ).
• Người không cần phải sử dụng các hàm CadOnEvent<event name> để đăng ký
các hàm sự kiện. Tất cả các sự kiện đều được cung cấp trong đối tượng VeCAD
OCX. Người lập trình chỉ cần thêm một đoạn mã cho các hàm sự kiện bằng IDE
của ngôn ngữ lập trình người lập trình sử dụng
2.4 Nghiên cứu khả năng xây dựng đối tượng mới của VeCAD.
Thư viện VeCAD có một tập hợp các hàm chức năng và sự kiện cho phép tạo các
đối tượng đặc biệt. Thư viện VeCAD cấp phát một vùng nhớ cho mỗi đối tượng, ứng
dụng của người lập trình chịu trách nhiệm cho loại dữ liệu sẽ được lưu trong vùng nhớ
này. Khi có nhu cầu thực hiện một vài hành động nào đó với đối tượng tùy biến,
VeCAD thực thi các sự kiện đặc biệt và ứng dụng của người lập trình phải xử lý chúng
để tạo nên các thay đổi tương ứng trong đối tượng hay bản vẽ.
Đối tượng tùy biến là một đối tượng đặc biệt của VeCAD. VeCAD xin cấp phát
một vùng nhớ cho đối tượng này và lưu chúng vào trong một bản vẽ . Khi đối đượng
tùy biến phải được hiển thị trong một cửa sổ hoặc sửa đổi bởi người sử dụng VeCAD
thực thi các sự kiện đặc biệt và ứng dụng của người lập trình chịu trách nhiệm thực
hiện các sự kiện này theo thứ tự mà người sử dụng có thể thao tác với các đối tượng
tùy biến này như các đối tượng thông thường của VeCAD.
Nếu một bản vẽ trong đó có chứa các đối tượng tùy biến được mở bằng bằng một
chương trình khác mà không được hỗ trợ các đối tượng này thì người dùng sẽ không
thể thấy chúng trong các chương trình này.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 15

ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
2.4.1 Cách thức tạo đối tượng tùy biến.
Để tạo một đối tượng tùy biến trong lập trình ta sử dụng hàm có tên
“AddCustom”.
Để tạo một đối tượng tùy biến tương tác lẫn nhau, với việc sử dụng hàm
CadExecute người lập trình phải tạo một đối tượng thực thi tùy biến.
Khi người lập trình có mã kiểm soát từ bất kỳ đối tượng nào cung cấp cho, người
lập trình có thể sử dụng các hàm cơ bản của loại đối tượng này. Người lập trình có thể
xác định loại đối tượng thông qua hàm có tên là “EntityGetType” . Nếu đối tượng này
là một đối tượng tùy biến (CAD_ENT_CUSTOM), các hàm dưới đây có thể được sử
dụng:
Tên hàm Ý nghĩa
CustomPutOwner Thiết lập một con trỏ trỏ đến một đối tượng bao bọc một đối tượng tùy biến
CustomGetOwner Trả lại một con trỏ trỏ đến một đối tượng bao bọc một đối tượng tùy biến
CustomGetType Trả lại kiểu của đối tượng tùy biến
CustomPutData Sao chép dữ liệu vào đối tượng tùy biến
CustomGetData Sao chép dữ liệu từ đối tượng tùy biến
CustomGetDataPtr Trả lại một con trỏ trỏ đến dữ liệu
CustomGetSize Trả lại kích thước của bộ đệm chứa dữ liệu của đối tượng tùy biến
2.4.1.1 Hàm CadAddCustom.
Ý nghĩa: Tạo một đối tượng tùy biến trong một bản vẽ. Đối tượng này sẽ được thêm
vào lớp hiện hành.
Cú pháp:
CadAddCustom (
int hDwg, // “Handle” của đối tượng VeCAD
int CustType, // Kiểu của đối tượng tùy biến
void* pData, // Con trỏ trỏ đến dữ liệu
int nBytes // Kích thước dữ liệu

)
Tham số:
hDwg - “Handle” của đối tượng VeCAD.
CustType - Kiểu của đối tượng tùy biến. Giá trị này sẽ được chuyển tiếp
cùng với các sự kiện của đối tượng tùy biến.
pData - Con trỏ trỏ đến dữ liệu sẽ sao chép cho đối tượng này khi được
tạo ra.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 16
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
nBytes - Kích thước dữ liệu của đối tượng tính theo byte. Nó định nghĩa
rằng kích thước bộ nhớ cần thiết mà VeCAD sẽ cấp phát cho đối
tượng này.
Giá trị trả lại: Giá trị “handle” của đối tượng tùy biến được tạo ra hoặc giá trị NULL
nếu hàm này không tạo ra đối tượng tùy biến.
2.4.1.2 Hàm CadCustomPutOwner.
Ý nghĩa: Tạo một con trỏ trỏ đến đối tượng chứa đối tượng tùy biến của VeCAD. Sau
đó, ta có thể truy xuất con trỏ trỏ đến đối tượng tùy biến nếu ta có giá trị “handler” của
đối tượng VeCAD thông qua hàm sự kiện.
Cú pháp:
void CadCustomPutOwner (
int hEnt, //“Handle” của đối tượng VeCAD
void* pObject // Con trỏ trỏ đến đối tượng tùy biến
)
Tham số:
hEnt - “Handle” của đối tượng tùy biến.
pObject - Con trỏ trỏ đến đối tượng tùy biến.
Giá trị trả lại: Không có.
2.4.1.3 Hàm CadCustomGetOwner

Ý nghĩa: Trả lại con trỏ trỏ đến đối tượng chứa đối tượng tùy biến của VeCAD.
Cú pháp:
CadCustomGetOwner (
int hEnt // “Handle” của đối tượng tùy biến
)
Tham số:
Ent - “Handle” của đối tượng tùy biến.
Giá trị trả lại: Con trỏ trỏ đến đối tượng tùy biến.
2.4.1.4 Hàm CadCustomGetType
Ý nghĩa: Trả lại kiểu của đối tượng tùy biến.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 17
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
Cú pháp:
CadCustomGetType (
int hEnt // “Handle” của đối tượng tùy biến
)
Tham số:
hEnt - “Handle” của đối tượng tùy biến.
Giá trị trả lại: Kiểu của con trỏ trỏ đến đối tượng tùy biến. Nó là giá trị mà đã được
đăng ký khi đối tượng tùy biến được tạo ra.
2.4.1.5 Hàm CadCustomPutData
Ý nghĩa: Sao chép dữ liệu vào đối tượng tùy biến.
Cú pháp:
void CadCustomPutData (
int hEnt, // “Handle” của đối tượng tùy biến
void* pData, // con trỏ trỏ đến dữ liệu
int nBytes // kích thước dữ liệu
)

Tham số:
hEnt - “Handle” của đối tượng tùy biến.
pData - Con trỏ trỏ đến dữ liệu sẽ sao chép cho đối tượng này khi được
tạo ra.
nBytes - Kích thước dữ liệu của đối tượng tính theo byte. Nó định nghĩa
rằng kích thước bộ nhớ cần thiết mà VeCAD sẽ cấp phát cho đối
tượng này.
Giá trị trả lại: Không có.
2.4.1.6 Hàm CadCustomGetData
Ý nghĩa: Truy xuất dữ liệu từ đối tượng tùy biến.
Cú pháp:
Đỗ Xuân Cảnh - TĐH TKCĐ K44 18
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
void CadCustomGetData (
int hEnt, // “Handle” của đối tượng tùy biến
void* pData // Con trỏ trỏ đến vùng nhớ đệm
)
Tham số:
hEnt - “Handle” của đối tượng tùy biến.
pData - Con trỏ trỏ đến vùng nhớ đệm có thể truy xuất dữ liệu từ đối
tượng. Ứng dụng của người lập trình phải cấp phát đủ bộ nhớ cho
vùng nhớ đệm kiểm soát dữ liệu này. Người lập trình có thể truy
xuất kích thước của dữ liệu bằng hàm CadCustonGetSize.
Giá trị trả lại: Không có.
2.4.1.7 Hàm CadCustomGetDataPtr
Ý nghĩa: Trả lại con trỏ trỏ đến dữ liệu của đối tượng tùy biến. Sử dụng con trỏ này ta
có thể đọc/ghi dữ liệu của đối tượng này. Cách này thực hiện nhanh hơn cách
sử dụng các hàm CadCustomPutData/CadCustomGetData.

Cú pháp:
CadCustomGetDataPtr (
int hEnt // “Handle” của đối tượng tùy biến
)
Tham số:
hEnt - “Handle” của đối tượng tùy biến.
Giá trị trả lại: Con trỏ trỏ đến đối tượng tùy biến.
2.4.1.8 Hàm CadCustomGetSize
Ý nghĩa: Trả lại kích thước của dữ liệu của đối tượng tùy biến.
Cú pháp:
CadCustomGetSize (
int hEnt // “Handle” của đối tượng tùy biến
)
Tham số:
Đỗ Xuân Cảnh - TĐH TKCĐ K44 19
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
hEnt - “Handle” của đối tượng tùy biến.
Giá trị trả lại: Kích thước của dữ liệu tính theo byte.
2.4.2 Hiển thị dữ liệu của đối tượng tùy biến trên cửa sổ “Properties”
Các hàm sau đây được sử dụng để hiển thị các dữ liệu của đối tượng tùy biến
trên của sổ “Properties” nơi mà người dùng có thể thay đổi dữ liệu của đối tượng tùy
biến.
Tên hàm Ý nghĩa
AddCustProp Truyền các giá trị của thuộc tính đến cửa sổ “Properties”
SetCustProp Cập nhật các giá trị hiển thị trong cửa sổ “Properties”
SetCustPropMode Cập nhật chế độ truy cập cho một thuộc tính nào đó
2.4.2.1 Hàm CadAddCustProp
Ý nghĩa: Truyền giá trị thuộc tính của đối tượng tùy biến đến cửa sổ “Properties”.

Hàm này chỉ có thể được sử dụng trong hàm sự kiện “CEntGetProps”
Cú pháp:
CadAddCustProp (
int IdProp, // Chỉ số xác định thuộc tính
string szName, // Tên thuộc tính
string szValue, // Giá trị thuộc tính
int ValType // Kiểu giá trị
)
Tham số:
IdProp - Thuộc tính xác định đối tượng. Nó sẽ được chuyển tiếp đến hàm
sự kiện CentGetProps khi người dùng thay đổi các giá trị của
thuộc tính này.
szName - Tên của thuộc tính. Giá trị của tham số này sẽ được hiển thị ở cột
bên trái trong của sổ “Properties”.
szValue - Chuỗi ký tự biểu thị cho giá trị của thuộc tính. Giá trị của tham số
này sẽ được hiển thị ở cột bên phải trong của sổ “Properties”.
ValType - Loại của điều khiển trong cửa sổ “Properties” có thể nhận một
trong các giá trị dưới đây:
Hằng số Mô tả
CAD_PROP_SEPARATOR Dấu phân cách
CAD_PROP_VALUE Hộp thoại “Textbox”
Đỗ Xuân Cảnh - TĐH TKCĐ K44 20
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
CAD_PROP_VALUE Hộp thoại “Combobox” với 2 giá trị “Yes” và
“No”
CAD_PROP_LIST Hộp thoại “Combobox” với một danh sách các
giá trị có thể nhận được
Việc kết hợp với bất kỳ loại hằng số nào trên đây đều có thể được

sử dụng hằng số CAD_PROP_READONLY để tạo nên một thuộc
tính không thay đổi được.
Giá trị trả lại: Nếu hàm thành công, giá trị trả lại sẽ khác “0”.
2.4.2.2 Hàm CadSetCustProp
Ý nghĩa: Hàm này chỉ có thể được dùng trong hàm sự kiện “CEntPutProp” nhằm cập
nhật các giá trị hiển thị trong cửa sổ “Properties”.
Cú pháp:
CadSetCustProp (
int IdProp, // Chỉ số xác định thuộc tính
string szValue // Giá trị mới
)
Tham số:
IdProp - Thuộc tính xác định đối tượng. Tham số này được gán cho thuộc
tính cùng với hàm CadAddCustProp.
szValue - Giá trị mới gán cho thuộc tính của đối tượng tùy biến.
Giá trị trả lại: Nếu hàm thành công, giá trị trả lại sẽ khác “0”.
2.4.2.3 Hàm CadSetCustPropMode
Ý nghĩa: Hàm này chỉ có thể được dùng trong hàm sự kiện “CEntPutProp” nhằm cập
nhật chế độ truy cập đến các giá trị xác định trong cửa sổ “Properties”.
Cú pháp:
CadSetCustPropMode (
int IdProp, // Chỉ số xác định thuộc tính
bool bReadOnly // Chế độ truy cập mới
)
Tham số:
IdProp - Thuộc tính xác định đối tượng. Tham số này được gán cho thuộc
tính cùng với hàm CadAddCustProp.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 21
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ

VIỆN ĐỒ HỌA VECAD
bReadOnly - Nếu giá trị là đúng (khác “0”) thì người dùng không thể thay đổi
giá trị cua thuộc tính.
Giá trị trả lại: Nếu hàm thành công, giá trị trả lại sẽ khác “0”.
2.4.3 Các sự kiện của đối tượng tùy biến
Tên sự
kiện
Sự kiện xảy ra khi…
CEntGetName VeCAD cần tên của đối tượng tùy biến
CEntGetProps VeCAD cần điền các giá trị vào cửa sổ “Properties” cho đối tượng tùy biến
CEntPutProp Người dùng thay đổi giá trị thuộc tính trong cửa sổ “Properties”
CEntGetExts VeCAD cần các thuộc tính mở rộng của đối tượng tùy biến 3D
CEntNumGrips VeCAD cần số điểm “grip” của đối tượng tùy biến
CEntGetGrip VeCAD cần vị trí các điểm “grip”của đối tượng tùy biến
CEntMoveGrip Người dùng di chuyển các điểm “grip” của đối tượng tùy biến
CEntMove Người dùng di chuyển đối tượng tùy biến
CEntRotate Người dùng xoay đối tượng tùy biến
CEntScale Người dùng thay đổi tỉ lệ hiển thị của đối tượng tượng tùy biến
CEntMirror Người dùng sao chép đối tượng tùy biến
CEntDisplay VeCAD hiển thị đối tượng tùy biến
2.4.3.1 Hàm sự kiện CEntGetName
Ý nghĩa: VeCAD gọi sự kiện “CEntGetName” mỗi khi cần truy xuất tên của đối
tượng tùy biến. Ứng dụng của người lập trình phải trả lại tên của đối tượng
thông qua hàm “CadSetReturnStr”. VeCAD hiển thị tên của đối tượng
này trong cửa sổ “Properties” khi đối tượng này được lựa chọn.
Cú pháp: Hàm này phải được tạo ra trong ứng dụng của người lập trình theo cú pháp
sau
void CEntGetNameProc (
int hDwg, // “handle” của đối tượng VeCAD
int hEnt // “handle” của đối tượng tùy biến

)
Tham số:
hDwg - “Handle” của đối tượng VeCAD.
hEnt - “Handle” của đối tượng tùy biến.
Giá trị trả lại: Tên của đối tượng tùy biến xác định. Giá trị này được trả lại bởi hàm
“CadSetReturnStr”.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 22
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
2.4.3.2 Hàm sự kiện CEntGetProps
Ý nghĩa: VeCAD gọi sự kiện “CEntGetProps” mỗi khi cần truy xuất các thuộc tính
của đối tượng tùy biến cho cửa sổ “Properties”. Trong sự kiện này người
lập trình phải sử dụng hàm “CadAddCustProp” để thiết lập cho các giá trị
của các thuộc tính.
Cú pháp: Hàm này phải được tạo ra trong ứng dụng của người lập trình theo cú pháp
sau
void CEntGetPropsProc (
int hDwg, //“handle” của đối tượng VeCAD
int hEnt // “handle” của đối tượng tùy biến
)
Tham số:
hDwg - “Handle” của đối tượng VeCAD.
hEnt - “Handle” của đối tượng tùy biến.
Giá trị trả lại: Không có.
2.4.3.3 Hàm sự kiện CEntPutProps
Ý nghĩa: VeCAD gọi sự kiện “CEntPutProps” sau khi người dùng thay đổi giá trị
của thuộc tính của đối tượng tùy biến trong cửa sổ “Properties”.
Cú pháp: Hàm này phải được tạo ra trong ứng dụng của người lập trình theo cú pháp
sau

void CEntPutPropProc (
int hDwg, // “handle” của đối tượng VeCAD
int hEnt // “handle” của đối tượng tùy biến
int PropId, // chỉ số xác định thuộc tính
string szValue // giá trị của thuộc tính
)
Tham số:
hDwg - “Handle” của đối tượng VeCAD.
hEnt - “Handle” của đối tượng tùy biến.
PropId - Tham số xác định đối tượng, nó đã được gán cho thuộc tính đối
tượng khi thuộc tính này đã được thếp vào cửa sổ “Properties”
trong hàm “CadAddCustProp”.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 23
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
szValue - Giá trị mới cho thuộc tính của đối tượng tùy biến, dưới dạng
chuỗi. Nếu thuộc tính này ở dạng dữ liệu khác, người lập trình
phải có sự chuyển đổi thích hợp.
Trong sự kiện này người lập trình phải kiểm tra tính hợp lệ của giá trị, và thiết
lập chính xác giá trị trong của sổ “Properties” cùng với hàm
“CadSetCustProp”. Nếu giá trị mới làm thay đổi các giá trị của các thuộc tính
khác, thì người lập trình cũng phải thiết lập cho chúng. Nếu người lập trình cần
thiết phải thay đổi chế độ “chỉ đọc” (“ReadOnly”) cho một vài thuộc tính người
lập trình có thể sử dụng hàm “CadSetCustPropMode”.
Giá trị trả lại: Không có.
2.4.3.4 Hàm sự kiện CEntGetExts
Ý nghĩa: VeCAD gọi sự kiện “CEntGetExts” khi truy xuất không gian 3 chiều (3D)
của đối tượng tùy biến. Phạm vi không gian 2 chiều trong cửa sổ hiện thị
được tính toán tự động. Nếu người lập trình không cần quan tâm đến bản vẽ

3 chiều trong ứng dụng của người lập trình thì người lập trình có thể bỏ qua
sự kiện này.
Cú pháp: Hàm này phải được tạo ra trong ứng dụng của người lập trình theo cú pháp
sau
void CEntGetExtsProc (
int hDwg, // “handle” của đối tượng VeCAD
int hEnt, // “handle” của đối tượng tùy biến
double* pXmin, // con trỏ trỏ đến tọa độ X nhỏ nhất
double* pYmin, // con trỏ trỏ đến tọa độ Y nhỏ nhất
double* pZmin, // con trỏ trỏ đến tọa độ Z nhỏ nhất
double* pXmax, // con trỏ trỏ đến tọa độ X lớn nhất
double* pYmax, // con trỏ trỏ đến tọa độ Y lớn nhất
double* pZmax // con trỏ trỏ đến tọa độ Z lớn nhất
)
Tham số:
hDwg - “Handle” của đối tượng VeCAD.
hEnt - “Handle” của đối tượng tùy biến.
pXmin, pYmin, pZmin - Con trỏ trỏ đến biến sẽ nhận giá trị nhỏ nhất của
không gian.
Đỗ Xuân Cảnh - TĐH TKCĐ K44 24
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU KHẢ NĂNG CỦA THƯ
VIỆN ĐỒ HỌA VECAD
pXmax, pYmax, pZmax - Con trỏ trỏ đến biến sẽ nhận giá trị lớn nhất của
không gian.
Giá trị trả lại: Không có.
2.4.3.5 Hàm sự kiện CEntNumGrips
Ý nghĩa: VeCAD gọi sự kiện “CEntNumGrips” khi truy xuất số điểm “grip” của một
đối tượng tùy biến.
Cú pháp: Hàm này phải được tạo ra trong ứng dụng của người lập trình theo cú pháp

sau
void CEntNumGripsProc (
int hDwg, // “handle” của đối tượng VeCAD
int hEnt, // “handle” của đối tượng tùy biến
int* pNum // con trỏ trỏ đến biến số nguyên
)
Tham số:
hDwg - “Handle” của đối tượng VeCAD.
hEnt - “Handle” của đối tượng tùy biến.
pNum - Con trỏ trỏ đến biến số nguyên sẽ chứa số điểm
“grip”.
Giá trị trả lại: Không có.
2.4.3.6 Hàm sự kiện CEntGetGrip
Ý nghĩa: VeCAD gọi sự kiện “CEntGetGrip” khi truy xuất tọa độ điểm “grip” của
một đối tượng tùy biến.
Cú pháp: Hàm này phải được tạo ra trong ứng dụng của người lập trình theo cú pháp
sau
void CEntGetGripProc (
int hDwg, // “handle” của đối tượng VeCAD
int hEnt, // “handle” của đối tượng tùy biến
uint iGrip, // Chỉ số của điểm “grip”
double* pX, // con trỏ trỏ đến biến tọa độ X
double* pY, // con trỏ trỏ đến biến tọa độ Y
double* pZ // con trỏ trỏ đến biến tọa độ Z
)
Tham số:
Đỗ Xuân Cảnh - TĐH TKCĐ K44 25

×