Thứ Ba, 7 tháng 7, 2009

Tạo menu trong cad

Ban đầu khi bước vào công việc tùy biến autocad từ mức độ ít hay nhiều thì bước tạo cho riêng mình 1 menu hầu như ai cũng có nhu cầu. Mình giới thiệu một cách đơn giản để các bạn nắm giúp cho công việc được dể dàng.-File điều khiển menu trong cad là file *.mns. Đây là file tlkt.mns mình cố gắng rút gọn nội dung lại để dể theo dỏi. Trong này gồm 3 phần chính:+Menu chính.+Menu con xếp theo chiều dọc.+Dấu gạch ngang phân cách.+Menu xếp lớp từ đây sẽ có các menu xuất hiện bên cạnh.+Menu hình ảnh. Cái này dùng làm thư viện được (ở mức độ mới bắt đầu thì đây là lựa chọn tốt nhất để làm thư viện)

***MENUGROUP=tlkt

***POP1

ID_tieude [TLKT]ID_a1 [Noi dung dong 1]^C^C_tenlenh-1

ID_a2 [Noi dung dong 2]^C^C_tenlenh-2

ID_a3 [Noi dung dong 3]^C^C_tenlenh-3

ID_a4 [Noi dung dong 4]^C^C_tenlenh-4

[--]

ID_b1 [->Xep lop]

ID_b2 [Noi dung lop 1]^C^C_tenlenh-5

ID_b3 [Noi dung lop 2]^C^C_tenlenh-6

ID_b4 [<-Noi dung lop 3]^C^C_tenlenh-7

[--]

ID_c1 [Goi menu thu vien]^C^C_$i=tlkt.THUVIEN1 $i=*

***IMAGE

**THUVIEN1

[THU VIEN CHI TIET]

[hinh-1]^C^C_tenlenh8

[hinh-2]^C^C_tenlenh9

[hinh-3]^C^C_tenlenh10

[hinh-4]^C^C_tenlenh11

*Giải thích:

***MENUGROUP=tlkt định nghĩa tên của menu là tlkt.

***POP1 Quyết định đây là 1 menu treo.

ID_tieude [TLKT] Quyết định dòng chử xuất hiện trên thanh menu là TLKT.

ID_a1 [Noi dung dong 1]^C^C_tenlenh-1 :Noi dung dong 1 : Sẽ xuất hiện ở menu khi chọn nó sẽ thực hiện tenlenh-1. Có thể là lệnh cad hoặc 1 chuỗi lệnh.

[--] Làm xuất hiện dòng gạch ngang trong menu.

ID_b1 [->Xep lop] Quyết định mở đầu 1 menu xếp lớp.

ID_b4 [<-Noi dung lop 3]^C^C_tenlenh-7 :Quyết định kết thúc 1 menu xếp lớp.

***IMAGE :định nghĩa menu hình ảnh

**THUVIEN1 :tên của menu hình ảnh. Dùng để gọi lên.

[THU VIEN CHI TIET] : dòng chử xuất hiện trên tiêu đề menu hình ảnh.

[hinh-1]^C^C_tenlenh8 : hinh-1 là tên của file sld sẽ xuất hiện tại ô hình ảnh. khi chọn nó sẽ thực hiện tenlenh8. Có thể là lệnh cad hoặc 1 chuỗi lệnh. (cụ thể nếu dùng làm thư viện thì đây là lệnh insert). Ví dụ dòng làm xuất hiện ảnh nguoi-1.sld khi nhấn vào và ok sẽ chèn file nguoi-1.dwg. (hai tên file này có thể khác nhau nhưng làm giống nhau cho đở lộn).

[nguoi-1]^C^C_-insert nguoi-1;\1;1;0;

Giải thích: thực hiện lệnh insert, nhập tên block là nguoi-1 enter chọn điểm chèn tỉ lệ theo trục x là 1 enter, tỉ lệ theo trục y là 1, góc quay là 0.

+Dấu ; thay cho enter.

+Dấu \ tạm hoản chuổi lệnh chờ chọn bằng chuột tại màn hình.

ID_c1 [Goi menu thu vien]^C^C_$i=tlkt.THUVIEN1 $i=* đây là dòng dùng gọi menu hình ảnh có tên THUVIEN1 . bạn lưu ý chử tlkt chính là tên của menu ở dòng***MENUGROUP=tlkt nếu muốn thay đổi phải làm cho đồng bộ nếu không nó không lên ảnh đâu. (hồi mình mới mò thì mất hơn tháng mới tìm được nguyên tắc này đó)




