V. To các m um tc t ắ 1 File m u m t c t ẫặ ắ
2. Tùy bi nm tmenu ộ
2.3. Pull-down Menu
2.3.1.Section c a Pull-down menuủ
Puldown menu được khai báo t section Pop1 đ n pop499. m i section có th có m từ ế ỗ ể ộ
ho c nhi u menu đ (thông thặ ề ổ ường là ch a 1). Trong m i menu đô có th ứ ỗ ̉ ể co ́t i đa 999ố
m c menuụ item. AutoCAD se bo qua nh ng menu item ṽ ̉ ư ượt qua gi i han trên. Nêu mań ớ ̣ ́ ̀
hinh không đu chô ch a hêt cac menu item thi AutoCAD se t đông căt b t đi đê v a v ì ̉ ̃ ứ ́ ́ ̀ ̃ ự ̣ ́ ớ ̉ ừ ớ
kich th́ ước man hinh va hai hinh mui tên lên xuông se đ̀ ̀ ̀ ̀ ̃ ́ ̃ ược xuât hiên.́ ̣
Pulldown chia lam hai loai.̀ ̣
− Loai th nhât co section t pop1 đên pop 16. Cac menu nay se đ̣ ứ ́ ́ ừ ́ ́ ̀ ̃ ượ ực t đông taị ̉
vao vi tri cua no trên man hinh. N u section này mà có nhi u h n m t menu thì̀ ̣ ́ ̉ ́ ̀ ̀ ế ề ơ ộ
ch menu đ u tiên m i đỉ ầ ớ ượ ảc t i vào màn hình.
− Loai th hai co section t Pop17 đên pop 499. Cac menu nay se không t đông̣ ứ ́ ừ ́ ́ ̀ ̃ ự ̣
được tai vao man hinh. Tuy nhiên ta vân co thê tai no vào màn hình băng lênh̉ ̀ ̀ ̀ ̃ ́ ̉ ̉ ́ ̀ ̣
menuload hoăc băng ch c năng menu swapping.̣ ̀ ứ
Các quy ước tao tiêu đ c a menu.ề ủ
Ký tự Ý nghĩa
-- Dòng phân cách trên thanh menu đổ
-> B t đ u m t menu cha (submenu)ắ ầ ộ
<- K t thúc menu cha (k t thúc submenu)ế ế
<-<- Khai báo cu i cùng c a submenu và menu đố ủ ổ
$( ) Cho phép s d ng chu i DIESEL trong tiêu đ m c menuItem.ử ụ ỗ ề ụ
~ Làm m m c ch n và không cho phép ch n m c nàyờ ụ ọ ọ ụ
!. Làm xu t hi n d u ch n (ấ ệ ầ ọ √) trước menu.
& Làm xu t hi n d u g ch chân cho ký t đ ng sau nó (khai báo phím t t)ấ ệ ấ ạ ự ứ ắ
\t Canh l ph i cho ký t trong tiêu đ c a m c ch n.ề ả ự ề ủ ụ ọ
\c Khai báo phím nóng. Phân tích ví d sau :ụ **FILE ID_MnFile [&File] ID_New [&New...\tCtrl+N]^C^C_new ID_Open [&Open...\tCtrl+O]^C^C_open ID_DWG_CLOSE [&Close]^C^C_close [--] ID_Save [&Save\tCtrl+S]^C^C_qsave
ID_Saveas [Save &As...\tCtrl+Shift+S]^C^C_saveas ID_Export [&Export...]^C^C_export
[--]
ID_Inan [->Print]
ID_Preview [/vPlot Preview]^C^C_preview
ID_PlotSetup [Pa&ge Setup Manager...]^C^C_pagesetup ID_PlotMgr [Plotter &Manager...]^C^C_plottermanager ID_Print [<-&Plot...\tCtrl+P]^C^C_plot
[--]
ID_MRU [Drawing History] [--] ID_APP_EXIT [E&xit\tCtrl+Q]^C^C_quit Phân tích ví d sau :ụ [Pop&3] ID_ortho [$(if,$(getvar,orthomode),!.)Ortho]^O ID_Snap [$(if,$(getvar,snapmode),!.)Snap]^B ID_grid [$(if,$(getvar,gridmode),!.)Gride]^G ID_cmdactive [$(if,$(getvar,cmdactive),~)line]Line
2.3.3.Tham chi u đ n pulldown menuế ế
Ta có th làm m hay đánh d u ch n cho các menu Item, ho c ta cũng có th l y cácể ờ ấ ọ ặ ể ấ
thông s tr ng thái c a t ng menu Item b ng cách s d ng tham chi u thông qua các hàmố ạ ủ ừ ằ ử ụ ế
AutoLisp.
Có hai lo i tham chi u :ạ ế
− Tham chi u tế ương đ iố
− Tham chi u tuy t đ i.ế ệ ố
• Tham chi u tế ương đ i.ố
Hàm menucmd c a AutoLisp cho phép ta tham chi u đ n các m c c a pulldownủ ế ế ụ ủ
menu.
Cú pháp :
− Đ gán tr ng thái cho menuể ạ
(menucmd “Gyyy.zzz=xxx”)
− Đ l y thông s tr ng thái c a menuể ấ ố ạ ủ
(menucmd “Gyyy.zzz=?”) hàm tr v giá tr xxxả ề ị
Trong đó
yyy – tên c a nhóm menuủ
zzz – nhãn m c ch nụ ọ
xxx - tr ng thái c a menu : “~” (làm m ), “!.” (đạ ủ ờ ược đánh đ u ch n) “” (tr ngấ ọ ạ
thái bình thường. • Tham chi u tuy t đ iế ệ ố
Tham chi u tuy t đ i là tham chi u d trên vi c đ m s lế ệ ố ế ự ệ ế ố ượng các menu trên màn hình.
Hàm menucmd c a AutoLisp cho phép ta tham chi u đ n các m c c a pulldownủ ế ế ụ ủ
menu.
Cú pháp :
− Đ gán tr ng thái cho menuể ạ
(menucmd “Pn.i=xxx”)
− Đ l y thông s trang thái c a menuể ấ ố ủ
(menucmd “Pn.i=#?”) hàm tr v giá tr xxxả ề ị
Trong đó
n – s th t c a menu đ tính t trái sang ph i trên màn hình.ố ứ ự ủ ổ ừ ả
i – s th t c a menu item c n tham chi u đ n (tính c submenu và d u ngănố ứ ự ủ ầ ế ế ả ấ
cách gi a các ph n trong menu đ )ữ ầ ổ
xxx – Giá trih c a xxx b ng “Pn.i=”&tr ng thái c a menu : “~” (làm m ), “!.”ủ ằ ạ ủ ờ
(được đánh đ u ch n) “” (tr ng thái bình thấ ọ ạ ường.
Ví d : ụ
ID_Swap1 [Swaping1]^C^C^P(if (= (menucmd "P1.1=#?") "P1.1=~") (menucmd "P1.1=") (menucmd "p1.1=~") )
ID_Swap2 [Swaping2]^C^C^P(if (= (menucmd "GACAD.ID_new=?") "~") (menucmd "GACAD.ID_new=") (menucmd "GACAD.ID_new=~") )
2.3.4.Chèn và lo i b Pull-down menu trên menubarạ ỏ
Ngoài l nh MenuLoad, các pull-down menu c a nhóm này có th đẹ ủ ể ược đ a vào thanhư
menub ng cú pháp sau đây :ằ
(Menucmd “Gyyy.zzz=+uuu.vvv)
Trong đó :
Gyyyzzz - s xác đ nh v trí c a pull-down menu uuu.vvv s chèn vào.ẽ ị ị ủ ẽ
yyy – Tên nhóm menu c a pull-down menu xác đ nh v trí.ủ ị ị
zzz – Bí danh (hay tên m c ch n) c a pull-down menu xác đ nh v trí choụ ọ ủ ị ị
uuu.vvv chèn vào .
uuu – Tên nhóm menu c a pull-down menu mu n chèn.ủ ố
Ví d : ụ ***pop3 **Test3 [Pop&3] ID_ortho [$(if,$(getvar,orthomode),!.)Ortho]^O ID_Snap [$(if,$(getvar,snapmode),!.)Snap]^B ID_grid [$(if,$(getvar,gridmode),!.)Gride]^G ID_cmdactive [$(if,$(getvar,cmdactive),~)line]Line
ID_huybo [Xoa menu]^c^C(menucmd "Gcustom.pop3=-")
ID_chenpop4 [Chen pop4]^C^C(menucmd "Gcustom.pop3=+Custom.Pop4") ***pop4
**Test4
[Pop&4]
ID_monew1 [mo new]^C^C^P(menucmd "Gcustom.ID_New=~");^P ID_hiennew1 [hien new]^C^C^P(menucmd "Gcustom.ID_New=");^P
ID_TTnew1 [ben menucmd]^C^C^P(alert (menucmd "Gcustom.ID_New=?"));^P [--]
ID_monew2 [mo new]^C^C^P(menucmd "P5.1=~");^P ID_hiennew2 [hien new]^C^C^P(menucmd "P5.1=");^P
ID_TTnew2 [ben menucmd]^C^C^P(alert "Cmdmenu"&(menucmd "P5.1=#?"));^P