วันจันทร์ที่ 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

วันอังคารที่ 16 พฤศจิกายน พ.ศ. 2553

AutoCAD TIPS : AutoLISP Visual LISP ถามมา-ตอบไป เขียนข้อความแสดงจุดยอดหรือพิกัด





อีเมลอีกฉบับถามถึงคำสั่งเขียนข้อความ (TEXT) ที่แสดงถึงจุดยอด (vertices) หรือพิกัด (Coordinate) ของรูปวาดเส้นตรงและเส้นโค้งต่างๆแบบอัตโนมัติ

จึงพัฒนาคำสั่ง IDP ขึ้น มีพรอมต์ดังนี้

Command: idp
Developed by S.Chatchawal, schatchawal@gmail.com
Text Height: <10> พิมพ์ค่าความสูงตัวอักษรที่ต้องการ เช่น .3 แล้วกด ENTER
Select objects: เลือกรูปวาดตามวิธีมาตรฐานใน AutoCAD
เช่น พิมพ์ ALL กด ENTER สำหรับรูปวาดทั้งหมด หรือคลิกเลือกทีละเส้น หรือลากกรอบครอบ หรือ
ลากกรอบตัด เป็นต้น

Select objects: เลือกครบแล้วกด ENTER เพื่อจบคำสั่ง

คำสั่ง IDP นี้จะเขียนข้อความในรูป X,Y ให้ตามตำแหน่งจุดยอดของรูปวาดที่เลือก จำนวนตำแหน่งทศนิยมที่แสดงถูกใช้ตามค่ากำหนด UNITS หรือตัวแปรระบบ LUPREC ที่ควบคุมความละเอียดของค่าบันทึกระยะเชิงเส้น (Linear Length) ของพื้นที่วาดรูป

ท่านที่สนใจสามารถอีเมลมารับไฟล์นี้ไปใช้กันได้ครับ

AutoCAD TIPS : AutoLISP Visual LISP ถามมา-ตอบไป Profile extrude



อีเมลฉบับหนึ่งถามหา LISP ขึ้นรูป โดยดันขึ้นรูปหรือ Extrude ไปตาม Path ที่สร้างไว้ก่อนแล้ว เช่น 2D Polyline จากคำสั่ง Pline และ 3D Polyline จากคำสั่ง 3DPoly

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

โดย Profile เป็นหน้าตัดรูปสี่เหลี่ยมผืนผ้า ให้กำหนดขนาดด้านกว้างและยาวได้

จึงได้พัฒนาคำสั่ง RRR ขึ้น มีพรอมต์ดังนี้

Command: RRR
Developed by S.Chatchawal, schatchawal@gmail.com
Rectangular x size: <1> ใส่ขนาดแนว x ที่เป็น Profile หรือหน้าตัดของรูปสี่เหลี่ยม
Rectangular y size: <1> ใส่ขนาดแนว y ที่เป็น Profile หรือหน้าตัดของรูปสี่เหลี่ยม
Select path near the end side: คลิกบน path ที่มาจากคำสั่ง Pline หรือ 3DPoly ที่สร้างไว้ก่อนแล้ว
Select path near the end side: คลิก path ได้อีกเรื่อยๆ
Select path near the end side: จบคำสั่งให้กด ENTER

ท่านที่สนใจอีเมลมารับไฟล์นี้ไปลองใช้กันได้ครับ

วันจันทร์ที่ 8 พฤศจิกายน พ.ศ. 2553

AutoCAD Tips: AutoLISP / Visual LISP: HOOK LINE เส้นตะขอ


วันนี้เปิดอีเมลมา มีท่านหนึ่งโพสต์มาถามเรื่องการเขียนเส้นตะขอหรือ Hook Line เห็นว่าน่าจะมีประโยชน์กับอีกหลายท่าน จึงขอนำมาโพสต์ตอบตรงนี้แล้วกัน

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

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

จุดที่ 1 คลิกเลือก
จุดที่ 2 ตามด้วยพิมพ์ค่า @ระยะ<มุม
จุดที่ 3 อาจใช้ความสามารถ Object snap: Parallel จับแนวที่ร่างไว้ แล้วลากแนวออกไป พิมพ์ค่าระยะที่ต้องการ
จุดที่ 4 พิมพ์ค่า @ระยะ<มุม โดยค่ามุมตอนนี้เป็นค่าลบของมุมในจุดที่ 2

สังเกตว่าการกำหนดจุดที่ 3 จะมีปัญหาเรื่องการกำหนดระยะพอสมควร อาจต้องทำระยะเป็นเส้นร่างเอาไว้ก่อน

