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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание дополнительных параметров Visibility Set в динамических блоках.

Создание дополнительных параметров Visibility Set в динамических блоках.

Ответ
Поиск в этой теме
Непрочитано 13.09.2008, 13:35 5 |
Создание дополнительных параметров Visibility Set в динамических блоках.
Supermax
 
Руководитель фирмы
 
Москва
Регистрация: 28.03.2007
Сообщений: 1,831

В этой теме рассматривается вопрос программного "наращивания" возможностей динамических блоков.
Программистам:
Разбор словарей дин.блока
Получение параметра видимости и его разбор

Примеры блоков с несколькими параметами видимости (Visibility Set): "неправильные" и "правильные".
В посте #212 - пример связи Lookup-ов друг с другом.
Макрос по перемещению свойств в списке свойств блока меню Properties
02.02.2010 Откорректирована для работы в 2010 каде



Пользователям:
Готовые макросы:
Все функции по вставке и обработке дополнительных Visibility Set
Обновление 17.07.2009г. Исправлена ошибка в element-sel-current-insert и добавлено включение видимости всем элементам с откатом назад, после выбора нужных элементов
Обновление 06.10.2009. Исправил функцию eval_graf_output, из-за которой не работала visibility-up.
Обновление 02.02.2010. !!! Откорректирована в связи с появлением нового динамического элемента в 2010 каде
(properties_add_all_visibility) - установка видимости выбранных динамических свойств и ручек во всех представлениях всех Visibility Set-ов.
Добавлен вывод значения текущего Visibility Set-a в статусную строку и спрятаны не нужные глобальные переменные
(element-all-current-del) - удаление из текущего Visibility Set всех элементов оставляя свойства и представления.
(element-sel-current-del) - очищает Visibility Set от указанных элементов без необходимости выключать им видимость в других представлениях текущего Visibility Set-а.
(element-sel-current-insert) - внедрение в общий список текущего Visibility Set-a выбранных элементов.
(Visibility_add) - Добавление нового Visibility Set-a
(visibility-up) - Делает указанный пользователем Visibility Set текущим
(eddedd) - Включает ручки всем элементам текущего Visibility Set-a
(Visibility_clear) - Очищает указанный Visibility Set от всех элементов, параметров и представлений. Принадлежащие ему элементы становятся свободными
Инструкция по применению дополнительных Visibility Set

Функции управления видимостью объектов (вкл\выкл)
Вебмакрос по управлению видимостью объектов (только для тех, у кого Internet Explorer 7.0)
Функция по выключению видимости отдельных элементов блока из пространства модели
#66 и #67 - восстановление видимости отдельных элементов блока.
Excel->Lookup
Lookup->Excel
Lookup->Lookup

Самые последние версии, для работы в любом пространстве.
Программа по массовой установке и снятию видимости элементов в представлениях текущего Visibility Set-a Обновление 8.10.2008г. Устранена ошибка загрузки DCL панели.
Программа по устаноке на параметр Lookup-a сколь угодного количества активаторов
Пример использования связанных активаторов Lookup-a через один параметр Lookup-a. 3D-динамический блок-игрушка Гидроцилиндр телескопический 4-х секционный. Файл обновлен 8.10.2008г.

Все макросы для кнопок и иконки к ним

24.01.2009.
Исправлена ошибка в функции (properties_add_all_visibility)

Исходные тексты к функциям:
http://www.private.peterlink.ru/pole...9/tainypod.htm

Последний раз редактировалось Supermax, 02.02.2010 в 20:26.
Просмотров: 374338
 
Непрочитано 15.01.2018, 16:35
#701
AMDen

Инженер-проектировщик
 
Регистрация: 07.07.2016
Санкт-Петербург
Сообщений: 759


Коллеги-товарищи, подскажите!
Неработающий блок с несколькими видимостями в новых версиях автокада - это факт или пока только опасения?
Если факт, то блок вообще не работает или невозможно создавать/редактировать видимости? И с какой версии автокада это происходит?
У меня есть парочка таких блоков. Попробовал в 2017-ой версии автокада (сохранил в 2013). Вроде бы работает блок.
AMDen вне форума  
 
Непрочитано 15.01.2018, 16:58
#702
Сергей812


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


Цитата:
Сообщение от AMDen Посмотреть сообщение
невозможно создавать/редактировать видимости
Цитата:
Сообщение от skkkk Посмотреть сообщение
дополнительные параметры Visibility Set с использованием программы Supermax'а можно создать только в версиях до 2011 или 2012 (точно не уверен), но работать эти блоки должны вроде как, во всех версиях.
downgrade действует вроде на три версии только, т.е. официально купить софт 2011 года не получиться, во всяком случае так просто. И 100% гарантии никто не даст, что в последующих версиях не только создаваться, но и работать не перестанет. Так что на свой страх и риск либо иметь альтернативный вариант в виде тех же настроенных палитр, чтобы в случае проблем перейти на них. И меньше слушайте тех, у кого 4 года прямо идеально все работает - у них свой бюджет, у вашей фирмы - свой)
Сергей812 вне форума  
 
Непрочитано 15.01.2018, 20:56
#703
ArtistAvidaDollars

инженер-проектировщик
 
Регистрация: 27.03.2012
Москва/Ейск
Сообщений: 141
Отправить сообщение для ArtistAvidaDollars с помощью Skype™


Цитата:
Сообщение от AMDen Посмотреть сообщение
Коллеги-товарищи, подскажите!
Неработающий блок с несколькими видимостями в новых версиях автокада - это факт или пока только опасения?
Если факт, то блок вообще не работает или невозможно создавать/редактировать видимости? И с какой версии автокада это происходит?
У меня есть парочка таких блоков. Попробовал в 2017-ой версии автокада (сохранил в 2013). Вроде бы работает блок.
Работает во всех версиях. Создать дополнительную видимость в блоке можно только до 2016 версии. У меня на работе 2017, поэтому я решил пока стараться не использовать данное "заклинание".
__________________
главное не останавливаться...
ArtistAvidaDollars вне форума  
 
Непрочитано 25.03.2018, 19:35
#704
Sergey_v

Инженер-конструктор
 
Регистрация: 10.03.2013
Якутск
Сообщений: 472


Всё испробовал, скачал с сайта "Тайны акад" дополнительный параметр видимости, всё делал чётко по видеоинструкции, но всё равно, одна от другой параметра видимости зависит, это для Автокад 2014, 32 бита.
У кого-нибудь получилось..?
И ещё. Если подгрузить данный лисп на уже готовый динамический блок, то при vspadd происходит фатальная ошибка. Кто пробовал, у кого получилось безусловно так, как описано в инструкции..?
на всякий случай файл приложу, может кто что подскажет...
Вложения
Тип файла: dwg
DWG 2013
Блоки с 2 параметрами видимости.dwg (592.5 Кб, 103 просмотров)
__________________
Век Живи - Век Учись!

Последний раз редактировалось Sergey_v, 25.03.2018 в 19:43.
Sergey_v вне форума  
 
Непрочитано 25.03.2018, 20:07
#705
ArtistAvidaDollars

инженер-проектировщик
 
Регистрация: 27.03.2012
Москва/Ейск
Сообщений: 141
Отправить сообщение для ArtistAvidaDollars с помощью Skype™


Цитата:
Сообщение от Sergey_v Посмотреть сообщение
Всё испробовал, скачал с сайта "Тайны акад" дополнительный параметр видимости, всё делал чётко по видеоинструкции, но всё равно, одна от другой параметра видимости зависит, это для Автокад 2014, 32 бита.
У кого-нибудь получилось..?
И ещё. Если подгрузить данный лисп на уже готовый динамический блок, то при vspadd происходит фатальная ошибка. Кто пробовал, у кого получилось безусловно так, как описано в инструкции..?
на всякий случай файл приложу, может кто что подскажет...
Лучше не использовать лисп, так как он устарел и не поддерживается в новых версиях
__________________
главное не останавливаться...
ArtistAvidaDollars вне форума  
 
Непрочитано 11.04.2018, 14:40
#706
Vladislav_Valerievich


 
Регистрация: 12.03.2018
Чебоксары
Сообщений: 19


Добрый день, коллеги! Штука по предназначению - классная!
Подскажите - насколько данный .fas актуален?
На каких версиях с ним можно работать?
Попробовал на AutoCAD 2012 и AutoCAD 2019 - подгрузил .fas через _.appload, и далее по инструкции - не смог вызвать ни одну функцию.
Как запустить функцию "(Visibility_add)"? Прописывал в командной строке и "(Visibility_add)" и "Visibility_add" - команда неизвестна.
Vladislav_Valerievich вне форума  
 
Непрочитано 12.04.2018, 07:02
#707
AndruxaZ


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


