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

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

"имена неименованных" блоков

Ответ
Поиск в этой теме
Непрочитано 13.07.2009, 15:50 #1
"имена неименованных" блоков
kserg
 
Регистрация: 22.04.2004
Сообщений: 269

Известно, что существуют так называемые неименованные блоки.
Необходимо распознать те из них, которые не расчленяются ("AcDbMInsertBlock" здесь не рассматриваются).
Можно ли с уверенностью идентифицировать не расчленяемые блоки по их имени, т.е. если первые два символа в имени "*E", то блок - не расчленяемый?
Просмотров: 6393
 
Непрочитано 13.07.2009, 15:52
#2
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Посмотри DXF-руководство. Группы 44, 45, 70, 71 для INSERT-примитивов.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.07.2009, 17:12
#3
kserg


 
Регистрация: 22.04.2004
Сообщений: 269


Спасибо, но, к сожалению, эти коды ни чего не дают мне.

Первое: "AcDbMInsertBlock" здесь не рассматриваются

Второе: интересуют блоки, созаваемые AutoCAD-ом автоматически при расчленении блоков, содержащих как 2М-объекты, так и 3М-тела, и имеющих разные по X, Y и Z масштабы.

Предположим, есть вставленный блок, содержащий отрезок и 3М-тело и имеющий Mx=1, Mx=2, Mz=5. Если расчленить этот блок, то отрезок из него "вычленяется", а из 3М-тела создается автоматом некий (нерасчленяемый) неименованный блок с именем типа "*E3". Вот про подобные блоки я и спрашивал. Т.е. меня интересует, всегда ли, если у блока имя начинается на "*E", этот блок - (наверняка) нерасчленяемый, или существуют и другие символы в "именах неименованных" блоков, говорящие о том, что этот блок - не расчленяемый?

Последний раз редактировалось kserg, 13.07.2009 в 17:27.
kserg вне форума  
 
Непрочитано 13.07.2009, 17:30
#4
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,826
<phrase 1=


kserg, а ты пробовал взорвать блок содержащий 3Dsolid с разными масштабами по X, Y и Z?
ps я пробовал, не выходит!
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Автор темы   Непрочитано 13.07.2009, 17:45
#5
kserg


 
Регистрация: 22.04.2004
Сообщений: 269


Блок, содержащий (только) 3Dsolid с разными масштабами по X, Y и Z не взрывается, а вот блок, содержащий кроме 3Dsolid еще нечто, к примеру, см. выше, отрезок - взрывается !!!, НО из 3М-тела создается автоматом некий (нерасчленяемый) неименованный блок с именем типа "*E3", который в свою очередь - уже не взрывается.
Попробуйте сами (хотя бы блок из отрезка и тела).
kserg вне форума  
 
Непрочитано 13.07.2009, 17:53
#6
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


kserg,
Цитата:
если у блока имя начинается на "*E", этот блок - (наверняка) нерасчленяемый,
Скорее всего так и есть. У Автокада много анонимных блоков:
*Dnnn - это размеры
*Tnnn - это таблицы
*Unnn - пользовательские или динамические
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 13.07.2009, 18:24
#7
kserg


 
Регистрация: 22.04.2004
Сообщений: 269


Спасибо. Я так и предполагал. Только хотелось узнать, может кто с подобными именами блоков сталкивался, и не раз, и что-то знает относительно "*Ennn"...
Теперь, наверно, предложенный Вами список можно пополнить:
У Автокада много анонимных блоков:
*Dnnn - это размеры
*Tnnn - это таблицы
*Unnn - пользовательские или динамические
*Ennn - нерасчленяемые блоки (содержащие только 3Dsolid с) разными масштабами по X, Y и Z, созданные самим AutoCAD-ом.
kserg вне форума  
 
Непрочитано 13.07.2009, 18:33
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


В порядке полубреда:
*D -> Dimension
*T -> Table
*U-> Unnamed
*E -> Extruded
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 13.07.2009, 19:01
#9
kserg


 
Регистрация: 22.04.2004
Сообщений: 269


Бывает что и бред оказывается настоящей реальностью (не говоря уже о полубреде)...
kserg вне форума  
 
Непрочитано 13.07.2009, 19:19
#10
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


