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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как на LISPе различить многострочный и однострочный Атрибут?

Как на LISPе различить многострочный и однострочный Атрибут?

Ответ
Поиск в этой теме
Непрочитано 20.11.2023, 14:08 #1
Как на LISPе различить многострочный и однострочный Атрибут?
vladimir073
 
Регистрация: 20.11.2023
Сообщений: 4

Help Автокада говорит что это указывает DXF код 70 (значение кратное 2). Однако у меня многострочный атрибут имеет DXF код со значением 0. (AUTOCAD 2016).
Просмотров: 438
 
Непрочитано 20.11.2023, 14:23
#2
Кулик Алексей aka kpblc
Moderator

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


Попробуй работать через ActiveX - насколько я помню, там было что-то по этому поводу.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.11.2023, 15:04
#3
vladimir073


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


Я особо не умею работать через ActiveX. Но искать пытался. И НИЧЕГО не нашел..
vladimir073 вне форума  
 
Непрочитано 20.11.2023, 19:52
#4
===AAA===


 
Регистрация: 15.08.2005
г. Норильск
Сообщений: 376


Посмотри список атрибута - код DXF 70 там точно один?

Возможно их там несколько и нужный флаг живёт не в первом,
а в последующем коде.

(Нет под рукой Автокада, чтобы проверить самому).
__________________
Счастливо, Алексей!
===AAA=== вне форума  
 
Непрочитано 20.11.2023, 20:56
#5
Кулик Алексей aka kpblc
Moderator

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


Цитата:
Сообщение от vladimir073 Посмотреть сообщение
Я особо не умею работать через ActiveX. Но искать пытался. И НИЧЕГО не нашел..
Плохо искал

(vla-get-MTextAttribute (vlax-ename->vla-object (car (nentsel))))
Вернет :vlax-false для однострочного и :vlax-true для многострочного атрибута.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 21.11.2023, 14:39
#6
vladimir073


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Плохо искал
Во первых, огромное спасибо за исчерпывающий ответ!

Во вторых, я действительно искал, прежде чем открыть тему, но, поскольку не нашел, действительно искал плохо..
vladimir073 вне форума  
 
Непрочитано 21.11.2023, 15:18
#7
Кулик Алексей aka kpblc
Moderator

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


Откровенно говоря, я был удивлен, что в 2020 ename-представление многострочного и однострочного атрибутов различалось не так уж и сильно, и не соответствовало DXF Reference, который я в свое время спер с официального сайта.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.11.2023, 16:19
#8
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,651


Цитата:
Сообщение от vladimir073 Посмотреть сообщение
Как на LISPе различить многострочный и однострочный Атрибут?
скорее всего нужно смотреть присутствие 101 группы. если она есть, то атрибут многострочный, если нет - однострочный.
__________________
K Lisp
koMon вне форума  
 
Непрочитано 21.11.2023, 16:22
#9
Кулик Алексей aka kpblc
Moderator

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


Не помню навскидку - была там эта группа или нет (повторюсь - смотрел в 2020)
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.11.2023, 16:30
#10
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,651


какая-то должна быть точно
Миниатюры
Нажмите на изображение для увеличения
Название: 100.jpg
Просмотров: 17
Размер:	35.2 Кб
ID:	260144  
__________________
K Lisp
koMon вне форума  
 
Непрочитано 21.11.2023, 17:03
#11
Кулик Алексей aka kpblc
Moderator

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


Возможно, я чего-то не вижу. Дампы однострочного и многострочного атрибутов:
Код:
[Выделить все]
 ; однострочный
'((0 . "ATTRIB")
  (100 . "AcDbEntity")
  (67 . 0)
  (410 . "Model")
  (8 . "0")
  (100 . "AcDbText")
  (10 3461.82 1818.45 0.0)
  (40 . 50.0)
  (1 . "single")
  (50 . 0.0)
  (41 . 1.0)
  (51 . 0.0)
  (7 . "Standard")
  (71 . 0)
  (72 . 0)
  (11 0.0 0.0 0.0)
  (210 0.0 0.0 1.0)
  (100 . "AcDbAttribute")
  (280 . 0)
  (2 . "SINGLE")
  (70 . 0)
  (73 . 0)
  (74 . 0)
  (280 . 1)
 )
Код:
[Выделить все]
 ; многострочный
'((0 . "ATTRIB")
  (100 . "AcDbEntity")
  (67 . 0)
  (410 . "Model")
  (8 . "0")
  (100 . "AcDbText")
  (10 3459.77 1565.6 0.0)
  (40 . 50.0)
  (1 . "")
  (50 . 0.0)
  (41 . 1.0)
  (51 . 0.0)
  (7 . "Standard")
  (71 . 0)
  (72 . 0)
  (11 3459.77 1615.6 0.0)
  (210 0.0 0.0 1.0)
  (100 . "AcDbAttribute")
  (280 . 0)
  (2 . "MULTI")
  (70 . 0)
  (73 . 0)
  (74 . 3)
  (280 . 1)
  (71 . 2)
  (72 . 1)
  (11 3459.77 1615.6 0.0)
  (101 . "Embedded Object")
  (10 3459.77 1615.6 0.0)
  (40 . 50.0)
  (41 . 0.0)
  (46 . 0.0)
  (71 . 1)
  (72 . 5)
  (1 . "multi")
  (7 . "Standard")
  (210 0.0 0.0 1.0)
  (11 1.0 0.0 0.0)
  (42 . 138.131)
  (43 . 50.8186)
  (50 . 0.0)
  (73 . 1)
  (44 . 1.0)
 )
Снес группы -1, 5, 330, остальное все на месте
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 21.11.2023, 22:08
#12
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,651



я вот вижу отсутствие 101 группы у однострочного атрибута как бэ.
__________________
K Lisp
koMon вне форума  
 
Непрочитано 21.11.2023, 22:20
#13
Кулик Алексей aka kpblc
Moderator

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


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


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,651


ну и зря. в дампе многострочного атрибута явно видно после 101 группы идут все текстовые группы мтекста, показывая тем самым, что именно она и открывает многострочный атрибут.
__________________
K Lisp
koMon вне форума  
 
Автор темы   Непрочитано 29.11.2023, 16:07
#15
vladimir073


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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Плохо искал

(vla-get-MTextAttribute (vlax-ename->vla-object (car (nentsel))))
Вернет :vlax-false для однострочного и :vlax-true для многострочного атрибута.
Этот ответ является единственным официальным способом отделить многострочный атрибут от однострочного, т.к. DXF код 70 не работает.

Про (101 . "Embedded Object") я тоже заметил, искал в интернете и на одном из англоязычных сайтов нашел что он употребляется, типа как разделитель у атрибутов и мультитекста, но про его использование только у многострочных атрибутов ничего не было.

Однако в справке автокада есть несколько кодов, которые относятся к многострочному тексту, лучше всего подходит
43
Вертикальная высота объекта многострочного текста (только для чтения; игнорируется, если указано)

т.е. какими- то программными манипуляциями прилепить этот код к однострочному атрибуту или убрать у многострочного вроде бы невозможно. Это абсолютно логичный и косвенно подтвержденный способ (присутствие кода говорит, что текст многострочный). Но официального подтверждения, увы, нет.
vladimir073 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Как на LISPе различить многострочный и однострочный Атрибут?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как автоматически преобразовать однострочный атрибут в многострочный? config AutoCAD 54 12.10.2022 14:19
Запись значения в многострочный атрибут (LISP) tujn08 LISP 3 09.06.2015 09:02
C# AutoCAD. Как сделать многострочный атрибут? Sfinks7s1 Программирование 5 17.09.2013 14:22
Почему многострочный атрибут блока становиться в одну строку? Alexg-12 AutoCAD 13 10.06.2013 15:58
Можно ли создать многострочный атрибут блока, который будет динамически растягиваться? ACAD 2007. Vavapet Динамические блоки 2 01.03.2011 15:00