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

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

Вставка в таблицу поля, ссылающегося на атрибут блока.

Ответ
Поиск в этой теме
Непрочитано 11.12.2012, 11:03 #1
Вставка в таблицу поля, ссылающегося на атрибут блока.
shartal
 
Регистрация: 12.08.2009
Сообщений: 464

Имею в виду вставку без диалог. окна, по аналогии со вставкой поля, соответствующего площади примитива. Возможно ли это?
Просмотров: 3201
 
Непрочитано 12.12.2012, 13:48
#2
Xara

Помидорка
 
Регистрация: 03.02.2012
Сообщений: 135


Поиск зачем?
Есть уже тема.
__________________
Боишься - не делай. Делаешь - не бойся.
Xara вне форума  
 
Автор темы   Непрочитано 23.01.2013, 11:39
#3
shartal


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


Изучил пост вдоль и поперек, он содержит вставку свойств объектов. Мне требуется вставка значения атрибута. Модифицировать коды, вставляющие площади, однако не удалось
shartal вне форума  
 
Непрочитано 23.01.2013, 12:15
#4
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Ну так тебе и нужно читать значение атрибута из свойства.

Первый вариант: если ты в качестве объекта выбираешь блок...



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



Оба варианта работают.
Миниатюры
Нажмите на изображение для увеличения
Название: 1.png
Просмотров: 170
Размер:	26.1 Кб
ID:	95034  Нажмите на изображение для увеличения
Название: 2.png
Просмотров: 170
Размер:	24.5 Кб
ID:	95035  
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 23.01.2013 в 12:27.
hwd вне форума  
 
Автор темы   Непрочитано 23.01.2013, 14:06
#5
shartal


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


Все верно, только мне нужна быстрая вставка без диалогового окна. Простая замена field expression на нужный, в коде из поста результата не даст, а мои попытки модификации кода успеха не имели.
shartal вне форума  
 
Непрочитано 23.01.2013, 14:09
#6
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Я тебе ведь выделил красным цветом исходный код поля. Скопируй его, и вставляй, заменяя значение ObjId на то, которое имеет твой атрибут.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 23.01.2013, 15:07
#7
shartal


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


(defun C:AREATLB ( / en obj s row col)
(vl-load-com)
(cond
((and (setq en (car (entsel "\nВыберите таблицу: ")))
(= (cdr (assoc 0 (entget en))) "ACAD_TABLE"))
(setq obj (vlax-ename->vla-object en))
(while (setq en (car (entsel "\nВыберите примитив для вставки его площади в таблицу (ENTER — завершение): " )))
(cond
((vlax-property-available-p (vlax-ename->vla-object en) 'TextString)
(setq s (strcat
"%<\\AcObjProp Object(%<\\_ObjId "
(vl-princ-to-string (vla-get-objectid (vlax-ename->vla-object en)))
">%).TextString>%"
))
(if (setq p (getpoint "\nУкажите ячейку таблицы: " ))(progn
(if (= :vlax-true (vla-HitTest obj
(vlax-3d-point (trans p 1 0)) (vlax-3d-point (trans (getvar "VIEWDIR") 1 0)) 'row 'col))
(vla-SetText obj row col s)
)
)) ;_endof if progn
)
(t
(princ "\nДля этого примитива невозможно получить свойство TextString!")
)
)
)
)
(t
(princ "\nЭто не таблица!")
)
)
(princ)
)

Я заменил, то что красное. Этого явно мало. насколько я понимаю функция vlax-ename->vla-object работает с примитивами, блок им не является.
shartal вне форума  
 
Непрочитано 23.01.2013, 15:26
1 | #8
Дима_

Продуман
 
Регистрация: 22.02.2007
Питер
Сообщений: 2,839


Цитата:
Сообщение от shartal Посмотреть сообщение
работает с примитивами, блок им не является
Вхождение блока - является.
Ты, в программе, выбираешь вхождение блока, а тебе нужен аттрибут, замени где выбор блока entsel на nentsel и "тыкай" непосредственно в атрибут (либо добавь функционал поиска нужного аттрибута у вхождения блока и получения его ObjectID).
__________________
Когда в руках молоток все вокруг кажется гвоздями.
Дима_ вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вставка в таблицу поля, ссылающегося на атрибут блока.



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
LISP. Вставка в таблицу поля, соотвествующего площади примитива Profan Готовые программы 272 06.06.2021 23:12
Вставка в таблицу поля с координатами. shartal Программирование 9 11.10.2011 16:31
Программная вставка блока с атрибутами в таблицу. Как сохранить установленные значения атрибутов? Кулик Алексей aka kpblc Программирование 8 22.07.2010 15:01
Глюк вставка блока в таблицу Piton AutoCAD 17 11.08.2006 10:39