1. Trang chủ
  2. » Luận Văn - Báo Cáo

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ơ

97 472 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 97
Dung lượng 4,08 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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ươ

Trang 1

MỤC LỤC

MỤC LỤC 1

Phần 1:ĐẶT VẤN ĐỀ 3

1.1 Phạm vi nghiên cứu của đồ án 6

1.2 Cá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.1 Giới thiệu về thư viện đồ họa VeCAD 7

2.2 Thư viện đồ họa liên kết động VeCAD 9

2.2.1 Hệ thống đối tượng 9

2.2.2 Các sự kiện được cung cấp 13

2.3 Điều khiển VeCAD ActiveX 15

2.4 Nghiên cứu khả năng xây dựng đối tượng mới của VeCAD 15

2.4.1 Cách thức tạo đối tượng tùy biến 16

2.4.2 Hiển thị dữ liệu của đối tượng tùy biến trên cửa sổ “Properties” 20

2.4.3 Các sự kiện của đối tượng tùy biến 22

2.4.4 Các sự kiện dùng khi hiển thị đối tượng tùy biến 30

2.5 Đánh giá về thư viện đồ họa VeCAD: 41

Phần 3:PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 42

3.1 Phân tích bài toán 42

3.1.1 Các yêu cầu cần thiết 42

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” 42

3.1.3 Phân tích đặc điểm hình học của các cấu kiện khác: 44

3.2 Phương pháp thiết kế hệ thống 47

3.3 Thiết kế hệ thống đối tượng cho chương trình 47

3.3.1 Các lớp mô tả đối tượng “Mặt cắt ngang nền đường” 47

3.3.2 Các lớp mô tả đối tượng cấu kiện “Dầm BTCT”, “Cọc BTCT”, “Bản BTCT”: 51

3.3.3 Các lớp quản lý chung phục vụ cho chương trình 56

3.3.4 Định dạng các tệp dữ liệu được thiết kế trong chương trình 56

3.3.5 Phân tích thiết kế các giao diện cho chương trình 59

Trang 2

4.1 Môi trường lập trình và các công cụ phục vụ phát triển chương trình 60

4.2 Ngôn ngữ lập trình C#: 61

4.3 XML 61

4.3.1 Khái niệm XML 61

4.3.2 Ưu nhược điểm 62

4.4 Xây dựng các lớp cho chương trình 62

4.4.1 Các lớp mô tả đối tượng “Mặt cắt ngang nền đường” 62

4.4.2 Các lớp mô tả các đối tượng cấu kiện hình học 64

4.4.3 Lớ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.5 Xây dựng các giao diện cho chương trình 67

4.5.1 Giao diện chính (frmMain) 67

4.5.2 Giao diện nhập thông số hiển thị mặt cắt ngang đường (frmInputCSParam) 79

4.5.3 Giao diện nhập thông số cho đầu trắc ngang (frmTableViewStyle) 80

4.5.4 Giao 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.5 Giao 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

4.5.6 Giao 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.7 Giao diện nhập dữ liệu cho bản bê tông cốt thép (frmPlate) 85

4.5.8 Giao diện để vẽ các đối tượng hình học (frmVeCAD) 86

4.5.9 Giao 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 87

5.1 Kết quả đạt được của đồ án: 87

5.1.1 Một chương trình CAD thông dụng: 87

5.1.2 Xây dựng và thể hiện đối tượng “Mặt cắt ngang nền đường” 88

5.1.3 Xây dựng và hiển thị thành công đối tượng dầm BTCT 3D 89

5.1.4 Xây dựng và hiển thị thành công đối tượng cọc BTCT 3D 91

5.2 Hướng phát triển: 94

MỤC LỤC HÌNH VẼ 95

Trang 3

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 đờisố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ươngphá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àiliệ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ớtcô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ớikiế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 caocò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ỗimô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úpcho 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ấtlượ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ềuvấ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ể

Trang 4

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êucầ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êncù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ácphầ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ôngtrì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 trongmỗ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 khithự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ấtnhiề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ảntrở 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úpthiế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ânnhắ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 quantrọ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ệmthờ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ạihó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ácthiế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

