|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Программное изменение значений атрибутов
Москва
Регистрация: 10.10.2007
Сообщений: 23
|
||
Просмотров: 3127
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Через GetAttributes получаешь массив атрибутов, фильтруешь, например, по тэгу, и устанавливаешь TextString.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 19.10.2007
Сообщений: 6
|
Может подскажите прогрмно из экселя менял раньше аттибуты блоков, сечас захотел сделать тоже самое с динаическим блоком (с параметром Visible) - меняет только один раз, когда блок вновь созщданный...все последующие оразы вообще не находит блок с таким именем!!! В чем загвоздка?
|
|||
![]() |
|
||||
Не правильно! Динамический блок, как только ему пошевелили свойства становиться *Unnn, где nnn число присваемое данному блоку. Параметр Visible - свойство. а не атрибут его конечно можно прописать всем вхождениям этого блока, но для чего он тогда динамический? effectivename даст наводку на базовое состояние блока. Ковыряние базы может привести к стряхиванию свойств вхождений в первоначальный вид. Надо найти именно данный вариант вхождения, только искать надо конкретное *Unnn.
В AutoCAD-е есть такой глюк: Когда динамический блок вставляешь первый раз его имя (DXF код 2) равно эффективному. Как только свойство пошевелили - становиться *Unnn и обратно уже не переименовывается. Поэтому если вы два раза вставляли блок может возникнуть ситуация, когда у вас два абсолютно одинаковых по свойствам блока, но один *Unnn (вы его ковыряли и назад все вернули), а другой с эффективным именем. Есть макрос который делает namesync. (setq es (car (entsel))) (setq ve (vlax-ename->vla-object es)) (setq DynPrs (vla-GetDynamicBlockProperties ve)) (setq props (vlax-variant-value DynPrs)) (setq lprs (vlax-safearray->list props)) (setq pr0 (nth 0 lprs)) (setq val (vlax-variant-value (vlax-get-property pr0 'value))) (vlax-put-property pr0 'value val) Все собственно. |
||||
![]() |
|
||||
Регистрация: 19.10.2007
Сообщений: 6
|
Это на Лиспе макрос?
Насчет EffectiveName -вроде прокатило, дело в том что мне не нужно имя какого-то конкретного вхождения динамического блока. Я проверяю все динамические блоки с изначально заданным именем (EffectiveName) и в зависимости от значения одного из их аттрибутов - меняю все остальные (из талицы Excel). А динамичеси каждый блок меняю уже потом (или сначала - не важно) - внешний вид блока нужен уже для других целей и не связан с аттрибутами.. Единственно, что мне нужно, для других целей так это как-то подсчитать кол-во для спецификации. Например, есть динамический блок -который может принимать 4 разных вида, и мне нужно подсчитать кол-во каждого из их во всех файлах... с простымиблоками - я делал это командой Data Extraction/// прокатит лиэта команда с динамическими блоками с разными Visibikity State? ил ка еще можно реализовать? |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
На Excel завязываться ИМХО не надо. Проще сделать текстовый файлик, его прочитать стандартными средствами и работать. Или прописать зависимость прямо в дин.блоке. Или коде.
--- Добавлено: http://forum.abok.ru/index.php?showtopic=14612 живет и побеждает ![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
"На Excel завязываться ИМХО не надо." Как это не надо? Надо! и на MS Project надо, и на другие проги тоже. Только изделие №2 не забывайте одевать. И в бой!
AutoCAD c Excel - друзья навеки! Ура! Хотя о старости надо подумать. Тишина, спокойствие, никаких тебе "внешних" связей. Блаженство! Вот гробик пойду выберу себе что ли? Лягу в него и никаких забот. |
||||
![]() |
|
||||
Регистрация: 19.10.2007
Сообщений: 6
|
Цитата:
P.S. Сам я занимаюсь электрикой и таким образом строю однолинейные схемы щитов на основании планировок с нанесенными светильниками, розетками, выпусками |
|||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Назначение свойств атрибутов блока без attsync | Кулик Алексей aka kpblc | Программирование | 9 | 15.08.2017 06:32 |
Извлечение атрибутов в файл Excel | Kotsar | AutoCAD | 5 | 20.03.2014 14:44 |
изменение свойств атрибутов блока | elena_din | AutoCAD | 8 | 12.12.2005 14:16 |