Перейти к содержанию

Рекомендуемые сообщения

Столкнулся с некорректной реализацией  извлечения данных из таблицы описаний блоков .

Возвращаемый набор DXF-кодов не содержит часть существенной информации.

 

Суть эксперимента заключалась в извлечении информации о пути к внешней ссылке.

Для примера написан маленький скрипт и подготовлены 2 файла (00.dwg содержит ссылку на  01.dwg)

 

1. Открываем файл  00.dwg в АС

2. Запускаем скрипт

Спойлер

Команда: XR_PATH

Выберите объект:
"Информация по элементу"
((-1 . <Имя объекта: 7ff466f0a0d0>) (0 . "INSERT") (330 . <Имя объекта: 7ff466f079f0>) (5 . "585") (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "2") (48 . 100.0) (100 . "AcDbBlockReference") (2 . "01") (10 -2521.52 21029.2 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 0) (71 . 0) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))
"Информация из таблицы блоков" ((0 . "BLOCK") (2 . "01") (70 . 36) (4 . "") (10 0.0 0.0 0.0) (1 . ".\\01.dwg") (-2 . <Имя объекта: 7ff466f0fd60>))

Команда:

Маркером подсвечены DXF-группы 70 (битовые параметры) и 1 (путь к файлу) 

 

3. Открываем этот же файл в NC и запускаем скрипт

Спойлер

XR_PATH

Выбор объектов 1 найдено

"Информация по элементу" ((-1 . #<Имя примитива: 0000016AD2B777B0>) (0 . "INSERT") (5 . "585") (330 . #<Имя примитива: 0000016ABD6084B0>) (100 . "AcDbEntity") (67 . 0) (410 . "Model") (8 . "2") (48 . 100.0) (100 . "AcDbBlockReference") (2 . "01") (10 -2521.52 21029.2 0.0) (41 . 1.0) (42 . 1.0) (43 . 1.0) (50 . 0.0) (70 . 1) (71 . 1) (44 . 0.0) (45 . 0.0) (210 0.0 0.0 1.0))

"Информация из таблицы блоков" ((0 . "BLOCK") (2 . "01") (70 . 100) (10 0.0 0.0 0.0) (-2 . #<Имя примитива: 0000016A9AE95830>))

Наблюдаем наличие  DXF-группы 70 (битовые параметры) и  отсутствие DXF-группы 1 (путь к файлу).

 

4. Cохраняем файл в DXF-формате и рассматриваем описание блока-ссылки

Спойлер

...

 

BLOCK
  5
583
330
560
100
AcDbEntity
  8
0
100
AcDbBlockBegin
  2
01
 70
   100
 10
0.0
 20
0.0
 30
0.0
  3
01
  1
.\01.dwg
  0
ENDBLK
...

 

Т.е., информация о ссылке в сохраненном DXF-файле присутствует  (группа 1), но почему-то именно эта группа не возвращается в п.2 (NC), хотя вполне корректно отрабатывается в п.1(АС).

 

Ну и отдельная тема - различие флагов (группа 70)

Спойлер

70

Флаги типа блока (кодовые битовые значения, могут быть скомбинированы):

0 = ни один из следующих флагов не применяется

1 = это анонимный блок, созданный с помощью штриховки, нанесения ассоциативных размеров, других внутренних операций или приложения

2 = этот блок содержит непостоянные определения атрибутов (данный бит не задается, если блок содержит все определения атрибутов, которые являются постоянными, или вовсе не содержит определений атрибутов)

4 = этот блок является внешней ссылкой

8 = этот блок является наложением внешней ссылки

16 = этот блок является зависимым извне

32 = это разрешенная внешняя ссылка или ссылка, зависимая от внешней ссылки (игнорируется при вводе)

64 = это определение является связанной внешней ссылкой (игнорируется

при вводе)

в АC это 36=4+32 (внешняя ссылка + (Слово удалено системой) знает что еще)

в NC это 100=4+32+64 (внешняя ссылка + (Слово удалено системой) знает что еще + еще что-то )

 

Считаю, что эту ошибку в функции извлечения данных (урезанная информация) необходимо исправить.

Тем более, что , сама информация есть, и даже со своим кодом (см. DXF-файл), но разработчики решили  почему-то ее попридержать 

DXF-группа.zip

Изменено пользователем EdwardSt
Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Расскажите друзьям

    Нравится Официальный форум компании Нанософт? Расскажите друзьям!
×
×
  • Создать...