วันศุกร์ที่ 13 เมษายน พ.ศ. 2555
AutoCAD : PA2013AEC เพิ่มคำสั่งใหม่สำหรับช่วยเขียนงานโครงสร้าง
PA2013AEC เพิ่มคำสั่งใหม่สำหรับช่วยเขียนงานโครงสร้าง ประกอบด้วยคำสั่ง COL, BA และ SSSS สำหรับเขียนเสา คานแบบแนบหน้าตัดเสา และสัญลักษณ์พื้น โดยวางบนเลเยอร์ S-COLUMN, S-BEAM และ S-SLAB-SYMBOL / S-SLAB-ANNO
จะบรรจุโปรแกรมของคำสั่งเหล่านี้อยู่ใน CD ของหนังสือเล่มใหม่
ดูตัวอย่างการทำงานของคำสั่งได้จากวิดีโอนี้
วันอาทิตย์ที่ 11 มีนาคม พ.ศ. 2555
AutoCAD : เรขาคณิต เส้นตรง - วงกลม
จากเส้นตรงของรูปหลายเหลี่ยมด้านเท่า เมื่อนำมาวางซ้อนกันหลายรูป โดยให้หมุนไปรูปละองศาเท่าๆกัน จะสามารถให้ผลสร้างเป็นวงกลมได้

ลองใช้คำสั่ง PNN จากโค้ดถัดไปนี้เพื่อสร้างรูปหลายเหลี่ยมซ้อนกันดังกล่าว
(defun c:pnn (/ osmode n sides r p ang ang1)
(setq osmode (getvar "osmode"))
(initget 7)
(setq n (getint "\nCopies = "))
(initget 7)
(setq sides (getint "\nSides = "))
(initget 7)
(setq r (getdist "\nRadius of circumscribe = "))
(initget 1)
(setq p (getpoint "\nCenter = "))
(setq ang (/ 180. n)
ang1 0.
)
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(repeat n
(command "polygon"
sides
p
"I"
(strcat "@"
(rtos r 2 8)
"<"
(rtos (setq ang1 (+ ang1 ang)) 2 8)
)
)
)
(setvar "cmdecho" 1)
(setvar "osmode" osmode)
(princ)
)
พรอมต์ของคำสั่ง
Command: pnn
Copies = จำนวนสำเนา เช่น 12
Sides = จำนวนด้านของรูปหลายเหลี่ยม เช่น 3
Radius of circumscribe = ค่ารัศมีของวงกลมล้อมรูปหลายเหลี่ยม เช่น 50
Center = กำหนดตำแหน่งจุดศูนย์กลาง
ลองใช้คำสั่ง PNN จากโค้ดถัดไปนี้เพื่อสร้างรูปหลายเหลี่ยมซ้อนกันดังกล่าว
(defun c:pnn (/ osmode n sides r p ang ang1)
(setq osmode (getvar "osmode"))
(initget 7)
(setq n (getint "\nCopies = "))
(initget 7)
(setq sides (getint "\nSides = "))
(initget 7)
(setq r (getdist "\nRadius of circumscribe = "))
(initget 1)
(setq p (getpoint "\nCenter = "))
(setq ang (/ 180. n)
ang1 0.
)
(setvar "osmode" 0)
(setvar "cmdecho" 0)
(repeat n
(command "polygon"
sides
p
"I"
(strcat "@"
(rtos r 2 8)
"<"
(rtos (setq ang1 (+ ang1 ang)) 2 8)
)
)
)
(setvar "cmdecho" 1)
(setvar "osmode" osmode)
(princ)
)
พรอมต์ของคำสั่ง
Command: pnn
Copies = จำนวนสำเนา เช่น 12
Sides = จำนวนด้านของรูปหลายเหลี่ยม เช่น 3
Radius of circumscribe = ค่ารัศมีของวงกลมล้อมรูปหลายเหลี่ยม เช่น 50
Center = กำหนดตำแหน่งจุดศูนย์กลาง
วันศุกร์ที่ 30 ธันวาคม พ.ศ. 2554
AutoCAD Tips : Visual LISP Tip เขียนสัญลักษณ์ Slab งานโครงสร้าง
ส่งท้ายปีเก่า 2554 ด้วยคำสั่งเขียนสัญลักษณ์ Slab งานโครงสร้าง ตามที่ท่านหนึ่งได้อีเมลมาถาม อยากได้คำสั่งช่วยลงสัญลักษณ์นี้ที่เป็นเส้นทแยงมุมในพื้นที่ พร้อมกับวงกลมบอกหมายเลขอ้างอิง ตามรูป

