Скачать NANOCAD Pдгы 8.5
dwg.ru forum rss xml
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму |

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

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

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

Supermax вне форума Вставить имя

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

Примеры блоков с несколькими параметами видимости (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.
Просмотров: 218368
 
Автор темы   Непрочитано 24.09.2008, 00:29
#41
Supermax

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


А вот и правильно сделанный блок с 10-тью Visibility Set и не только. Открывается двойным щелчком. Аудит - 0 ошибок. Текущих Visibility Set редактируется редактором блока. Программкой, что я выложил, перемещаете нужный Visibility в самый верх списка и редактор его обработает.
Чтобы все свойства корректно работали, они должны быть включены везде, кроме того Visibility, где они управляют графикой. Принцип "И" если хоть в каком-нибудь текущем представлении это свойство выключено - оно не будет видно ни в списке свойств, ни в модели.
Программу написал отдельными функциями. Одна - вставляет новый Visibility, другая - перемещает в верх выбранный Visibility (делает его текущим), третья - удаляет из общего списка текущего Visibility выделенные пользователем элементы.
DCL - пролетает как фаера над Парижем. Потом объясню почему.

Короче - вот вам этот блок. (формат 2007 када)
Вложения
Тип файла: dwg
DWG 2004
2.dwg (277.9 Кб, 5594 просмотров)

Последний раз редактировалось Supermax, 24.09.2008 в 09:57.
Supermax вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.09.2008, 06:23
#42
Volodich

проектировщик-электрик
 
Регистрация: 20.12.2007
Челябинск
Сообщений: 426


Странно... У меня файл-то открывается, но почему-то ни одно действие с блоком я сделать не могу. Не то что видимостью управлять, даже простое растяжение или отзеркаливание не работает. А по видимостям, когда нажимаю на ручки, менюшки-то с вариантами выпадают, но при выборе любого варианта он не выбирается.
Попробовал по двойному щелчку. Вылезло сообщение: "Блок содержит объекты-заместители. Невозможно изменить блок в редакторе блоков."
По правой кнопке почему-то в редакторе блоков открылся. Действия видны все, параметры видимости тоже все. Но из объектов видны только первые кружочки. Так и должно быть?
Кстати, а где взять программку, про которую ты пишешь в предыдушем сообщении? (#41)
AutoCAD 2006 rus.

Последний раз редактировалось Volodich, 24.09.2008 в 06:58.
Volodich вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.09.2008, 07:39
#43
stas_org


 
Регистрация: 05.04.2007
Самара
Сообщений: 990
Отправить сообщение для stas_org с помощью ICQ


Очень круто я бы сказал, но:

- область применения (на мой взгляд) ограниченна. Непонимаю, зачем десять visibility, когда в один можно все представления засунуть, пусть он даже большой станет.
- надо научить тех кому надо, а это посложнее будет чем научить просто создавать ДБ.


На мой взгляд лучше попытаться добавить новые параметры и действия, например: при действии array можно было бы с каждым скопированным объектом работать.

Непонятно почему Autodesk не развивает это направление, мож коллективное письмо напишем)))).
stas_org вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.09.2008, 08:33
#44
Volodich

проектировщик-электрик
 
Регистрация: 20.12.2007
Челябинск
Сообщений: 426


Вот это да... ПЕРВЫЙ раз такое слышу, честно!
stas_org, видимо в Autodesk сидит кто-то такой как ты, который не понимает зачем десять параметров видимости вот это направление и не развивается.
А мы тут все страдаем и мучаемся всякими array'ями да прочей ерундой заменяем видимости.
stas_org, мой тебе совет, беги быстрее, пока камнями тут не закидали!
А по поводу сложности обучения... Я думаю, что тот кто научился делать ДБ разберется и с этим. Причем с радостью разберется!
Volodich вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 24.09.2008, 09:49
#45
Supermax

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


Volodich, я вообще-то делал блок в 2007 английском каде. Как ты умудрился открыть его в 2006, да еще и русском? Там же другой формат файла!

