เมื่อสัปดาห์ที่แล้วมีอีเมลถามถึงการเปลี่ยนคุณสมบัติสีของ 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 แล้ว สังเกตว่าฟอนต์ของข้อความคงเดิม มีเพียงสีที่เปลี่ยนไป
ผู้สนใจอีเมลมารับไปใช้ได้
รบกวน ขอ lisp ตัวนี้หน่อยค่ะ น่าใช้ดี
ตอบลบganesha-p@hotmail.com
จัดส่งให้แล้วครับ ด้วยความยินดีครับ
ตอบลบขอบคุณค่ะ Lisp นี้ช่วยในการทำงานได้เยอะ
ตอบลบสนใจครับ..ขอไฟล์หน่อยครับ
ตอบลบsupakij_t@hotmail.com
ขอด้วยครับ กำลังหาพอดี
ตอบลบjoethawatchai1966@gmail.com
สนในครับ
ตอบลบmtawat353@gmail.com
สนใจครับ ขอด้วยใช้ด้วยครับ ขอบคุณมากครับ
ตอบลบoud.thakham@gmail.com
รบกวน ขอ lisp ตัวนี้หน่อยคับ น่าใช้ดี
ตอบลบรบกวน ขอ lisp ตัวนี้หน่อยคับ
ตอบลบ