Цитата:
Сообщение от Vladislav_Valerievich Посмотреть сообщение
Подскажите - насколько данный .fas актуален?
На каких версиях с ним можно работать?
Autocad 2011 последний, в котором работают все функции. В последующих Автокадах 2012-2018 возможно лишь использование блоков, созданных данной программой
AndruxaZ вне форума  
 
Непрочитано 07.05.2019, 00:41
#708
superkot007


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


Доброй ночи!
Отличная тема, спасибо всем, причастным к ее развитию. Особенно - автору, светлая ему память...
Попробовал читать тему с начала, но тяжеловато дается. Общий смысл - fas-файл в шапке полностью рабочий только для версий 2010-2011 (в последующих можно только использовать результаты работы). Если не так - поправьте.
Есть также Lisp-вариант (https://forums.autodesk.com/t5/dynam...5877456#M19228), работающий в более поздних версиях (в теме говорится про 2016).
Воспользовался инструкцией
Increase Size Decrease Size Нажмите для просмотра
https://www.youtube.com/watch?v=3VWoHxLD8Lc и в версии 2020 сделал блок формата листа (таблица свойств блока и 2 группы видимостей - основная надпись и боковая).
В принципе, все работает, за исключением выявленного нюанса - нужно соблюдать порядок изменения видимостей (сначала меняется последняя, добавленная через lisp, первая зависимость сбрасывается на начальный вид, которая потом настраивается). Незначительный минус, а есть ли другие подводные камни?
И еще - если бы я делал блок в 2010/2011 версии с помощью fas-файла - в чем этот блок был бы лучше? Помимо того, что, наверное, выбор видимостей в разных группах не влияет друг на друга.
superkot007 вне форума  
 
Непрочитано 12.04.2021, 14:54
#709
zz07


 
Регистрация: 01.07.2007
Москва
Сообщений: 26


Добрый день!
Не пойму как сделать связь lookup, можете подсказать?
Пример в шапке есть, но повторить не могу, потому что autocad не присоединяет вторую таблицу свойств к одному параметру lookup, autocad пишет: Lookup parameter already associated with a lookup table.
zz07 вне форума  
 
Непрочитано 19.07.2024, 19:34
#710
skkkk


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


Может, кто-то уже разбирался, знает? По основному вопросу темы "Создание доп.параметров Visibility Set" сделать блоки мне в своё время удалось. Хоть и помню с трудом, как я это делал, помню, что все дополнительные виз.сеты добавлялись внутри редактора блоков функциями из лиспов в шапке (или в ссылках из шапки). А есть ли возможность их программно менять эти видимости, если их в блоке больше одной, не заходя, желательно, в редактор блоков? Ткните, пожалуйста, носом, если уже тут было, мало ли кто-то помнит.
skkkk вне форума  
 
Непрочитано 19.07.2024, 20:28
#711
Сергей812


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


А чем отличается программная установка N-ого параметра набора видимости от единственного стандартного? Все равно идет перебор динпараметров.
Сергей812 вне форума  
 
Непрочитано 19.07.2024, 21:43
#712
skkkk


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
А чем отличается программная установка N-ого параметра набора видимости от единственного стандартного? Все равно идет перебор динпараметров.
Для редактирования дин.параметров использую функции от Lee Mac. Для видимости у него отдельная функция, не подразумевающая наличия возможности второй такой внутри одного блока, как и прописано в документации автокада. Автор (вечная ему память) как-то докопался до такой возможности, как я понял, через конкретные кишки. Я глубоко в коды не вникал, только использовал. Полагаю, что раз внутри блока возможно эту доп.видимость создать (а там есть и функция для установки параметра видимости активным, но программа работает только в редакторе блоков), то и добраться до её изменения снаружи тоже может быть реальным.

----- добавлено через ~3 мин. -----
Похоже, придётся вникать в коды и писать свою. Но сперва почитать эти тридцать шесть страниц топика

----- добавлено через ~8 мин. -----
Сергей812, ещё уточнение на всякий случай.
Программка из шапки работает следующим образом (вкратце, без деталей):
1. Пользовательской функцией на лиспе создаётся дополнительный параметр Vis.Set.
2. Такой же функцией он активируется.
3. После этого этот параметр настраивается вручную тем же самым образом, что и первый - стандартными автокадовскими возможностями.
4. Закрывается редактор блоков с сохранением.
В итоге у блока появляется два независимых друг от друга параметра видимости.

----- добавлено через ~10 мин. -----
5. При необходимости внесения изменений во ВТОРОЙ параметр видимости его нужно снова активировать в редакторе блока той же функцией.
skkkk вне форума  
 
Непрочитано 20.07.2024, 01:47
#713
Сергей812


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


В общем, как и предполагал - ничем не отличается установка N параметра видимости от стандартного одиночного

----- добавлено через ~2 мин. -----
блок взял из 704 поста

Последний раз редактировалось Сергей812, 13.03.2025 в 14:33.
Сергей812 вне форума  
 
Непрочитано 20.07.2024, 10:50
#714
skkkk


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
В общем, как и предполагал - ничем не отличается установка N параметра видимости от стандартного одиночного
Пока не пойму: не отличается от чего именно? Имею в виду, чем меняете стандартный? В дотнете есть, видимо, уже готовые решения для этого?
Я для программной смены видимости использую код Lee Mac отсюда. И там даже в аргумент имя параметра не выведено, то есть код предполагает, что он может быть только один. Или я упустил новость, и теперь автокад добавил в коробку несколько параметров видимости?
skkkk вне форума  
 
Непрочитано 20.07.2024, 11:06
#715
Сергей812


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


Цитата:
Сообщение от skkkk Посмотреть сообщение
Пока не пойму: не отличается от чего именно? Имею в виду, чем меняете стандартный? В дотнете есть, видимо, уже готовые решения для этого?
в .Net готового решения нет, есть только общий API для доступа к дин. свойствам:

Код:
[Выделить все]
 
// Задание параметра видимости
        private void SetVisibleState(string aNameDynProperty, string aValue)
        {
            if (_SelBRId == acdbs.ObjectId.Null) return;
            acaps.Document lDoc = acaps.Application.DocumentManager.MdiActiveDocument;
            if (lDoc == null) return;
            using (acaps.DocumentLock lDocLock = lDoc.LockDocument())
            {
                using (acdbs.Transaction lTr = lDoc.Database.TransactionManager.StartTransaction())
                {
                    acdbs.BlockReference lBR = lTr.GetObject(_SelBRId, acdbs.OpenMode.ForWrite) as acdbs.BlockReference;
                    // Задаем динамические параметры
                    acdbs.DynamicBlockReferencePropertyCollection lDBRPC = lBR.DynamicBlockReferencePropertyCollection;
                    for (int i = 0; i < lDBRPC.Count; i++)
                    {
                        acdbs.DynamicBlockReferenceProperty lProperty = lDBRPC[i];
                        if (lProperty.PropertyName.Equals(aNameDynProperty))
                        {
                            lProperty.Value = aValue;
                            break;
                        }
                    }
                    lTr.Commit();
                }
            }
            // Переходим фокусом ввода в акад, чтобы увидеть сразу изменения 
            SetFocus(acaps.Application.MainWindow.Handle);
        }

это функция из тестового примера, без дополнительных проверок. Получаем список дин.параметров блока, в цикле ищем по имени требуемый параметр и задаем ему новое значение. Причем напрямую в .Net различить параметр видимости и выбора вроде нет возможности - у обоих PropertyTypeCode = 5)
Сергей812 вне форума  
 
Непрочитано 22.07.2024, 10:20
#716
skkkk


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


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
это функция из тестового примера, без дополнительных проверок
А ларчик просто открывался. Взял функцию LM:setdynpropvalue, там указываю имя параметра и новое значение. Всё.
Спасибо, Сергей812, подпихнули в нужном направлении)
skkkk вне форума  
 
Непрочитано 22.07.2024, 11:04
#717
Сергей812


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


так у меня было сомнение - что если этот доп. параметр видимости делается не штатными средствами акада, то его могут не "увидеть" стандартные методы работы с дин.параметрами. Но похоже, что в свое время Аутодеск просто посчитал - что одного параметра видимости пользователям будет достаточно, но никаких дополнительных проверок в коде не вводил.
Сергей812 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Создание дополнительных параметров Visibility Set в динамических блоках.

Опции темы Поиск в этой теме
Поиск в этой теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как с помощью vba начертить линию vasyavip Программирование 77 09.10.2008 23:17
Femap и VBA Makson Программирование 11 05.08.2008 14:54
Создание списка чертежей из Sheet Set Manager krokh AutoCAD 2 20.06.2008 16:46