Bài giảng: Autocad nâng cao và lập trình trong autocard



tải về 3.6 Mb.
trang39/40
Chuyển đổi dữ liệu26.03.2018
Kích3.6 Mb.
#36745
1   ...   32   33   34   35   36   37   38   39   40

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



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

Tham chiếu tương đối là tham chiếu sử dụng tên nhãn của menu item.

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 :


(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=~") )



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

uvv – Tên bí danh của pull-down menu cần chèn

Ta cũng có thể loại bỏ một Pull-down menu khỏi thanh menu bằng lệnh sau :



(Menucmd “Gyyy.zzz=-)

Trong đó :

yyy – Tên nhóm menu của pull-down menu muốn xóa.

zzz – Bí danh của pull-down menu muốn xóa.

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



      1. Shortcut menu.

Shortcut menu về cơ bản giống Pull-down menu. Chỉ khác nhau ở khai báo section

Shortcut menu được khai báo từ section Pop500 đến pop999 Và Pop0. Trong mỗi menu đổ có thể có tối đa 499 mục menu item. AutoCAD sẽ bỏ qua nhưng menu item vượt quá giới hạn trên. Nếu màn hình không đủ chỗ chứa hết các menu item thì AutoCAD sẽ tự động cắt bớt đi để vừa với kích thước màn hình và hai hình mũi tên lên xuống sẽ được xuất hiện.

Menu Pop0 của AutoCAD là menu Snap, hiện các phương thức truy bắt điểm.

Các menu Pop500 đến Pop999 là các menu ngữ cảnh (context menu)



      1. Section_của_Buttons_menu_và_auxiliary_menu'>Buttons menu và auxiliary menu.

        1. Section của Buttons menu và auxiliary menu

Các nút của thiết bị con chuột được khi báo bởi các auxiliary menu và được mô tả trong file menu từ section ***AUXn (từ ***AUX1 đến ***AUX4)

Các thiết bị trỏ khác như bút điện tử được khi báo bởi các Buttons menu và được mô tả trong file menu từ section ***Buttonsn.

Lưu ý là các buttons menu và các auxiliary menu chỉ có hiệu lực trong file menu base (menu chính) chứ không có tác dụng nếu ta khai báo trong các partial menu (menu thành phần).

Vì mô tả của buttons menu và auxiliary giống nhau nên ở đây ta chỉ xét các AUX menu, còn các buttons menu tượng tự.

Các menu từ section AUX1 đến AUX4 có ý nghĩa như sau :


Section

Tổ hợp phím và chuột

AUX1

Nhấn một trong các nút chuột

AUX2

Phím Shift + một nút chuột

AUX3

Phím Ctrl + một nút chuột

AUX4

Phím Ctrl+Shift+một nút chuột

        1. Tạo các AUX menu.

Mỗi dòng trong section này là một mục chọn. Cấu trúc của section cũng tương tự như các section khác. Tuy nhiên phần tên và tiêu đề là không bắt buộc, ta có thể bỏ qua chúng hoặc ta sử dụng chúng làm chú thích.

Xem xét ví dụ sau :

***AUX1

// Simple button



// if a grip is hot bring up the Grips Cursor Menu (POP 500), else send a carriage return

// If the SHORTCUTMENU sysvar is not 0 the first item (for button 1, the "right button")

// is NOT USED.

$M=$(if,$(eq,$(substr,$(getvar,cmdnames),1,5),GRIP_),$P0=ACAD.GRIPS $P0=*);

$P0=SNAP $p0=*

^C^C


^B

^O

^G



^D

^E

^T


Mục thứ nhất tương đương với nút chuột thứ 2 nếu biến hệ thống shortcutmenu=0. Còn nếu biến này khác không thì nút này sẽ được liên kết với các shortcut menu mặc định của hệ thống AutoCAD.

Mục thứ 2 tương đương với nút số 3 của hệ thống chuột nếu biến hệ thống Mbuttonpan=0. Còn biến này khác không thì nút này sẽ được liên kết với nút pan mặc định của AutoCAD (mặc định của biến này là 1).

Mục chọn thứ 3 tương đương với nút lệnh thứ 4 của chuột.

Nói chung chuột có bao nhiêu nút thì ta có bấy nhiêu dòng lệnh.

Ta lưu ý là chỉ có Pop0 thì mới có khả năng hiện tại vị trí con chuột trên màn hình.

Ví dụ sau sử dụng tiêu đề làm chú thích :

***AUX1

[nut so 2]; nút thứ hai là lệnh enter.



[nut so 3](alert "nut thu 2 duoc an") nút thứ ba đưa ra thông báo.

[nut thu 4]^C^C nút thứ 4 nút escape.


Tương tự như thế bạn có thể hiệu chỉnh các menu AUX2, AUX3, AUX4 của mình sao cho hợp với các

        1. Menu swaping.

Menu swaping dùng để trao đổi nội dung giữa các menu. Ví dụ khi ta đang thực hiện lệnh zoo, bấn phải chuổt để chuyển sang shortcut menu khác. Hay khi vào Draw Surfaces 3D surface... AutoCAD chuyển sang menu image để bạn chọn các hình cần vẽ với slide đi kèm.

Cú pháp để tráo đổi như sau :

$Section=MenuGroup.MenuName $Section=MenuGroup.*

Nếu 2 menu ta muốn trao đổi nằm cúng trong một group ta có thể bỏ qua MenuGroup. Nghĩa là cú pháp của ta sẽ như sau ;



$Section=MenuName $Section=*

Ví dụ sau được trích trong file Acad.mnu :



ID_3dsurface [&3D Surfaces...]$I=ACAD.image_3dobjects $I=ACAD.*

Đây menu item 3d surfaces trong menu đổ draw của AutoCAD. Khi ta chọn mục này thì AutoCAD sẽ chuyển sang menu image có tên là image_3dobjects

Ví dụ sau được trích trong file Acad.mnu :

***AUX2

// Shift + button

$P0=SNAP $p0=*

Khi ta bấn shift + chuột phải sẽ chuyển sang section Pop0, menu Snap nằm trong Section Pop0.



      1. Image Tile menus

Menu hình ảnh là loại menu đặc biệt trong AutoCAD, chứa danh sách các mục chọn và các hình slide tương ứng với các mục chọn đó. Khi chọn vào các mục chọn

        1. Section của Image menu

Các menu hình ảnh nằm trong section Image. Và được khai báo là ***Image. Section ví dụ một section menu hình ảnh như sau :

***image Khai báo tên section

**image_poly Tên của menu (menu name)

[Set Spline Fit Variables] Tiêu đề của menu hình ảnh.

[acad(pm-quad,Quadric Fit Mesh)]'_surftype 5 Các dòng mô tả các mục chọn

[acad(pm-cubic,Cubic Fit Mesh)]'_surftype 6 của menu hình ảnh

[acad(pm-bezr,Bezier Fit Mesh)]'_surftype 8

[acad(pl-quad,Quadric Fit Pline)]'_splinetype 5

[acad(pl-cubic,Cubic Fit Pline)]'_splinetype 6


        1. Mô tả mục chọn của menu hình ảnh

Mỗi mục chọn của menu hình ảnh được mô tả gồm 2 phần : tiêu đề và menu macro (không có phần nhãn ID như các pull-down menu).

Phần tiêu đề có các cách mô tả sau :



[sldname]

Ảnh của slide sldname sẽ được hiện lên ở khung bên phải của hộp menu, tiêu đề là sldname sẽ được hiện lên ở danh sách bên trái của hộp menu.



[sldname,labeltext]

Tiêu đề là LabelText sẽ được hiện lên ở danh sách bên trái của hộp menu. Ảnh của slide sldname sẽ được hiện lên ở khung bên phải của hộp menu.



[sldlib(sldname)]

Tiêu đề là sldname sẽ được hiện lên ở danh sách bên trái của hộp menu. Ảnh của slide sldname nằm trong thư viện slide có tên là sldlib sẽ được hiện lên ở khung bên phải của hộp menu.



[sldlib(sldname,labeltext)]

Tiêu đề là labeltext sẽ được hiện lên ở danh sách bên trái của hộp menu. Ảnh của slide sldname nằm trong thư viện slide có tên là sldlib sẽ được hiện lên ở khung bên phải của hộp menu.



[blank]

Khi bạn muốn chèn một Icon trắng trên danh sách các slide bên phải hộp menu. Một dòng phân cách sẽ được hiện lên trên danh sách phía bên trái hộp menu.



[ labeltext]

Khi ký tự đầu tiên của mục mô tả là khoảng trắng, mục mo tả sẽ được hiện lên trong danh sách nhưng không có một Icon nào được hiện lên ở bên phải hộp menu cả. Bạn thường dùng nó trong trường hợp bạn muốn tạo một nút exit để thoát ra khỏi menu hình ảnh, thì mục chọn này thường không có Icon đi kèm.



        1. Gọi hiển thị các menu hình ảnh

Ngoài việc gọi hiển thị các menu hình ảnh bằng chức năng swap menu (như đã trình bày ở mục 2.5.3), ta còn có thể sử dụng các dòng lệnh AutoLisp để gọi chúng. Cú pháp như sau :

(MenuCmd “I=yyy.xxx”)(menu cmd “i=*)

Trong đó

yyy – Tên nhóm menu. Nếu cùng chung một group thì ta có thể bỏ qua yyy.

xxx – Tên menu hình ảnh.

Ví dụ như sau :

(menucmd "I=acad.image_vporti")(memucmd "i=*")

(menucmd "I=image_vporti")(memucmd "i=*")


        1. Slide và thư viện slide.

  • Tạo các slide.

Lưu ý :

  • Tạo slide phải thật dễ nhận biết.

  • Hình ảnh phải vừa khung. Hình ảnh được tạo với tỷ lệ (1 x 1.5)

  • Các đối tượng tô đậm như Pline, trace, 2d solid chỉ hiện lên các đường viền. Để có các hình tô bóng ta sử dụng lệnh tô bóng Shade trước khi tạo hình slide.

Trình tự tạo :

  • Chuyển qua không gian giấy vẽ

  • Tạo Viewport có kích thước 1,5:1

  • Tạo thư viện slide.



      1. Menu màn hình.

        1. Section của menu hình ảnh.



      1. Chuỗi chú thích ở thanh trạng thái.

        1. Section của đoạn mô tả chuỗi chú thích.

Các dòng chú thích này được mô tả trong section ***HELPSTRINGS

        1. Mô tả chuỗi chú thích.

Dòng mô tả như sau : ID_menu [status tring]

Ví dụ :


      1. Tạo các phím tắt.

        1. Section của đoạn mô tả các phím tắt

Đoạn mô tả các phím tắt nằm trong section : ***ACCELERATORS.

        1. Tạo phím tắt

  • Tên mục chọn + tổ hợp phím nóng

Ví dụ :

ID_Open [control+”O”]



  • Tổ hợp phím nóng+Chuỗi lệnh cần thực hiện.

Ví dụ :

[Control + “O”]^C^C_Open


Các tổ hợp thường dùng :

Control, shift, Alt, “A”,…”Z”,"numpad0",…"numpad9"



  1. Toolbar

    1. cách tạo toolbars bằng cách dùng lệnh Toolbar

      1. Tạo Toolbar

      2. Tạo nút lệnh mới

      3. Sửa nút lệnh

      4. Tạo một Flyout


Trình diễn một lần tạo toolbars.

Chú ý tạo flyout Toolbar




Khi muốn tạo một nút lệnh trong toolbar, bạn chuyển đến commands User Defined button, User Defined Flyout. Kéo rê uer difined vào toolbar mà bạn cần thêm mới nút lệnh. Sau đó bấm vào nút Properties, hộp thoại sẽ hiện ra như sau :


Tạo Toolbars bằng cách dùng lệnh customise là đơn giản và thuận tiện nhất. Tuy nhiên bạn còn có thể tạo ra bằng cách soạn thảo trực tiếp trong file acad.mnu.



    1. tải về 3.6 Mb.

      Chia sẻ với bạn bè của bạn:
1   ...   32   33   34   35   36   37   38   39   40




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương