วันพุธที่ 24 กุมภาพันธ์ พ.ศ. 2553

AutoCAD Tips: Visual LISP Tips ตอน Non-uniform X-Y Grid on 2D Plan.

เช้านี้เช็ค email
มีคุณ konothai@yahoo.com สอบถามถึงแนวทางสร้างเส้นกริดบนแปลน
ที่ Non-uniform X-Y หรือระยะห่างไม่ได้สม่ำเสมอ เท่ากันบางช่วง บางช่วงเป็นค่าอื่น
เห็นว่าน่าจะเป็นประโยชน์กับท่านอื่นๆ ที่ทำงานในสายนี้ด้วย
เลยขอนำมาโพสต์ตอบรวมไว้ตรงนี้เลยแล้วกัน

ท่านที่สนใจการพัฒนาสร้างคำสั่งใหม่ด้วย Visual LISP
ติดขัดตรงจุดไหน อีเมลมาคุยกันได้นะครับ



และนำเสนอให้ใช้ค่าป้อนในคำสั่งเป็นนิพจน์ในรูป

A1+ A2*X2 + A3*X3 + ... + Am*Xm
B1+ B2*Y2 + B3*Y3 + ... + Bn*Xn


พร้อมกับวางเสาที่มีหน้าตัดรูปสี่เหลี่ยมผืนผ้าที่ขนาดหนึ่งในทุกจุดตัดของเส้นกริดด้วย
แล้วค่อยอัปเดตด้วยอีกคำสั่งภายหลัง สำหรับต้นที่มีขนาดพิเศษ



แนวทางใน Visual LISP coding คงต้องจัดการจาก
นิพจน์สตริง A1+ A2*X2 + A3*X3 + ... + Am*Xm
ตรวจดักความผิดพลาดที่จะถูกป้อนเข้ามา
เมื่อถูกต้องแล้ว ก็แยกเป็น List ในรูป

( (A1) (A2 X2) (A3 X3) ... (Am Xm))

และสุดท้ายอาจแตกค่าย่อยเป็น

( x1 x2 x3 .... xm )

จัดการกับค่าในทั้งสองแกนแล้วนำมาเขียนด้วยเส้นตรง
และคัดลอกไปที่ระยะต่างนี้

โค้ดที่ได้ลองเขียนขึ้น เป็นไฟล์ให้ดาวน์โหลดได้ที่
(New Revision: 24-02-2010 16:00PM)
http://www.mediafire.com/file/ekhznziijzz/GRID.VLX

ก่อนใช้งาน ให้โหลดด้วย APPLOAD เหมือนกับ .LSP ทั่วไป

ลำดับการทำงานของคำสั่งนี้

Command: gs
Developed by S.chatchawal.
X expression A1+ A2*X2 + A3*X3 + ...: เช่น 5+12*4.5+6+5
Y expression B1+ B2*Y2 + B3*Y3 + ...: เช่น 4+7+3*4+5+4
Column x size: <0.25> ขนาดเสาแนว X เช่น .3
Column y size: <0.25> ขนาดเสาแนว Y เช่น .4

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

X: 5+12*4.5+6+5
Y: 4+7+3*4+5+4

คำสั่งนี้กำหนดเลเยอร์ให้กับเสาและเส้นกริดที่
A-Column และ A-Grid ตามลำดับ

ดูไดอะล็อก Layer Properties

ส่วนการอัปเดตขนาดเสาใหม่ ให้ใช้คำสั่ง CU
ที่มาพร้อมกับคำสั่ง GS ในไฟล์ GRID.VLX

ลำดับการทำงานของคำสั่ง CU เป็นดังนี้

Command: cu
Developed by S.chatchawal.
New Column x size: <0.3> ขนาดเสาใหม่ในแนว x เช่น .6
New Column y size: <0.4> ขนาดเสาใหม่ในแนว y เช่น .4
Select objects: เลือกกลุ่มเสาที่จะเปลี่ยนขนาดใหม่
Select objects: ที่พรอมต์นี้หากเราเลือกครอบ จะกรองเอาเฉพาะ Polyline 4 จุดยอดให้

เมื่อกล่าวถึงในจุดนี้
งานสุดท้ายจะจบลงด้วยการใส่ Grid Iden Bubbles
ที่เป็นวงกลมและหมายเลข หรืออักษรกำกับ
ซึ่งใน PA2010-AEC ที่มีกล่าวถึงในหนังสือ
AutoCAD 2010 เขียนแบบงานวิศวกรรมและสถาปัตย์
ที่ได้จัดทำไปนั้น มีคำสั่ง inctext ที่่ช่วยจัดการเขียน
ชุดตัวเลขหรือชุดตัวอักษรเรียงให้
ซึ่งใช้ได้สะดวกมาก ไม่ต้องใส่ค่าใหม่ทีละค่าเอง
จาก Text หรือ Mtext เองอีก

ดูรูปไดอะล็อก Increment Text


หลังจากคลิก Draw ไดอะล็อกจะปิดลง
เมื่อเลือกในแบบ Each Point
และมีพรอมต์ดังนี้

Command: inctext
Specify point for Text:

ให้เลือกจุดที่จะเขียน ในกรณีนี้คือ Object Snap: Center
ของรูปวงกลมที่แทน Bubble หนึ่งๆ

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

ไม่มีความคิดเห็น:

แสดงความคิดเห็น