NANOCAD ШОУ
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

Программная замена атрибута блока в таблице. Возможно ?

Версия для печати
 
Ответ
Опции темы Поиск в этой теме
Непрочитано 14.04.2017, 07:07
Программная замена атрибута блока в таблице. Возможно ?
baksconstructor
 
Регистрация: 05.11.2014
Сообщений: 757

baksconstructor вне форума Вставить имя

Собственно вопрос прост - есть таблица, в ячейки таблицы вставлены блоки, но у блоков есть видимые атрибуты. Соответственно эти атрибуты отображаются.
Необходимо изменить значение атрибута на другое, но каким методом это возможно не понят но т.к. он внутри таблицы.
Может есть или лисп или vba для замены ?
Пример в приложении ( в первой строке нужно сделать значение атрибута вместо "DD25" на "УУ38").

Вложения
Тип файла: dwg
DWG 2010
Table.dwg (66.5 Кб, 8 просмотров)

Просмотров: 3224
 
Непрочитано 19.04.2017, 15:22
#21
skkkk

AutoCAD_2008->2011
 
Регистрация: 20.03.2008
Московская область
Сообщений: 2,072


Вот облом. Вот так вот и отбирают конфетки у малышей .
А ларчик просто открывался.
И почему я решил, что getblocktablerecordid даст ID описания блока, а не вхождения?
То ли из-за этого:
Цитата:
Сообщение от maratovich Посмотреть сообщение
Что только не делал, получал таблицу, получал блок в ячейке таблицы через
Код:

Код:
[Выделить все]
RetVal = object.GetBlockTableRecordId(row, col)
но он выдаёт ID из таблицы блоков и если изменить атрибут , то он изменится во всех блоках.
... то ли в коде Lee Mac'а проведя анализ и проверив работу (там он тоже менял все блоки).

Кулик Алексей aka kpblc, ты сегодня весьма коварен: мало того, что меня обломал, так еще и baksconstructor'а похоже, серьезно озадачил, как бы всё это дело приладить на место
skkkk вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 20.04.2017, 07:15
#22
baksconstructor


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


На одном зарубежном сайте появилось решение, пока не разбирался особо, но вроде работает.
Код:
[Выделить все]
     (defun c:Test ( / attDefId blk blkRecId enm tbl)
      (if
        (and
          (setq enm (car (entsel)))
          (setq tbl (vlax-ename->vla-object enm))
          (= "AcDbTable" (vla-get-objectname tbl))
          (/= 0 (setq blkRecId (vla-getblocktablerecordid tbl 0 0)))
        )
        (progn
          (setq blk (vla-objectidtoobject (vla-get-activedocument (vlax-get-acad-object)) blkRecId))
          (vlax-for obj blk
            (if
              (and
                (not attDefId)
                (= "AcDbAttributeDefinition" (vla-get-objectname obj))
              )
              (setq attDefId (vla-get-objectid obj))
            )
          )
          (if attDefId
            (vla-setblockattributevalue tbl 0 0 attDefId "New String")
          )
        )
      )
      (princ)
    )
baksconstructor вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 20.04.2017, 08:48
#23
Кулик Алексей aka kpblc
Moderator

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


Не хочу там высказываться Пофлудю здеся
Offtop: 1. В первом столбце первой строки должен быть блок (ну и обрабатывается, конечно, тоже только эта ячейка). Понимаю, что переделать не проблема, но тем не менее
2. vla-ObjectIdToObject в некоторых версиях может не работать, потребуется vla-ObjectIdToObject32


Мда, про vla-SetBlockAttributeValue я как-то подзабыл
__________________

---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Программная замена атрибута блока в таблице. Возможно ?

Инженерные консультации
Опции темы Поиск в этой теме
Поиск в этой теме:

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

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Мои динамические блоки [2] Кулик Алексей aka kpblc AutoCAD 3846 21.09.2017 14:16
Дописать префикс/суффикс перед/после значения атрибута блока Liam AutoCAD 7 05.10.2013 23:05
Размер блока по таблице Positron Программирование 5 16.05.2013 01:04
Программная вставка блока с атрибутами в таблицу. Как сохранить установленные значения атрибутов? Кулик Алексей aka kpblc Программирование 8 22.07.2010 15:01
Угол поворота атрибута в составе блока rzinnurov AutoCAD 12 22.12.2008 11:41

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


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