Реклама i
Стань нашим партнером - зарабатывай с нами!
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Какие есть ограничения на применения групп?

Какие есть ограничения на применения групп?

Ответ
Поиск в этой теме
Непрочитано 22.09.2005, 13:14 #1
Какие есть ограничения на применения групп?
Кулик Алексей aka kpblc
Moderator
 
LISP, C# (ACAD 200[9,12,13,14])
 
С.-Петербург
Регистрация: 25.08.2003
Сообщений: 39,833

Собственно вопрос.
Что имеется в виду:
1. Каково максимальное количество неименованных и именованных групп (group) в одном файле (как, например, с выборами ssget)?
2. Каким образом можно программно удалять неиспользуемые группы (_-purge на них не действует) - опять же, именованные и неименованные на случай какого-то ограничения? Тема где-то мелькала, но я что-то не нашел.
3. Что происходит при задании использованного имени группы? Не будет там переопределения как с блоками?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Просмотров: 4466
 
Непрочитано 22.09.2005, 15:50
#2
MIP

инженер
 
Регистрация: 13.12.2004
Минск
Сообщений: 496


1. Про ограничение ничего не знаю, мне предела достигнуть не удалось. Думаю это всего лишь ссылка на набор хранящаяся в чертеже, по типу словарей. Посмотреть про группы можно в Справочном руководстве для разработчика там расписаны их DXF коды.
2. Удалить можно только используя опцию "Расчленить" команды Group, пустых груп не бывает поэтому расчленяя группу мы тем самым ее удаляем. Програмно можно удалять используя Command _.-group с передачей всей необходимой информации через переменные, но при работе через командную строку Автокад (в отличии от диалога) не видит неименованные группы вида *??, т.е. для програмного удаления их лучше именовать.
3. Повторить именование группы Автокад тебе не даст, будет ругаться!
MIP вне форума  
 
Непрочитано 24.03.2006, 08:52
#3
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


Цитата:
Сообщение от MIP
пустых груп не бывает поэтому расчленяя группу мы тем самым ее удаляем.
А вот и бывает, если создать группу, а потом удалить примитивы входившие в неё из чертежа, то запись в именах групп остаётся, хотя группировать уже нечего. Кнопка explode не работает с ней. Как подчистить файл от таких групп?
Krieger вне форума  
 
Непрочитано 24.03.2006, 12:10
#4
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,991
<phrase 1= Отправить сообщение для VVA с помощью Skype™


Что то типа такого
Код:
[Выделить все]
  ;;; Библиотечная ф-ция, возвращает multiple group code
(defun massoc (key alist / x nlist)
  (foreach x alist
    (if (eq key (car x))
      (setq nlist (cons (cdr x) nlist))
    ))
  (reverse nlist))

;;;Удаляет все групы  
  (defun PurgeAllGroups (/ grpList index grp)
  (setq grpList (dictsearch (namedobjdict) "ACAD_GROUP"))
  (setq index 1)
  (while (setq grp (nth index grplist))
    (if	(= (car grp) 3)
      (entdel (cdr (nth (+ index 1) grplist)))
    )
    (setq index (+ 1 index))
  )
  (princ))
  
;;;Удаляет описание всех пустых групп  
(defun PurgeEmptyGroups ( named / grpList index grp egrp named_list e_list)
  ;;;named - 0 - только именованные группы
  ;;;named - 1 - только неименованные группы
  ;;;named - t,nil - все группы
  (setq named_list '(0 1))
  (if (member named named_list)(setq named_list (list named)))
  (setq grpList (dictsearch (namedobjdict) "ACAD_GROUP"))
  (setq index 1)
  (while (setq grp (nth index grplist))
    (if	(= (car grp) 3)
      (progn
	(setq egrp (entget (cdr (nth (+ index 1) grplist))))
	(if (member (cdr (assoc 70 egrp)) named_list)
	  (progn
	    (setq e_list (massoc 340 egrp))
	    (if(not (vl-member-if 'entget e_list))
	      (entdel (cdr (nth (+ index 1) grplist)))
	      )
	    )
	  )
	)
      )
    (setq index (+ 1 index))
  )
  (princ))
;;;Удаляет анонимные группы *Annn  
(defun PurgeAllUnNamedGroups (/ grpList index grp)
  (setq grpList (dictsearch (namedobjdict) "ACAD_GROUP"))
  (setq index 1)
  (while (setq grp (nth index grplist))
    (if	(= (car grp) 3)
      (progn
	(if (= (chr 42) (substr (cdr grp) 1 1))
	  (entdel (cdr (nth (+ index 1) grplist)))
	)
      )
    )
    (setq index (+ 1 index))
  )
  (princ)
)
  
 ;;;Удаляет все пустые группы (именованные и неименованные) 
(defun PurgeAllEmptyGroups  ()(PurgeEmptyGroups t))
 ;;;Удаляет все пустые группы (именованные) 
(defun PurgeAllNamedEmptyGroups  ()(PurgeEmptyGroups 0))
 ;;;Удаляет все пустые группы (неименованные) 
(defun PurgeAllUnNamedEmptyGroups  ()(PurgeEmptyGroups 1))
;;;=======================================================
;;; Команды  
;;;=======================================================
;;; Удаляет все группы Purge All Groups 
(defun C:PAG ()(PurgeAllGroups))
;;; Удаляет все пустые группы   Purge Empty Groups
(defun C:PEG ()(PurgeAllEmptyGroups))
;;; Удаляет все неименованные группы  Purge Unnamed Groups
(defun C:PUG ()(PurgeAllUnNamedGroups))
>Krieger Твой случай - PEG
VVA вне форума  
 
Непрочитано 24.03.2006, 12:41
#5
Krieger

инженер (КМ)
 
Регистрация: 30.10.2004
Красноярск
Сообщений: 3,825


VVA
Спасибо.
Krieger вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Какие есть ограничения на применения групп?

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск