|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
01.04.2012, 11:46 | #1 | |
Перенос значения атрибутов из блока в блок
Регистрация: 26.11.2010
Сообщений: 45
|
||
Просмотров: 5215
|
|
||||
Регистрация: 26.11.2010
Сообщений: 45
|
Это немного не то (видимо, я не совсем толково донес задачу):
Дано: 2 блока с множествами атрибутов. Но в обоих блоках есть атрибуты с одинаковыми именами "ШИФР". Задача: изменить значение атрибута "ШИФР" 1-го блока на значение атрибута "ШИФР" 2-го блока. Типа: ("ШИФР" . "Значение-атр-1") --> ("ШИФР" . "Значение-атр-2") Таким образом, произойдет "перетекание" (т.е. замена) ЗНАЧЕНИЙ атрибутов с ОДИНАКОВЫМИ именами из блока-2 в блок-1. (Блок-1 с именем атрибута "ШИФР" (и значением "Значение-атр-1") будет иметь значение "Значение-атр-2" из соответствующего атрибута "ШИФР" Блока-2) |
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
wluk1958,
а тебе конкретно что нужно - готовая прога или подсказка по алгоритму? Для второго нужно знать лисп или другой язык программирования. А если первое - то могу предложить установить мою программу там как раз подобная функция реализована - выбираешь атрибут в любом блоке, потом выделяешь часть чертежа и эначение атрибута первого блока копируется во все одноименные атрибуты таких же блоков. Там ты сможешь понять и как самому эту прогу написать. Судя по всему, ты не искал в поиске, иначе бы давно нашел множество тем. |
|||
|
||||
Регистрация: 26.11.2010
Сообщений: 45
|
->Frigate vbmenu_register("postmenu_899037", true);
Не смог я толком разобраться в твоей программе: (сложная, .fas-функции, многофункциональная задача). Попробовал таким образом: (Defun C:Vg () (Setq Nam (Car (Entsel))) (Setq Obj (Vlax-Ename->Vla-Object Nam)) (Mapcar '(Lambda (Att) (Cons (Vla-Get-Tagstring Att) (Vla-Get-Textstring Att) ) ) (Vlax-Invoke Obj 'Getattributes) ) ) Возвращает из блока с 3-мя атрибутами: (("ИДЕНТИФИКАТОР" . "VOL-1") ("СОСТОЯНИЕ" . "VOL-2") ("ОПТИЧЕСКОЕСОЕДИНЕНИЕ" . "VOL-3")) А вот как конкретно использовать ф-ю < SUBST...> (или что-то другое ?) для замены в другом блоке значения соответсвующего атрибута ? Извините за дилетанство, но "Хочу все знать". Помогите, пожалуйста. Спасибо. Последний раз редактировалось wluk1958, 02.04.2012 в 15:33. |
|||
|
||||
КИП, АСУ ТП, слаботочка Регистрация: 02.09.2010
Москва-Тюмень
Сообщений: 422
|
wluk1958,
ты не разбирайся - просто установи ее в файле ADV_Toolkit HELP/Help.doc прочтешь справку, как ставить Как поставишь - запускай в командной строке adv-programme-edit-copy-attrib-to-blocks (хотя команда есть и на кнопке, и в меню). ВРоде это и есть то, что ты хочешь получить от проги. Если конкретно о твоем коде... вот тут Код:
Код:
Далее - твой mapcar не присваивается никакой переменной, а нужно бы. Тебе subst не нужно, можно гораздо проще - получившийся по mapcar список используешь в цикле foreach (или том же mapcar), присваивая значения каждого атрибута атрибутам другого блока (используя vla-put-textstring) - еще один entsel используй. Да...блоки как я понял, должны быть одинаковыми.. так вот, тебе нужно из первого блока (переменная obj) вытащить имя блока - через (vla-get-EffectiveName obj), и проверить, чтобы у второго выбранного блока, в который будешь копировать значения атрибутов, было такое же имя. В общем, можешщь моей прогой пользоваться, можешь сам поизвращаться :-) |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Назначение свойств атрибутов блока без attsync | Кулик Алексей aka kpblc | Программирование | 9 | 15.08.2017 06:32 |
Помогите сделать сортировку списка атрибутов блока | Wertgan | Программирование | 11 | 30.04.2015 17:17 |
Поля атрибутов вложенного блока не отображают своих значений | hwd | AutoCAD | 7 | 23.12.2009 08:40 |
Баг: сбрасывается аннотативность атрибутов блока + атрибуты не отображаются во вхождениях блока | hwd | Баги и пожелания в Autodesk | 0 | 15.11.2009 14:55 |
изменение свойств атрибутов блока | elena_din | AutoCAD | 8 | 12.12.2005 14:16 |