У меня к сожалению накрылся 2006 кад, так что проверить на нем не могу. Даю вам файл в 2004 формате - проверяйте работоспособность.

По поводу целесообразности.
Подсчитаем, сколько надо описаний видимости для реализации подобного блока с одним Visibility Set.
Первая группа имеет 7 штук описаний видимости, вторая - 8, третья - 6, и так далее 2, 2, 5, 2, 2, 2, 2.
Это 7*8*6*2*2*5*2*2*2*2=107520 описаний видимости.
Вы просто посчитайте вслух до 1000 - охрипнете!
А тут 107,5 тысяч!
Дальнейшее,думаю, не требует аргументаций.

Даже по два описания видимости вкл\выкл у 10-ти элементов это 1024 описания видимости.

В редакторе блоков вы видете текущий Visibility Set и его элементы. Иногда можно увидеть элементы других Visibility, но сделать с ними ничего нельзя, а погасив им видимость в серой видимости их уже не увидеть.
Перемещайте моей программой нужный вам Visibility в самый верх списка и открывайте блок редактором.
Все свойства должны быть включены, кроме тех,которые вам надо выключить в данном состоянии описания видимости текущего Visibility Set-a.
Вложения
Тип файла: dwg
DWG 2004
3.dwg (81.0 Кб, 4326 просмотров)

Последний раз редактировалось Supermax, 24.09.2008 в 12:05.
Supermax вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.09.2008, 10:03
#46
Shoorup

Автоматика и Телемеханика на железнодорожном транспорте
 
Регистрация: 16.09.2006
Минск
Сообщений: 1,582
Отправить сообщение для Shoorup с помощью ICQ Отправить сообщение для Shoorup с помощью Skype™


stas_org, ооооойййй если ты не понимаешь зачем 10 параметров видимости ты вообще не встречался с трудностями Динамических блоков.
Supermax, снимаю шляпу! Это лучший динамический блок который я пока видел!
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 24.09.2008, 11:32
#47
Supermax

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


Программа по перемещению свойств в списке Properties (свойства) я думаю, что уже есть у всех?

Так вот, что можно делать, а что нельзя в данном блоке.

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

В текущем Visibility Set можно:

1 - включать и выключать ручки любым свойствам, перемещать их, менять свойства (имя и пр.) (включая и сами Visibility Set-ы).
2 - добавлять и удалать графические и не графические элементы (они будут видны только в данном Visibility).
3 - Устанавливать на эти элементы динамические параметры (после установки поочередно пройти по всем Visibility Set-ам, делая каждый из них текущим, и включить видимость установленному параметру).
4 - Удалять чужие параметры (после удаления пройти по всем Visibility Set-ам и открыв каждый редактором пересохранить блок. В противном случае не будет видна графика этих Visibility).
5 - добавлять новые описания видмости (если двойным кликом кликнуть по любому параметру Visibility Set, то все равно откроется редактирование описаний текущего Visibility).
6 - используя либо мой вебмакрос по управлению видимостью, либо макрос Kpblc-a включать и выключать видимость всем графическим элементам блока (включая и те элементы, которые принадлежат другим Visibility Set-ам). Это нужно для правильного сопряжения элементов графики в блоке.

В редакторе блоков, не выходя из него можно:
- Делать текущим любой Visibility Set (но только с помощью макроса)
- Вставлять новый Visibility Set (но только с помощью макроса)
- Удалять из общего списка и списков на включение выбранные элементы (но только с помощью макроса)
- Вставлять в общий список текущего Visibility Set элементы выбранные пользователем (после включения видимости у всех элементов блока и только с помощью макроса).
- Автоматически включать в списки на включение дин. параметров новые дин. параметры во все Visibility Set-ы (но только с помощью макроса).
- Автоматически удалять из всех Visibility Set-ов, из списков на включение дин. параметров, параметры предназначенные на удаление (но только с помощью макроса).
- Включать ручки элементам общего списка и свойствам текущего Visibility Set (но только с помощью макроса).