Trang 5

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ínhnă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ấttố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 3nhó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ốngrấ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 đốitượng COM (Component Object Model) để nhà phát triển thứ bà có thể lập ra phầnmề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ềmnà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 Namcũ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 đượcphầ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 CADnê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

Trang 6

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ínhtoá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ứucá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”.

- 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ắtngang 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

Trang 9

 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ònglệnh, đây là một giao tiếp macro tiềm năng cho người lập trình

1.4 Thư viện đồ họa liên kết động VeCAD.

1.4.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), …

Trang 10

Hình 1 Mô hình đối tượng trong thư viện VeCAD

Phi hình học

VeCAD

Layers

Hình học Layer

Linetypes Linetype

Blocks Block

Text Styles Text Style

Point Styles Point Style

Multiline Styles Multiline Style

Dimension Styles Phi hình học

Points Point

Polylines Polyline Rectangles

s

Rectangle Multilines Multiline

Circle Ellipses

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:

Trang 11

1.4.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áchkhá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 phihì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ộttậ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ưucá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:

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.

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ả

Trang 12

Điểm ( Po int) Đ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ạncô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.

Trang 13

(External

Referrence) đóng vai trò như một khối, nhưng các định nghĩa của nó được lưu trữ trongtệ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.

1.4.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ệnnà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:

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ẽ.

Trang 14

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.

1.5 Đ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:

Trang 15

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áctham 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

1.6 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ựchiệ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ộtchươ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ôngthể thấy chúng trong các chương trình này

Trang 16

1.6.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

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:

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

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

Trang 17

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 đốitượ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

Ý 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ó.

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.

Ý nghĩa: Trả lại kiểu của đối tượng tùy biến

Trang 18

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

Ý 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 đốitượng này

Giá trị trả lại: Không có.

Ý nghĩa: Truy xuất dữ liệu từ đối tượng tùy biến

Cú pháp:

Trang 19

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ớ chovù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ó.

Ý 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

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.

Trang 20

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.

1.6.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

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 đó

Ý 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:

Trang 21

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 đượcViệ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”.

Ý 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”.

Ý 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.

Trang 22

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”.

1.6.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

Ý 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

Trang 23

1.6.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ó.

Ý 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”

Trang 24

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ìnhphả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ầnthiế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ó.

Ý 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ố:

pXmin, pYmin, pZmin - Con trỏ trỏ đến biến sẽ nhận giá trị nhỏ nhất của

không gian

Trang 25

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ó.

Ý 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ố:

“grip”

Giá trị trả lại: Không có.

Ý 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ố:

Trang 26

hDwg - “Handle” của đối tượng VeCAD.

hEnt - “Handle” của đối tượng tùy biến

iGrip - Chỉ số điểm gốc cơ sở của điểm “grip”

pX, pY, pZ - Con trỏ trỏ đến biến số nguyên sẽ chứa các tọa độ điểm “grip”

Giá trị trả lại: Không có.

Ý nghĩa: VeCAD gọi sự kiện “CEntMoveGrip” khi người dùng di chuyển điểm grip