ได้พัฒนาเป็น 2 คำสั่งคือ sss และ ssss โดยคำสั่งหนึ่งใช้เขียน และอีกคำสั่งใช้สำหรับกำหนดค่าเริ่มต้น
Command: SSSS
Letter: พิมพ์ข้อความที่ต้องการ เช่น S1
Text Height: พิมพ์ค่าความสูงตัวอักษรที่ต้องการ เช่น 0.25
Bubble Radius: พิมพ์ค่ารัศมีของวงกลมล้อมตัวอักษร เช่น 0.3
Command: SSS
Developed by S.Chatchawal, schatchawal@gmail.com
Point in boundary: เลือกจุดในพื้นที่ที่จะเขียน และคำสั่งจะแสดงพรอมต์ Point in boundary: นี้ให้เลือกจุดเขียนได้อีกเรื่อยๆ จบคำสั่งโดยกด ENTER ต่อพรอมต์นี้

ท่านที่สนใจสามารถอีเมลมารับไปใช้กันได้ครับ
สวัสดีส่งท้ายปี 2554
ได้พัฒนาเป็น 2 คำสั่งคือ sss และ ssss โดยคำสั่งหนึ่งใช้เขียน และอีกคำสั่งใช้สำหรับกำหนดค่าเริ่มต้น
Command: SSSS
Letter: พิมพ์ข้อความที่ต้องการ เช่น S1
Text Height: พิมพ์ค่าความสูงตัวอักษรที่ต้องการ เช่น 0.25
Bubble Radius: พิมพ์ค่ารัศมีของวงกลมล้อมตัวอักษร เช่น 0.3
Command: SSS
Developed by S.Chatchawal, schatchawal@gmail.com
Point in boundary: เลือกจุดในพื้นที่ที่จะเขียน และคำสั่งจะแสดงพรอมต์ Point in boundary: นี้ให้เลือกจุดเขียนได้อีกเรื่อยๆ จบคำสั่งโดยกด ENTER ต่อพรอมต์นี้
ท่านที่สนใจสามารถอีเมลมารับไปใช้กันได้ครับ
สวัสดีส่งท้ายปี 2554
วันจันทร์ที่ 10 ตุลาคม พ.ศ. 2554
AutoCAD Tips: ถามมา ตอบไป ข้อความบอกความยาวเส้น Closed Polyline
มีอีเมลจากท่านหนึ่งถามถึง กรณีมีผังที่ดินที่ถูกแบ่งสำหรับสร้างบ้านจัดสรร และต้องการให้เขียนข้อความกำกับไว้ที่แต่ละด้านของเส้นรอบรูปของผังหนึ่งๆที่ถูกสร้างไว้ด้วยเส้น Closed Polyline มีวิธีทำเร็วๆได้อย่างไร?
กรณีที่ไม่ได้พึ่งพาการเขียนโปรแกรม AutoLISP/Visual LISP เลย วิธีทางตรงคือ 1. ใช้คำสั่ง Dist หรือ Measuregeom วัดความยาวของ 2 จุดยอดคู่หนึ่งๆและจดบันทึกค่าไว้ 3. เขียนข้อความด้วยคำสั่ง Mtext หรือ Text โดยกำหนดมุมหมุนข้อความตามทิศทางของเส้นนั้นๆ และกรอกค่าด้วยตัวเลขจากข้อ 1
หรืออีกวิธีใช้ DimAlign เขียนเส้นบอกระยะตามแนวความยาว
งานที่มีจำนวนน้อย สิ่งนี้ทำได้ไม่ยากเลย แต่ถ้าเป็นงานประจำวันและมีจำนวนมากๆทางออกหนึ่งที่จะช่วยเพิ่มผลผลิตได้คือการเขียนโปรแกรมเข้าช่วย
จึงได้พัฒนาคำสั่ง BLI ขึ้น ซึ่งมีพรอมต์ดังนี้
Command: BLI
Developed by S.Chatchawal, schatchawal@gmail.com
Offset distance: <0.90> ระยะออฟเซ็ต
Text height: <0.60> ความสูงตัวอักษร
Select closed polyline: คลิกเลือกรูป Closed Polyline
จะให้ผลเขียนข้อความบอกขนาดของแต่ละท่อนของเส้น Closed polyline พร้อมกับแสดงค่าคำนวณขนาดพื้นที่ในหน่วย ไร่-งาน-ตารางวา ให้ด้วย และยังคงวนแสดงพรอมต์ Select closed polyline: ให้คลิกเลือกได้อีก หากครบแล้วให้กด ENTER เพื่อจบคำสั่งนี้ สังเกตว่าคำสั่งนี้จัดแนวข้อความตามแต่ละช่วงของ Closed Polyline ให้ด้วย
นอกจากนี้ยังได้เขียนคำสั่ง BLo สำหรับการเขียนข้อความไว้ที่รอบนอกด้วย
วันอังคารที่ 13 กันยายน พ.ศ. 2554
AutoCAD Tips: ถามมา ตอบไป เขียน RAMP วงกลม
มีอีเมลมาสอบถามถึง LISP ที่ช่วยเขียนเส้นลูกศรบน Ramp ขึ้น-ลงอาคาร
กรณีเป็นแนวตรงสามารถใช้รูปวาดแบบ hatch ได้โดยตรง โดยเลือกกำหนดระยะห่างของเส้นที่เป็น Pattern และมุมตามที่ต้องการ
กรณีเป็นแนวเส้นโค้งของวงกลมนั้น วิธีทางตรง จะประกอบด้วย 1. เขียนวงกลมที่มีจุดศูนย์กลางร่วมกันทั้ง 3 วง 2. หาความยาวเส้นรอบวงของวงกลมที่จะใช้เป็นตัวอ้างอิงในการกำหนดระยะระหว่างขั้น ซึ่งปกติจะใช้ Properties โดยดูที่รายการ Perimeter 3. คำนวณจำนวน โดยใช้ระยะ Perimeter หารด้วย ระยะห่างที่ต้องการ แล้วปัดเศษเป็นจำนวนเต็ม (N) 4. วาดเส้นลูกศรตัวแรก อาจเลือกวาดไว้ที่ตำแหน่ง 3 นาฬิกา 5. ทำซ้ำด้วยคำสั่ง array แบบ Polar และกำหนดจำนวนสำเนาตามข้อ 3 แบบเต็มวง (360 องศา)
สำหรับ LISP ที่ได้พัฒนาขึ้น เพื่อลดขั้นตอนการทำงานนั้น มีพรอมต์ดังนี้