Остались нерешенными проблемы:
- Как временно запретить Автокаду делать автоматическое сохранение файла?. Постоянно работу макроса прерывает эта гадость, а выключать ее мне нельзя. Надо в начале выполнения функции запрещать автоматическое сохранение, а в конце восстанавливать.
- DCL пролетает как фанера над Парижем. В пространсве редактора блоков он работает, но макрос (лисп) останавливает работу самого редактора и пока из макроса не вывалишся не происходит обновление состояния самого редактора. Ручки элментам включать можно, переходить из одного текущего состояния в другое, а то что видишь в редакторе не меняется (только элементы подсвечиваются). Находишся уже в другом текущем Visibility Set, в набор включаются уже его элементы, а видим то, что было когда макрос включили.
Надо делать программу, либо вебмакросом (он интерактивен), либо VBA скрещивать с лиспом (тоже интерактивен), либо панелями инструментов ограничиться. Кроме установки кнопок я больше ничего делать с ними не умею (пока).
- Кто и за какие выгоды все это будет делать?

Тот, кто мне поможет - получит все секреты этого дела.
Supermax вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.09.2008, 11:56
#48
Vildar

AutoCAD
 
Регистрация: 26.07.2007
Москва
Сообщений: 1,064


Покруче кубиба-рубика будет
Vildar вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 24.09.2008, 12:01
#49
Supermax

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


Еще, забыл одно очень важное.
Как известно, включать и выключать видимость Visibility Set нельзя (за исключением случая, когда блок содержит не корректный Visibility Set).
Так вот, выключите всем Visibility Set-ам опцию Show Properties (сделайте No) и создайте дя каждого Visibility Set свой Lookup, в котором перечислите имена представлений данного Visibility Set и сопоставьте эти имена самим представлениям, вставив один единственный столбец с данным Visibility. Вот Lookup вы можете включать и выключать где угодно!
Таким образом в свойсвах блока можно управлять наличием доступа к данным Visibility Set.
Supermax вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.09.2008, 12:11
#50
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,246


Цитата:
Сообщение от Supermax Посмотреть сообщение
Как временно запретить Автокаду делать автоматическое сохранение файла?. Постоянно работу макроса прерывает эта гадость, а выключать ее мне нельзя. Надо в начале выполнения функции запрещать автоматическое сохранение, а в конце восстанавливать.
Код:
[Выделить все]
(setq Old_SAVETIME (getvar "SAVETIME"))
(setvar "SAVETIME" 0)
;;;нужный код
(setvar "SAVETIME" Old_SAVETIME)
Такое не покатит?
Makswell вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 24.09.2008, 12:23
#51
Supermax

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


Ты хочешь сказать, что если сделать время автосахранения равное 0, то это эквивалентно отключению автохранения?
Надо проверить, может и покатит. Спасибо.
Supermax вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.09.2008, 12:23
#52
SetQ

конструктор
 
Регистрация: 21.07.2007
Петрозаводск
Сообщений: 1,395


формально ещё такое решение: поставить SAVETIME стопицотминут
SetQ вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 24.09.2008, 12:51
#53
Supermax

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


Второе покатит точно, правда не известно обнулился ли отсчет для последнего состояния? И ежу понятно, что мне и 10 минут достаточно, лишь бы отсчет можно было обнулять. Та гадость, что ведает этой бедой, следуя логике программиста, считывает из этой переменной значение и запускает таймер, когда тот отсчитал положенное - выполняет действие и по новой считывает значение из переменной. Мы можем до посинения ждать результата, но пока не закончится цикл - новые данные не будут сьедены. Надо обнулять отсчет, либо вовсе его останавливать.
Supermax вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 24.09.2008, 12:58
#54
Supermax

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


Проверил. Так оно и есть. Установил (setvar "SAVETIME" 1) (было 10) и ждал 7 минут пока стал действовать новый закон.
К 0 это тоже относится.
Supermax вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 24.09.2008, 13:15
#55
Supermax

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


Вы будете смеяться, но я вообще не могу найти где у меня в 2007-ом устанавливается автосохранение. Визуально картинку помню, а найти не могу.
Supermax вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.09.2008, 13:35
#56
Shoorup