của đố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 CEntMoveGripProc (

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ố điểm “grip”

double dx, // khoảng dịch chuyển X của điểm “grip” double dy, // khoảng dịch chuyển Y của điểm “grip” double dz // khoảng dịch chuyển Z của điểm “grip” )

Tham số:

hDwg - “Handle” của đối tượng VeCAD

hEnt - “Handle” của đối tượng tùy biến

iGrip - Chỉ số điểm gốc cơ sở của điểm “grip”

dx, dy, dz - Khoảng dịch chuyển của điểm “grip”

Giá trị trả lại: Không có.

Ý nghĩa: VeCAD gọi sự kiện “CEntMove” khi người dùng di chuyển đối tượng tùy

biến Trong hàm này người lập trình phải hiệu chỉnh dữ liệu của đối tượngtùy biến, theo thứ tự nó hiển thị chính xác sau khi di chuyể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

Trang 27

void CEntMoveProc (

int hDwg, // “handle” của đối tượng VeCAD

int hEnt, // “handle” của đối tượng tùy biến

double dx, // khoảng dịch chuyển X của điểm “grip” double dy, // khoảng dịch chuyển Y của điểm “grip” double dz // khoảng dịch chuyển Z của điểm “grip” )

Tham số:

hDwg - “Handle” của đối tượng VeCAD

hEnt - “Handle” của đối tượng tùy biến

dx, dy, dz - Khoảng dịch chuyển

Giá trị trả lại: Không có.

1.6.3.9 Hàm sự kiện CEntRotate

Ý nghĩa: VeCAD gọi sự kiện “CEntRotate” khi người dùng xoay đối tượng tùy biến.

Trong hàm này người lập trình phải hiệu chỉnh dữ liệu của đối tượng tùybiến, theo thứ tự nó hiển thị chính xác sau khi xoay

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 CEntRotateProc (

int hDwg, // “handle” của đối tượng VeCAD

int hEnt, // “handle” của đối tượng tùy biến

double x0, // tọa độ X của tâm quay

double y0, // tọa độ X của tâm quay

double z0, // tọa độ X của tâm quay

double Angle, // góc quay

int Plane // mặt phẳng quay

)

Tham số:

hDwg - “Handle” của đối tượng VeCAD

hEnt - “Handle” của đối tượng tùy biến

x0, y0, z0 - Tọa độ tâm quay

Angle - Góc quay tính theo radian theo chiều ngược chiều kim đồng hồ

tính từ trục 0-x

Trang 28

Plane - Mặt phẳng quay.

Giá trị trả lại: Không có.

1.6.3.10 Hàm sự kiện CEntScale

Ý nghĩa: VeCAD gọi sự kiện “CEntScale” khi người dùng thu phóng đối tượng tùy

biến Trong hàm này người lập trình phải hiệu chỉnh dữ liệu của đối tượngtùy biến, theo thứ tự nó hiển thị chính xác sau thao tác thu phóng

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 CEntScaleProc (

int hDwg, // “handle” của đối tượng VeCAD

int hEnt, // “handle” của đối tượng tùy biến

double x0, // tọa độ X của tâm thu phóng

double y0, // tọa độ Y của tâm thu phóng

double z0, // tọa độ Z của tâm thu phóng

double ScaleX, // tỷ lệ dọc theo trục X

double ScaleY, // tỷ lệ dọc theo trục X

double ScaleZ // tỷ lệ dọc theo trục X

)

Tham số:

ScaleX, ScaleY, ScaleZ - Giá trị tỉ lệ thu phóng dọc theo từng trục

Giá trị trả lại: Không có.

1.6.3.11 Hàm sự kiện CEntMirror

Ý nghĩa: VeCAD gọi sự kiện “CEntMirror” khi người dùng lấy đối xứng đối tượng

tùy biến Trong hàm này người lập trình phải hiệu chỉnh dữ liệu của đốitượng tùy biến, theo thứ tự nó hiển thị chính xác sau thao tác lấy đối xứng

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

Trang 29

void CEntMirrorProc (

int hDwg, // “handle” của đối tượng VeCAD

int hEnt, // “handle” của đối tượng tùy biến

double A1, // hệ số xác định các cạnh lấy đối xứng

double B1, // hệ số xác định các cạnh lấy đối xứng

int Plane // mặt phẳng lấy đối xứng

)

Tham số:

A1, B1 - Các hệ số xác định các cạnh lấy đối xứng

Giá trị trả lại: Không có.

1.6.3.12 Hàm sự kiện CEntDisplay

Ý nghĩa: VeCAD gọi sự kiện “CEntDisplay” khi cần hiển thị hoặc tái tạo lại đối

tượng tùy biến Trong hàm này người lập trình phải dùng các hàm

CadDraw… để xác định kiểu dáng của đố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 CEntDisplayProc (

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ó.

1.6.4 Các sự kiện dùng khi hiển thị đối tượng tùy biến

Trong thủ tục của sự kiện CentDisplay người lập trình phải sử dụng các hàm thiết

lập sau để tạo nên hiển thị của đối tượng tùy biến trong một bản vẽ

DrawSet Thiết lập các thông số vẽ

Trang 30

DrawGetDC Trả lại “handle” của thiết bị hiện tại

DrawAddVertex Định nghĩa một đỉnh của đối tượng hình học

DrawGenArc Phát sinh một mảng các đỉnh tạo nên một cung tròn

DrawGenCircle Phát sinh một mảng các đỉnh tạo nên một đường tròn

DrawPolyline Vẽ một đường “polyline”

DrawPolygon Vẽ một đa giác ( đường “polyline” khi kín được tô đặc bên trong)

DrawPolyPolygon Vẽ một loạt các đa giác

int Param, // chỉ số của tham số

int Value // giá trị mới cho tham số

)

Tham số:

Param - Xác định tham số sẽ được thiết lập Có thể lấy một trong các

hằng số sau

CAD_CE_CLEARVERS Xóa bộ nhớ đệm các đỉnh Bỏ qua

CAD_CE_COLOR Được dùng trong hàm sự kiện

CentDisplay để thiết lập màu sắc

cho các phần tử của đối tượng tùy biến

Nếu người lập trình thiết lập màu sắc bởi phương thức này thì sau này người lập trình không thể thay

Màu VeCAD

Trang 31

diện VeCAD.

Tham số này được sử dụng để tạo các đối tượng tùy biến có nhiều màu sắc.

CAD_CE_BRUSH

Định nghĩa mẫu tô cho các hình đa giác được vẽ bởi các hàm

CadDraw…

Tham số này không có ảnh hưởng

trong hàm sự kiện CEntDisplay.

“Handle” của đối tượng vẽ của Windows (HBRUSH) Nếu giá trị ‘0’ được xác định thì mẫu tô đặc cùng với màu hiện tại của VeCAD sẽ được sử dụng.Value - Giá trị cho tham số đã xác định Một vài tham số không yêu cầu

Ý nghĩa: Thêm một đỉnh của đường đa tuyến vào vùng nhớ đệm Trước khi người lập

trình gọi hàm này để vẽ một đường đa tuyến, người lập trình phải đưa tất cảcác đỉnh của nó vào trong vùng nhớ đệm

Chú ý: Mặc định, vùng nhớ đệm đỉnh đường đa tuyến sẽ được xóa sau khi việc thực

hiện một hàm vẽ khối hình học Nếu người lập trình không muốn xóa vùng nhớ đệm

Trang 32

này thì phải gọi hàm CadDrawSet cùng với tham số CAD_CE_KEEPVERS trước khi

double Xcen, // tọa độ X của tâm cung tròn

double Ycen, // tọa độ Y của tâm cung tròn

double Zcen, // tọa độ Z của tâm cung tròn

double Radius, // bán kính cung tròn

double AngStart, // góc bắt đâu của cung tròn

double AngArc, // góc tổng của cung tròn

int nVers // số đỉnh trên một cung tròn 90 0

)

Tham số:

Xcen, Ycen, Zcen - Tọa độ điểm tâm cung tròn

Radius - Bán kính cung tròn

AngStart - Góc bắt đầu của cung tròn tính theo radian, theo chiều

ngược chiều kim đồng hồ tính từ trục O-X

AngArc - Góc của cung tròn, tính theo radian Giá trị dương có

nghĩa là hướng của cung tròn theo chiều ngược chiều kimđồng hồ, giá trị âm có nghĩa là hướng của cung tròn theochiều thuận chiều kim đồng hồ

nVers - Số đỉnh được phát sinh cho một cung tròn có góc là 90o

Giá trị trả về: Số đỉnh được phát sinh.

Ý nghĩa: Phát sinh một mảng các đỉnh tạo nên một đường tròn và lưu chúng vào trong

một vùng nhớ đệm

Cú pháp:

Trang 33

CadDrawGenCircle (

double Xcen, // tọa độ X của tâm đường tròn

double Ycen, // tọa độ Y của tâm đường tròn

double Zcen, // tọa độ Z của tâm đường tròn

double Radius, // bán kính đường tròn

int nVers // số đỉnh trên một đoạn đường tròn góc 90 0

Chú ý: Mặc định, hàm này sẽ xóa toàn bộ các đỉnh trong vùng nhớ đệm sau khi sử

dụng Để giữ vùng nhớ đệm cho các thao tác khác, trước đó gọi hàm

CadDrawSet với tham số CAD_CE_KEEPVERS.

Ý nghĩa: Hàm này thực hiện vẽ một đa giác (đường đa tuyến khép kín và được tô đặc)

sử dựng các đỉnh mà đã được thêm trước vào vùng nhớ đệm bằng hàm

CadDrawAddVertex.

Cú pháp:

void CadDrawPolygon ()

Tham số: Không có.

Trang 34

Giá trị trả về: Không có.

Chú ý: Mặc định, hàm này sẽ xóa toàn bộ các đỉnh trong vùng nhớ đệm sau khi sử

dụng Để giữ vùng nhớ đệm cho các thao tác khác, trước đó gọi hàm

CadDrawSet với tham số CAD_CE_KEEPVERS.

int* PgonSize, // con trỏ trỏ đến mảng các số nguyên

int nPgons // số đa giác

)

Tham số:

PgonSize - Con trỏ trỏ đến một mảng các số nguyên, mỗi một phần tử của

mảng sẽ xác định số điểm tương ứng của mỗi đa giác Mỗi sốnguyên phải lớn hơn hoặc bằng 3 Tổng các số này phải bằng sốđỉnh trong vùng nhớ đệm

nPgons - Xác định tổng số đa giác

Giá trị trả về: Không có.

Chú ý: Mặc định, hàm này sẽ xóa toàn bộ các đỉnh trong vùng nhớ đệm sau khi sử

dụng Để giữ vùng nhớ đệm cho các thao tác khác, trước đó gọi hàm

CadDrawSet với tham số CAD_CE_KEEPVERS.

Ý nghĩa: Thực hiện vẽ một đường thẳng trong cửa sổ VeCAD.

Cú pháp:

Trang 35

void CadDrawLine (

double X1, // tọa độ X của điểm đầu

double Y1, // tọa độ Y của điểm đầu

double Z1, // tọa độ Z của điểm đầu

double X2, // tọa độ X của điểm cuối

double Y2, // tọa độ Y của điểm cuối

double Z2 // tọa độ Z của điểm cuối

)

Tham số:

X1, Y1, Z1 - Tọa độ của điểm đầu đoạn thẳng

X2, Y2, Z2 - Tọa độ của điểm cuối đoạn thẳng

double X, // tọa độ X của điểm vẽ

double Y, // tọa độ Y của điểm vẽ

double Z, // tọa độ Z của điểm vẽ

int PtMode, // cách thể hiện của điểm

double PtSize // kích thước của điểm

)

