Kĩ thuật tự động thiết kế cơ khí, điều khiển máy
Trang 1Bảng 6.7.5 Mã nhóm đối tượng đa tuyến phẳng (LWPolyline)
70 Kiểu: giá trị 0 - đa tuyến hở, 1 - kín Giá trị mặc định bằng 0
43 Độ rộng đường (khi là hằng số) Mặc định bằng 0 Không dùng
khi chiều rộng thay đổi (mã nhóm 40, 4l)
38 Cao độ Z (elevation), mac định bằng Ö
39 Chiều dày trượt (thickness), mac dinh 0
10 Tọa độ đỉnh đa tuyến (trong hệ tọa độ OCS)
40 Chiều rộng đường tại điểm đầu đoạn Không sử dụng khi đặt
mã 43
4I Chiều rộng đường tại điểm cuốt đoạn Không sử dụng khi đặt
mã 43
42 Bulgc (độ cong của đoạn, giá trị thay đối theo từng đoạn trong
đa tuyến) Mặc định bằng 0 (đoạn da tuyến thang)
210 Hướng trượt (vectơ pháp của mặt phẳng chứa đối tượng) — tuỳ
nhóm
100 Subclass marker (AcDbEllipse)
10 Tâm (trong hệ tọa độ WCS)
11 Điểm cuối trục chính, đo tương đối với tâm
100 Subclass marker (AcDbArc)
210 Hướng trượt (vectơ pháp của mặt phẳng chứa déi tuong) — 1uy
chọn Mặc định bằng 0, 0, 1
40 Tỷ số độ dài trục phụ / trục chính
4I “Thông số góc đầu của cung êlip Bằng 0 nếu vẽ cả êlip
42 "Thông số góc cuối của cung êlip Bằng 2m nếu vẽ cả élip
Lưu ý: | Ý nghĩa các thông số mã 41, 42 xem phân trợ giúp trực tuyến
để xem cách AutoCAD xdy ding mét cung élip như thế nào
219
Trang 2Bảng 6.7.7 Mã nhóm đối tuong van ban dang khéi (Mtext)
220
1 = Top left; 2 = Top centcr; 3 = Top right:
4 = Middle left; 5 = Middle center, 6 = Middle right;
7 = Bottom left; 8 =Botlomcenter; 9 = Bottom righ
3 Chuỗi ký tự (luôn có độ dài 250 ký tự)
7 Tén dinh dang (text style)
210 Hướng trượt (tuỳ chọn) Mặc định bằng 0, 0, 1
"1 Hướng trục X, thể hiện qua điểm nằm trên trục X (WCS)
42 Chiều đài dòng văn bản (bé hơn hoặc bằng giá trị trong mã 41)
Mã này chỉ cho phép đọc
43 Chiều cao vùng văn bản (chỉ đọc)
30 Góc nghiêng dòng văn bản (rađian)
73 Kiểu cách dòng trong Mtext:
1 = at least (đồng cách đồng tối thiểu, tự giãn đồng khi gặp chữ cao hơn)
2 = exact (ấn định chính xác, không tự giãn dòng)
|_44 Tỷ lệ giãn dòng Giá trị cho phép từ 0.24 đến 4 so với mặc định
Trang 3
Bảng 6.7.8 Mã nhóm đối tượng văn ban dong don (Text)
nhóm
100 Sub: s marker (AcDbTcxt)
39 Chiều day truot (thickness)
10 Điểm chèn
40 Chiểu cao chữ
1 Noi dung dong van ban
50 Góc nghiêng dòng van bản (radian)
41 Độ giãn ngang của chữ, mặc định bằng Ì
51 Góc nghiêng chữ (obligue angle)
1 | “Tên định dạng văn bản (textstyle)
HÌ Kiểu chữ, mặc định bằng 0 Các giá trị khác có ý nghĩa sau:
2 = backward; '4 = upsidedown
72 Căn đồng văn bản theo chiều ngang Số nguyên, nhận một
trong các giá trị sau:
0 = Can trai (Left) - giá trị mặc định;
1 = Căn giữa (Center);
2 = Căn phải (Right);
3=Aligm: 4=Middl; 5= Fit
1 Điểm đóng hàng (tuỳ chọn)
210 Hướng trượt (tuỳ chọn) Mac dinh bang 0, 0 !
100 Subclass marker (AcDbText)
73 Can dong van ban theo chiều dọc Mac dinh = 0 (Baseline)
|_ Các giá trị khác: 1= Botom; 2= Middle, 3 = Top
Ví dụ 6.23: In ma DXF đối tượng vữa về
{dcfun c:IstDXF ( / caame ecode cnt}
(setq ename (entlast)) : lấy tên đối tượng về sau Cùng
(setq code (entget ename)) : lấy DXF code của đối tượng
(setq ent 0)
(princ "MDXE codes cua doi tuong ve sau cung ")
(repeat (length ecode) ¡ vòng lặp
(print (nth cnt ecode)) ;in môi dòng một danh sách con (setq cnt (1+ ent))
221
Trang 4Kết quá đoạn thẳng vừa vẽ nối các điểm có tọa độ (1 2) và (6 5) trong
mật phẳng XY ở ví dụ trên sẽ được trình bày trên màn hình văn bản của AutoCAD dưới dạng sau:
(-1 <Entity name: 7ef4fca0>)
Ví dụ dưới day tao lớp "MYLAYER" và vẽ đối tượng vòng tròn có tam tại điểm (5.0 7.0 0.0) và bán kính 1.0 trên lớp vừa tạo
Ví dụ 6.24: Tạo đối tượng mới sử dụng mã đối tượng
(entmake ‘(
(0 "CIRCLE”) ; loại đối tượng (8 "MYLAYER") ¡ lớp (Layer) (10 5.0 7.0 0.0) ; tâm vòng tròn
)
Sau đó, nếu sử dụng chương trình ở ví dụ 6.23, kết quả trả về như sau:
(-1 <Entity name: efAfeb8>)
Trang 5Có thể thấy rang AutoCAD đã tự thêm các mã nhóm chung vào mã của đối tượng vừa tạo như tên đối tượng, màu, theo giá trị mặc định
6.3.3 Sửa đổi các đối tượng AutoCAD
6.3.3.1 Sử dụng Emtity va SelectionSet truy cáp CSDL AufoCAD
Các lệnh sửa đổi trong AutoCAD nói chung có liên quan đến việc chọn đối tượng hay một nhóm đối tượng trên bản vẽ Thông thường để yêu cầu người dùng thực hiện việc này AutoCAD đưa lời nhắc Sefec/ Object(s) én dong ténh command Trong lập trình thiết kế, người lập
trình cần phải truyền dữ liệu cho lệnh sửa đổi một cách tự động, không
qua thao tác chọn trực tiếp, vì vậy AutoLISP cung cấp một dạng dữ liệu
kiểu nhóm chọn goi 1a Selection Set hay Pick Se: như đã giới thiệu ở phần đầu Dưới đây giới thiệu một số hàm thông dụng để thao tác với kiểu dữ
liệu này:
® (ssget [sel-method] [ptl [pt2]] [pt-list] [filter-list])
Hàm này dùng để chọn nhóm đối tượng như khi thao tác trực tiếp với AutoCAD Các tham số của hàm như sau:
sel-method - chuỗi ký tự thể hiện cách chọn nhóm đối tượng Có thể sử dụng các giá trị sau:
TC" - chọn theo phương pháp Crossing Windows Các đối tượng
nằm trong hoặc cắt biên một vùng chữ nhật xác định bởi các đỉnh đối diện pt va pr2
"CP" - chon theo Crossing Polygon (da giéc) Cac dinh cia da giác cho trong tham s6 pi-list
”E” - chọn theo Fence: các đối tượng cất qua một đường gấp khúc,
xác định bởi các đỉnh trong danh sach pt-list
”L” - chọn đối tượng cuối cùng trong CSDL (đối tượng vẽ sau cùng, nhìn thấy được)
”P" - chọn lại nhóm đối tượng vừa chọn trước đó (Previous)
"W" - chọn theo kiểu Windows: chỉ chọn các đối tượng nằm lọt trong vùng chữ nhật, xác định bởi các điểm pr! va p2
"WP' - tương tu CP, nhưng chi chon các đối tượng nằm gọn trong
đa giác, không cắt biên
on tất cả các đối tượng trong CSDL AutoCAD, bao gồm
cả các đối tượng trên các lớp OFF, FROZEN và nằm ngoài vùng nhìn thấy,
pt] - điểm xác định vùng sẽ chọn các đối tượng
223
Trang 6p2 - điểm xác định vùng sẽ chọn các đối tượng
pt-list - danh sách các điểm, xác định đường gấp khúc hoặc đa giác
liên quan đến vùng chọn
filter-list - danh sách liên kết thể hiện việc chọn loại trừ Chỉ những đối tượng thoả mãn điều kiện trong danh sách này mới được đưa vào nhóm chọn
Dưới đây là một số ví dụ về cách thể hiện danh sách này trong việc
chọn đối tượng:
Ví dụ 6.25: Chọn nhóm đổi tượng
(setq ssÏ (ssget Thể hiện lời nhắc chung Select Objects dé '{0 "TEXT"Đ) người dùng chọn, nhưng chỉ đưa vào nhóm
(setq ssl (ssget "P" Chon các đối tượng 1a doan thang Line trong
"(0 "LINE"))) nhóm đối tượng đã chọn trước đó
(ssget "X" Chọn tất cả các đối tượng Line được vẽ với
449 "LINE") mau 5 (Xanh - Blue)
(62 5))) Luu ý rang các đối tượng cùng màu này nhưng
với đặc tính là ByLayer hoặc ByBlock sẽ không được chọn
Nếu không chỉ rõ phương pháp chọn, AutoLISP sẽ chọn đối tượng đi qua điểm đã chỉ định Còn nếu không có tham số, hàm sẽ hiện lời nhắc
Select Objeci(s) lên đồng lệnh command để yêu cầu người dùng chọn trực tiếp trên bản vẽ AutoCAD
Kết quả trả về của hàm là tên nhóm chọn nếu việc lựa chọn thành công, ngược lại, nếu không chọn được đối tượng nào, hàm »sge sẽ trả về
giá trị NIL
© (ssadd [ename [ss]])
Hàm này dùng để thêm đối tượng (Entity) vào nhớm chọn Nếu không
có tham số, hàm sẽ tạo một nhóm rồng Nếu chỉ có tham số erzme, hàm
224
Trang 7sẽ tạo nhóm đối tượng mới gồm một thành phần, ngược lại, nếu đầy đủ tham số hàm sẽ thêm đối tượng có tên enane vào nhóm ss Kết quả trả
về của hàm là tên nhóm chọn ss Các tham số của hàm có ý nghĩa như
sau:
ename - ten đối tượng (entity) Có thể lấy tên đối tượng qua các hàm
đã trình bày ở mục 3.2.2 hoặc qua ham (ssname ss index) trong
phần này
gs - tên nhóm đối tượng cần thêm vào
Ví dụ dưới đây mình họa cách sử dụng hàm này
Ví dụ 6.26: Thêm dõi tượng vào nhám
(setq ss] (ssadd}) ; tạo nhóm đối tượng mới (ng) gắn
¿ kết quả cho biến s1 (sely ss2 (ssadd (entlast))) ; tạo nhóm đối tượng gầm phần tứ vừa
+1, kết quả adn cho bién ss2 (ssadd (entlast) ss1) + thêm đối nượng vừa về vào nhóm ss/
vớ Đaqn Chung TRÌNH sat YêU Cầu người đìng chọn nhóm đối tượng iva sau do cde doi trong dd chon dược thêm vào nhóm wsi:
(setq ss (ssget)) ¡ chọn nhóm đối tượng, gán kết
i qua cho bién ss
(setq ind 0 cindex
num (sslengh ss) : sở phân tứ trong nhóm dã chọn }
(setq ent (ssname ss ind)) ; lấy tên phan ne thứ ind
(ssadd ent ss1) i thénvvae ahém ssf phan ut tren
(setq ind (f+ ind)) ¿ phần tứ tiếp theo trong ss
)
* Ham (ssdel ename ss) lam cong viéc nguge fai voi ham ssadd Công dụng là để loại bớt đối tượng khỏi nhóm chọn (giống như nhập "R”
trong khi AutoCAD yêu cầu chọn đối tượng) Nếu enzme là phần tử trong
nhóm chọn sz thì hàm sẽ loại khỏi nhóm se đối tượng đã chỉ định và trả
về tên nhóm chọn s» Ngược lại, khi euzme không thuộc nhóm chọn ss
Trang 8đối tượng thir nhat c6 index la 0, còn đối tượng có idex bằng (n-1) là đối tượng cuối cùng (với n là số đối tượng trong nhóm, trả về bởi hàm sstength) Xem ví dụ 6.26
e Ham (ssmemb ename ss) dùng để kiểm tra xem đối tượng nào đó
có thuộc nhóm chọn hay không Nếu đối tượng có tên enzme thuộc nhóm chọn ss, hàm trả về tên đối tượng eaame, còn không, hàm sẽ trả về NIL
6.3.3.2 Sửa đổi các đối tượng AutoCAD
Một bản vẽ nói chung không thể thiếu các thao tác sửa chữa đối tượng AutoCAD cung cấp khá nhiều lệnh sử đụng cho mục đích này như Erase
để xoá nhóm đối tượng, Copy - sao chép, Rotate - quay, Mirror - lấy đối xứng gương, Trim - xoá một phần đối tượng Trong chương trình AutoLISP các thao tác sửa đổi này có thể thực hiện tự động thông qua
cách gọi hàm commend cùng với các lệnh này Cú pháp và cách sử dụng ham command trong AutoLISP xem chỉ tiết phần 6.3.2.1, ở đây chỉ lưu ý thêm là các lệnh sửa đổi thường được áp dụng với dữ liệu kiểu nhóm chọn
Selection Set
Các hàm AutoLISP dưới đây mình họa việc sử dụng lệnh sửa đổi của
AutoCAD với nhóm đối tượng Nhóm đối tượng mới được thêm vào bản
vẽ bằng cách lấy đối xứng, sao chép hoặc quay nhóm đối tượng đã chọn
Kết quả trả về của hàm là nhóm đối tượng vừa được tạo ra Bằng cách này, người lập trình có thể quản lý không những các đối tượng đã có, mà còn quản lý được các đối tượng vừa tạo
Ví dụ 6.27: Một số hàm thao tác với nhóm đối tượng
; Đưới dây là 3 hàm dùng để thực hiện sửa đổi nhóm đối tượng
; Phần in đậm là tên hàm Công dụng chung của các hàm này được mô tả
; vấn tắt ở các dòng chú thích phía dưới
; (defun ss-mirro (ss pÏ p2 flag)
¡ Hàm trả về nhóm đối tượng mới sau khi lấy đối xứng nhóm xš đã chọn + qua đường thang noi hai diém pl va p2
¿ Flag: kiểu đối vững: () - xod ban g6e khi xong; 1 - giữ bản gốc
3 (defun ss-copy (ss pl p2)
; Hàm trả về nhém déi tueng méi bdng cach sao chép nhém ss dé chon : từ diểm pl đến điểm p2
; (defun ss-rc0py (5s pt ang)
+ Hàm thực hiện việc sao chép tại chỗ nhóm đối tượng ss và quay nhám đốt
; tượng mới quanh điểm pt một góc ang (Ảo bằng độ)
; Trả về nhóm đối tượng mới
226
Trang 9(defun ss-mirror (ss p1 p2 flag / ent ss1 num ind flagi)
(if (null ss)
(sety ss] NIL) ; nếu nhóm sẽ rỗng (nuHl objeet), trả vé NIL
(progn ; nếu ngược lại, thực hiện lấy đối xứng
(while (< ind num)
(setg ent {ssname ss ind))
(command "._Mirror” ent “” p] p2 flag!)
(sotq ssi NIU) — ; nết ss rằng (nHÌ oBjec1), ud vé NIL
(progn ¡ ngược lại
{setq ssL (ssadd))
(setq num (sslength ss))
{setq ind 0)
(while (< ind num)
{setq ent (ssname ss ind))
(command "._Copy" ent "" p! p2)
Trang 10(defun ss-rcopy (ss pt ang / ss! ent num ind)
Cif (null ss)
(setq ss] NIL) — ; nếu sẽ rỗng (null object) rd vé NIL
(setq ss1 (ssadd))
(setq num (sslength ss))
(setq ind 0)
(while (< ind num}
{setq ent (ssname ss ind})
(command "._Copy” ent "” pt pt}
(command ”._Rotate" (cntlast) “” pt ang)
Một cách khác để thay đổi đối tượng là truy cập trực tiếp vào CSDL
AutoCAD, sửa đổi chúng và cập nhật lại đối tượng đã thay đổi
Các tính chất của đối tượng có thể thay đổi bằng cách thay trực tiếp
mã đối tượng qua hàm (enfmod elisf) sau đó hình ảnh mới của đối tượng được cập nhật lại qua hàm (ei#pd ename) Trong các hàm này, elisf là
danh sách liên kết thể hiện mã đối tượng, còn ename 1a tên đối tượng cần
cập nhật
Giả sử vừa gọi lệnh AutoLISP sau đây (xem ví dụ 6.24) để vẽ vòng tròn bán kính 1.0, tâm có tọa độ (5.0 7.0 0.0) trên lớp MYLAYER:
(entmake
(0 "CIRCLE”) - loại đốt tượng
{8 "MYLAYER") + lớp (Layer) chứa đối tượng
số tương ứng (bán kính - mã I0; tên lớp - mã 62) Lưu ý rằng, mã 62 chưa có trong mã nhóm đối tượng (do lớp đặt mặc định BYLAYER)
228
Trang 11Ví dụ 6.28: Sửa đổi doi tuong bang entmod va entupt
(setq newrad (cons 40 10.0)) ; bán kính mới
{setq newcolor (cons 62 1)) ; màu mới (1 = đỏ)
(setq ent (entlast)) ; lấy tên đối tượng vừa vế
(setq ed (entget ent)) ¡ lấy thông tin mã đối tượng
y thay màn mới và bán kính mới (if (setq color (assoc 62 ed)) ; nếu đã được đặt màu (tổn tại mã 62)
(setq ed (subst newcolor color eđ }) ¡ thì thay mới
(setq ed (append ed (list neweolor))) ; nết không - thêm vào )
(setq ed (subst newrad (assoc 40 ed) ed))
(entmod ed) ¡ cập nhật dữ liệu
Trong ví dụ này đã sử dụng các hàm thao tác với danh sách: đssoc - tim kiém va subst - thay thế phần tử trong danh sách
Trong thực tế, nhiều khi cần kết hợp cả 2 phương pháp sửa đối tượng:
qua hàm cømmand ` kết hợp với truy cập CSDL Ví dụ sau đây yêu câu
người dùng chọn nhóm đối tượng, sau đó chỉ đưa vào nhóm chọn các đối
tượng vòng tròn và vẽ thêm các đường tâm cho các vòng tròn này
Ví dụ 6.29: Thêm đường tâm cho vòng tròn
(setq ss (ssget 0 "CIRCLE”)))) ;yêu cầu người dùng chọn đối tượng
; chí đưa các đường tròn vào nhóm
num (sslength ss))
: số phần tử trong nhóm đã chọn
(repeat num ¡ vòng lặp xử lý từng đối tượng
({setq ent (ssname ss ind)) ; lấy tên phần từ thứ ind
(setq ecode (cntget ent)) : lấy mã đối tượng
{setq cen (cdr (assoc IŨ ecode))) ; lấy tâm đường tròn
(setq rad (cdr (assoc 40 ecode))) — ; fay ban kính đường tròn
31 v@ 2 đường tâm có độ dài 1.1 đường kính qua tâm vòng tròn {setq cl (polar cen 0.0 (* 1.1 rad))
c2 (polar cen pi (* 1.1 rad)) c3 (polar cen (* pi 0.5) (* 1.1 rad)) c4 (polar cen (* pi 1.5) (* 1.1 rad))) (command "._Line” c1 c2 "")
(command "._Line" c3 c4 "") (setq ind (1+ ind))
} ; kết thúc vòng lặp repeat
229
Trang 126.4 THIẾT KẾ VÀ ĐIỀU KHIỂN HOP THOAI DCL
Một phương thức giao tiếp người - máy khác hay được sử dụng trong lập trình là hộp thoai (Dialog Box) So với cach giao tiếp trực tiếp trên
dòng lệnh, hộp thoại có nhiều ưu điểm hơn Đối với hộp thoại, người sử dụng chương trình không nhất thiết phải nhập số liệu tuần tự Mặt khác các dữ liệu tiêu chuẩn có thể chọn thay vì gõ trực tiếp nên tránh được sai
sót và hạn chế nhập sai dữ liệu Một điều nữa, giao điện hộp thoại trông thân thiện hơn là kiểu nhắc nhập trực tiếp trên đồng lệnh, giúp người
dùng thoải mái hơn khi sử dụng
Hộp thoại gồm các nút điều khiển, gọi là /i/e Có thể tạo một tile phức hợp (gọi là subassembly) gém nhiễu nút, ấp xếp trong một dòng hoặc cột, bao hoặc không bao bởi một đường viên Bản thân các dong và cột
chita cdc tile duoc goi 1a cluster Cac tile phức hợp này có thể được sử dụng cho nhiều hộp thoại khác nhau Ví dụ, các nút OK, Cancel, Help
được gom thành nhóm và được sử dụng cho nhiều hộp thoại khác nhau
trong AutoCAD Các subassembly được coi như một tile don Cac tile trong nhém subassembly được gọi la children
6.4.1 Thiết kế hop thoai DCL
Hop thoai duge tổ chức theo cấu trúc cây, với phần gốc là tile với tên gọi dialog, dinh nghĩa ban thân hộp thoại, tiếp đến là các tile, các cluster, subassembly, Trên hình 6.7 trình bày cấu trúc cây của hộp thoại nhập thông số vít 6 cạnh tiêu chuẩn, còn trên hình 6.8 là bản thân giao diện của hộp thoại này
Hộp thoại được định nghĩa qua file văn ban ASCII, viết theo cú pháp của ngôn ngữ DCL (Dialog Control Language) File chứa định nghĩa các
tile, cluster, subassembly, cách xắp xếp và độ lớn của chúng được lưu trong file có phần mở rộng *.DCL Một file DCL, có thể chứa nhiều hộp
thoại, cũng như các định nghĩa tile và subassembly khác nhau Hộp thoại
và cdc tile cha chúng được điều khiển thông qua các hàm AutoLISP Môi
trường VisualLISP IDE cung cấp tính năng Tools / Interface tools f
Preview DCL / 48 xem trudc két qua hộp thoại đang thiết kế
Một số lưu ý khi thiết kế hộp thoại:
- Thuận tiện cho người dùng:
Vẻ ngoài của hộp thoại rất quan trọng: nếu trình bày quá nhiều tile trên một hộp thoại sẽ rất khó cho người sử dụng khi thao tác Mặt khác,
việc sắp xếp các tile nên khoa học, dễ tiếp cận, các tile hay sử dụng (ví
du, OK, Cancel ) nén đặt ở vị trí thống nhất trong các hộp thoại.
Trang 13- Thống nhất với các ứng dụng liên quan:
Một hộp thoại trình bày thống nhất với các hộp thoại khác sẽ làm người sử đụng dé chịu hơn là trình bày tuỳ ý Ví dụ, các nút OK, Cancel, Help thường được đặt phía đáy hộp thoại, nếu khác đi, người dùng sẽ mất
công tìm kiếm xem chúng ở đâu và do vậy, gây thêm những phiền toái không cần thiết Một cách tốt nhất để thống nhất hoá cách trình bày là sử dụng các hộp thoại có sẵn, sửa đổi lại nội dung cho phù hợp với yêu cầu
của mình Có thể tham khảo các file định nghĩa hộp thoại base.dcl và acad.dcl c6 san trong folder Support cia AutoCAD
- Sử dụng ngôn ngữ rõ rằng:
Các văn bản kèm theo trong hộp thoại (tên hộp thoại, các tile, các
dòng chú thích ) cần thể hiện ngắn gọn, nhưng thông tin cần đầy đủ, rõ ràng và chính xác, tránh dùng tiếng lóng hoặc viết tắt làm người dùng không thể hiểu Một hình vẽ minh họa các dữ liệu cần nhập sẽ rất hữu ích
và có thể thay thế cho những câu văn dài
- Hạn chế người dùng nhập sai dữ liệu:
Những đữ liệu tiêu chuẩn (đường kính bulông, môđun bánh răng ) nên thiết kế thành danh sách (popup_list hoặc list box) để người dùng chọn thay vì gõ trực tiếp qua hộp text_box Điều này sẽ tránh cho người dùng nhập sai thông số hoặc thông số phi tiêu chuẩn Khi dữ liệu không được phép sửa hoặc không cần nhập cho trường hợp cụ thể nào đó thì các
tile tương ứng này nên tắt đi để người dùng không thể truy cập Khi có
các giá trị hay dùng, ít thay đổi hoặc dùng chung cho nhiều bộ dữ liệu khác nhau thì nên đặt giá trị mặc định cho các tile tương ứng Việc này sẽ làm người dùng nhập dữ liệu nhanh hơn Một cách khác cũng hay được
sử dụng là lấy giá trị các tile ở lần gọi hộp thoại trước đó để đặt mặc định
cho lần gọi sau, việc này rất có lợi khi cần tính toán, thiết kế với nhiều phương án khác nhau
- Sử dụng phím tắt:
Đôi khi người dùng không thích sử dụng thiết bị chuột hoặc con chuột
bị hỏng, khi đó để chương trình hoạt động bình thường nên cung cấp cho người dùng chức năng truy cập các tile từ bàn phím Thông thường phím
Tab được dùng để di chuyển từ tile này đến tile khác, phím Space để thay đổi giá trị các nút kiểm (toggle), phím Enter dùng để nhập các giá trị trên
hộp thoại, còn Esc sẽ bỏ qua các giá trị đã nhập và thoát hộp thoại Nếu muốn đi chuyển nhanh đến một tile nào đó mà không cần dùng phím Tab duyệt qua các tile khác, tile nay can duoc gan phim tat (goi 1A mnemonic) Trong ví dụ trên hình 6.8, việc chọn hình chiếu vẽ vít tiêu chuẩn được thể hiện qua các nút radio (1) (2) (3) (4) đã được gần các phím tắt Người
231
Trang 14list_box
edit_box
radio_button
radio_button
radio, button
Trang 15
Chiều dài: | cee a] [Thi vẽ mũ
[]Ren suốt chiều dài vít Vẽ đường tâm
tile, nếu được dat mnemonic chit cdi này sẽ được gạch chân (các chữ cái
V, K, Htrong các nút Vẽ, Không, Hỏi thêm ở ví dụ trên hình 6.8)
- Kế thừa các hộp thoại hoặc tile:
Nhiều hộp thoại va tile cùng được sử dụng cho các ứng dụng khác
nhau Để thống nhất và tiết kiệm thời gian, file DCL mới có thể kế thừa
các định nghĩa trong một file DCL đã có bằng cách tham chiếu đến chúng
thông qua lời gọi @i»clude dclfile, đặt trên đâu file mới Nếu tên file
tham chiếu đến (dcjfie) không ghi kèm đường dẫn, AutoLISP sẽ tìm nó trước tiên trong folder hiện hành, sau đó mới tìm trong folder chứa file
DCL mới, còn nếu kèm đường dẫn đây đủ, nó chỉ được tìm trong folder
đã được chỉ định Lưu ý rằng, không thể tham chiếu tới file acad.dcl, nên
việc viết @include "acad.del sẽ làm xuất hiện lỗi Tuy vậy, nếu muốn sử dụng các định nghĩa hộp thoại trong file acad.dcl, có thể mở file này và
233