วันศุกร์ที่ 19 มีนาคม พ.ศ. 2553

AutoCAD Tips : Visual LISP Tips หาผลรวมระยะเชิงเส้นจากเส้นบอกระยะและข้อความ



ในงานเขียนแบบบางครั้งเราต้องการหาผลรวมของระยะที่กำหนดไว้ในแบบ ซึ่งอาจถูกเขียนไว้ด้วยรูปวาดแบบ Dimension, Text หรือ Multiline Text

ในหัวข้อนี้เสนอคำสั่ง Sum ที่ใช้หาผลรวมของค่าในรูปวาดเหล่านี้ มีโค้ดดังนี้

;;; Sum Length from Text, Mtext and Dimension.
;;; Developed by S.Chatchawal.
(vl-load-com)
(defun c:sum (/ s j obj result *error*)
(defun *error* (msg)
(if (not (member msg (list "Function cancelled")))
(princ (strcat "\nSUM Error: " msg))
)
(princ)
)
(if (setq s (ssget (list (cons 0 "TEXT,MTEXT,DIMENSION"))))
(progn
(setq result 0.0
j -1
)
(repeat (sslength s)
(setq obj (vlax-ename->vla-object (ssname s (setq j (1+ j)))))
(cond
((member (vla-get-ObjectName obj)
(list "AcDbText" "AcDbMText")
)
(setq result (+ result (atof (vla-get-TextString obj))))
)
(T
(setq result (+ result
(vla-get-Measurement obj)
)
)
)
)
)
(princ " Sum of Length: ")
(princ result)
)
(princ "\nNo object found!!!")
)
(princ)
)

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

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