วันศุกร์ที่ 10 กันยายน พ.ศ. 2553

AutoCAD Tips: Visual LISP / AutoLISP ลง Hatch ด้วย 3 จุด



งานเขียนแบบสถาปัตย์ในส่วน Section หรือ Elevation บางครั้งจะมีแสดงแนวของดิน ทราย หรือคอนกรีต ถ้ามีวิธีช่วยให้เขียนเร็วขึ้นได้ ก็จะลดเวลาลงได้มาก ไม่ต้องเสียเวลาสร้าง Boundary ไว้อ้างอิงสำหรับการลง Hatch เหล่านี้ (แล้วค่อยลบขอบเขตนี้ออกไปในภายหลัง)

ขอนำเสนอไฟล์ HatchLine.VLX ซึ่งผู้สนใจสามารถอีเมลมารับไปใช้งานกันได้ โดยแก้ไขในส่วนไฟล์นิยาม อีกตัวชื่อ HatchDefs.LSP เพื่อกำหนด Hatch Pattern, Scale, Angle, ชื่อเลเยอร์ของ Hatch Pattern หรือจะใช้ตามที่นิยามไว้แล้วในไฟล์ก็ได้เช่นกัน

ตัวอย่างใช้งาน
Command: พิมพ์ชื่อคำสั่ง EARTHI กด ENTER
Developed by schatchawal@gmail.com
Specify first point: คลิกจุดปลายบนเส้นเพื่อกำหนดแนวขอบเขต (1)
Specify second point: คลิกจุดบนอีกปลายของเส้นเพื่อกำหนดแนวขอบเขต (2)
Specify side to draw: คลิกจุดในด้านที่จะเขียน hatch (3)


ผลลัพธ์ที่ได้


เนื่องจากเป็นไฟล์ LISP จึงต้องโหลดก่อน ด้วยคำสั่ง APPLOAD โดยให้โหลดไฟล์ HatchLine.VLX เท่านั้น ส่วน HatchDefs.LSP จะถูกโหลดให้เอง เพราะมีกำหนดในไฟล์ HatchLine.VLX เอาไว้แล้ว

สังเกตว่าในไฟล์ตัวอย่าง HatchDef.LSP ที่ให้ไว้นี้ มีคำสั่ง EARTH, EARTHI, CONC, CONCI, SAND และ SANDI ในคำสั่งที่ชื่อลงท้ายด้วย I นี้จะให้ผลเป็นรูปร่างทรงอิสระ (Irregular) ที่เหลือเป็นแบบสี่เหลี่ยม (Rectangular)

ในไฟล์ HatchDefs.LSP สร้างคำสั่งใหม่ได้เอง
โดยใช้บรรทัด (defun c:XXX () (... )) ตามที่ให้รายละเอียดไว้ในไฟล์แล้ว

;;Samples
;; (defun c:XXX () (Hatch3Points Hatch_Pattern Scale Angle_in_Degrees Depth Irregular Layer )(princ))
;; Name - c:XXX
;; Irregular - 1 for Irregular shape and 0 for Rectangular.
;; Layer - Layer name of this new hatch or nil for Use the current layer.
(defun c:earth ()
(Hatch3Points "EARTH" 0.01 45.0 0.2 0 "A-Lightweight-Line")
(princ)
)

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

AutoCAD : แบบสำหรับก่อสร้าง ?

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

ตัวอย่างภาพเหล่านี้ ได้จากการค้นจาก Google ด้วยคีย์เวิร์ดว่า mistake construction drawing

ถ้า Revision Cloud ที่ใช้กำกับในแบบ For Construction เพื่อเน้นให้เห็นตำแหน่งที่ถูกปรับเปลี่ยนแบบไป (revised) ถูกช่างหน้างานตีความจัดการจนได้ผลงานเป็นดังรูปถัดไป พวกที่อยู่หน้างานอย่างโฟร์แมนคุมงานจะเป็นอย่างไร เมื่อมีคนมาตรวจงาน!!!





หรือถ้า Callout ที่ใช้ชี้กำกับแบบ ถูกช่างหน้างาน ตัดขั้นบันไดให้แบบนี้ จะเป็นเช่นใด??


แถมท้ายด้วย ผลงานก่อสร้างที่แสนพิลึก ที่บ่งบอกถึงข้อบกพร่องได้มากมาย แต่ไม่กล้ายืนยันว่าเป็นภาพจริง หรือภาพตัดต่อ (montage) ลองเอาไป Discuss กันเล่นว่า ถ้ามันเป็นเรื่องจริง ทำไมจึงเป็นเช่นนี้ไปได้!!!