Автоматика и Телемеханика на железнодорожном транспорте
 
Регистрация: 16.09.2006
Минск
Сообщений: 1,582
Отправить сообщение для Shoorup с помощью ICQ Отправить сообщение для Shoorup с помощью Skype™


Supermax, чтото очень сложно... скинь макрос. Я не смог сделать текущим нужный Visibility Set
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.09.2008, 14:14
#57
Makswell

Инженер-строитель
 
Регистрация: 15.08.2007
Киров
Сообщений: 2,246


Так гласит справка:

Цитата:
SAVETIME
...
0 - Отключает функцию автосохранения
...
И вот кстати ещё (там же, в справке):
Цитата:
Автосохранение отключается, если открыт Редактор блоков
Кстати аналогичное можно сделать через ActiveX:
Код:
[Выделить все]
(vla-put-AutosaveInterval
  (vla-get-OpenSave (vla-get-Preferences (vlax-get-acad-object)))
  0
)
Makswell вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 24.09.2008, 14:30
1 | #58
Supermax

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


Макрос по перемещению свойств в списке свойств блока меню Properties, для пространства модели или листа.

02.02.2010 отредактирован под 2010 кад.
Вложения
Тип файла: rar move-properties.rar (2.5 Кб, 713 просмотров)

Последний раз редактировалось Supermax, 02.02.2010 в 20:22.
Supermax вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Автор темы   Непрочитано 24.09.2008, 15:02
#59
Supermax

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


Makswell, Отключать-то отключает, но не тогда, когда мне надо. Я ж говорю, идет отсчет 10-ти минутного интервала. Закончился интервал - сохранило и опять читает системную переменную (если вообще ее читает). Я изменил время на 1 с 10, а сохраняет по пржнему 10.

Про
Цитата:
Автосохранение отключается, если открыт Редактор блоков
Нагло лгут, не верь. Я чтобы написать все эти функции раз 1000 набирал разные выражения в ком. строке. И что ты думаешь? Набираю, набираю, БАЦ! все как корова языком слизала и читаю в эхе
Цитата:
Automatic save to C:\Documents and Settings\АНДРЕЙ\Local
Settings\Temp\4_1_1_6500.sv$ ...

Вот на счет ActiveX не пробовал, может и подействовать. Сейчас поэксперементирую.

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

Есть еще одна проблема, тоже с сохранением. Многие действия автоматически вызывают запрос на сохранение данных блока. Не только выход из редактора. Вот их тоже не плохо было бы контролировать.
Supermax вне форума вставить имя Обратить внимание модератора на это сообщение  
 
Непрочитано 24.09.2008, 15:44
#60
Shoorup

Автоматика и Телемеханика на железнодорожном транспорте
 
Регистрация: 16.09.2006
Минск
Сообщений: 1,582
Отправить сообщение для Shoorup с помощью ICQ Отправить сообщение для Shoorup с помощью Skype™


Supermax, почему-то сразу не догадался или "не догнал" как использовать шаблон из поста 45. Здорово придумано!

...но чтото не получается. Запутался.
Вот создал блок. Пока пытаюсь свзяать 2 параметра видимости. Но не получается убрать цифры 12,22,32... когда включен Т в другом параметре видимости. И 13,23,33,43 когда Ф включен
Вложения
Тип файла: dwg
DWG 2004
dwgKO_05!!!.dwg (397.0 Кб, 4213 просмотров)
__________________
Поезд который устал от ржавого здравомыслия рельсов...

Последний раз редактировалось Shoorup, 24.09.2008 в 16:46.
Shoorup вне форума вставить имя Обратить внимание модератора на это сообщение  
Ответ
Вернуться   Форум 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

|| Главная || Каталог САПР || Тендеры || Публикации || Объявления || Биржа труда || Download || Галерея ||
|| Библиотека || Кунсткамера || Каталог предприятий || Контакты || Файлообменник || Блоги ||


Размещение рекламы