Tham số:

X, Y, Z - Tọa độ của điểm vẽ

PtMode - Xác định thể hiện của điểm vẽ theo các hằng số sau:

CAD_PNT_PIXEL Điểm ảnh CAD_PNT_NONE Không có gì CAD_PNT_PLUS Dấu cộng “+”

CAD_PNT_X Dấu nhân “x”

CAD_PNT_TICK Dấu tích thẳng đứng Các giá trị hằng số sau có thể được sử dụng kết với từng hằng số trên để tạo thành thể hiện thích hợp

CAD_PNT_CIRCLE Hình tròn

Trang 36

CAD_PNT_SQUARE Hình vuôngPtSize - Kích thước điểm

Giá trị dương (+): nghĩa là theo đơn vị của bản vẽ, việc hiển thịcủa kích thước điểm phụ thuộc vào tỷ lệ khung nhìn của bản vẽtrong một cửa sổ

Giá trị âm (-): nghĩa là theo tỷ lệ % chiều cao của màn hình, việchiển thị kích thước điểm luôn là một hằng số

Giá trị trả về: Không có.

Chú ý: Các minh họa sau chỉ ra toàn bộ kiểu hiển thị của điểm:

Hình 2 Hình vẽ mô tả thể hiện của các điểm

1.6.4.11 Hàm CadDrawText

