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

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

Как программно изменить значение атрибута блока?

Ответ
Поиск в этой теме
Непрочитано 18.11.2015, 15:15 #1
Как программно изменить значение атрибута блока?
vladimirr_b
 
Регистрация: 24.01.2012
Сообщений: 83

АвтоЛисп. Как программно изменить значение атрибута блока?
Просмотров: 5858
 
Непрочитано 18.11.2015, 15:22
1 | #2
ProPeller

Пастух
 
Регистрация: 16.07.2012
Питер
Сообщений: 318


Сначала получаете массив атрибутов из блока при помощи vla-getattributes. Получаете список атрибутов из массива, после чего из списка находите нужный вам атрибут при помощи vla-get-tagstring. Когда нашли нужный атрибут, присваиваете ему значение с помощью vla-put-textstring.
__________________
Автоматизация должна быть автоматической.

Последний раз редактировалось ProPeller, 18.11.2015 в 15:28.
ProPeller вне форума  
 
Автор темы   Непрочитано 18.11.2015, 17:42
#3
vladimirr_b


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


ProPeller Очередной раз спасибо!!!
vladimirr_b вне форума  
 
Непрочитано 27.09.2016, 11:17
#4
koskos


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


Это команда или лисп vla-getattributes ?
Где можно взять ?
koskos вне форума  
 
Непрочитано 27.09.2016, 22:03
| 1 #5
skkkk


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


koskos, это функция - так называемый метод Visual LISP. Если не срабатывает - значит нужно выполнить (vl-load-com). Но что-то мне подсказывает, что этой информации будет явно недостаточно для появления программы для изменения атрибутов...
skkkk вне форума  
 
Непрочитано 28.09.2016, 08:21
#6
koskos


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


Ты прав, к сожалению я немного не понимаю, что именно мне нужно сделать, что бы у меня работали команды написанные во 2 посте этой темы.
Если тебя не затруднит и будет время, то прошу рассказать поподробнее. Если затруднит, то все равно спасибо за ответ, это уже опора для дальнейших поисков)

Писал писал ответ и почему то не опубликовался.
Спасибо тебе за ответ) Правда я пока немного не понимаю, что именно я должен сделать, но теперь хоть есть почва для размышления.
И конечно же я буду очень благодарен, если ты сможешь поточнее сказать, что именно мне нужно скачать, что бы выполнялись те команды) Ну а если времени на ответы нет, то все равно спасибо)

Последний раз редактировалось Кулик Алексей aka kpblc, 28.09.2016 в 08:43.
koskos вне форума  
 
Непрочитано 28.09.2016, 11:40
#7
skkkk


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


По идее тут ничего сложного, только нужно более подробное ТЗ. Ведь не понятно, для чего тебе нужна эта программа и как она должна работать?
1. Атрибуты какого блока править? Выбирать блок или выводить его имя в аргумент? Думаю, логичнее второе, иначе, какой тогда смысл в программном изменении?
2. Какой из атрибутов править? Тоже в аргумент? Также думаю, логичнее второе.
3. На что менять его значение? Запрашивать строку или тоже в аргумент?
skkkk вне форума  
 
Непрочитано 29.09.2016, 10:12
#8
koskos


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


Цель автоматизировать работу маркировки плит (облицовки).

Есть блок с атрибутом "маркер" и "площадь". Есть ли возможность выбора данных блоков на чертеже и автоматической маркировкой данных блоков с тем условием, что, если блок имеет одинаковую площадь, то эти блоки имеют одно обозначение, допустим "П2".

Я знаю, что такое можно проделать с таблицей спдс, НО. На работе у нас все лицензионное (автокад, винда, офис) но вот деньги на спдс ни кто тратить не собиратся :с И теперь я мучаюсь :с
koskos вне форума  
 
Непрочитано 29.09.2016, 13:00
1 | #9
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 11,008


Express Tools тоже поставить не судьба?
Алексей Кулик в другой вашей ветке писал же
Цитата:
стандартные _attout + _attin,
Если прямоугольник - то делаете динблок с операциями растягивания. В атрибуте площади вставляете соответствующее поле, привязанное к площади прямоугольника. Далее через _attout выгружаете в эксель, там обрабатываете по площади макросом/формулами с учетом эпсилон сравнения, затем формируете атрибуты в эксель и второй командой загружаете обратно. Также к полученной таблице в эксель можете привязать таблицу в акаде, поменяли в акаде, применили повторно _attin.
Сергей812 вне форума  
 
Непрочитано 30.09.2016, 10:08
#10
koskos


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


Я бы не сказал, что "не судьба", скорее не знание таких инструментов. Тех людей, которые бы умели все это делать (что Вы все выше написали), рядом нет, по этому я и задаю вопросы тем, кто может на них ответить и хорошо, что такие люди есть) Спасибо за ответы! Буду все делать по шагам и надеюсь, что все получится.
koskos вне форума  
 
Непрочитано 02.10.2016, 17:06
1 | #11
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,990
<phrase 1= Отправить сообщение для VVA с помощью Skype™


koskos, Посмотри готовые функции mip-block-setattr-bylist или здесь Attribute Functions
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Как программно изменить значение атрибута блока?

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изменить точку вставки блока Apelsinov AutoCAD 43 04.02.2022 18:34
Какой язык перспективен для инженера-конструктора с условием The_Mercy_Seat Программирование 705 17.03.2021 14:19
Дописать префикс/суффикс перед/после значения атрибута блока Liam AutoCAD 7 05.10.2013 23:05
Проблема с базовой точкой блока и вхождением блока в DXF nogaems Программирование 5 29.08.2013 15:46
Непонятное поведение многострочного атрибута блока Нитонисе AutoCAD 2 11.09.2010 17:35