"เรื่องของเลเยอร์ (Layer) มีทูล Make object's Layer Current หรือคำสั่ง LAYMCUR ที่คลิกบนรูปวาดแล้ว
ให้ผลกำหนดเลเยอร์ปัจจุบัน (Current Layer) ตามรูปนั้นได้เลย แต่กับเรื่องของเส้นบอกระยะ (Dimension) กลับไม่เห็นมีคำสั่งทำนองนี้เลย ..."
"พอแก้ไขแบบเพิ่มเติม จะเขียนเส้นบอกระยะใหม่เข้าไป ที่ใช้สไตล์เดิมที่มีอยู่แล้ว ตามแบบเส้นบอกระยะที่มีอยู่ ต้องหาก่อนทุกครั้ง ว่าที่มีอยู่เดิมใช้สไตล์ชื่ออะไรก่อน แล้วค่อยไปกำหนดให้เป็นตัวปัจจุบัน (Current Dimension Style) แล้วค่อยเลือกทูลสำหรับเขียนเส้นบอกระยะตามที่ต้องการ"
ดูวิธีหาสไตล์ของเส้นบอกระยะจากรูปนี้
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLo_gZ3Yp1EjI2MXC3kux-ZDsKRM36gpEGBx6yCZNy_1_PZxWwEh8wtIjW2NvK46JpGysqA0Rvb5FBwVNcv3mhLBYMu1g9eotDLpklxModrOwXPvD4UuKYtLX9YtPXnSt_zuEhhe1KJ4M/s400/ch01003.png)
เป็นเรื่องปกติของงานเขียนแบบที่จะมีการแก้ไข ทั้งจากที่ทำผิดพลาดหรือปรับปรุงในเวลาต่อมา เห็นว่าเป็นคำสั่งที่น่าสนใจเลยนำมาเผยแพร่ไว้ตรงนี้ด้วยกัน
ทางออกหนึ่งที่ทำได้และได้ผลดี คือเขียนคำสั่งขึ้นใหม่เองเลย ในตัวอย่างนี้เขียนด้วย Visual LISP มีโค้ดดังนี้
;; Set the current dimension style same as the selected entity.
(defun c:dd (/ e obj dimensions *error*)
(defun *error* (msg)
(if (not (member msg (list "Function cancelled")))
(princ (strcat "DIMMC Error: " msg))
)
(setvar "cmdecho" 1)
(princ)
)
(if (setq e (entsel "Select a dimension: "))
(progn
(setq obj (vlax-ename->vla-object (car e)))
(if (wcmatch (vla-get-ObjectName obj) "*Dimension")
(progn
(setvar "cmdecho" 0)
(command ".-dimstyle"
"r"
(setq dimensions (vla-get-StyleName obj))
)
(setvar "cmdecho" 1)
(foreach msg (list "\nSet the current dimension style to "
(strcase dimensions)
"."
)
(princ msg)
)
)
(princ "\n!!!Not Dimension!!!")
)
)
(princ "\nNo object found!!!")
)
(princ)
)
การนำไปโค้ดไปใช้ให้ศึกษาเพิ่มเติมจากหนังสือ AutoCAD ในบ้านเราที่มีเป็นจำนวนไม่น้อยเลย ที่กล่าวถึงวิธีเหล่านี้ และอาจพัฒนาไปถึงการสร้างไว้เป็นทูล (Tool) ใหม่ขึ้น เพื่อเรียกถึงคำสั่ง DD นี้
ไม่มีความคิดเห็น:
แสดงความคิดเห็น