Ý nghĩa: Thực hiện vẽ dòng chữ lên cửa sổ VeCAD.

Cú pháp:

void CadDrawText (

int hDwg, // “handle” của đối tượng VeCAD

string szText, // xâu ký tự

double X, // tọa độ X của điểm chèn

double Y, // tọa độ X của điểm chèn

double Z // tọa độ X của điểm chèn

)

Tham số:

hDwg - “Handle” của đối tượng VeCAD

szText - Xâu ký tự muốn vẽ

Trang 37

X, Y, Z - Tọa độ của điểm chèn Vị trí của dòng chữ xung quanh điểm

chèn phụ thuộc vào kiểu căn chỉnh hiện tại mà đã được thiết lập

trước bằng hàm CadSetTextAlign.

Chú ý: Để vẽ một dòng chữ hàm này sử dụng các tham số mặc định đã thiết lập bởi

các hàm sau:

CadSetTextAlign Thiết lập căn chỉnh hiển thị dòng chữ mặc định

CadSetTextHeight Thiết lập chiều cao chữ mặc định

CadSetTextWidth Thiết lập hệ số chiều rộng chữ mặc định

CadSetTextRotAngle Thiết lập góc quaymặc định của dòng chữ

CadSetTextOblique Thiết lập góc nghiêng mặc định của chữ