Command: rc
Developed by S.Chatchawal, schatchawal@gmail.com
Direction [CW/CCW]: กำหนดทิศตาม-ทวนเข็มนาฬิกา
Center: กำหนดจุดศูนย์กลาง
Outer Radius: <6> รัศมีวงนอก
Inner Radius: <4>รัศมีวงใน
Outer ladder distance: <0.3> ระยะขั้น
Delete 3 circles? [Yes/No] ลบวงกลมหรือไม่>
กรณีเป็นแนวตรงสามารถใช้รูปวาดแบบ hatch ได้โดยตรง โดยเลือกกำหนดระยะห่างของเส้นที่เป็น Pattern และมุมตามที่ต้องการ
กรณีเป็นแนวเส้นโค้งของวงกลมนั้น วิธีทางตรง จะประกอบด้วย 1. เขียนวงกลมที่มีจุดศูนย์กลางร่วมกันทั้ง 3 วง 2. หาความยาวเส้นรอบวงของวงกลมที่จะใช้เป็นตัวอ้างอิงในการกำหนดระยะระหว่างขั้น ซึ่งปกติจะใช้ Properties โดยดูที่รายการ Perimeter 3. คำนวณจำนวน โดยใช้ระยะ Perimeter หารด้วย ระยะห่างที่ต้องการ แล้วปัดเศษเป็นจำนวนเต็ม (N) 4. วาดเส้นลูกศรตัวแรก อาจเลือกวาดไว้ที่ตำแหน่ง 3 นาฬิกา 5. ทำซ้ำด้วยคำสั่ง array แบบ Polar และกำหนดจำนวนสำเนาตามข้อ 3 แบบเต็มวง (360 องศา)
สำหรับ LISP ที่ได้พัฒนาขึ้น เพื่อลดขั้นตอนการทำงานนั้น มีพรอมต์ดังนี้

