วันเสาร์ที่ 27 กุมภาพันธ์ พ.ศ. 2553

AutoCAD Tips: Visual LISP ใส่ Hatch ในผนัง เพิ่มเติมจากตอนที่แล้ว



จากตอน AutoCAD Tips: Visual LISP ใส่ Hatch ในผนัง
http://chatchawalsupakasem.blogspot.com/2010/02/autocad-tips-visual-lisp-hatch.html

ได้รับอีเมลจากหลายท่าน ถามไถ่ถึงอยากให้

1.ปรับค่ามุมได้
2.ลงเส้นแบบสองแนว (Double) ที่เคยกระทำได้ในคำสั่ง Hatch ปกติ
3.การปรับชื่อเลเยอร์ ที่คำสั่งจะตรวจจับ
เช่น เดิมคำสั่งกรองเอาเฉพาะเส้นบนเลเยอร์ชื่อ A-Wall อยากแก้เป็นเลเยอร์ชื่อ Wall
4.กำหนดชื่อเลเยอร์วาง Hatch ใหม่ได้ เช่น
เดิมคำสั่งนี้ให้วางที่ A-Hatch อยากให้ย้ายไปอยู่ที่ Wall-Pattern

จริงๆ แล้ว คำสั่งเดิม HW นั้น
รองรับสิ่งเหล่านี้ทั้งหมด
โดยแฝงอยู่ในตัวแปร

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

1. เปิด Notepad ใน Windows
แล้วคัดลอกโค้ดต่อไปนี้เข้าไปวาง

;; Hatch แบบดับเบิลสองแนว ที่เส้นเอียง 45 องศา
(defun c:h2 ()
(setq #hatchdouble 1); ลงสองแนวใช้ค่า 1 ลงแนวเดียวใช้ค่า 0
(setq #hatchang 45.0); ใส่ค่ามุมหน่วยองศา
(c:hw)
(princ)
)
;; Hatch แบบแนวเดียว ที่เส้นเอียง 45 องศา
(defun c:hh ()
(setq #hatchdouble 0)
(setq #hatchang 45.0)
(c:hw)
(princ)
)
;; Hatch แบบแนวเดียว ที่เส้นทำมุม 90 องศา
(defun c:hp ()
(setq #hatchdouble 0)
(setq #hatchang 90.0)
(c:hw)
(princ)
)
;; Hatch แบบแนวเดียวที่เส้นทำมุม 180 องศา
(defun c:hl ()
(setq #hatchdouble 0)
(setq #hatchang 180.0)
(c:hw)
(princ)
)
;; Hatch แบบแนวเดียวที่เส้นทำมุม 30 องศา
(defun c:h3 ()
(setq #hatchdouble 0)
(setq #hatchang 30.0)
(c:hw)
(princ)
)

2. บันทึกไฟล์ Ctrl+S
3. ใช้คำสั่ง APPLOAD
โหลดไฟล์นี้ และใช้คำสั่งตามชื่อหลัง C:
ที่กำหนดไว้ คือ
h2, hh, hp, hl, h3

*** ส่วนการให้โหลดเมื่อเปิดไฟล์ใหม่ทุกครั้ง
*** ให้เพิ่มไว้ใน Startup Suite ใน Appload

4. ตัวอย่างการตั้งชื่อเลเยอร์ใหม่
ให้เพิ่มบรรทัด (setq #walllayer "Wall")
สำหรับแก้ชื่อเลเยอร์ผนังที่จะให้กรองเลือกไปที่ Wall

;; Hatch แบบดับเบิลสองแนว ที่เส้นเอียง 45 องศา
(defun c:hw2 ()
(setq #walllayer "Wall")
(setq #hatchdouble 1)
(setq #hatchang 45.0)
(c:hw)
(princ)
)

ให้เพิ่มบรรทัด (setq #hatchllayer "Wall-Pattern")
สำหรับแก้ชื่อเลเยอร์ของ Hatch ไปที่ Wall-Pattern

;; Hatch แบบดับเบิลสองแนว ที่เส้นเอียง 45 องศา
(defun c:hw2 ()
(setq #walllayer "Wall")
(setq #hatchllayer "Wall-Pattern")
(setq #hatchdouble 1)
(setq #hatchang 45.0)
(c:hw)
(princ)
)

ช่วงนี้มีอีเมลเข้ามาสอบถามปัญหาเป็นจำนวนมาก
บางท่านก็แจ้งว่าทราบมาจากเว็บต่างๆ
รวมถึงคนไทยทั้งในและนอก
ที่ติดตาม LISP จาก Autodesk | Support

ยินดีครับที่ได้เผยแพร่แนวทางที่ช่วยให้ใช้งาน
AutoCAD ได้อย่างรวดเร็วยิ่งขึ้น

2 ความคิดเห็น:

  1. ขอไฟล์ได้ไหมครับอาจารย์ ผมกอปปี้มาแล้วทำไม่ได้เลย ไม่ทราบสาเหตุ

    ตอบลบ
  2. เพิ่งมีคนแนะนำทริปนี้เห็นครั้งแรก..ตาร้อนเลย..อยากได้ด้วยครับ..ต้องติดต่อทางใดครับ
    email:penceil009@gmail.com

    ตอบลบ