ขอขอบคุณเจ้าของภาพเหล่านี้มา ณ ที่นี้ด้วย

วันเสาร์ที่ 4 กันยายน พ.ศ. 2553

Windows & Internet ฉบับ ลับ ลวง พราง




ขอแนะนำหนังสือ Windows & Internet ฉบับ ลับ ลวง พราง ที่ได้จัดทำขึ้น มีเป้าหมายให้ผู้ใช้ทั่วไป (End user) ทราบถึงเรื่องราวที่จำเป็น และแนวทางเตรียมพร้อมรับมือกับภัยร้ายที่อาจประสบได้จากการใช้ Windows PC และกับดักร้ายที่มีบนอินเทอร์เน็ต

รายละเอียดของเนื้อหาดูได้จากภาพขยาย ปกหน้า-หลัง (คลิกภาพเพื่อดูภาพขยาย)

วันจันทร์ที่ 23 สิงหาคม พ.ศ. 2553

AutoCAD Tips: บันทึกละเอียด (Precision) แค่ไหนจึงจะพอดี?

จากที่คลุกคลีในแวดวงก่อสร้างมาเกือบยี่สิบปี ได้พบกับแนวคิดสำคัญขณะอยู่หน้างาน (on the site) ไม่น้อยเลย

เริ่มต้นจากปีแรกที่ต้องเป็นวิศวกรภาคสนามในส่วนงานติดตั้งระบบไฟฟ้า จากที่เคยเรียนแต่บนโต๊ะ ทำงานคำนวณ จะเขียนแบบในรุ่นที่เรียนตอนนั้น ยังมีก็เพียงไม้สเกล ไม้ฉาก เป็นเครื่องมือวัดเท่านั้น และก็ยังไม่ได้ใช้คอมพิวเตอร์เขียนแบบเลยด้วยซ้ำ

เมื่อมาสัมผัสภาคปฏิบัติของช่าง ตั้งแต่ระดับหัวหน้าช่างประสบการณ์กว่า 20 ปี ไปจนถึงช่างแรงงาน ถึงได้พบกับวิธีที่ใช้กันในหน้างานก่อสร้าง

เครื่องมือวัดในงานก่อสร้างเป็นอย่างไรกัน?

ในแง่มุมของงานติดตั้งท่อร้อยสายไฟ เขาหาแนวระดับกันอย่างไร
เริ่มต้นจากมีช่าง survey มายิงเส้นแนวระดับที่เรียกกันง่ายๆว่าเส้นเมตรให้ ใครจะวัดอะไรจะต้องอ้างอิงไปจากจุดนี้ จากนั้นใครจะเอาไปใช้ที่ระดับเท่าใด ที่ตำแหน่งใด ก็อาศัยการถ่ายระดับไป

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

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

ส่วนระยะในระนาบ เช่นเดียวกันเริ่มต้น มีเส้นอ้างอิงจากช่าง survery ตีเส้นอ้างอิงไว้ให้ แต่คราวนี้สะดวกขึ้นเพราะวัดจากในระนาบ จึงดึงแนวจากตลับเมตรวัดได้สะดวก ไม่ต้องมีสายยางระดับน้ำให้ระเกะระกะอีก

แน่นอนว่าแล้วถ้าเป็นแนวยาวๆ เขาจะตีเส้นไว้อ้างอิงอย่างไร?
คำตอบคือบักเต้า

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

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

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

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

มาถึงอีกเหตุการณ์จริง ที่เริ่มใกล้ AutoCAD ขึ้นมาอีกหน่อย?

ผู้เขียนทำงานอยู่ฝ่ายก่อสร้างที่มีผู้คุมงานของเจ้าของโครงการอีกที วันนึงมีเสียงบ่นจากช่างเขียนแบบว่า
ฝ่ายคุมงานที่มักเรียกว่าคอนซัลต์นี้แหละ ตีแบบก่อสร้าง (shop drawing) กลับคืนมา บอกว่าเขียนมาได้ ยังไงระยะบันได ใส่เส้นบอกระยะ (dimension) มาไม่ถูกต้อง ทำไมไปปัดทศนิยมอย่างนั้น หารแบ่งได้เท่าไรก็ใส่มาให้ตรง ให้ละเอียดถึงทศนิยม 4 ตำแหน่ง!!!

