เมื่อสัปดาห์ที่แล้วมีอีเมลถามถึงการเปลี่ยนคุณสมบัติสีของ 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 แล้ว สังเกตว่าฟอนต์ของข้อความคงเดิม มีเพียงสีที่เปลี่ยนไป
ผู้สนใจอีเมลมารับไปใช้ได้
วันศุกร์ที่ 22 กรกฎาคม พ.ศ. 2554
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>
ผู้สนใจสามารถอีเมลมารับไปใช้ได้
ทางออกของเรื่องนี้วิธีหนึ่งคือ เขียนเส้นโพลีไลน์ที่มีความหนาเป็นศูนย์ แทนถึงขอบเขตของเส้นแบบมีความหนาก่อน โดยให้เส้นทั้งสี่นี้ทำมุมให้ถูกต้อง แล้วจึงค่อยลง 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>
ผู้สนใจสามารถอีเมลมารับไปใช้ได้
สมัครสมาชิก:
บทความ (Atom)