5 nhận xét:

  1. SƯ PHỤ cho ĐỆ TỬ hỏi là dòng :

    ID_a1 [Noi dung dong 1]^C^C_tenlenh1

    _tenlenh1 : thay bằng tên lệnh trong Lisp được không
    VD (defun c:thep1 () thì cấu trúc đó là :

    ID_a1 [Noi dung dong 1]^C^C_thep1

    ĐỆ TỬ chạy thử Lisp thì thấy vẫn ổn nhưng khi áp dụng vào trong Menu thì báo lỗi

    Trả lờiXóa
  2. Và đây là code tạo menu của ĐỆ TỬ
    ***MENUGROUP=CUONG

    ***POP1

    ID_tieude [CUONG]
    ID_a1 [Ve Thep]^C^C_thep1

    ID_a2 [Ghi kich thuoc]^C^C_kt

    Trả lờiXóa
  3. Báo lổi sao bạn. Về lý thuyết thì bạn viết thế là đúng rồi.

    Trả lờiXóa
  4. Nguyễn Văn Tuyênlúc 23:09 24 tháng 3, 2011

    Dạ, em xin chào đại huynh ạ.!
    Trước hết, em xin gửi lời chúc sức khỏe và thành đạt đến toàn thể gia đình đại huynh ạ.
    Em là Tuyên, sinh viên năm cuối ĐHBKHN, em đang làm đồ án tôt nghiệp có liên quan đến AutoLisp, nhưng có một chỗ vướng mắc, mong được đại huynh chỉ giúp ạ.
    Cụ thể, là trong đồ án của em có phần chuyên đề về tạo pull down menu trong Autocad, và trong menu đó của em, em muốn làm một menu hình ảnh chứa các thư viện chi tiết trong chuyên ngành cơ khí của em ạ. Nhưng em không hiểu sao khi em gọi Image Menu ra thì không xuất hiện được các hình bên phải của bảng hộp thoại ạ.
    Em đã thay đổi rất nhiều cách viết theo tham khảo ở các website (kể cả cách đại huynh hướng dẫn) nhưng vẫn không hiện được ra. Thực sự, em không biết sai chỗ nào. Em rất mong đại huynh xem xét hộ em đoạn này. Dưới đây là đoạn code trong file .mns mà em đã viết:
    ***MENUGROUP=CNCTM

    ***POP1
    ID_tieude [CNCTM]
    ID_1 [Khung tên \t(KT)]^C^C_kt
    [--]
    ID_2 [->Ðinh vi mat phang]
    ID_21 [Phiên ty]^C^C_$I=CNCTM.PTY $I=*
    ID_22 [<-Chôt ty \t(CTY)]^C^C_cty
    [--]
    ID_3 [->Ðinh vi mat tru ngoài]
    ID_31 [Khôi V cô dinh va di dông
    \t(KV1)]^C^C_kv1
    ID_32 [Khôi V lap trên mp ngang \t(KVn)]^C^C_kvn
    ID_33 [<-Khôi V lap trên mp dung \t(KVd)]^C^C_kvd
    [--]
    ID_4 [->Ðinh vi mat tru trong]
    ID_41 [Chôt tru \t(CTru)]^C^C_CTru
    ID_42 [<-Chôt tram \t(CTram)]^C^C_CTram
    [--]
    ID_5 [Cu so dao]^C^C_$I=CNCTM.CSD $I=CNCTM.*
    [--]
    ID_6 [->Co câu dân huong]
    ID_61 [->Bac dân huong]
    ID_611 [Bac dân co dinh \t(BDCD)]^C^C_bdcd
    ID_612 [<-Bac dân thay nhanh va Bac dân thay the \t(BDTN)]^C^C_bdtn
    ID_62 [<-Then dân huong \t(RCT)]^C^C_RCTDTNDTN
    [--]
    ID_7 [->Co câu kep]
    ID_71 [Thanh kep truot \t(TKT)]^C^C_TKT
    ID_72 [Vít cây \t(VC)]^C^C_VC
    ID_73 [Vít kep khôi V di dông \t(VKV)]^C^C_VKV
    ID_74 [<-Bu lông \t(Bolt)]^C^C_Bolt
    [--]
    ID_8 [->Các co câu khác]
    ID_81 [Ðêm tháo nhanh \t(DTN)]^C^C_DTN
    ID_82 [<-Chôt dinh vi \t(Pin)]^C^C_Pin
    [--]
    ID_9 [Ghi dung sai kích thuoc \t(GDS)]^C^C_GDS
    [--]
    ID_10 [GIOI THIEU VE DE TAI]^C^C_CNCTMH

    ***IMAGE
    **PTY
    [Phiên ty]
    [PTY(PTK1,Phiên ty kiêu 1)]^C^C_pty1
    [PTY(PTK2,Phiên ty kiêu 2)]^C^C_pty2

    **CSD
    [Cu So Dao]
    [CSD(CSD1,Cu So Dao 1)]^C^C_csd1
    [CSD(CSD2,Cu So Dao 2)]^C^C_csd2
    [CSD(CSD3,Cu So Dao 3)]^C^C_csd3
    [CSD(CSD4,Cu So Dao 4)]^C^C_csd4

    Mong đại huynh giúp đỡ. Em xin chân thành cám ơn.

    Trả lờiXóa
  5. chào đai ca.em mún đại ca chỉ cho em ít về làm 1 thanh công cụ.em xin thanks đại ca

    Trả lờiXóa