Creating
Menu
เรามาทำการออกแบบเมนูแบบดึงลงหรือ Popup Menu อย่างง่ายๆ กัน โดยใช้โปรแกรม Notepad และพิมพ์ข้อมูลต่อไปนี้ แล้วบันทึกไฟล์เป็น
test.mnu
(***ทำการบันทึกไฟล์ทั้งหมดลงในไดเรคทอรีที่ได้ทำการเซ็ท Supports files Search Path)
(***ทำการบันทึกไฟล์ทั้งหมดลงในไดเรคทอรีที่ได้ทำการเซ็ท Supports files Search Path)
***MENUGROUP=TEST
***POP1
[Test
Menu]
[Line]
[Copy]
[Move]
[Zoom]
ทำการบันทึกไฟล์ดังรูปตัวอย่าง
ทำการโหลด Test.mnu ดังนี้
1. ไปที่ Command: Menuload
2. เลือก Browse ไปที่ไฟล์ของเรา
3. เลือกไฟล์ TEST.mnu
4. เลือก open เพื่อใช้งานไฟล์ TEST.mnu ของเรา
5. กด Load แถบเมนูใหม่จะปรากฏขึ้นมาชื่อ Test Menu มาตามรูป
ถ้าเราต้องการยกเลิกก็เลือก
TEST แล้วก็กด Unload แถบเมนู จะหายไป
สร้างไฟล์เมนูใหม่ชื่อ TEST1.mnu และพิมพ์ข้อมูลต่อไปนี้
***MENUGROUP=TEST1
***POP1
[&Test
Menu1]
[&Line]^C^CLine
[&Copy]^C^CCopy
[M&ove]^C^CMove
[&Zoom]^C^CZoom
โหลดเมนูนี้ตามขั้นตอนเดียวกัน Test Menu จะปรากฏในแถบเมนู Test Menu1
ทีนี้ลองมาดูที่รายการในเมนูกันบ้าง
[&Line]
^C^CLine
[&Line] เป็นป้ายเมนู แตกต่างกันกับแบบแรกที่
ตัว & มาทำอะไรอยู่ข้างหน้า L หากคุณพิมพ์ข้อความใด
ๆ ในป้ายชื่อเมนูพร้อมกับ & นั่นจะเป็นการกำหนดตัวอักษรให้เป็นคีย์ลัดในรายการเมนูนั้นๆ
^C^CLine เป็นการใช้คำสั่ง Line เช่นเดียวกับการพิมพ์ที่พรอมต์คำสั่ง Line ตามด้วย
ENTER
อักขระพิเศษ
|
ความหมาย / การใช้งาน
|
[ ]
|
Menu
Label ป้ายเมนู
|
;
|
Enter
|
Space
|
Enter
หรือ Spacebar
|
\
|
Pauses
สาหรับการป้อนข้อมูลของผู้ใช้
|
_
|
คำสั่ง AutoCAD
|
+
|
ต่อเมนูมาโครไปที่บรรทัดถัดไป
|
^C^C
|
การใช้คำสั่ง
|
*^C^C
|
การใช้คำสั่ง AutoCAD วนซ้ำไปเรื่อยๆ จนกว่าผู้ใช้จะกด CTRL C หรือ
ESC เพื่อยกเลิกการทาซ้ำ
|
$
|
Character
Code ที่โหลดส่วนเมนู
|
^B
|
Toggels
Snap / Off
|
^C
|
ยกเลิกคำสั่ง
|
^D
|
Toggles
Coords
|
^E
|
ตั้งค่ามุมมอง Isometric
ถัดไป
|
^G
|
เปิด / ปิด grid
|
^H
|
ทำให้เกิดปัญหา
Backspace
|
^O
|
เปิด / ปิด Ortho
|
^P
|
เปิด / ปิดเครื่อง Menuecho
|
^Q
|
สะท้อนข้อความทั้งหมด
|
^T
|
Toggles
เปิดหรือปิดแท็บเล็ต
|
^V
|
เปลี่ยนแปลงวิวพอร์ตปัจจุบัน
|
^Z
|
อักขระ Null
|
***MENUGROUP=TEST2
***POP1
[&Test
Menu2]
[&Layer
2 On]^C^CLayer;M;2;;
[&Ortho
On/Off]^C^C^O
[Change
to Layer 3]*^C^CChange;\;P;LA;3;;
[&Hello
World](alert "Hello World")
โหลดเมนูนี้ตามขั้นตอน
Test
Menu2 จะปรากฏในแถบเมนู
[&Test Menu2] เป็นชื่อแถบเมนู
[&Layer 2
On]^C^CLayer;M;2;; เป็นการใช้คำสั่งเปลี่ยนเลเยอร์ปัจจุบันเป็นเลเยอร์
2
(Layer
Enter Make Enter 2 Enter Enter)
[&Ortho On/Off]^C^C^O
เพียงแค่เปิดหรือปิด Ortho Mode
[Change to Layer
3]*^C^CChange;\;P;LA;3;; ให้คุณเลือกวัตถุและเปลี่ยนเป็น
Layer 3
(Change
Enter Pause Enter Properties Enter Layer Enter 3 Enter Enter)
คำนำหน้า
* จะบังคับให้ มาโครทำซ้ำจนกว่าผู้ใช้กด CTRL
C หรือ ESC
อักขระที่สามารถใช้ในเมนู
--
|
เส้นแบ่ง
|
+
|
ดำเนินการต่อไปยังมาโคร
ต่อไป
|
->
|
มีเมนูย่อย
|
<-
|
รายการสุดท้ายในเมนูย่อย
|
<-
<-
|
ระบุว่ารายการเมนูเป็นรายการสุดท้ายในเมนูย่อยและเมนูหลัก
|
~
|
คำนำหน้า
Lable ที่ปิดใช้งานรายการเมนู
|
!
|
คำนำหน้าป้ายกากับที่ทาเครื่องหมายรายการเมนู
|
&
|
คำนำหน้าตัวกำหนดคีย์ลัด
|
ตัวอย่างต่อไปสร้างไฟล์เมนูใหม่ชื่อ
TEST3.mnu และพิมพ์ข้อมูลต่อไปนี้
***MENUGROUP=TEST3
***POP1
[&Test
Menu 3]
[&Layer
2 On]^C^CLayer;M;2;;
[--]
[&Ortho
On/Off]^C^C^O
[--]
[->&Change]
[->C&hange
Layer]
[Change
to Layer 1]^C^CChange;\;P;LA;1;;
[Change
to Layer 2]^C^CChange;\;P;LA;2;;
[Change
to Layer 3]^C^CChange;\;P;LA;3;;
[<-Change
to Layer 4]^C^CChange;\;P;LA;4;;
[->Ch&ange
Colour]
[Change
to Colour 1]*^C^CChange;\;P;C;1;;
[Change
to Colour 2]*^C^CChange;\;P;C;2;;
[Change
to Colour 3]*^C^CChange;\;P;C;3;;
[<-<-Change
to Colour 4]*^C^CChange;\;P;C;4;;
โหลดเมนูนี้ตามขั้นตอน
Test Menu3 จะปรากฏในแถบเมนู
TOOLBARS
ต่อไปก็มาสร้างปุ่มกด
TOOLBARS กันตามนี้เลย
***TOOLBARS
**TESTBAR
[_Toolbar("Testbar",
_Floating, _Show, 202, 163, 1)]
[_Button("Change
to Colour 1", "ICON01.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;1;;
[_Button("Change
to Colour 2", "ICON02.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;2;;
[_Button("Change
to Colour 3", "ICON03.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;3;;
[_Button("Change
to Colour 4", "ICON04.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;4;;
*** TOOLBARS เป็นป้ายเริ่มต้นของแถบเครื่องมือ
** TESTBAR ป้ายกากับของ
Toolbar
ความหมายของแถบเครื่องมือบรรทัดแรก
เป็นกำหนดลักษณะของแถบเครื่องมือ ในส่วนนี้ประกอบด้วย 6 ส่วนคือ
[_Toolbar("Testbar",
_Floating, _Show, 202, 163, 1)]
Tbarname ชื่อแถบเครื่องมือ ( "Testbar")
Orient ทิศทางของแถบเครื่องมือ, Top, Bottom, Left, Right.
visible การแสดงของแถบเครื่องมือ (Show) ปิดหรือเปิด
xval พิกัด x ของแถบเครื่องมือ (202) วัดจากขอบด้านซ้ายของหน้าจอไปที่ด้านขวาของแถบเครื่องมือ(in
pixels)
yval พิกัด
y ของแถบเครื่องมือ(163)วัดจากขอบด้านบนของหน้าจอไปที่ด้านบนสุดของแถบเครื่องมือ(in
pixels)
rows จำนวนแถวในแถบเครื่องมือ(1)
ความหมายของ
Toolbar ในส่วนที่สอง (บรรทัด 2
ถึง 4) จะกำหนดลักษณะของปุ่มแต่ละชิ้นประกอบด้วย 3 ส่วนคือ
[_Button("Change to
Colour 1", "ICON01.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;1;;
btnname ชื่อปุ่มกด ("Change to Colour 1")
id_small ชื่อของรูปภาพขนาดเล็ก
(ICON01.bmp) (16 x 16 bitmap)
id_big ชื่อของรูปภาพขนาดใหญ่
(ICON_24_BLANK) (24 x 24 bitmap)
macro คำสั่งที่กำหนดให้กับปุ่ม *^C^CChange;\;P;C;1;;
ตัวอย่างต่อไปสร้างไฟล์เมนูใหม่ชื่อ TEST4.mnu โดยนำเมนู Test3 มาเพิ่ม Toolbars เข้าไป ดังนี้
***MENUGROUP=TEST4
***POP1
[&Test
Menu 4]
[&Layer
2 On]^C^CLayer;M;2;;
[--]
[&Ortho
On/Off]^C^C^O
[--]
[->&Change]
[->C&hange
Layer]
[Change
to Layer 1]^C^CChange;\;P;LA;1;;
[Change
to Layer 2]^C^CChange;\;P;LA;2;;
[Change
to Layer 3]^C^CChange;\;P;LA;3;;
[<-Change
to Layer 4]^C^CChange;\;P;LA;4;;
[->Ch&ange
Colour]
[Change
to Colour 1]*^C^CChange;\;P;C;1;;
[Change
to Colour 2]*^C^CChange;\;P;C;2;;
[Change
to Colour 3]*^C^CChange;\;P;C;3;;
[<-<-Change
to Colour 4]*^C^CChange;\;P;C;4;;
***TOOLBARS
**TESTBAR
[_Toolbar("Testbar",
_Floating, _Show, 202, 163, 1)]
[_Button("Change
to Colour 1", "ICON01.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;1;;
[_Button("Change
to Colour 2", "ICON02.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;2;;
[_Button("Change
to Colour 3", "ICON03.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;3;;
[_Button("Change
to Colour 4", "ICON04.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;4;;
ตอนนี้เราก็มาสร้างรูปปุ่มกดของเราก่อนเข้าไปที่
Tools
=> Customize => Interface
เข้าไปในส่วนของ
command
เลือกคำสั่งใดก็ได้จะปรากฏ Buttom Image เลือก
Edit เพื่อทำการแก้ไขตามที่เราต้องการ
ตามตัวอย่างเมื่อแก้ไขเสร็จแล้วก็ทำการ
Save
As ในตัวอย่างผมเซฟเป็น icon01.bmp ถึง icon04 ตามปุ่มกด TESTBAR
ทีนี้ก็มาโหลดเมนูนี้ตามขั้นตอน
เหมือนเคย Test
Menu4 จะปรากฏในแถบเมนู
เข้าไปดูในเมนูที่
Change
Colour จะมีรูปปุ่มกดที่เราสร้างแสดงหน้า ป้ายชื่อ Change to
Colour 1- 4 และแถบปุ่มกด Testbar แสดงขึ้นมาให้ใช้งาน
ตัวอย่างต่อไปสร้างไฟล์เมนูใหม่ชื่อ TEST5.mnu โดยนำเมนู Test4 มาเพิ่ม การเรียกใช้งาน AutoLISP เข้าไป ดังนี้
***MENUGROUP=TEST5
***POP1
[&Test Menu 5]
[&Layer 2 On]^C^CLayer;M;2;;
[--]
[&Ortho On/Off]^C^C^O
[--]
[->&Change]
[->C&hange Layer]
[Change to Layer 1]^C^CChange;\;P;LA;1;;
[Change to Layer 2]^C^CChange;\;P;LA;2;;
[Change to Layer 3]^C^CChange;\;P;LA;3;;
[<-Change to Layer 4]^C^CChange;\;P;LA;4;;
[->Ch&ange Colour]
[Change to Colour 1]*^C^CChange;\;P;C;1;;
[Change to Colour 2]*^C^CChange;\;P;C;2;;
[Change to Colour 3]*^C^CChange;\;P;C;3;;
[<-<-Change to Colour 4]*^C^CChange;\;P;C;4;;
[--]
[->Skills UP AutoLISP]
[&STEEL STRUCTURE
(lisp)]^C^C^P+
(cond ((null
SST) (prompt "Please Wait...")(load
"Steels_Structure2"))) SST
[--]
[<-&PIPING 3D
(lisp)]^C^C^P+
(cond ((null p3d)
(prompt "Please Wait...")(load "piping3d"))) P3D
[--]
***TOOLBARS
**TESTBAR
[_Toolbar("Testbar",
_Floating, _Show, 202, 163, 1)]
[_Button("Change to
Colour 1", "ICON01.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;1;;
[_Button("Change to
Colour 2", "ICON02.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;2;;
[_Button("Change to
Colour 3", "ICON03.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;3;;
[_Button("Change to
Colour 4", "ICON04.bmp",
"ICON_24_BLANK")]*^C^CChange;\;P;C;4;;
สามารถเรียกใช้งานได้เลยโดยคำสั่งจากเมนูจะทำการโหลดโปรแกรมและสั่งให้ทำงานในทันที
รายละเอียดในคำสั่ง
รายละเอียดในคำสั่ง
[&STEEL STRUCTURE (lisp)]^C^C^P+
(cond ((null SST) (prompt "Please Wait...")(load "Steels_Structure2"))) SST
[&STEEL STRUCTURE (lisp)] ป้ายเมนู
^C^C การใช้คำสั่ง
^P เปิด / ปิดเครื่อง Menuecho
+ ต่อเมนูมาโครไปที่บรรทัดถัดไป
(cond ((null SST) (prompt "Please Wait...")(load "Steels_Structure2"))) ใช้ cond ตรวจสอบคำสั่ง SST ถ้ายังไม่มี null ให้แสดงข้อความกรุณารอ... Please Wait... แล้วทำการโหลดโปรแกรม LISP Steels_Structure2 ไม่ต้องใส่ .lsp หรือ .vlx ก็ได้
SST เป็นคำสั่งเรียกใช้งาน STEEL STRUCTURE
[&STEEL STRUCTURE (lisp)] ป้ายเมนู
^C^C การใช้คำสั่ง
^P เปิด / ปิดเครื่อง Menuecho
+ ต่อเมนูมาโครไปที่บรรทัดถัดไป
(cond ((null SST) (prompt "Please Wait...")(load "Steels_Structure2"))) ใช้ cond ตรวจสอบคำสั่ง SST ถ้ายังไม่มี null ให้แสดงข้อความกรุณารอ... Please Wait... แล้วทำการโหลดโปรแกรม LISP Steels_Structure2 ไม่ต้องใส่ .lsp หรือ .vlx ก็ได้
SST เป็นคำสั่งเรียกใช้งาน STEEL STRUCTURE
ไม่มีความคิดเห็น:
แสดงความคิดเห็น