วันศุกร์ที่ 17 มิถุนายน พ.ศ. 2554

AutoCAD Tips: ตัวแปรระบบ (System variables)

มีผู้ใช้ AutoCAD หลายรายที่ได้อีเมลมาถามปัญหา เช่น

1.ตอนนี้คลิกเลือกรูปวาดได้เพียงทีละรูป ทั้งที่เคยคลิกเลือกเพิ่มได้ แต่ตอนนี้ทำไม่ได้แล้ว
2.เส้นโพลีไลน์แบบมีความหนา ที่เป็นเส้นระบายทึบ ตอนนี้แสดงเฉพาะขอบด้านนอกไม่มีระบายทึบ
3.เคยเลือกรูปวาดก่อนใช้คำสั่ง Move, Copy, Rotate ได้แต่ตอนนี้ทำไม่ได้แล้ว
4.ใช้คำสั่ง Mirror เพื่อทำสำเนารูปวาดแบบสะท้อนตามแนวแกนสมมาตร ปกติตัวหนังสือไม่กลับด้าน แต่คราวนี้กลับด้านไปหมดเลย
5.อื่นๆอีกมากมาย

ประเด็นเหล่านี้ใน AutoCAD ควบคุมด้วยสิ่งที่เรียกว่า ตัวแปรระบบ (System Variables) จากปัญหาข้างต้น มาดูคำตอบว่าจะทำได้อย่างไร?

1. พิมพ์ PICKADD {ENTER} ตอบค่า 1 {ENTER}
2. พิมพ์ FILLMODE {ENTER} ตอบค่า 1 {ENTER}
3. พิมพ์ PICKFIRST {ENTER} ตอบค่า 1 {ENTER}
4. พิมพ์ MIRRTEXT {ENTER} ตอบค่า 0 {ENTER}

บางตัวแปรระบบเหล่านี้มีแสดงเป็นตัวเลือกอยู่ในไดอะล็อก Options ซึ่งเปิดไดอะล็อกนี้ได้โดยคลิกขวาบนพื้นที่วาดรูปและเลือก Options จากปัญหาข้างต้น ตำแหน่งกำหนดค่าบนไดอะล็อก Options เป็นดังนี้

1. แท็บ Selection เอาเครื่องหมายถูกออกจากรายการ Use Shift to add the selection
2. แท็บ Display คลิกกาถูกรายการ Apply solid fill
3. แท็บ Selection คลิกกาถูกรายการ Noun / Verb selection
4. ไม่มีตัวเลือกบน Options

ตัวอย่างตัวแปรระบบเพิ่มเติม
- PDMODE กำหนดรูปร่างของจุดจากคำสั่ง Point เช่น ค่า 3 เป็นรูปกากบาท
- SAVETIME กำหนดช่วงระยะเวลาที่จะดำเนินการบันทึกอัตโนมัติ (หน่วยนาที)
- MBUTTONPAN ค่า 1 เพื่อใช้ล้อของเมาส์สำหรับ Pan และ Zoom

รายละเอียดความหมายทั้งหมดของตัวแปรระบบดูได้จาก AutoCAD Help ที่หัวข้อ Command Reference รายการ System Variables

วันอังคารที่ 12 เมษายน พ.ศ. 2554

AutoCAD Tips : Visual LISP พิกัด X,Y พร้อมหมุด


เช้านี้มีท่านหนึ่งอีเมล์มาถามถึง IDP นำไปใช้กับงานสำรวจ และแจ้งให้ทราบว่าปกติในตำแหน่งของพิกัดจะถูกแสดงด้วยเครื่องหมายวงกลม และตัด (trim) เส้นภายในออกไป

จึงได้พัฒนาเป็น IDP เวอร์ชันต่อมา
ที่ให้ทำงานตามที่แจ้งมา ดูรูปประกอบ
สำหรับท่านที่สนใจอีเมลมารับไปใช้งานได้

มีอยู่ 2 คำสั่งด้วยกันคือ

