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

Вернуться   Форум 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.
Просмотров: 361655
 
Непрочитано 01.10.2008, 15:56
#101
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,199


Два файла vlx и dvb, одна кнопка, и все.
stas_org вне форума  
 
Непрочитано 01.10.2008, 15:57
#102
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,199


Ну это только одному Supermax"су" известно.
stas_org вне форума  
 
Автор темы   Непрочитано 01.10.2008, 16:11
#103
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Я уже охрип, крича, что DCL работает в пространстве редактора, но не дает обновляться графике самого редактора. К примеру: Устанавливаешь текущий Visibility Set, а в окошке не появляется наименование представления из этого Visibility Set-а и графика от других элементов осталась. Ее надо регенерировать, чтобы выделить нужные элементы из вновь становленной видимости, а ничего не получается. И т. д.
Когда запускаешь отдельными функциями, то по окончании их работы управление возвращается редактору и тот тут же обновляется.

Про использование чисто VBA для обработки словарей, ничего не могу сказать, поскольку даже не знаю, можно ли с его помощью их прочесть?
Также не знаю, можно ли с помощью VBA модифицировать словарь, создать новый объект (словарь в частности) и как обрабатывать списки точечных пар в словарях.

Все функции это сплошная работа со словарями, но иногда и Актив-Х нужен. Свойства смотреть.

Если очень хочется сделать прогу чисто на VBA (ну или почти чисто) согласен раскрыть алгоритм по которому я делал свои функции.

Так я так и не понял, мы компилируем или народу на обозрение выставляем?
Supermax вне форума  
 
Автор темы   Непрочитано 01.10.2008, 16:16
#104
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Про компиляцию понял.
Второй вопрос. На VBA будем стараться все сделать, или ну его?
Supermax вне форума  
 
Автор темы   Непрочитано 01.10.2008, 17:20
#105
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Пока ты думаешь, спрошу у Kpblc-a.
Kpblc, ты свою программу kpblc-objects-hide.lsp даешь вставить в данный проект?
Там всего три функции "включить все", "выключить выделенное" и "выключить все, кроме выделенного". Вполне для данного случая достаточно.

Перечень будущих кнопок:
1. Вставить Visibility Set.
2. Очистить Visibility Set от всех элементов, свойств и представлений.
3. Включить ручки всем элементам текущего Visibility Set-a.
4. Выключить видимость всем элементам.
5. Включить видимость всем элементам.
6. Выключить видимость выбранным элементам.
7. Выключить видимость всем элементам, кроме выбранных.
8. Перенести в текущее представление текущего Visibility Set-a выбранные элементы.
9. Удалить из текущего Visibility Set-a выбранные объекты (сделать их свободными).
10. Установить видимость выбранным свойствам во всех других Visibility Set-ах.
11. Переписать данные из указанного Lookup-a в EXCEL.
12. Переписать из файла EXCEL в указанный Lookup данные.
13. Скопировать данные из одного Lookup-a в другой Lookup.
14. Установить Action на задействованный другим Action-ом Lookup-параметр.
15. Скопировать указанные элементы текущего Visibility Set в выбранные представления текущего Visibility Set.

16. Ай, вай, вай ! забыл - сделать указанный Visibility Set текущим.

Ну еще можно включать ручки элементам любого Visibility Set-a и переносить или копировать их в текущий.

Теперь по связыванию блоков друг с другом.

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

На один Lookup-параметр можно навесить сколько угодно LookupAction-ов. Если все столбцы Lookup-a разбросать по отдельным таблицам, то есть каждому столбцу свой Action, то изменение любого из параметров блока описанного таким, отдельным образом будет автоматом менять все остальные связанные параметры.

В блоке может быть много Visibility Set, а значит и много независимых групп элементов, каждую из которых можно перенастраивать изменением всего лишь одного параметра.
Можно создать специальный блок, на который настраивается реактор, хоть на автолиспе, хоть на VBA. Этот блок является для всей модели вершиной пирамиды. Именно в нем и лежат все таблицы по зависимостям.

Последний раз редактировалось Supermax, 01.10.2008 в 17:29.
Supermax вне форума  
 
Непрочитано 01.10.2008, 23:48
#106
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Да бога ради.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.10.2008, 07:52
#107
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,199


Для работы с ДБ в VBA имеется всего семь свойств, програграмно вставить visibiliti и заполнить его наверное не выдет.
stas_org вне форума  
 
Автор темы   Непрочитано 02.10.2008, 09:20
#108
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Скажу по секрету, Visibility всавляет сам Автокад банальным запуском комманды
Код:
[Выделить все]
(command "_BParameter" "V" "L" name_visibility (getpoint "Укажите место расположения Visibility Set") "")
Так что отправив это выражение в ком. строку и все ок. НО! Если уже есть Visibility Set - ничего не получится. А чтобы получилось, надо блок для начала поломать, вставив в словарь "ACAD_EVALUATION_GRAPH" "кривой" Visibility Set.
"Кривой" получается элементарно! Если уже есть один Visibility Set, то мы его берем, выкидываем из списка его DXF кодов -1, 5, 1071, и 1010 коды, заменяем 301 пару с названием данного Visibility на свое название и создаем по этому списку (в лиспе это функция entmakex) новый объект. Создаем 360 точечную пару с полученым указателем на новый объект, создаем 91 точечную пару с номером новой записи в словаре "ACAD_EVALUATION_GRAPH". Добавляем точечную пару "тип записи", создаем и добавляем в запись 95 пару с следующим номером записи, потом нашу 360-тую цепляем и далее четыре 92 пары с кодом -1.
Замняем в словаре 96 и 97 пары на новое число (1+) Вставляем нашу запись в конец всех 32-ых записей и делаем словарю entmod, после чего сохраняем блок.

