วันศุกร์ที่ 22 กรกฎาคม พ.ศ. 2554

AutoCAD TIP: ถามมา ตอบไป MTEXT COLOR

เมื่อสัปดาห์ที่แล้วมีอีเมลถามถึงการเปลี่ยนคุณสมบัติสีของ MTEXT (Multiline Text) ใน AutoCAD ที่ถูกกำหนดค่าโดยตรงจากส่วนของ Mtext Editor โดยตรง ทำให้ไม่สามารถแปลงเป็นสีแบบ ByLayer ได้

DWG ที่มีปัญหา ตรงส่วน MTEXT ถูกกำหนดโดยตรงเป็นสี Magenta

ขณะที่สีของเลเยอร์ L1 ที่วาง Mtext นี้อยู่คือสี Green

วิธีแก้ไขสีใหม่ทางตรงคือดับเบิลคลิกบน MTEXT เลือกข้อความที่ต้องการและเลือกสีเป็น ByLayer

วิธีนี้สำหรับข้อความจำนวนไม่มากนักก็ไม่ใช่เรื่องยากเลย แต่จากไฟล์ DWG ที่ผู้ถามแนบมาคือข้อความเกือบ 100 รายการทีเดียว และถ้ามี DWG ทำนองนี้เป็นจำนวนมากๆหลายๆไฟล์ คงเป็นงานที่ไม่น่าสุนทรีย์เลย

จึงได้ลองเขียน LISP เพื่อแทนส่วนแท็กค่าสีของแต่ละ mtext เพื่อให้ทำการเปลี่ยนเป็น ByLayer โดยอัตโนมัติ เพียงแต่พิมพ์คำสั่งชื่อ MTXCOLOR เท่านั้น ตัวอย่างพรอมต์ที่แสดง

Command: MTXColor
Convert MTEXT to Real Color Bylayer.
Developed by S.Chatchawal, schatchawal@gmail.com
Set 97 MTEXT objects to Bylayer color.
Convert individually explicit color 82 objects.

รูปผลลัพธ์หลังใช้คำสั่ง MTXCOLOR ที่แปลงสี Mtext เป็น ByLayer ในรูปนี้คือสีเขียวตามเลเยอร์ L1 หรือเป็นแบบ ByLayer แล้ว สังเกตว่าฟอนต์ของข้อความคงเดิม มีเพียงสีที่เปลี่ยนไป


ผู้สนใจอีเมลมารับไปใช้ได้

AutoCAD TIP: ถามมา ตอบไป : เส้นโพลีไลน์บนระนาบ ISOMETRIC

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

ทางออกของเรื่องนี้วิธีหนึ่งคือ เขียนเส้นโพลีไลน์ที่มีความหนาเป็นศูนย์ แทนถึงขอบเขตของเส้นแบบมีความหนาก่อน โดยให้เส้นทั้งสี่นี้ทำมุมให้ถูกต้อง แล้วจึงค่อยลง Hatch ที่ pattern=SOLID ลงไป



การป้อนจุดยอดของ Polyline ที่เป็นกรอบนี้ เป็นเรื่องยุ่งยากพอสมควรทีเดียว

คลิกจุดแรก | @Lมุม30 | @Wมุม150 | @Lมุม210 | Close

เพื่อลดขั้นตอนงานเช่นนี้จึงได้พัฒนา LISP ชื่อ LISO ช่วยเขียนเส้นลักษณะนี้ โดยคำสั่งจะตรวจจับระนาบ ISOMETRIC ขณะนั้น และคำนวณค่ามุมป้อนให้เอง มีพรอมต์เป็น

Command: LISO
Developed by S.Chatchawal, schatchawal@gmail.com
Line width: <0.3> <ความกว้างเส้น>
First point: <จุดแรก>
Second point: <จุดสอง>
First point: <วนถามจุดแรกของเส้นถัดไป ถ้าต้องการจบกด ENTER>



ผู้สนใจสามารถอีเมลมารับไปใช้ได้

วันศุกร์ที่ 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 ได้ตามรูปนี้