1. IDPC สำหรับเขียนพิกัดให้กับเส้น Polyline
จะเลือกกี่เส้นก็ได้ แล้วคำสั่งจะเขียนพิกัดพร้อมวางวงกลมหรือหมุดในตำแหน่งทุกจุดยอด (vertices)
2. CX สำหรับเขียนพิกัดและวางเครื่องหมายวงกลมหรือหมุด
ในจุดที่เลือก CX ไม่ขึ้นกับชนิดรูปวาด ทำงานจากจุดที่เลือก

ทั้ง IDPC และ CX จะตัดเส้นที่มีอยู่ในวงกลมออกไปให้ด้วย

วันจันทร์ที่ 7 มีนาคม พ.ศ. 2554

ถ้า USB Flash Drive ตกหล่นไป ข้อมูลจะ ... (เป็นเช่นไร)

จากขนาดของ USB Flash Drive ที่เล็กกะทัดรัด สะดวกต่อการ
พกพา อีกทั้งความจุ (Capacity) ที่มากตั้งแต่ 2GB ไปจนถึง 32GB
ในราคาที่ไม่สูงเกินไปนัก จึงเป็นที่นิยมกันอย่างแพร่หลาย
แต่ถ้าวันหนึ่ง USB Flash Drive นี้ตกหล่นหายไปหรือถูกลืมทิ้งไว้
ในที่อื่น ด้วยขนาดเล็กกะทัดรัดเช่นนี้จึงเกิดขึ้นได้ง่ายมาก หรือ
แม้กระทั่งเสียบคาอยู่ในเครื่องตามร้านเน็ต หรือที่ๆเราไปใช้นอก
สถานที่ หากเป็นเพียงข้อมูลทั่วไป ด้วยราคาตัว USB Flash Drive
ที่ไม่สูง จึงอาจไม่ใช่ประเด็นสำคัญเท่าใดนัก แต่ถ้าในนั้นมีไฟล์
ข้อมูลสำคัญ หรือข้อมูลที่มีความอ่อนไหว เช่น ไฟล์งานประมูล
ไฟล์ภาพหรือวิดีโอส่วนตัว เป็นต้น กรณีเช่นนี้ย่อมอาจสร้าง
ปัญหาที่ตามมาได้

ทางออกที่ดีที่สุดสำหรับการใช้ USB Flash Drive คือป้องกันเอา
ไว้เสียตั้งแต่แรก ซึ่งทำได้หลายวิธี วิธีแรกคือหากใช้ Windows 7
Ultimate edition สามารถใช้ความสามารถ Bit Locker To Go ทำ
การเข้ารหัส (encrypt) ต่อไดรฟ์ได้

อีกวิธีที่น่าสนใจคือใช้โปรแกรม TrueCrypt ซึ่งเป็น Freeware
แบบ Opensource สร้างตู้เซฟขึ้นสำหรับเก็บข้อมูล ดูรายละเอียด
เพิ่มเติมได้ที่ www.truecrypt.org หรืออ่านเพิ่มเติมจากหนังสือ
คู่มือเซียน Windows & Internet ฉบับ ลับ ลวง พราง ที่ผู้เขียน
ได้จัดทำขึ้น ซึ่งยังมีรายละเอียดเกี่ยวกับเรื่องความปลอดภัยในการ
ใช้พีซีและอินเทอร์เน็ตอีกด้วย ค้นหารายละเอียดข้อมูลหนังสือนี้
ได้จากเว็บ www.provision.co.th หรือ www.se-ed.com หรือดูที่

http://chatchawalsupakasem.blogspot.com/2010/09/windo
ws-internet.html

นอกจากนี้หัวใจที่สำคัญที่สุดของการใช้คอมพิวเตอร์คือ ต้อง
สำรอง (Backup) ข้อมูลเอาไว้ด้วยเสมอ!!!

วันอาทิตย์ที่ 6 กุมภาพันธ์ พ.ศ. 2554

AutoCAD Tips : Visual LISP / AutoLISP ถามมา-ตอบไป เส้นบอกระยะ ...

มีท่านหนึ่งอีเมลมาถาม โดยสรุปได้ใจความว่า

"เรื่องของเลเยอร์ (Layer) มีทูล Make object's Layer Current หรือคำสั่ง LAYMCUR ที่คลิกบนรูปวาดแล้ว
ให้ผลกำหนดเลเยอร์ปัจจุบัน (Current Layer) ตามรูปนั้นได้เลย แต่กับเรื่องของเส้นบอกระยะ (Dimension) กลับไม่เห็นมีคำสั่งทำนองนี้เลย ..."