Command: rc
Developed by S.Chatchawal, schatchawal@gmail.com
Direction [CW/CCW]:
Center: กำหนดจุดศูนย์กลาง
Outer Radius: <6> รัศมีวงนอก
Inner Radius: <4>รัศมีวงใน
Outer ladder distance: <0.3> ระยะขั้น
Delete 3 circles? [Yes/No]
วันศุกร์ที่ 2 กันยายน พ.ศ. 2554
AutoCAD Tips: ถามมา ตอบไป เปลี่ยนขนาดบล็อกแบบอัตโนมัติ
มีอีเมลจากท่านหนึ่งเขียนมาถามถึงวิธีการเปลี่ยนขนาด Block Reference ที่มีชื่อเดียวทั้งหมดในคราวเดียว โดยเป็นสัดส่วน เช่น เดิมมีขนาดยาว 2 หน่วย ต่อมาต้องการเปลี่ยนให้เป็น 1 หน่วย วิธีปกติคือใช้คำสั่ง Scale โดยใช้ค่าสเกลเท่ากับ ขนาดใหม่ / ขนาดเก่า ในตัวอย่างนี้คือค่าสเกลเท่ากับ 1/2 = 0.5
สำหรับแบบที่มีบล็อกที่จะต้องแก้ไขเรื่องทำนองนี้จำนวนมากๆทำได้ยากพอสมควรทีเดียว เนื่องจากแต่ละครั้งจะต้องกำหนดจุดอ้างอิง (Base point) ให้กับคำสั่ง Scale นี้ทีละหนึ่งตัวเลือก เพื่อให้งานเช่นนี้ง่ายยิ่งขึ้น จึงได้พัฒนา LISP ที่ใช้จัดการกับบล็อกชื่อเดียวกัน โดยให้กำหนดค่าสเกลที่ต้องการ จากนั้นคำสั่งจะหาจุดอ้างอิงเอง และสเกลปรับขนาดให้ตรงกับที่ต้องการ มีพรอมต์ดังนี้
Command: QSIZE
Developed by S.Chatchawal, schatchawal@gmail.com
Scale: <0.5000> ใส่ค่าสเกล
Select sample: คลิกเลือกรูปวาดเป็นหนึ่งตัวอย่าง
Quick change size 14 objects. (คำสั่งแจ้งจำนวนวัตถุที่ได้ดำเนินการเปลี่ยนขนาดให้)ผู้สนใจอีเมลมารับคำสั่งนี้ไปใช้กันได้
ก่อนปรับขนาด
หลังปรับขนาดด้วยค่าสเกล 0.5
สำหรับแบบที่มีบล็อกที่จะต้องแก้ไขเรื่องทำนองนี้จำนวนมากๆทำได้ยากพอสมควรทีเดียว เนื่องจากแต่ละครั้งจะต้องกำหนดจุดอ้างอิง (Base point) ให้กับคำสั่ง Scale นี้ทีละหนึ่งตัวเลือก เพื่อให้งานเช่นนี้ง่ายยิ่งขึ้น จึงได้พัฒนา LISP ที่ใช้จัดการกับบล็อกชื่อเดียวกัน โดยให้กำหนดค่าสเกลที่ต้องการ จากนั้นคำสั่งจะหาจุดอ้างอิงเอง และสเกลปรับขนาดให้ตรงกับที่ต้องการ มีพรอมต์ดังนี้
Command: QSIZE
Developed by S.Chatchawal, schatchawal@gmail.com
Scale: <0.5000> ใส่ค่าสเกล
Select sample: คลิกเลือกรูปวาดเป็นหนึ่งตัวอย่าง
Quick change size 14 objects. (คำสั่งแจ้งจำนวนวัตถุที่ได้ดำเนินการเปลี่ยนขนาดให้)ผู้สนใจอีเมลมารับคำสั่งนี้ไปใช้กันได้
ก่อนปรับขนาด
หลังปรับขนาดด้วยค่าสเกล 0.5
วันจันทร์ที่ 22 สิงหาคม พ.ศ. 2554
AutoCAD TIP: ถามมา ตอบไป คัดลอกเลย์เอาต์จำนวนมากในคราวเดียว
มีอีเมลของท่านหนึ่งเขียนมาถามถึงการทำสำเนาเลย์เอาต์ตัวปัจจุบัน (Current Layout) ที่เลือกไว้ เพิ่มอีกจำนวนหนึ่งแบบเร็วๆ ทำได้อย่างไร?
ทางออกที่เร็วที่สุดของงานนี้คือการเขียนโปรแกรม LISP เข้าช่วย เช่นคำสั่ง CPL ที่ผู้สนใจสามารถอีเมลมารับไปใช้กันได้ครับ มีพรอมต์ดังนี้
Command: cpl
Developed by S.Chatchawal, schatchawal@gmail.com
Number of copies: ป้อนค่าจำนวนสำเนาที่ต้องการ เช่น 20 แล้วกด ENTER
ตัวอย่างผลลัพธ์ดูตามรูปข้างต้น
สมัครสมาชิก:
บทความ (Atom)