ในบทความนี้จึงขอเสนอคำสั่ง HL ที่ใช้วาดเส้นตะขอนี้ โดยกำหนดค่าตามพรอมต์ดังนี้

Command: พิมพ์ HL กด ENTER
Developed by S.Chatchawal, schatchawal@gmail.com.
Hook angle: <45.00> พิมพ์ค่ามุม (จะถูกใช้สร้างเส้นทำมุมกับจุดเริ่มและจุดสิ้นสุด)
Hook length: <0.50> พิมพ์ค่าระยะของตะขอหรือเส้นหักมุม
Hook fillet radius: <0.15> พิมพ์ค่ารัศมีมนมุมที่จุดหักงอ
Specify first point: คลิกจุดเริ่มต้น
Specify next point: คลิกจุดถัดไป
Specify next point or [Undo]: คลิกจุดไป ได้อีกเรื่อยๆ จบด้วยการกด ENTER

กรณีต้องการยกเลิกเส้นที่เพิ่งวาดไป โดยยังค้างอยู่ในคำสั่ง HL ให้กด U ตามด้วย ENTER ได้

ด้วยการใช้คำสั่ง HL นี้แทนการเขียนด้วยคำสั่งปกติใน AutoCAD จะช่วยลดเวลาได้เป็นอย่างมาก และยังได้เส้นที่มีระยะห่างสม่ำเสมอเป็นอย่างดี โดยไม่ต้องมีเส้นร่างใดๆกำกับไว้ก่อนเลย

ภาพขยายแสดงส่วนที่ถูกมนมุม (Fillet) ที่จุดหักมุม

ท่านที่สนใจสามารถอีเมลมารับไฟล์ HOOKLINE.VLX นี้ไปใช้กันได้

วันพฤหัสบดีที่ 28 ตุลาคม พ.ศ. 2553

Microsoft Office : Word เลขไทย



ถ้าเรามีเอกสาร Microsoft Word Document (.doc, .docx) ที่สร้างไว้แล้ว โดยใช้ตัวเลขแบบอารบิก 0123456789 แต่ต้องการแปลงเป็นตัวเลขภาษาไทย ๐๑๒๓๔๕๖๗๘๙ มีวิธีช่วยให้ทำได้แบบง่ายๆ บ้างไหม?
แวบแรกที่มักคิดถึงกันก็คือความสามารถ Find / Replace ใน Word เอง กำหนดเลข ๑ แทนให้กับ 1 ไล่ไปเรื่อยจนครบ

จะให้เร็วอีกนิดก็คือบันทึกเป็น Macro ให้ค้นหาและแทนที่ทั้งหมด จากการค้นข้อมูลเรื่อง Unicode พบว่า ค่าแบบเลขทศนิยมเป็นดังนี้

อารบิก 0-9 => Unicode 48-57
ไทย ๐-๙ => Unicode 3664-3673

จึงเป็นตัวหลักที่จะเอามาใช้ใน VBA ที่จะเป็นแมโคร Word

ด้วยโค้ดดังนี้

Sub ThaiNumbers()
For i = 0 To 9
' This macro is developed by S.Chatchawal.
' schatchawal@gmail.com
' Convert Arabic Numbers To Thai Numbers
' 01234567890
' arabic 0-9 => Unicode 48-57
' Thai 0-9 => Unicode 3664-3673
Selection.HomeKey Unit:=wdStory
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = ChrW(48 + i)
.Replacement.Text = ChrW(3664 + i)
.Wrap = wdFindContinue
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next
End Sub

หรือจะอีเมลมารับไฟล์ ThaiNumber.bas ไปใช้เลยก็ได้
ซึ่งจะแนบรายละเอียดไว้ในไฟล์ PDF วิธีใช้สำหรับ Word 2010 ให้ด้วย

หลังจากสร้างแมโครนี้เสร็จ การใช้ก็เพียงแต่กดคีย์ Alt+F8 เปิดไดอะล็อก Macro ขึ้น แล้วเลือกที่ Module1.ThaiNumber แล้วคลิก Run เพียงเท่านี้ทั้งเอกสารก็จะแทนที่เลขอารบิกด้วยเลขไทยแล้ว



ส่วนการเปลี่ยนตัวเลขของ Numbering หรือลำดับหัวข้อย่อย
จะใช้วิธีสร้างแมโครกับส่วนที่เลือกก็ได้ วิธีเปลี่ยนแบบหนึ่งที่สามารถทำได้ มีขั้นตอนดังนี้
1. เลือกข้อความส่วนลำดับหัวข้อย่อย

2.คลิกขวาเลือก Numbering

3.คลิกรูปแบบตัวเลขไทย

4.ตัวอย่างผลลัพธ์ที่ได้