; Этот код написал Александр Val Ющенко
; Если Вам нужен лисп для решения более специализированных задач - обращайтесь!
; Для связи со мной - val@allforproject.ru

(defun begin_activex ( / ) 
  (vl-load-com) 
  (setq acad_application (vlax-get-acad-object)) 
  (setq active_document (vla-get-ActiveDocument acad_application)) 
  (setq model_space (vla-get-ModelSpace active_document)) 
  (setq paper_space (vla-get-PaperSpace active_document)) 
)
(begin_activex)
(defun c:sbl ( / )
	(setq layer (cdr (assoc 8 (entget (car  (entsel "Укажите объект для выбора слоя:") )))))
	(setq block_set (ssget (list(cons 8  layer) (cons 0  "INSERT"))))
	(sssetfirst nil block_set)
)
(defun c:sbn ( / )
	(setq block_name (vla-get-EffectiveName(vlax-ename->vla-object (car (entsel "Укажите блок для выбора имени:")))))
	(setq block_set (ssget (list (cons 0  "INSERT"))))
	(setq n  (sslength block_set) i 0)
	(setq items_to_del nil)
	(while (< i n) ;cond
		(if  (not( = block_name (vla-get-EffectiveName(vlax-ename->vla-object (ssname block_set i)))))
			(progn ;true
				(if (not(vl-consp items_to_del));если нет списка items_to_del(true - создаем его, если есть (false) заполняем
					(progn ;true
						(setq items_to_del (list (ssname block_set i)))
					)
					(progn ;false
						(setq items_to_del (cons (ssname block_set i) items_to_del))
					)
				)		
			)
		)
	(setq i (1+ i)) ;iteration
	) ;while
	(setq n  (length items_to_del) i 0)
	(while (< i n) ;cond
		(setq block_set (ssdel (nth i items_to_del) block_set))
	(setq i (1+ i)) ;iteration
	)
	(sssetfirst nil block_set)

)