หากใครอ่านตั้งแต่ต้นมาถึงตรงจุดนี้ คงพอสรุปได้ว่าใครกันที่น่าจะทำถูกดีแล้ว?

เป้าหมายของแบบ Shop Drawing เอาไปให้ใครใช้ คนที่จะใช้คือช่างที่หน้างาน เครื่องมือวัดของเขามีอะไรบ้าง ลำพังตลับเมตรข้างเอวที่เขาพกอยู่นั้นจะวัดยังไงให้ได้ทศนิยม 4 ตำแหน่ง ที่แบบหน่วยเมตร ก็กลายเป็นถึงระดับหนึ่งในสิบของมิลลิเมตรเลยทีเดียว


ถึงย่อหน้าสุดท้าย แล้ววันนี้คุณเขียนแบบงานก่อสร้างในหน่วยเมตร ด้วยทศนิยมกี่ตำแหน่งกัน? และก็หวนคิดไปถึงภาพเลือนๆ ถึงชั่วโมงแรกของการเรียนแล็บฟิสิกส์ในรั้วมหาวิทยาลัย ทำไมถึงได้ต้องทนฟังวิดีโอเรื่องเลขนัยสำคัญ (Significant number) อยู่เกือบทุกรุ่น ตั้งแต่มีคณะวิศวกรรมศาสตร์กันมา ...

วันอังคารที่ 17 สิงหาคม พ.ศ. 2553

AutoCAD Tips: BACK To BASICS - ALIAS

หลังจากเขียนบทความตอนสั้นๆเกี่ยวกับ LISP ไปหลายตอน เมื่อไปเยือน 2 - 3 หน่วยงานก็ยังพบว่า มีหลายท่านยังชื่นชอบการกดคีย์บอร์ดด้วยตัวอักษรสักหนึ่งตัว หรือ 2 - 3 ตัว เพื่อใช้เรียกคำสั่งหนึ่งๆใน AutoCAD แทนการคลิกทูล (tools) หรือปุ่มรูปเครื่องมือ ซึ่งความสามารถนี้มีชื่อเป็นทางการคือ ALIAS (คำสั่งย่อ) เคยเห็น Draftsman ที่ใช้ได้อย่างคล่องแคล่ว ทำได้เร็วไม่แพ้การเข้าใช้จากการคลิกของเมาส์เลยทีเดียว

ยกตัวอย่างคำสั่งย่อ เช่น

พิมพ์ L กด Enter เพื่อเรียกใช้คำสั่ง Line
พิมพ์ DLI กด Enter เพื่อเรียกใช้คำสั่ง DimLinear

ฯลฯ

ตอนเริ่มต้นใช้ AutoCAD ผู้เขียนเองก็ใช้ ALIAS อยู่ด้วย จน AutoCAD ก้าวจากยุคสุดท้ายบน DOS ที่ Release 13 มาที่ 14 และกระโดดเปลี่ยนไปใช้เลขรุ่นด้วยเลขปีเป็น AutoCAD 2000 ก็ลดการกดคีย์บอร์ดเหล่านี้ลง ใช้เฉพาะจาก LISP ที่พัฒนาขึ้น แต่คำสั่งดั้งเดิมใน AutoCAD เอง เรียกใช้งานจาก Tool ซึ่งแรกๆนี้ก็อยู่บน Toolbar ต่างๆ จนเป็น 2009 ที่ย้ายเป็นแผง (panel) บน Ribbon menu แบบ Microsoft Office 2007/2010

เลยคิดว่าน่าจะเป็นการดีที่ให้รายละเอียดของเครื่องมือนี้สักหน่อย

จุดที่ใช้นิยาม (define) หรือกำหนดอักษรย่อที่จะใช้กับคำสั่งนี้อยู่ที่ไฟล์ ACAD.PGP

แน่นอนปัญหาที่ตามมาคือ

1.แล้วไฟล์นี้อยู่ที่ใด?
2.แก้ไขเองได้ไหม?

คำตอบของปัญหานี้จะนำเสนอ 2 วิธีดังนี้

วิธีแรกใช้คำสั่ง ALIASEDIT ที่จะใช้ได้ก็ต่อเมื่อเราได้ติดตั้งส่วน Express Tools ของ AutoCAD ด้วย


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

วิธีที่สอง คือเปิดแก้ไขโดยตรง จะเพิ่ม ลด หรือแก้ไขของเดิมจากโปรแกรม Notepad ต่อไฟล์ ACAD.PGP
ที่จริงๆแล้วก็เป็นเพียงไฟล์เท็กซ์เท่านั้น

