大家好,
有没有办法通过拾取一个实例来选择图形中动态块的所有实例?
这是一种“按名称选择”的尝试。但是动态块杀死了我下面的代码,因为它们有奇特的命名(如*U24)
到目前为止,我在这里。。。
- (defun c:SB ()
- (setq TargEnt (car (entsel "\nSelect block : ")))
- (setq blkname (EffectiveName TargEnt))
- (setq ss (ssget "_X" (list (cons 0 "insert")(cons 2 blkname))))
- (sssetfirst nil ss)
- (princ)
- )
- ;Code below is the courtesy of 'irneb' on http://forums.augi.com/showthread.php?t=114752
- (defun EffectiveName (en / ed d1 d2 d3 br)
- (setq ed (entget en))
- (setq d1 (entget (cdr (assoc 360 (member '(102 . "{ACAD_XDICTIONARY") ed)))))
- (setq d2 (entget (cdr (assoc 360 (member '(3 . "AcDbBlockRepresentation") d1)))))
- (setq d3 (entget (cdr (assoc 360 (member '(3 . "AcDbRepData") d2)))))
- (setq br (entget (cdr (assoc 340 d3))))
- (cdr (assoc 2 br))
- )
|