(defun c:sxd (/) (vl-load-com) (while (not (setq ent1 (car (entsel))))) (setq obj1 (vlax-ename->vla-object ent1)) (setq Xtype nil Xdata nil ) (setq list1 (list '(1001 . "apsM") '(1000 . "rrr"))) (foreach n list1 (setq Xtype (cons (car n) Xtype))) (foreach n list1 (setq Xdata (cons (cdr n) Xdata))) (setq Xtype1 (vlax-make-safearray vlax-vbinteger (cons 0 (1- (length list1))))) (vlax-safearray-fill Xtype1 (reverse Xtype)) (setq Xdata1 (vlax-make-safearray vlax-vbvariant (cons 0 (1- (length list1))))) (vlax-safearray-fill Xdata1 (reverse Xdata)) (vla-setxdata obj1 Xtype1 Xdata1) )
(setq ss1 (ssget "X" '( (-3 ("apsM" (1000 . "rrr")) ))))
我使用SXD给各种对象附加扩展数据,但在后面使用过滤器时却无法选择上Circle,Line,BlockReference等对象,只能选择上Lwpolyline,若取消(1000 . "rrr") 则可以,请教是怎么会事? |