После этого процесса создается ситуация, когда после каждого сохранения блока Автокад в упор не видит Visibility Set и дает добро на установку нового. Мы этим воспользуемся и сделаем это.
Затем перемещаем нашу запись с "Кривым" Visibility Set-ом в самый низ 32 записей и удаляем ее.
Блок становится почти корректным. Автокад видит первый по списку Visibility Set и дает его редактировать. "Почти" это в смысле, что много Visibility Set-ов блоку де-юре не положено.

Вот ты в состоянии все это проделать на VBA?

Последний раз редактировалось Supermax, 02.10.2008 в 09:31.
Supermax вне форума  
 
Непрочитано 02.10.2008, 11:02
#109
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,199


врятли
stas_org вне форума  
 
Автор темы   Непрочитано 02.10.2008, 11:41
#110
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


A прочесть "ACAD_EVALUATION_GRAPH" могешь?
Supermax вне форума  
 
Автор темы   Непрочитано 02.10.2008, 11:57
#111
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Наверное не судьба на VBA такое делать. Скорее всего надо просто отдельную панель сделать и кнопок туда напихать.

Объявляется конкурс на BMP картинки для кнопок вышеперечисленных функций. Как только картинка понравится мне, Kpblc-у, SLADE и stas_org, так я функцию к ней даю.

Последний раз редактировалось Supermax, 02.10.2008 в 13:04.
Supermax вне форума  
 
Непрочитано 02.10.2008, 12:12
#112
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,199


Цитата:
Сообщение от Supermax Посмотреть сообщение
Наверное не судьба на VBA такое делать. Скорее всего надо просто отдельную панель сделать и кнопок туда напихать.
Или палитру
stas_org вне форума  
 
Автор темы   Непрочитано 02.10.2008, 12:41
#113
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Так и я ж об этом.
Supermax вне форума  
 
Автор темы   Непрочитано 02.10.2008, 13:01
#114
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Гость, а гость, что с утра в теме висишь? Хоть бы картинку для кнопочки нарисовал. Жаба давит? Халяву ждемс?
Supermax вне форума  
 
Непрочитано 02.10.2008, 13:07
#115
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Цитата:
Сообщение от Supermax Посмотреть сообщение
Гость, а гость, что с утра в теме висишь? Хоть бы картинку для кнопочки нарисовал. Жаба давит? Халяву ждемс?
Это кому обращение?
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 02.10.2008, 13:15
#116
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Да тут наблюдаю за одним. С утра висит и висит. Сейчас смылся. А это не ты часом?
Что-то совсем народ обленился. Сложные задачи ставлю - не могут. Простые (ну куда проще, картинку придумать?), так вообще думают, что сейчас набежит несколько остро нуждающихся и сделают. И по скольку так думают все, то простые задачи тоже никто не решает.

Обидно Kpblc, до слез.
Supermax вне форума  
 
Непрочитано 02.10.2008, 13:40
#117
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


Supermax, тебе расписать над чем я сейчас сижу?
Я ж тебе говорил - дин.блоки (тем более такие навороченные, как ты делаешь) лично мне пока не требуются. Мне вообще сейчас дин.блоки не нужны. Поэтому я и не принимаю практически никакого участия в разработке. Что понимаю "влет" - то делаю, если успеваю.
Кстати, "кнопки рисовать" лично у меня никогда не получалось...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 02.10.2008, 13:51
#118
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 1,199


Ну сделай хоть для себя, картинки из акада возьми, неиспользуемые.
stas_org вне форума  
 
Автор темы   Непрочитано 02.10.2008, 14:42
#119
Supermax

Руководитель фирмы
 
Регистрация: 28.03.2007
Москва
Сообщений: 1,831
Отправить сообщение для Supermax с помощью Skype™


Так я уже себе понавтыкал всякого мусора. Может у кого есть для этого специальная программа. Берешь нормальный рисунок и пропускаешь через такую прогу. Она тебе его сжимает до кучки пикселей, но с тенями и пр. Рисовать Автокадовским редактором иконок ничего у меня не получается.
И вообще, скачивают сотни, а беседуют с автором 2-3 человека.
Я Kpblc, не тебя имею в виду. Ты на себя навалил весьма много и тебя я понимаю. Без притензий. Я имею в виду ситуацию. Плохая получается ситуация. Чтобы что-то получить, надо это заработать. Так должно быть во всем. А мы тут халявщиков выращиваем. Все всегда начинается с малого. Когда где-то в чем-то что-то обломилось, то ждут, что и в большем обломится.
Халяву и я люблю, поэтому очень хорошо чувствую этот вкус дармовщинки. Наркотик это. Ох какой крутой наркотик!

Когда хотят подарить кому-нибудь щенка, то обязательно его типа продают, за рубль. Чисто символически. Дурная примета такая есть, что за даром пришло, за даром и уйдет.
Я хочу чтобы очень многие делали крутые динамические блоки легко и быстро. Готов даром дать все, что для этого нужно, но не гоже быть такими КЮ, что даже картинку предложить влом.
Supermax вне форума  
 
Непрочитано 02.10.2008, 15:01
#120
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,787


В качестве полного идиотизма (картинка здоровая, сами ужимайте :P)
Миниатюры
Нажмите на изображение для увеличения
Название: pict001.jpg
Просмотров: 211
Размер:	25.1 Кб
ID:	10611  
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум 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