Ну тогда добавлю еще один тип.
*I - название дать затрудняюсь. Но очень интересный экземпляр. В модели не виден (хоть и вставлен), а виден в листе. Подробности см. как сделан файл? разберёмся?
PS. Непло бы программно (на LISP) научиться такие штуки создавать
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.07.2009, 19:48
#11
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Сейчас запустить кад нет возможности, поэтому без проверок
Код:
[Выделить все]
(setq blk_u (vla-add (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0. 0. 0.)) "*U"
blk_e (vla-add (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0. 0. 0.)) "*E")
Блоки размеров подобными шутками создавать по меньшей мере нерентабельно ИМХО. Это же касается и таблиц...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.07.2009, 20:01
#12
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


Кулик Алексей aka kpblc,
Проверил (Акад 2006). Создаются. Создается даже *I
Код:
[Выделить все]
(setq blk_u (vla-add (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0. 0. 0.)) "*U")
      blk_e (vla-add (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0. 0. 0.)) "*E")
      blk_i (vla-add (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object))) (vlax-3d-point '(0. 0. 0.)) "*I") 
      )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 13.07.2009, 20:14
#13
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Ну, раз создаются, значит, в них можно засовывать все что угодно и потом вставлять Интересные прешпективы открываются
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.07.2009, 16:35
#14
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


ТО, что создаются блоки еще, как оказалось, ничего не говорит.
Создаются и такие блоки
Код:
[Выделить все]
(setq doc (vla-get-activedocument (vlax-get-acad-object))
      blk_1 (vla-add (vla-get-blocks doc) (vlax-3d-point '(0. 0. 0.)) "*Я")
      blk_2 (vla-add (vla-get-blocks doc) (vlax-3d-point '(0. 0. 0.)) "*Y")
      blk_3 (vla-add (vla-get-blocks doc) (vlax-3d-point '(0. 0. 0.)) "*Z")
      )
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.07.2009, 16:43
#15
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


VVA, это почему? У меня в 2008 нормально сработало:
Код:
[Выделить все]
(defun test (/ doc blk_def_1 blk_ins line)
  (setq doc       (vla-get-activedocument (vlax-get-acad-object))
        blk_def_1 (vla-add (vla-get-blocks doc) (vlax-3d-point '(0. 0. 0.)) "*Я")
        line      (vla-addline blk_def_1 (vlax-3d-point '(0. 0. 0.)) (vlax-3d-point '(100. 100. 0.)))
        blk_ins   (vla-insertblock
                    (vla-get-modelspace doc)
                    (vlax-3d-point '(10. 10. 0.))
                    (vla-get-name blk_def_1)
                    1.
                    1.
                    1.
                    0.
                    ) ;_ end of vla-insertblock
        ) ;_ end of setq
  ) ;_ end of defun
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 16.07.2009, 18:06
#16
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,992


В том-то и дело. Я создал блок *I, засунул в него другой блок, но он не стал таким, как по ссылке в #10. Причем несмотря на * в имени спокойно разбился explode. Где-то есть еще что-то, но не понятно где.
*** Добавлено *** Блок *Я тоже explod'итсься без проблем
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 16.07.2009, 22:39
#17
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,848


Значит, надо расковыривать его полностью, включая ссылки на словари и реакторы...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 26.07.2010, 23:52
#18
vade


 
Регистрация: 09.01.2010
Сообщений: 36


Ну а как же всетаки расчленить блоки с именем которое начинается на "*E"
vade вне форума  
 
Непрочитано 27.07.2010, 09:29
#19
zenon

Остекляем!!! Алюминим!!!
 
Регистрация: 21.02.2005
Москва
Сообщений: 3,826
<phrase 1=


_.EXPLODE
__________________
Мы можем делать быстро, качественно и недорого, выбирайте любые 2 условия.:search:
zenon вне форума  
 
Непрочитано 27.07.2010, 19:30
#20
vade


 
Регистрация: 09.01.2010
Сообщений: 36


блоки с именем которое начинается на "*E" ну не расчленяются они командой _.EXPLODE. Кстати блок состоит из 3D Solid
vade вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > "имена неименованных" блоков

Размещение рекламы


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Очистка рисунка от "пустых" блоков Makswell Готовые программы 15 26.10.2022 15:24
Обновление атрибутов всех блоков (Attsync для всех блоков) Vildar AutoCAD 3 18.05.2022 14:28
VBA: утечка памяти при вставке блоков Mikha Программирование 13 03.04.2009 09:18
Изменить параметры у всех объектов внутри блоков 800x600 AutoCAD 5 25.03.2008 14:21
Взрыв блоков Filcarpenter Разное 19 28.01.2007 09:57