1.6.4.11.1 Hàm CadSetTextAlign

Ý nghĩa: Thiết lập căn chỉnh mặc định cho đối tượng “text” sẽ được tạo ra sau này.

Cú pháp:

CadSetTextAlign (

int hDwg, // “handle” của đối tượng VeCAD

int Align // giá hằng số căn chỉnh

)

Tham số:

hDwg - “Handle” của đối tượng VeCAD

Align - Hằng số căn chỉnh dòng chữ liên quan đến vị trí điểm chèn Thư

viện VeCAD cung cấp các hằng số mặc định sau:

CAD_TA_BOTLEFT Điểm chèn ở góc trái dưới dòng chữ

CAD_TA_BOTCENTER Điểm chèn ở chính giữa bên dưới dòng chữ

CAD_TA_BOTRIGHT Điểm chèn nằm ở góc trái dưới dòng chữ

CAD_TA_MIDLEFT Điểm chèn nằm ở giữa bên trái dòng chữ

CAD_TA_MIDCENTER Điểm chèn nằm ở tâm hình chữ nhật bao dòng chữ

CAD_TA_MIDRIGHT Điểm chèn nằm ở giữa bên phải dòng chữ

CAD_TA_TOPLEFT Điểm chèn nằm ở góc trái trên dòng chữ

CAD_TA_TOPCENTER Điểm chèn nằm ở giữa bên trên dòng chữ

CAD_TA_TOPRIGHT Điểm chèn nằm ở góc trên bên phải dòng chữ

Giá trị mặc định ban đầu là: CAD_TA_BOTLEFT.

Trang 38

Giá trị trả về: Giá trị căn chỉnh mặc định trước đó.

1.6.4.11.2 Hàm CadSetTextHeight

Ý nghĩa: Thiết lập chiều cao chữ mặc định cho đối tượng “Text” tạo ra sau này.

Cú pháp:

CadSetTextHeight (

int hDwg, // “handle” của đối tượng VeCAD

double Height // chiều cao chữ

)

Tham số:

hDwg - “Handle” của đối tượng VeCAD

Height - Chiều cao chữ theo đơn vị của bản vẽ Giá trị ban đầu là 2.5

Giá trị trả về: Giá trị chiều cao chữ mặc định trước đó.

1.6.4.11.3 Hàm CadSetTextWith

Ý nghĩa: Thiết lập tỷ lệ chiều rộng chữ mặc định cho đối tượng “Text” tạo ra sau này.

Cú pháp:

CadSetTextWidth (

int hDwg, // “handle” của đối tượng VeCAD

double Width // tỷ lệ chiều rộng

)

Tham số:

hDwg - “Handle” của đối tượng VeCAD

Width - Tỷ lệ chiều rộng chữ Giá trị giới hạn từ 0.1 đến 5 Giá trị ban

đầu là 1 Giá trị trả về: Giá trị tỷ lệ chiều rộng chữ mặc định trước đó.

1.6.4.11.4 Hàm CadSetTextRotAngle

Ý nghĩa: Thiết lập góc quay mặc định cho đối tượng “Text” tạo ra sau này.

Cú pháp:

Trang 39

CadSetTextRotAngle (

int hDwg, // “handle” của đối tượng VeCAD

double Angle // góc quay

)