"พอแก้ไขแบบเพิ่มเติม จะเขียนเส้นบอกระยะใหม่เข้าไป ที่ใช้สไตล์เดิมที่มีอยู่แล้ว ตามแบบเส้นบอกระยะที่มีอยู่ ต้องหาก่อนทุกครั้ง ว่าที่มีอยู่เดิมใช้สไตล์ชื่ออะไรก่อน แล้วค่อยไปกำหนดให้เป็นตัวปัจจุบัน (Current Dimension Style) แล้วค่อยเลือกทูลสำหรับเขียนเส้นบอกระยะตามที่ต้องการ"

ดูวิธีหาสไตล์ของเส้นบอกระยะจากรูปนี้


เป็นเรื่องปกติของงานเขียนแบบที่จะมีการแก้ไข ทั้งจากที่ทำผิดพลาดหรือปรับปรุงในเวลาต่อมา เห็นว่าเป็นคำสั่งที่น่าสนใจเลยนำมาเผยแพร่ไว้ตรงนี้ด้วยกัน

ทางออกหนึ่งที่ทำได้และได้ผลดี คือเขียนคำสั่งขึ้นใหม่เองเลย ในตัวอย่างนี้เขียนด้วย Visual LISP มีโค้ดดังนี้

;; Set the current dimension style same as the selected entity.
(defun c:dd (/ e obj dimensions *error*)
(defun *error* (msg)
(if (not (member msg (list "Function cancelled")))
(princ (strcat "DIMMC Error: " msg))
)
(setvar "cmdecho" 1)
(princ)
)
(if (setq e (entsel "Select a dimension: "))
(progn
(setq obj (vlax-ename->vla-object (car e)))
(if (wcmatch (vla-get-ObjectName obj) "*Dimension")
(progn
(setvar "cmdecho" 0)
(command ".-dimstyle"
"r"
(setq dimensions (vla-get-StyleName obj))
)
(setvar "cmdecho" 1)
(foreach msg (list "\nSet the current dimension style to "
(strcase dimensions)
"."
)
(princ msg)
)
)
(princ "\n!!!Not Dimension!!!")
)
)
(princ "\nNo object found!!!")
)
(princ)
)

การนำไปโค้ดไปใช้ให้ศึกษาเพิ่มเติมจากหนังสือ AutoCAD ในบ้านเราที่มีเป็นจำนวนไม่น้อยเลย ที่กล่าวถึงวิธีเหล่านี้ และอาจพัฒนาไปถึงการสร้างไว้เป็นทูล (Tool) ใหม่ขึ้น เพื่อเรียกถึงคำสั่ง DD นี้

วันจันทร์ที่ 17 มกราคม พ.ศ. 2554

Windows 7 ออก Service Pack 1 RTM แล้ว


Windows 7 ออก Service Pack 1 RTM แล้ว หลังอัปเดตแล้ว ดูรายละเอียดโดยกดคีย์ Win พิมพ์ Winver กด Enter จะเห็นรายการแจ้งเป็น Microsoft Windows Version 6.1 (Build 7601: Service Pack 1)

มีข้อควรระวังตอน Update อยู่บ้าง พบว่าในบางกรณีทำให้เครื่อง Start ไม่ได้ ต้องใช้แผ่นติดตั้ง เพื่อทำการแก้ไขหรือ Repair และก็ผ่านเข้าไปใช้ได้ตามปกติ

สำหรับ Build number ดูจาก Registry Editor ได้ตามรูปนี้

วันพุธที่ 15 ธันวาคม พ.ศ. 2553

AutoCAD TIPS : AutoLISP Visual LISP ถามมา-ตอบไป วางดวงโคมรอบแนวเส้นโค้ง