แต่ก็จะมาติดตรงที่แล้วไฟล์ ACAD.PGP อยู่ตรงไหน คำตอบคือ จะอยู่ใน Profile ผู้ใช้ส่วน roaming ของโปรแกรม AutoCAD ที่ติดตั้งไว้ เช่น

C:\\Users\\<<ชื่อบัญชีผู้ใช้>>\\appdata\\roaming\\autodesk\\autocad
2011\\r18.1\\enu\\support\\acad.pgp

อย่างไรก็ตาม มีวิธีเข้าถึงง่ายกว่านี้ไม่ต้องเสียเวลาดับเบิลคลิกเข้าในหลายโฟลเดอร์กว่าจะถึงไฟล์นี้ นั่นคือบนบรรทัด Command: พิมพ์ด้วยนิพจน์ต่อไปนี้แล้ว กด Enter

(command "notepad" (findfile "acad.pgp"))

เพียงเท่านี้ก็จะทำให้เปิดโปรแกรม Notepad ที่ไฟล์ acad.pgp นี้แล้ว



มีจุดสำคัญอีกเรื่องคือการแก้ไขไฟล์นี้ด้วย Notepad จะต้องเรียกใช้คำสั่ง REINIT เพื่อให้ AutoCAD อ่าน ACAD.PGP ใหม่อีกครั้งก่อน จึงจะใช้งานได้

แต่อย่าลืมว่า คำสั่งย่อใน ACAD.PGP จะกำหนดตัวเลือก (Options) ไม่ได้
ถ้าจะสร้างคำสั่งย่อแบบรวมตัวเลือกย่อยในคำสั่งต้องใช้รูทีน AutoLISP เข้าช่วย
หากสนใจเพิ่มเติมจะให้เขียนในจุดนี้อีก อีเมลมาถามไถ่กันได้ครับ

วันพฤหัสบดีที่ 17 มิถุนายน พ.ศ. 2553

AutoCAD Tips: Visual LISP อ่านความยาวรูปวาดแบบทันที



หากต้องการทราบค่าความยาวของรูปวาดหนึ่ง ๆ ใน AutoCAD วิธีการหนึ่งที่ทำกันคือ คลิกเลือก แล้วกดคีย์ Ctrl+1 เพื่อดูค่าคุณสมบัติจาก Properties palette ที่รายการ Length (ความยาว), Circumference (เส้นรอบวง) เป็นต้น

ในหัวข้อนี้ขอนำเสนอคำสั่งที่พัฒนาขึ้นใหม่คือ RLL ที่เป็นรูทีน AutoLISP เพียงแต่วางตัวชี้ไว้เหนือรูปวาด ไม่ต้องคลิกเลือกรูปวาดเลย จะให้ผลแจ้งชนิดรูปวาดและความยาวให้ทราบในวินโดว์ Command ตามรูปถัดไปนี้ ข้อดีคือใช้เช็คความยาวหลายรูปวาดได้อย่างรวดเร็ว ระหว่างอยู่ในคำสั่งนี้เพียงแต่เลื่อนตัวชี้ไปวางยังรูปวาดต่าง ๆ ที่ต้องการก็จะได้ค่าความยาวทันที



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

AutoCAD Tips: Visual LISP เขียน ARC จากค่าความยาว



คำสั่ง Arc ใน AutoCAD เอง มีตัวเลือกหนึ่งที่ใช้กำหนดความยาวในการเขียนเส้นโค้ง ที่เป็นส่วนของวงกลม แต่ไม่ใช่ความยาวของส่วนโค้ง ความยาวในตัวเลือกนี้คือ Chord ที่เป็นเส้นตรงที่โยงระหว่างจุดปลายของส่วนโค้ง

ในหัวข้อนี้ได้สร้างคำสั่งขึ้นใหม่คือ AL (Arc Length) ใช้วาดเส้นโค้งของวงกลม โดยให้กำหนดความยาวส่วนโค้งได้ มีพรอมต์ดังรูปนี้



มีจุดสังเกตดังนี้

1. ใช้กับ UCS หมุนมุมได้
2. ป้อนความยาวด้วยค่าบวก เส้นโค้งถูกเขียนในทิศทวนเข็มนาฬิกา
ส่วนค่าลบ เขียนในทิศตามเข็มนาฬิกา

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