Tham số:

hDwg - “Handle” của đối tượng VeCAD

Angle - Góc quay theo chiều ngược chiều kim đồng hồ Giá trị ban đầu

là 0.0 Giá trị trả về: Góc quay mặc định trước đó.

1.6.4.11.5 Hàm CadSetTextOblique

Ý nghĩa: Thiết lập góc nghiêng chữ mặc định cho đối tượng “Text” tạo ra sau này.

Cú pháp:

CadSetTextOblique (

int hDwg, // “handle” của đối tượng VeCAD

double Angle // góc nghiêng của chữ

)

Tham số:

hDwg - “Handle” của đối tượng VeCAD

Angle Góc nghiêng của ký tự tính theo đơn vị độ Giá trị giới hạn từ

-70 đến -70 Giá trị ban đầu là 0.

Giá trị trả về: Góc nghiêng của ký tự trước đó.

1.6.4.12 Hàm CadDrawBlock

Ý nghĩa: Thực hiện vẽ một khối lên cửa sổ VeCAD tương tự như đối tượng khối

nhưng không thêm đối tượng này vào bản vẽ

Cú pháp:

Trang 40

void CadDrawBlock (

int hDwg, // “handle” của đối tượng VeCAD

int hBlock, // “handle” của một khối nào đó

double X, // tọa độ X của điểm chèn

double Y, // tọa độ Y của điểm chèn

double Z, // tọa độ Z của điểm chèn

double ScaleX, // tỷ lệ dọc theo trục X

double ScaleY, // tỷ lệ dọc theo trục Y

double ScaleZ, // tỷ lệ dọc theo trục Z

double RotAngle // góc quay

)

Tham số:

X, Y, Z - Tọa độ của điểm chèn Điểm chèn cơ sở của khối

này sẽ bị thay thế bởi điểm này,ScaleX, ScaleY, ScaleZ - Tỷ lệ của một khối khi được vẽ

RotAngle - Góc quay của khối khi được vẽ

Giá trị trả về: Không có.

1.7 Đánh giá về thư viện đồ họa VeCAD:

Từ những trình bày trên đây, có thể thấy thư viện đồ họa VeCAD cung cấp đầy

đủ các đối tượng hình học cơ bản, và các hàm chức năng phục vụ cho việc xử lý hiểnthị các đối tượng này

Ngoài ra thư viện còn cung cấp cho người lập trình khả năng mở rộng để xâydựng thêm các đối tượng hình học mới phục vụ cho chính mình

Ngày đăng: 23/03/2015, 00:22

HÌNH ẢNH LIÊN QUAN

Hình học Layer - 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ơ
Hình h ọc Layer (Trang 10)
Hình chữ nhật - 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ơ
Hình ch ữ nhật (Trang 12)
Hình 5. Hình vẽ mô tả các yếu tố cần thể hiện mặt cắt ngang. - 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ơ
i ̀nh 5. Hình vẽ mô tả các yếu tố cần thể hiện mặt cắt ngang (Trang 43)
Hình 6. Hình vẽ mô tả cấu tạo hình học của đối tượng “Dầm BTCT mặt cắt chữ - 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ơ
i ̀nh 6. Hình vẽ mô tả cấu tạo hình học của đối tượng “Dầm BTCT mặt cắt chữ (Trang 43)
Hình 7. Hình vẽ mô tả cấu tạo hình học của đối tượng “Bản BTCT” - 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ơ
i ̀nh 7. Hình vẽ mô tả cấu tạo hình học của đối tượng “Bản BTCT” (Trang 44)
Hình 8. Hình vẽ mô tả cấu tạo hình học của đối tượng “Cọc BTCT mặt cắt - 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ơ
i ̀nh 8. Hình vẽ mô tả cấu tạo hình học của đối tượng “Cọc BTCT mặt cắt (Trang 45)
Hình 9.  Hình vẽ mô tả cấu tạo đối tượng “Cọc BTCT mặt cắt tròn” - 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ơ
Hình 9. Hình vẽ mô tả cấu tạo đối tượng “Cọc BTCT mặt cắt tròn” (Trang 45)

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w