Đề tài " Mô phỏng quá trình gia công CNC trên máy DENFORD " có nhiệm vụ nghiên cứu xây dựng, khai thác cơ sở dữ liệu được chương trình gắn thêm vào các đối tượng trong bản vẽ thiết kế từ
Trang 1LỜI NÓI ĐẦU
Ngày nay cuộc cách mạng khoa học kĩ thuật trên thế giới đang phát triển với tốc độ vũ bão không ngừng vươn tới những đỉnh cao mới đặc biệt
là những thành tựu khoa học trong lĩnh vực tự động hoá sản xuất Với sự trợ giúp của máy tính con người đã và đang nghiên cứu để ngày càng giảm tới tối đa sự tác động trực tiếp vào quá trình sản xuất, đồng thời nâng cao năng suất chất lượng của sản phẩm
Ở các nước có nền công nghiệp phát triển tiên tiến việc ứng dụng máy tính vào các nghành kinh tế, kỹ thuật trong đó có cơ khí chế tạo đã được thực hiện từ nhiều thập kỉ trước Một trong những vấn đề quyết định của tự động hoá nghành cơ khí là kỹ thuật điều khiển số và công nghệ trên các máy điều khiển số Máy công cụ điều khiển số (NC và CNC) được dùng nhiều ở các nước phát triển và ngày càng phổ biến sử dụng trên toàn thế giới Ở nước ta các trung tâm sản xuất hiện đại đã có nhiều máy điều khiển số phục
vụ công tác nghiên cứu và sản xuất
Do nhu cầu phát triển và ứng dụng nhanh các kỹ thuật mới trong khai thác và sử dụng máy công cụ điều khiển số (NC và CNC) đã có nhiều đề tài nghiên cứu về máy công cụ NC và CNC Đề tài " Mô phỏng quá trình gia công CNC trên máy DENFORD " có nhiệm vụ nghiên cứu xây dựng, khai thác cơ sở dữ liệu được chương trình gắn thêm vào các đối tượng trong bản
vẽ thiết kế từ đó tính toán các chế độ gia công và sinh mã điều khiển máy CNC Đề tài chủ yếu nghiên cứu mô phỏng gia công một dạng chi tiết là chi tiết nối trục với kích thước nhỏ phù hợp gia công trên hệ thống CIM đồng thời tạo ra một công cụ ứng dụng tốt trong các phòng thí nghiệm gia công giúp cho người sử dụng kiểm tra được chương trình một cách đơn giản hiệu quả Trong đề tài đã sử dụng hai công cụ phát triển mở rộng là ObjectARX
và OpenGL, ObjectARX hỗ trợ việc xây dựng và khai thác hiệu quả bản vẽ thiết kế bằng Autocad còn OpenGL là công cụ hỗ trợ tạo môi trường đồ hoạ,
Trang 2cung cấp các công cụ cho quá trình mô phỏng Do khối lượng công việc là khá lớn, thời gian ngắn nên chương trình còn nhiều thiếu sót chưa thực sự
dễ sử dụng Trong thời gian tới em sẽ cố gắng hoàn thiện và nâng cấp chương trình chạy tốt dễ sử dụng
Em xin chân thành cảm ơn sự hướng dẫn tận tình của thầy Đinh Văn Phong bộ môn CƠ HỌC ỨNG DỤNG và thầy Lưu Văn Nhang bộn môn CÔNG NGHỆ CHẾ TẠO MÁY đã giúp đỡ em trong quá trình em làm đồ
án môn học
Trang 3I Chương I Giới thiệu về Máy công cụ CNC
1.1.Khái niệm cơ bản về điều khiển số
Khi gia công trên các máy công cụ thông thường các bước gia công
do người thợ thực hiện bằng tay như điều chỉnh số vòng quay, lượng chạy dao, kiểm tra vị trí dụng cụ cắt để đạt kích thước gia công như vậy độ chính xác gia công hay chất lượng gia công phụ thuộc quá nhiều vào trình
độ tay nghề của người thợ gia công
Ngược lại trên các máy công cụ điều khiển số quá trình gia công được thực hiện tự động Trước khi gia công người ta đưa vào hệ thống điều khiển một chuỗi các lệnh điều khiển, hệ thống điều khiển sẽ kiểm tra và thực hiện chính xác các lệnh trong chuỗi lệnh Do tính chính xác và không có sự tác động của yếu tố tâm lý sức khoẻ của công nhân gia công nên gia công bằng máy điều khiển số đạt chất lượng gia công cao Ngoài ra do khi lập trình điều khiển chương trình có thể sử dụng dể gia công lặp lại nhiều lần nên năng suất gia công cao
Các máy công cụ điều khiển theo chương trình số được gọi là các máy NC(Numerical Control) hoặc các máy CNC(Computer Numerical Control) trong đó máy CNC là loại máy hiện đại do kết nối được với máy tính nên có nhiều khả năng mở rộng điều khiển và đây cũng là đối tượng nghiên cứu của đề tài
1.2.Đặc trưng cơ bản của máy CNC
- Nh trình bày ở trên ưu điểm chính cơ bản của máy công cụ CNC là tính linh hoạt và tốc độ thay đổi nhanh các chương trình gia công với sự can thiệp tối thiểu bằng tay
- Để xác định các tương quan hình
học trong vùng làm việc của máy, trong
phạm vi chi tiết gia công một cách rõ ràng,
ta đưa vào hệ toạ độ và các điểm gốc chuẩn
- Để thống nhất hóa mối tương quan cho
Trang 4các máy khác nhau, người ta tiêu
chuẩn hoá các hệ trục toạ độ và chiều chuyển
động của chúng
- Các chiều chuyển động của máy công
cụ điều khiển số được xác định bởi hệ toạ
độ vuông góc của bàn tay phải :
- Trục X có hướng dọc theo ngón tay
Hệ toạ độ này luôn luôn gắn trên
chi tiết Khi lập trình chi tiết được
coi là đứng yên Các chuyển động
thuộc về phần dao cô
- Các trục quay tương ứng với X, Y,
Z được kí hiệu A, B, C
Chiều quay dương ứng với chiều
quay thuận của kim đồng hồ, khi
ta nhìn dọc theo chiều dương của
trục tịnh tiến
•Trục Z
- Thường nằm song song với trục
chính công tác, hoặc chính là đường tâm
Trang 5tác (máy bào, máy gia công điện hoá … )
thì trục Z cũng là trục vuông góc với bàn kẹp chi tiết
• Truc X
Trục X là trục toạ độ nằm trên mặt phẳng định vị hay song song với bề mặt kẹp chi tiết, thưòng ưu tiên theo phương nằm ngang Chiều của trục X được xác định nh sau :
1 Trên các máy có dao quay tròn
a Nếu trục Z đã nằm ngang thì chiều dương của trục X hướng về bên phải nếu ta nhìn trục chính hướng vào chi tiết
b Nếu trục Z thẳng đứng và máy có một thân máy thì chiều dương của trục
X hướng về bên phải khi ta nhìn từ trục chính hướng vào chi tiết
Nếu máy có hai thân máy thì chiêù dương của trục X hướng về bên phải nếu ta nhìn từ trục chính hướng vào thân máy bên trái
2 Trên các máy có chi tiết quay tròn
Trục X nằm theo phương hướng kính của chi tiết và đi từ trục chi tiết đến bàn kẹp dao chính
3 Trên các máy không có trục chính công tác
Trục x chạy song song theo hướng gia công chính
1.3.Các điểm 0 và các điểm chuẩn của máy CNC
Trong thiết kế chế tạo bản vẽ thiết kế thường chưa phù hợp về toạ độ
so với các giới hạn về toạ độ quy định trên máy CNC nên khi lập trình và
Trang 6nhất là tự động hoá qúa trình lập trình thì việc xác định chính xác hay hiểu
rõ về các điểm 0 và các điểm chuẩn là rất quan trọng, sau đây chúng ta sẽ nghiên cứu các đặc điểm cơ bản về các các điểm 0 và các điểm chuẩn
1.3.1.Điểm 0 của máy M
Các điểm 0 của máy M là diểm
gốc của các hệ thống toạ độ máy và
do nơi chế tạo ra chiếc máy đó xác
định theo kết cấu của máy Trên các
máy phay, điểm 0 của máy thường
nằm tại điểm giới hạn dịch chuyển của
bàn máy
1.3.2.Điểm 0 của chi tiết W
Điểm 0 của chi tiết là gốc của hệ
thống toạ độ gắn lên chi tiết Vị trí của
điểm W do người lập trình lựa chọn và
xác định Song người lập trình cần xác
định sao cho các kích thước trên bản vẽ
gia công trực tiếp là các giá trị toạ độ
của hệ thống toạ độ
1.3.3.Điểm 0 của chương trình P0
Điểm 0 của chương trình là điểm mà
dụng cụ sẽ ở đó trước khi gia công Để hợp
lý điểm 0 của chương trình được chọn làm sao khi chi tiết gia công hoặc dụng cụ có thể được thay đổi một cách dễ dàng
1.3.4.Các điểm chuẩn
a Các điểm chuẩn của máy R
Trong các máy có hệ thống đo dịch chuyển, giá trị thực đo được khi bị mất nguồn điện do sự cố sẽ mất theo.Trong những trường hợp này để đưa hệ
Trang 7tất cả các trục của máy Trong nhiều trường hợp không thực hiện được điều này vì vướng vào các chi tiết đã kẹp trên máy hay đồ gá Do vậy cần thiết xác lập một điểm chuẩn thứ hai trên các trục, đó là điểm chuẩn của máy R
b Điểm tỳ A
Điểm tú A là giao điểm của các đường trục và mặt phẳng tỳ Trên các máy tiện, mặt phẳng tỳ nằm ngay tại mâm cặp hoặc chấu cặp
c Điểm thay dao Ww
Để tránh va đập vào chi tiết gia công khi thay dao tự động dao phải chạy đến điểm thay dao
d Điểm điều chỉnh dao E
Khi sử dụng nhiều dao, các kích thước của dao phải được xác định trước trên thiết bị điều chỉnh dao để có thông tin đưa vào trong hệ thống điều khiển nhằm hiệu chỉnh tự động kích thước dao
e Điểm gá dao N
Khi dụng cụ được lắp vào giá dao điểm giá dao N và điểm điều chỉnh dao E sẽ phải trùng nhau Trên các máy phay điểm gá dao N nằm trên vành trục chính Trên các máy tiện, điểm gá dao N nằm tại các mặt phẳng của đầu rơvonve
f Điểm cắt của dao P
Điểm này là điểm đỉnh dao thực hoặc lý thuyết
g Điểm chuẩn của bàn trượt F
Tất cả các điểm trên bàn trượt đều liên quan đến điểm này
h Điểm chuẩn gá dao
Vị trí của dao(đầu dao rơvonve) được xác định nhờ điểm này Nó được dùng nh một điểm xuất phát của tất cả các kích thước trên đầu rơvonve
Trang 81.4.Các dạng điều khiển
Do máy CNC có khả năng gia công được các bề mặt khác nhau nh các
lỗ, mặt phẳng, các mặt định hình Vì vậy có các dạng điều khiển máy nh : điều khiển điểm - điểm, điều khiển theo đường thẳng và theo đường biên dạng (đường contour)
1.4.1.Dạng điều khiển điểm - điểm
- Điều khiển điểm - điểm (theo vị trí )
được dùng để gia công các lỗ bằng các
phương pháp khoan, khoét, doa, và cắt ren lỗ
Chi tiết gia công dược gá cố định trên bàn máy,
dung cụ cắt thực hiện chạy dao nhanh tới các
vị trí đã lập trình (hoặc chạy bàn máy) Khi đạt
tới điểm đích thì dao băt đầu cắt
- Vị trí các lỗ có thể được điều khiển đồng
thời hoặc kế tiếp theo 2 trục toạ độ
1.4.2 Dạng điều khiển theo đường thẳng
Là điều khiển mà khi gia công dụng cụ
Vị trí các điểm chuẩn và điểm 0 trên
máy tiện
W Điểm 0 của chi tiết
PO Điểm 0 của chương trình
Ww
Trang 9cắt thực hiện lượng chạy dao theo mét
đường thẳng nào đó Trên máy tiện dụng
cụ cắt chuyển động song song hoặc vuông
góc với trục của chi tiết (trục Z) Trên máy
phay dụng cụ cắt chuyển động song song
với trục Y hoặc trục X (dụng cụ cắt chuyển
động độc lập theo từng trục)
1.4.3 Dạng điều khiển theo biên dạng (contour)
Điều khiển theo biên dạng cho phép thực hiện chạy dao trên nhiều trục
cùng lúc Các chuyển động theo các trục có sự quan hệ hàm số ràng buộc với nhau Dạng điêu khiển này được áp dụng trên máy tiện máy phay và các trung tâm gia công (Machining Center)
Có 3 dạng điều khiển: điều khiển contour 2D, 2 2 D và điều khiển 3D (D là kích thước)
- Điều khiển contour 2D: cho phép thực hiện chạy dao theo 2 trục
đồng thời trong một mặt phẳng gia công (ví dụ mặt phẳng XZ, YZ) Trục thứ 3 được điều khiển hoàn toàn độc lập với các trục kia
- Điều khiển contour 2 2 D: Cho phép ăn dao đồng thời theo 2 trục
nào đó để gia công bề mặt trong một mặt phẳng nhất định Trên máy CNC có 3 trục X, Y, Z ta sẽ điều khiển được đồng thời X
và Y, X và Z, hoặc Y và Z Trên các máy phay thì điều này có nghĩa là chiều sâu cắt có thể được thực hiện bất kỳ 1 trục nào đó trong 3 trục còn 3 trục kia để phay contour
- Điều khiển contour 3 D: Cho phép đồng thời chạy dao theo cả 3
trục X,Y, Z Điều khiển contour 3 D được áp dụng để gia công các khuôn mẫu, gia công các chi tiết có bề mặt không gian phức tạp
1.5 Các chỉ tiêu gia công của máy CNC
X
Z
Trang 10a Thông số hình học
Thông số hình học của máy CNC hay của vùng gia công là thông số của không gian mà trong đó dụng cụ cắt mà chi tiết gia công có thể tác động qua lại ở bất kì vị trí nào Như vậy trên các máy gia công chi tiết quay thì vùng gia công là một khối lăng trụ được xác định bằng bán kính và chiều dài dịch chuyển của các toạ độ
Trên các máy gia công chi tiết hình hộp chữ nhật thì vùng gia công là khối hộp được xác định bằng các chiều dài dịch chuyển của các toạ độ (hình vẽ) các điểm giới hạn của vùng làm việc được đánh số tương tự ký hiệu số của ma trận Để thuận tiện và dễ nhớ người ta đánh thứ tự các số theo quy tắc sau: số thứ nhất của các chữ số ký hiệu các điểm theo trục thẳng đứng,
số thứ 2 của các chữ số ký hiệu các điểm thưo trục dọc (trục Z), còn số thứ 3 của các chữ số ký hiệu các điểm theo trục nằm ngang (trục X)
b Thông sè gia công
Là tốc độ chuyển động của các cơ cấu chấp hành và công suất động cơ Người ta dựa vào thông số hình học như kích thước bàn máy phay hay chiều cao của tâm máy tiện để chọn công suất động cơ, tốc độ quay của các trục chính và lượng chạy dao để gia công các chi tiết hình hộp chữ nhật người ta chọn các thông số gia công như sau:
5 – 10
3 - 10
Trang 11c Năng suất gia công
Là sè chi tiết gia công trong một đơn vị thời gian Công thức tính công suất gia công tính nh sau:
1 1
t n m
To_thời gian cơ bản trung bình (ph)
m_số loạt chi tiết được sản xuất trong một năm
n_số lượng chi tiết được sản xuất trong một năm
i_số lượng nguyên công cần thiết để gia công một chi tiết
k_số lượng các nguyên công kiểm tra
tct_thời gian thay đổi chi tiết gia công
ttd_thời gian thay dao
to_thời gian cơ bản
tkt_thời gian kiểm tra
tcbkt_thời gian chuẩn bị kết thúc
Để tăng năng suất ta phải giảm tct, ttd, to, tcbkt, thời gian phụ Muốn giảm
tcbkt ta phải dùng đồ gá vệ tinh và giảm số lượng các loại chi tiết gia công trên máy (trên một máy CNC không nên gia công quá 30 – 50 loại chi tiết trong một năm) Muốn giảm ttd dùng hệ thống thay dao tự động Trên các máy thay dao bằng tay nên sử dụng cơ cấu kẹp nhanh Muốn giảm to thì tăng tốc độ cắt (tăng công suất động cơ), sử dụng dao có khả năng cắt với tốc độ cao, gia công với chế độ cắt tối ưu và gia công đồng thời bằng nhiều dao Muốn giảm thời gian phụ thì thì tăng tốc độ chạy nhanh của các cơ cấu chấp hành hoặc của dao (cố gắng tăng tốc độ chạy dao nhanh tới 10 – 15 m/ph)
Trang 12d Độ chính xác của máy CNC
Sai sè gia công tổng cộng trên các máy CNC xuất hiện trong các hêh thống chyển động của máy, trong các hệ thống điều khiển và kiểm tra trong bản thân chi tiết gia công (hình vẽ)
Các sai sè gia công được ký hiệu và giải thích nh sau:
1
δ , δ 2, δ 3, δ4_ sai số lập trình, nội suy, hiệu chỉnh nội suy, và sai số
“lệnh trở về điểm O”
5
δ , δ6_ sai số của bước bên trong và sai số tích luỹ của đattric
δ 7_sai số của cơ cấu chuyển đổi tín hiệu
δ _sai số biến dạng nhiệt của chi tiết gia công
Sai số tổng cộng được xác định theo công thức
∑
Trang 13e Độ tin cậy của máy CNC
Các máy CNC có giá thành rất cao nên nó chỉ mang lại hiệu quả khi chúng làm việc liên tục 2 hoặc 3 ca và không có hỏng hóc nào khi làm việc Trong quá trình làm việc các máy CNC phải đảm bảo độ chính xác gia công
và nếu có bị hỏng hóc thì máy phải có khả năng được sửa chữa hoặc thay thế một số cơ cấu dễ dàng thuận tiện
Vậy độ tin cậy của máy CNC là tính chất thực hiện chức năng gia công giữ được các chỉ tiêu công nghệ cũng nh sửa chữa theo một thời gian quy định Độ tin cậy của máy được đặc trưng bởi tính chất sau:
- Tính làm việc không bị hỏng: Tính chất này được đặc trưng bằng sự làm việc liên tục của máy trong một thời gian nhất định (thời gian chạy rà và làm việc của máy)
- Tuổi thọ của máy: Tính chất này là sự ổn định làm việc cho tới lúc sửa chữa (1 phần tuổi thọ) và sau đó lại tiếp tục làm việc
Như vậy 2 tính chất trên đều đặc trưng cho khả năng làm việc của máy (tính chất làm việc không bị hỏng) tồn tại trong một khoảng thời gian nhất định còn tính chất tuổi thọ tồn tại trong suốt thời gian máy được sử dụng, kể cả thời gian để sửa chữa
Trang 14- Khả năng sửa chữa: tính chất này có nghĩa là người ta có khả năng phát hiện các khuyết tật hỏng hóc của máy và có khả năng sửa chữa những khuyết tật và hỏng hóc đó.
Đối với máy CNC thì hai tính chất 1 và 3 là quan trọng nhất bởi vì các máy CNC có cấu trúc rất phức tạp và có nhiều cơ cấu có tác động qua lại lẫn nhau
II Chương II Lập trình gia công trên máy CNC
2.1.Cấu trúc của một câu chương trình
- Chương trình điều khiển máy CNC được cấu thành bởi một dãy các câu chương trình bắt đầu bằng thứ tự câu
Số vòng quay
Dụng cụ cắt
Chức năng phụ
2.2.Cấu trúc của một từ chương trình
Mỗi câu chương trình bao gồm các từ chứa đựng thông tin hình học và công nghệ hoặc thông tin kỹ thuật của chương trình Có thể viết từ nh thế
nào và viết bao nhiêu từ chương trình phụ thuộc vào nơi sản xuất và hệ
thống điều khiển của máy Người ta chia thành hai nhóm từ chương trình:
- Nhóm từ biểu thị chức năng dịch chuyển
- Nhóm từ biểu thị chức năng điều khiển máy và các chức năng phụ
Mỗi từ chương trình bao gồm một chữ cái và một dãy số có hoặc không
có dấu (dấu nằm giữa chữ cái và dãy số X-25.2) Theo quy chuẩn các chữ
cái có một ý nghĩa xác định theo chuẩn ISO hoặc chuẩn DIN 66025(tiêu
chuẩn của CHLB Đức ) Sau đây ta sẽ xét ý nghĩa của một số lệnh cơ bản
theo chuẩn DIN 66025
Trang 15Ký hiệu ý nghĩa
A Chuyển động quay quanh trục X
B Chuyển động quay quanh trục Y
C Chuyển động quay quanh trục Z
D Bộ nhớ hiệu chỉnh dụng cụ cắt
E Lượng chạy dao thứ 2
F Lượng chạy dao
G Điều kiện chuyển động
H Có thể sử dụng tự do
I Thông số nội suy song song với trục X
J Thông số nội suy song song với trục Y
K Thông số nội suy song song với trục Z
L Có thể sử dụng tự do
M Chức năng phụ
N Số thứ tự câu lệnh
O Có thể sử dụng tự do
P Chuyển động thứ 3 song song với trục X
Q Chuyển động thứ 3 song song với trục Y
R Chuyển động nhanh theo trục Z hoặc chuyển động
thứ 3 song song với trục Z
S Số vòng quay trục chính
T Dụng cụ cắt
U Chuyển động thứ 2 song song với trục X
V Chuyển động thứ 2 song song với trục Y
W Chuyển động thứ 2 song song với trục Z
X Chuyển động theo hướng trục X
Y Chuyển động theo hướng trục Y
Z Chuyển động theo hướng trục Z
G00 Chạy dao nhanh tới toạ độ lập trình
G01 Nội suy đường thẳng
G02 Nội suy cung tròn theo chiều kim đồng hồ
G03 Nội suy cung tròn theo chiều ngược chiều kim đồng
hồG04 Thời gian gia công
G17 Chọn mặt phẳng gia công XY
G18 Chọn mặt phẳng gia công XZ
G19 Chọn mặt phẳng gia công YZ
G33 Cắt ren có bước không đổi
G34 Cắt ren có bước tăng dần
Trang 16G35 Cắt ren có bước giảm dần
G40 Huỷ bỏ hiệu chỉnh kích thước dụng cụ cắt
G41 Hiệu chỉnh bán kính dụng cụ cắt, dao ở bên phảI
đường viền gia côngG42 Hiệu chỉnh bán kính dụng cụ cắt, dao ở bên tráI
đường viền gia côngG43 Hiệu chỉnh kích thước dụng cụ cắt, dương
G44 Hiệu chỉnh kích thước dụng cụ cắt, âm
G53 Huỷ bỏ xê dịch điểm chuẩn đã chọn
G54 G59 Xê dịch điểm chuẩn
G62 Định vị trí nhanh
G63 Sử dông 100% lượng chạy dao
G64 Thay đổi số vòng quay và lượng chạy dao
G70 Chạy dông cụ tới vị trí ra theo trục Z
G73 Chạy dao theo lập trình
G74 Chạy dao đến điểm mốc của trục thứ 1 và thứ 2
G75 Chạy dao đến điểm mốc của trục thứ 2 và thứ 4
G80 Hủy bá chu trình đã chọn
G81…G89 Các chu trình khoan
G90 Lập trình theo các kích thước tuyệt đối
G91 Lập trình theo kích thước tương đối
G92 Đặt bé nhớ
G94 Chạy dao theo mm/phút
G95 Chạy dao theo mm/vòng quay
Các thông tin chi tiết về quy ước theo các chuẩn đã có rất nhiều tài liệu đầy đủ có thể tham khảo trong cuốn: ("Điều khiển số và công nghệ trên máy điều khiển số" của tác giả Nguyễn Đắc Lộc và Tăng Huy)
Toàn bộ thông tin cần thiết để thực hiện một bước gia công tạo thành một câu chương trình và một chương trình gia công bao gồm một dấu hiệu bắt đầu chương trình(%) và dãy các câu lệnh Người lập trình có thể lập các chu trình riêng theo yêu cầu đặc biệt của mình và cài đặt chúng vào bộ nhớ của hệ điều khiển Để giảm chi phí cho việc lập trình và tăng sự thuận tiện khi lập trình nhiều điều kiện dịch chuyển được nhóm lại thành một chu trình
Trang 17§iÓm b¾t ®Çu
Pa Xa/Ya
§iÓm kÕt thóc Pe Xe/Ye
Bộ nội suy của hệ điều khiển dùng để tính toán các điểm trung gian
trên quỹ đạo gia công, nó là cụm phần mềm để cộng liên tục các giá trị tọa
độ của điểm xuất phát
Một đường thẳng trong
mặt phẳng X/Y giữa các điểm
đÇu Pa(Xa/Ya) và điểm cuối
Pe(Xe/Ye) được chia thành n
đoạn đường thành phần tương
ứng là n-1 điểm trung gian, nên
ta có chiều dài dịch chuyển
dX=Xe - Xa và dY=Ye - Ya
Các giá trị toạ độ của các điểm
trung gian trên quỹ đạo được tính Hình 1 : Nội suy đường thẳngbằng cách cộng liên tục với số gia
dX/n và số gia dY/n Trong điều khiển theo đường viền các giá trị số gia không nhỏ hơn đơn vị đo của hệ thống do đó không nhỏ hơn bước dịch
chuyển (0.01mm hoặc 0.001 mm) Sè chia n là bội số của bước dịch chuyển 0.01mm hoặc 0.001 mm Phép chia cho sè n sẽ đơn giản nếu bộ nội suy làm việc trong hệ thống thập phân
+ Dạng nội suy đường thẳng có hai lệnh theo chuẩn DIN 66025 là
G00: Dịch chuyển nhanh của dụng cụ cắt từ điểm hiện tại của nó tới điểm tiếp theo đã được lập trình với một tốc độ chạy tối đa(chạy dao không gia công)
G01: Dụng cụ cắt dịch chuển từ điểm hiện tại của nó tới một điểm tiếp theo đã được lập trình trên một đường thẳng với lượng chạy dao gia công đã được lập trình
+Dạng nội suy đường tròn có lệnh G02 hoặc G03 làm cho đỉnh dao
dịch chuyển theo mét cung tròn
Trang 18M -J
+I Ka(Xa/Ya)
tương đối của tâm vòng tròn so
với điểm bắt đầu của vòng tròn
Những toạ độ vòng tròn so với
điểm bắt đầu cung tròn gọi là
các thông số nội suy I, J, k xác
định vị trí của tâm vòng tròn theo
2.4.Xê dịch các điểm chuẩn
Vì các chỉ dẫn toạ độ trong chương trình đều gắn lên điểm 0 của chi tiết
W nên hệ thống toạ độ cần phải xê dịch đến điểm này Người ta chia xê dịch điểm chuẩn thành : Xê dịch điểm chuẩn điều chỉnh và xê dịch điểm chuẩn lập trình
Thông qua các
chỉ dẫn G54 và
Trang 19N10 G54.
.N40 G59 X52 Y120
N70 G59 X124 Y40
với xê dịch điểm chuẩn
điều chỉnh các giá trị xê dịch
điểm chuẩn lập trình không được
cài đặt trong bénhớ hiệu chỉnh
Việc sử dụng nhiều làn xê dịch
điểm chuẩn lập trình cho phép ta
lập lại chương trình gia công
ở vị trí bất kỳ trên chi tiết gia công
Hình 3 : Xê dịch điểm chuẩn lập trình
III Chương III Giới thiệu về ObjectARX
Đề tài sử dụng công cụ phát triển ObjectARX để khai thác tối đa dữ liệu của bản vẽ thiết kế đồng thời xây dựng thêm một bộ phận dữ liệu mở rộng (ExtensionDictionary ) để bổ xung vào cơ sở dữ liệu cho bản vẽ thiết
kế Khi đó bản vẽ thiết kế ngoài phần dữ liệu cơ bản mà AutoCAD lưu trữ
sẽ mang theo phần dữ liệu mở rộng mà chương trình đã đeo vào cho các đối
Trang 20tượng Sau đây ta sẽ nghiên cứu các điểm cơ bản của chương trình Autocad
và lập trình ObjectARX
ObjectARX : Mở rộng hướng đối tượng của thư viện ARX (xuất hiện cùng AutoCAD R14) Thay vì cung cấp một thư viện các hàm nh trong ARX, giờ đây một thư viện các lớp đối tượng tương ứng với các đối tượng (object) trong bản vẽAutoCAD cho phép thao tác dễ dàng hơn rất nhiều Do
đó các chương ứng dụng có thể dễ quản lý và chạy ổn định hơn
3.1 ObjectARX là gì?
ObjectARX là một thư viện lập trình ứng dụng hướng đối tượng cho môi trường AutoCAD ObjectARX được triển khai bằng ngôn ngữ C++ với hàng trăm lớp đối tượng (khoảng 200 với ObjectARX cho AutoCAD R14), phục vụ các hầu hết các nhu cầu cần thiết để phát triển AutoCAD :
Truy cập tới cơ sở dữ liệu bản vẽ
Tương tác với AutoCAD editor
Tạo giao diện người dùng (user interface) sử dụng Microsoft
3.2 Cấu trúc thư viện ObjectARX
+ Chương trình cài đặt của ObjectARX tạo trong thư mục ObjectARX các thư mục con có các nội dung :
\INC : Các tệp tin header C++ của thư viện
\LIB : Các thư viện ở dạng nhị phân (được link vào chương trình ARX)
Trang 21\CLASSMAP : Sơ đồ cấu trúc thư viện ObjectARX dưới dạng bản vẽ AutoCAD
\DOCS : Tài liệu lập trình ObjectARX (online help)
\DOCSAMPS : Các ví dụ được nêu ra trong tài liệu
\SAMPLES : Các ví dụ
\UTILS : Các tiện Ých và thư viện kèm theo
\REDISTRIB : Các tệp tin nhị phân cần phân phối (redistribute) cùng ứng dụng ARX
\ARXLABS : Hướng dẫn lập trình ObjectARX qua từng bước (step
Trang 22Các bước sau đây được thực hiện trên Visual C++ 5.0 để tạo ra ứng dụng ObjectARX chạy trên AutoCAD R14 Với các phiên bản khác của Visual C++ và ObjectARX quá trình thực hiện hoàn toàn tương tự.
Khi đó một workspace mới được tạo ra cùng với một project link library thích hợp cho một ứng dụng ARX Tiếp đến là các bước đặt setting cho project
dynamic-Bước 3 :
Từ menu Project của Visual C++ chọn Settings Trong listbox
“Settings for:" chọn Win32 Debug nếu muốn thay đổi setting cho cấu hình Debug, và chọn Win32 Release cho cấu hình Release
Bước 4 :
Nhấn vào tab C/C++ để thay đổi thông số của chương trình biên dịch (compiler settings) như dưới đây Các setting không nêu ra ở đây để mặc định :
Category: Code Generation
Use run-time library : Multithreaded DLL (hay Debug Multithreaded DLL cho cấu hình Debug)
Category: Preprocessor
Trang 23Preprocessor Definitions : thêm các chỉ thị biên dịch ACRXAPP, RADPACK vào edit box
Additional Include Directories : thêm vào đường dẫn tới thư mục chứa các header của thư viện ObjectARX và các thư mục khác nếu cần Ví dụ : thêm vào "C:\Program Files\ObjectARX\Inc; C:\GeoLib"
Bước 5 :
Đặt setting cho chương trình liên kết (linker settings) Bấm vào tab Link Thay đổi các giá trị nh dưới đây, các setting không nêu ra nên để mặc định :
Category: General
Output File Name - Nhập vào tên file ứng dụng sau khi dịch Mặc định tên file này có phần mở rộng là DLL, nhưng với ứng dụng ObjectARX tốt nhất để cho phần mở rộng là ARX
Category: Input
Object/library modules : đưa vào tên các thư viện cần thiết cho ứng dụng Ví dụ : “rxapi.lib acad.lib acedapi.lib”
Category: Output
Base Address - gõ vào 0x1c000000
Entry-Point Symbol - DllEntryPoint@12
Nhấn OK để chấp nhận và đóng hộp thoại Các setting cần thiết đã được đặt để có thể phát triển ứng dụng ObjectARX
Lập trình viên có thể bắt đầu soạn thảo chương trình, add vào project vừa tạo và biên dịch thành ứng dụng ObjectARX sẵn sàng chạy trong AutoCAD
AcEd : Dùng khi đăng ký các lệnh, xử lý các message của AutoCAD ,
xử lý transaction
Trang 24ADS : Thư viện các hàm C dùng trong các thao tác liên quan đến select đối tượng, nhập số liệu
3.4.Cơ sở dữ liệu và đối tượng AcDbDatabase
Bản vẽ AutoCAD là một cơ sở dữ liệu (CSDL) chứa các đối tượng tạo nên bản vẽ Các đối tượng trong bản vẽ thuộc một trong hai loại sau :
+ Entity (thực thể) : các đối tượng có thể hiện hình học, như các đối tượng LINE, CIRCLE, POLYLINE Người dùng AutoCAD có thể nhìn thấy và trực tiếp thao tác trên các thực thể bằng các lệnh hiệu chỉnh
+ Nonentity (phi thực thể) : các đối tượng còn lại, như đối tượng kiểu đường (linetype), kiểu chữ (text style) hay líp (layer) Các đối tượng này thường phục vụ việc tổ chức bản vẽ, phục vụ quá trình thiết kế, hay đơn giản chỉ là nơi chứa dữ liệu (ví dụ như dictionary) cho AutoCAD và các chương trình ứng dụng chạy trên AutoCAD.
Đối tượng AcDbDatabase
Trong ObjectARX , cơ sở dữ liệu bản vẽ được biểu diễn bằng đối tượng thuộc lớp AcDbDatabase (tệp tin header DBMAIN.H) Líp AcDbDatabase có các phương thức để đọc, ghi bản vẽ, truy cập các biến trạng thái, các bảng ký hiệu, các từ điển và thực hiện các thao tác khác liên quan đến cơ sở dữ liệu
Để truy cập một bản vẽ AutoCAD , khai báo một biến kiểu con trỏ tới đối tượng AcDbDatabase, cấp phát bộ nhớ và gọi hàm readDwgFile() truyền vào tên file bản vẽ để đọc cơ sở dữ liệu bản vẽ :
AcDbDatabase * pDatabase = new AcDbDatabase;
pDatabase->readDwgFile(“thu.dwg”);
// truy cập cơ sở dữ liệu
Trang 25delete pDatabase;
Hay có thể dùng hàm acdbCurDwg() để lấy con trỏ tới bản vẽ hiện thời đang được mở trong AutoCAD :
AcDbDatabase * pDatabase = acdbCurDwg();
Để ghi lại những thay đổi trong cơ sở dữ liệu bản vẽ , có thể dùng phương thức :
Acad::ErrorStatus save() ;
hay
Acad::ErrorStatus saveAs(const char* fileName) ;
để ghi lại dưới một tên khác
Container và iterator
Trong cơ sở dữ liệu AutoCAD các bảng, trừ bảng biến trạng thái, được biểu diễn bằng các đối tượng container (thùng chứa,) Ngoài ra một số đối tượng phức hợp (complex entity) cũng có thể được coi là các container Để truy cập tới các phần tử của container, thư viện ObjectARX sử dụng các iterator
Mét iterator I của container C, là một đối tượng chứa một tham chiếu
pC tới đối tượng container C và chứa một tham chiếu pE tới phần tử nhất định của container Ban đầu iterator pE trỏ tới phần tử đầu tiên của C, sau
đó sử dụng các phương thức của lớp iterator (ví dụ step(), seek() ) , pE có thể lần lượt trỏ tới các phần tử khác của C Đồng thời có thể sử dụng số lượng tuỳ ý các iterator trên một container, nên việc truy xuất các phần tử
Trang 26của container trở nên dễ dàng và nhất quán, mà không cần quan tâm tới cấu trúc thực tế của container (là linked list, array hay hash table )
Khái niệm container và iterator là những khái niệm tương đối mới trong C++ nhưng đã được sử dụng rộng rãi trong thư viện C++ chuẩn (STL : Standard Template Library) và các thư viện C++ xuất hiện trong những năm gần đây
3.5.Cơ sở dữ liệu bổ sung
Các ứng dụng ObjectARX có thể gắn các dữ liệu của chúng vào các đối tượng của cơ sở dữ liệu bản vẽ AutoCAD bằng nhiều cách khác nhau Hai phương pháp phổ biến nhất là dùng extended data (xdata) và extension dictionary Đồ án gắn dữ liệu mở rộng vào đối tượng bằng phương pháp dùng extension dictionary, dữ liệu bao gồm các kích thước cơ bản của phôi, của chi tiết trong bản vẽ
Dữ liệu mở rộng được gắn vào các đối tượng AcDbPolyLine tượng trưng cho nút nhấn trong bản vẽ Nót nhÊn
Trang 273.5.1 Extended data (xdata)
Xdata là một danh sách móc nối thuộc kiểu resbuf do các ứng dụng AutoCAD gắn vào các đối tượng của bản vẽ AutoCAD hỗ trợ việc bảo trì (maintain) nhưng không sử dụng các thông tin trong danh sách
Để tạo xdata cho một đối tượng cần qua các bước:
1 Đăng ký ứng dụng sử dụng xdata bằng hàm ads_regapp()
2 Tạo ra danh sách resbuf theo yêu cầu
3 Gắn danh sách này vào đối tượng sử dụng phương thức AcDbObject::setXData()
Muốn truy cập danh sách xdata của đối tượng sử dụng phương thức AcDbObject::xData(), sau đó duyệt trong danh sách móc nối resbuf
Để gắn dữ liệu , thực hiện :
1 Tạo extension dictionary cho đối tượng
2 Mở extension dictionary và chèn vào một đối tượng xrecord
3 Tạo danh sách DXF theo yêu cầu và set vào cho đối tượng xrecord
Đoạn chương trình sau là hàm thực hiện việc add thêm dữ liệu mở rộng vào các đối tượng cho từng bước gia công :
int CDocData::_addXtnData(const AcDbObjectId& ObjectId,
struct resbuf* head) {
int resurl=0,len=0;
CDocData data;
Trang 28void CDocData::_printXdata(const AcDbObjectId m_ObjectId,CStruct
Trang 29struct resbuf* head;
struct resbuf* ptemp;
AcDbXrecord* pXrecord ;
AcDbObjectId dictObId,xrecObjId;
// end variable//
if(acdbOpenObject(pObject,m_ObjectId,AcDb::kForRead)==Acad::eOk) {
dictObId = pObject->extensionDictionary();
if(acdbOpenObject(pDictionary,dictObId,AcDb::kForRead)==Acad::eOk){ pDictionary->getAt("MILK_CAT_COW",
Trang 30ads_printf("\n%s","No object selected !");
} }
Do nội dung của đề tài chủ yếu nghiên cứu ứng dụng cơ sở dũ liệu nên trên đây là một số khái niệm cơ bản hướng về cách tạo lập ứng dụng khai thác cơ sở dữ liệu của một bản vẽ CAD với sự hỗ trợ của công cụ phát triển mở rộng ObjectARX Sau đây chúng ta sẽ nghiên cứu công cụ đồ hoạ OPenGL và các ứng dụng của nó
Trang 31Chương IV - Giới thiệu về OPenGL
4.1.Lịch sử ra đời và phát triển của OPenGL
OpenGL là một thư viện đồ hoạ tốc độ cao, độc lập với các hệ thống giao diện của hệ điều hành Ban đầu do hãng Silicon Graphics Inc phát triển cho các workstation đồ hoạ tốc độ cao với tên IRIS GL từ năm 1982 Đến nay OpenGL đã trở thành một chuẩn công nghiệp được các hãng nổi tiếng trong nghành công nghệ thông tin phát triển tích hợp vào bộ xử lý đồ hoạ cho sản phẩm của mình như: Hệ điều hành Windows XP, Me,
Advanced Server 2003 tích hợp sẵn thư viện đồ hoạ động OpenGL32.dll vào hệ thồng nên khi mang các chương trình đồ hoạ lập trình với OpenGL sang chạy ở các hệ điều hành này ta không phải lo mang theo tập tin dll như các hệ điều hành cũ khác
OpenGL đã được triển khai trên nhiều hệ thống phần cứng nổi tiếng khác nhau nh: trong con chíp đồ hoạ của card đồ hoạ của hầu hết các hãng lớn (NVIADIA, TNT64, INTEL )hay chính trong CPU của INTEL thế hệ mới cũng đã tích hợp hệ thống xử lý đồ hoạ OPenGL
Ta có thể phát triển các ứng dụng đồ hoạ với OpenGL sử dụng những ngôn ngữ lập trình khác nhau Hiện đã có các triển khai của OpenGL cho các ngôn ngữ nh C/C++, Fortran, Java, Ada
Trong đồ án OpenGL được khởi tạo trong một đối tượng mới, độc lập hoàn toàn với các môi trường sử dụng đối tượng nh MFC hay trong AutoCAD Đây là đối tượng phái sinh từ lớp CWnd là lớp cha của tất cả các lớp cửa sổ nên nó mang đầy đủ các tính năng thao tác trên cửa sổ nh thao tác chuột, bàn phím Việc khởi tạo môi trường OPENGL cho đối tượng không khác so với việc khởi tạo trên các CDialog hay trên CView Tuy nhiên đối tượng được nạp chồng hàm Create() của lớp CWnd nên việc khởi tạo đối tượng ở vị trí bất kỳ trên Dialog hay trên FormView rất dễ dàng Sau đây chúng ta sẽ nghiên cứu kỹ về công cụ OPENGL, tiếp đó nghiên cứu
Trang 32công cụ class OpenGLInit : public CWnd được tạo ra và sử dụng trong chương trình.
4.2 Khả năng thư viện OpenGL
Về cơ bản OpenGL là một thư viện của một tập hợp gồm khoảng 150 hàm hỗ trợ các thao tác Tên các hàm này có tiền tố là GL, thư viện OPenGL utility có tiền tố là GLU, thư viện OPenGL auxliary có tiền tố là AUX, Bộ hàm WGL có tiền tố WGL, ngoài ra còn có các hàm WIN32 API không có tiền tố đặc biệt
Bộ hàm hạt nhân (Có tiền tố GL) cho phép thiết kế các hình dạng khác nhau, tạo nên hiệu ứng chiếu sáng, hiệu ứng quan sát , thực hiện biến đổi ma trận
Bộ hàm OPenGL utility gồm các hàm cao cấp, các hàm này đơn giản hoá cấu trúc thực hiện biến đổi toạ độ ở mức cao Biểu diễn các đối tượng
có cơ sở đa giác nh hình cầu, hình trụ, hình đĩa
Bộ hàm của thư viện OPenGL auxiliary gồm các hàm đặc biệt dùng đơn giản hoá các ví dụ lập trình
Bộ hàm WGL có tác dụng kết nối OPenGL với WINNT cho phép người lập trình xây dựng và chọn lựa các ngữ cảnh biểu diễn, tạo các bitmap font các hàm này chỉ dùng trên WINNT
Bộ hàm WIN32 API được dùng để định dạng điểm và ảnh tạo bộ đệm đôi
4.3 Khởi tạo MFC cho OPenGL
Trong phần này chúng ta sẽ nghiên cứu việc khởi tạo ứng dụng OPenGL và liên kết nối OPenGL vào chương trình MFC
4.3.1 Ngữ cảnh biểu diễn
Mọi chương trình trên Windows đều phải sử dụng ngữ cảnh dụng cụ (DC Device context), Đây là cấu trúc dữ liệu chứa thông tin về cách mà dữ liệu đồ hoạ dược hiển thị trên cửa sổ Ngữ cảnh dụng cụ xác định màu sắc
Trang 33bút vẽ kiểu màu, nội dung bảng màu, kiểu mapping (kiểu thể hiện các phần
tử của không gian tọa độ nguồn nên không gian tọa độ đích), và các thuộc tính khác mà Windows cần biết để thể hiện thông tin đồ họa
OPenGL còn yêu cầu phải sử dụng ngữ cảnh biểu diễn (RC Rendering context) Toàn bộ lệnh OpenGL đều phải qua ngữ cảnh biểu diễn, mọi tiến trình gọi tới OpenGL đều phải có một ngữ cảnh biểu diễn hiện hành Ứng dụng sẽ xác định ngữ cảnh thiết bị phù hợp khi nó tạo ngữ cảnh biểu diễn Đặc biệt ngữ cảnh biểu diễn có cùng định dạng điểm vẽ (pixel format) nh ngữ cảnh dụng cụ Một lời gọi GDI phải xác định rõ ràng
nh một ngữ cảnh dụng cụ Và một lời gọi Open GL phải xác định rõ ràng một ngữ cảnh biểu diễn Các hàm WGL quản lý ngữ cảnh biểu diễn :
Bảng 4.1 Các hàm WGL quản lý ngữ cảnh biểu diễn
WglCreateContext () Tạo một ngữ cảnh biểu diễn mới
WglDeleteContext () Xóa ngữ cảnh biểu diễn
WglGetCurrentContext () Trả handle về ngữ cảnh biểu diễn hiện hànhWglGetCurrentDC () Lấy handle của ngữ cảnh dụng cụ liên kết
với ngữ cảnh biểu diễn hiện hànhWglMakeCurrent () Thiết lập ngữ cảnh biểu diễn hiện hành
Trước khi tạo một ngữ cảnh tô vẽ cần phải thiết lập định dạng điểm ảnh của thiết bị Nó lưu giữ các thuộc tính về bề mặt vẽ của thiết bị Những thuộc tính đó bao gồm: bề mặt vẽ sử dụng chế độ màu RGBA hay index color, vùng đệm điểm ảnh được sử dụng là đơn hay kép, số lượng bít màu,
số lượng bít được sử dụng cho vùng đệm sâu và vùng đệm stencil và các thông tin đồ hoạ khác của OpenGL Các hàm xử lý về định dạng điểm ảnh :+ ChoosePixelFormat() trả về định dạng điểm ảnh phù hợp nhất so với yêu cầu
+ DescribePixelFormat() lưu giữ các thông tin về định dạng điểm ảnh được đa đến
Trang 34+ GetPixelFormat() lấy định dạng điểm ảnh của ngữ cảnh thiết bị đưa đến.
+ SetPixelFormat() đặt định dạng điểm ảnh của ngữ cảnh thiết bị đưa đến
Tuỳ theo yêu cầu chương trình có hai kỹ thuật để quản lý ngữ cảnh tô vẽ:
(1) Tạo ngữ cảnh tô vẽ và cho nó hiện hành bằng thông điệp
WM_CREATE, xoá ngữ cảnh tô vẽ đồng thời bỏ hiện hành bằng thông điệp
WM_DESTROY.
(2) Tạo ngữ cảnh tô vẽ bẳng thông điệp WM_CREATE, nhưng chỉ cho hiện hành khi cần vẽ bằng OpenGL và bỏ hiện hành ngay sau khi vẽ xong Xoá ngữ cảnh tô vẽ bằng thông điệp WM_DESTROY.
Ưu điểm của phương pháp thứ nhất là chỉ cần cho ngữ cảnh tô vẽ hiện hành một lần bởi vì cho hiện hành ngữ cảnh tô vẽ phải mất khá nhiều thời gian để xử lý nã cho phép chương trình đáp ứng thông điệp WM_PAINT
nhanh hơn một chút.Nhưng nhược điểm của phương pháp này là phải luôn giữ một DC trong toàn bộ thời gian chạy chương trình Nói chung các chương trình Visual C++ tạo bởi AppWizart không thích hợp với phương pháp này
Với phương pháp thứ hai chương trình tạo ra và giải phóng DC của window mỗi lần muốn vẽ lên cửa sổ Vì thế chương trình không cần phải giữ DC trong suốt quá trình chạy Tuy nhiên mỗi lần tạo một DC, chương trình phải cho hiện hành ngữ cảnh tô vẽ
4.3.2 Cấu trúc PIXELFORMATDESCRIPTER
Mỗi một thiết bị thể hiện của OpenGL hỗ trợ một số hữu hạn các định dạng điểm ảnh Tất nhiên tính sẵn có của định dạng điểm ảnh phụ thuộc và khả năng của thiết bị thể hiện Các thuộc tính của một định dạng điểm ảnh
cụ thể được biểu diễn thông qua cấu trúc PIXELFORMATDESCRIPTER. Cấu trúc này lưu trữ 26 trường thông tin
Trang 35typedef struct tagPIXELFORMATDESCRIPTOR { WORD nSize;
Trang 36Bảng 4.2 Các thành phần của cấu trúc PIXELFORMATDESCRIPTOR
Nsize Kích thước tính bằng byte của cấu trúc Có thể thiết
lập bằng sizeof (PIXELFORMATDESCRIPTOR).Nversion Số phiên bản (version( của cấu trúc, hiện bằng 1.DwFlags Các cờ đặc tính cho định dạng điểm ảnh (bảng 4.3)IpixelType
Mô tả dữ liệu màu của điểm vẽ:
- PFD_TYPE_RGBA đối với chế độ màu RGBA
- PFD_TYPE_INDEX đối với chế độ màu chỉ mục
cColorBits
Số bít thể hiện một màu Nó quyết định số màu thể hiện chế độ màu RGBA, thì không tính đến alpha bitplance Đối với chế độ màu chỉ mục, cColorBits xác định kích thước độ đệm màu
cRedBits Sè bit đỏ trong bộ đệm màu RGBA
cRedShift Tổng độ dời các bitplane đỏ trong bộ đệm màu
RGBAcGreenBits Sè bit xanh lá trong bộ đệm màu RGBA
cGreenShift Tổng độ dời các bitplane xanh lá trong bộ đệm màu
RGBAcBlueBits Sè bit xanh dương trong bộ đệm màu RGBA
cBlueShift Tổng độ dời các bitplane xanh dương trong bộ đệm
màu RGBAcAlphaBits Sè bitplane trong bộ đệm màu RGBA Không dùng
trên microsoft Windows cAlphaShift Tổng độ dời các bitplane alpha trong độ đệm màu
RGBA không dùng trên microsoft WindowscAccumBits Sè bitplane trong độ đệm tích lũy
cAccumRedBits Sè bit đỏ trên một pixel trong độ đệm tích lũy
cAccumGreenBits Sè bit xanh lá trên một pixel trong độ đệm tích lũy cAccumBlueBits Sè bit xanh dương trên một pixel trong độ đệm tích
lũycAccumAlphaBits Sè bit alpha trên một pixel trong độ đệm tích lũycDepthBits Sè bitplane trong độ đệm chiều sâu
cStencilBits Sè bitplane trong độ đệm stencil
cAuxBuffer Số bộ đệm phụ không dùng trên microsoft
Trang 37Windows
iLayerType
Xác định kiểu lớp trên Microsoft Windows làPFD_MAIN_PLANE Ngoài ra các kiểu lớp khác là
FPD_OVERLAY_PLANE và PFD_UNDERLAY_PLANEbServered Dùng dự trữ, thường bằng 0
dwLayerMask Hai trường hợp này đi đôi với nhau để xác định
một lớp che một lớpdwVisibleMask
dwDamageMask
Dùng khi nhiều hơn một định dạng điểm vẽ sử dụng chung bộ đệm khung Nếu bitwise AND của các thành viên dwDamageMask của hai khung định dạng điểm vẽ khác 0, thì chúng sử dụng chung một
độ đệm khung
Trang 38Bảng 4.3 Các cờ đặc tính cho định dạng điểm ảnh
PFD_DRAW_TO_BITMAP Bộ đệm được dùng vẽ vào bitmap
bộ nhớPFD_DRAW_TO_WINDOW
Bộ đệm được dùng vẽ vào cửa sổ trên màn hình hay thiết bị khác như máy in
PFD_DOUBLEBUFFER
Thiết lập khi dùng bộ đệm đôi Không dùng cùng với cờ PFD_SUPPORT_GDI
PFD_GENERIC_FORMAT
Thiết lập khi chọn định dạng điểm vẽ tổng quát, là định dạng điểm ảnh được hỗ trợ bởi phần cứng hay trình điều khiển thiết bịPFD_NEED_PALETTE Thiết bị khi dùng bảng màu logic
PFD_NEED_SYSTEM_PALETTE
Thiết lập khi hệ thống sử dụng phần cứng Open GL chỉ được hỗ trợ bởi một bảng màu phần cứng duy nhất (Bảng màu phần cứng mapping một _ một với bảng màu logic)
PFD_STEREO
Thiết lập khi chọn bộ đệm lập thể Không dùng trên Microsoft Windows
PFD_SUPPORT_GDI
Bộ đệm hỗ trợ các hàm đồ họa GDI
Không dùng cùng với cờPFD_DOUBLEBUFFERPFD_ SUPPORT_OPENGL Bộ đệm hỗ trợ các hàm đồ họa
Open GL
Trang 39E
Định dạng có thể dùng bộ đệm đơn hay đôi, không ưu tiên cho riêng loại nào
PFD_STEREO_DONTCARE Cảnh lập thể hoặc không lập thể,
không ưu tiên cho riêng loại nàoKhi thiết lập định dạng điểm ảnh của ngữ cảnh dụng cụ thì cấu trúc
PIXELFORMATDESCRIPTOR được điền đầy và địa chỉ của nó được dùng làm đối số cho hàm SetPixelFormat().
Với kỹ thuật quản lý ngữ cảnh tô vẽ thứ hai nh đã giới thiệu ở trên ta cần qua 5 bước cơ bản để khởi tạo môi trường đồ hoạ cho OpenGL:
Bước 1: Sử dụng AppWizard tạo một ứng dụng ban đầu
Bước 2: Sử dụng ClassWizard tạo các hàm
nCreate(),OnDestroy(),PreCreateWindow(),OnSize(),OnEraseBackGround() tương ứng với các thông điệp WM_CREATE , WM_DESTROY,WM_SISE, WM_ERASEBKGND, PreCreateWindow.
Bước 3 : Thay đổi lần lượt các hàm nh sau:
sizeof(PIXELFORMATDESCRIPTOR), // Structure size.
1, // Structure version number.
PFD_DRAW_TO_WINDOW | // Property flags.
PFD_SUPPORT_OPENGL |
PFD_DOUBLEBUFFER, PFD_TYPE_RGBA,