วันพฤหัสบดีที่ 15 มกราคม พ.ศ. 2552

Visual LISP: Hide and Show objects

นอกจากใช้ความสามารถ Layer On-Off ใน AutoCAD เพื่อกำหนดซ่อนและแสดงวัตถุต่างๆ แล้ว เรายังสามารถใช้ Visible Property ของ object หนึ่งๆ เพื่อควบคุมให้แสดงผลหรือซ่อนไว้ก็ได้

โค้ดมีดังนี้

;;; Hide selection set.
;;; Note: s_hide = global variable
(defun c:hides (/ j)
(vl-load-com)
(setq j -1)
(if (setq s_hide (ssget))
(repeat (sslength s_hide)
(vla-put-Visible
(vlax-ename->vla-object (ssname s_hide (setq j (1+ j))))
:vlax-false
)
)
(princ "\nNo object found!!!")
)
(princ)
)
;;; Show selection set.
(defun c:shows (/ ej)
(vl-load-com)
(if (and s_hide
(equal (type s_hide) 'PICKSET)
)
(progn
(while (setq ej (ssname s_hide 0))
(vla-put-Visible
(vlax-ename->vla-object ej)
:vlax-true
)
(ssdel ej s_hide)
)
(setq s_hide nil)
)
(princ "\nNo S_HIDE selection set!!!")
)
(princ)
)

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

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