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

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

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

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

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

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

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


 
Регистрация: 20.03.2008
Сообщений: 2,653


Вот облом. Вот так вот и отбирают конфетки у малышей .
А ларчик просто открывался.
И почему я решил, что 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
Сообщений: 978


На одном зарубежном сайте появилось решение, пока не разбирался особо, но вроде работает.
Код:
[Выделить все]
     (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
С.-Петербург
Сообщений: 39,787


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


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

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

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


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