มีอีเมลจากท่านหนึ่งถามมาถึงเรื่องการวางดวงโคมฟลูออเรสเซนต์แบบหลอดยาว ไม่ใช่หลอด Compact โดยวางให้มีส่วนซ้อนกันบริเวณขั้วหลอด เพื่อใช้ฝังซ่อนบนฝ้าในฝ้าหลุม หรือกล่องที่มีแผ่นกระจกฝ้ากรุอีกที แต่เพื่อไม่ให้เห็นเงาดำของขั้วหลอด แทนที่จะวางเรียงไปแบบปลายชนกัน จึงต้องเอียงเล็กน้อย ให้ส่วนขั้วหลอดเกยกัน

ขอนำมาตอบรวมไว้ในบล็อก เพื่อเป็นประโยชน์กับท่านอื่นด้วย

ขั้นตอนมีดังนี้

1. วาดแนวเส้นตามที่ต้องการ จะเป็นเส้นตรง หรือเส้นโค้งแบบเต็มวงกลม วงรี ส่วนของเส้นโค้งจากคำสั่ง ARC ก็ได้

2. สร้างบล็อก (Block definition) ของดวงโคม ให้วางแนวยาวที่มุม 0 องศา หรือขนานแกน X เช่นใช้คำสั่ง Rectang ป้อนจุดที่ 0,0 และ 1.2,0.06 สำหรับหลอดฟลูออเรสเซนต์ 36 วัตต์ หรือตามแบบที่ต้องการ ทั้งนี้ให้กำหนดจุดวาง (Insertion Point) ไว้ที่ จุดกึ่งกลางของด้านทางซ้าย ดูรูปประกอบ

3. ใช้คำสั่ง MEASURE ตามพรอมต์ดังนี้

Command: measure
Select object to measure: [คลิกเลือกรูปวาดเส้นตรงหรือเส้นโค้ง]
Specify length of segment or [Block]: [พิมพ์ B กด ENTER]
Enter name of block to insert: [ใส่ชื่อบล็อกที่ต้องการ เช่น FL36W]
Align block with object? [Yes/No] : [กด ENTER รับตัวเลือก Y]
Specify length of segment: [ใส่ระยะ กรณีเกย 10 ซม. สำหรับหลอดยาวนี้ให้ป้อนด้วยค่าที่หักระยะเกยกันแล้ว เช่น 1.1 สำหรับหลอด 36 วัตต์]

*** เคล็ดลับของเรื่องนี้ อยู่ที่ระยะในพรอมต์ ให้ป้อนด้วยค่าระยะความยาวของดวงโคมที่หักลบด้วยระยะที่จะให้ซ้อนกันแล้ว ในส่วนที่จะไม่ให้เกิดเงาดำของขั้วหลอด ***


บางกรณีอาจยังมีช่องว่าง เติมช่องว่างที่ยังเหลือ ที่คำสั่งยังไม่ใส่ไว้ให้ เนื่องจากระยะที่เหลือสั้นกว่าค่าที่ป้อนไว้ หากเติมด้วยอีกหลอดไม่ได้ ก็อาจเติมด้วยหลอดไฟแบบที่สั้นลง เช่น 18 วัตต์ จำนวนตามเหมาะสม

วันอาทิตย์ที่ 28 พฤศจิกายน พ.ศ. 2553

AutoCAD: Visual LISP, AutoLISP การนำ ID point ไปใช้

จากบทความที่แล้วที่เขียนและเผยแพร่คำสั่ง IDP ได้มีท่านหนึ่งนำไปใช้ในงานจริง และเสนอแนะสิ่งที่ควรปรับปรุง โดยนำไปใช้ในงาน CNC (Computer Numerical Control) แทนการใช้โปรแกรมเฉพาะสร้าง G-code เห็นว่าเป็นตัวอย่างประยุกต์ที่น่าสนใจดี และเจ้าของไฟล์ตัวอย่างได้อนุญาตแล้ว จึงนำภาพบางส่วนมาแสดงเอาไว้ในที่นี้


ท่านที่สนใจจะรับ IDP.VLX นี้ไปใช้งานบ้าง ส่งอีเมลมารับไปใช้กันได้ครับ ด้วยความยินดี

ข้อมูลเพิ่มเติม: สำหรับท่านที่ไม่ทราบถึงเรื่องของ CNC และ G-code อ่านตามลิงก์ข้างล่างนี้ได้
http://en.wikipedia.org/wiki/G-code
http://en.wikipedia.org/wiki/Numerical_control