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

Вернуться   Форум 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.
Просмотров: 361731
 
Непрочитано 17.01.2013, 17:35
#521
Volodich

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


Цитата:
Сообщение от gumel Посмотреть сообщение
Добрый день. Пытаюсь сделать блок с несколькими видимостями.

Что делаю не так? ACAD 2006

1. загружаю visibility-ADD2.fas
2. редакторе блоков в командной строке пишу "visibility_add"
3. Unknown command "VISIBILITY_ADD". Press F1 for help.

и другой вопрос.
при попытке отредактировать некоторые блоки (скачанные с этой ветки форума), выходит сообщение: Block contains proxy objects. Cannot edit block in Block Editor.

Чего делать то... Где почитать?

p.s. Спасибо автору за его труды.
Привет!
по поводу п.3 попробуй писать не "visibility_add", а "(visibility_add)" - в скобочках. Не помню в чем разница, но возможно сработает. К сожалению, я потерял тот свой акад, где все эти кнопочки были настроены и не могу точно посмотреть. Но блоки, созданные с помощью этой утилитки очень успешно использую!
Насчет редактирования других блоков ничего не могу сказать, нужен конкретный пример нерабочего блока.
А насчет того что в 2006 акаде динблоки в зачаточном состоянии... Не увидел принципиальных различий с 2009 акадом, например. Про параметризацию 10го не говорю.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит...
Volodich вне форума  
 
Непрочитано 10.02.2013, 21:15
#522
vavalexus


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


Здравствуйте!

Только недавно для себя открыл этот замечательный плагин для расширения visibility в динблоках. Но к сожалению, камнем преткновения для меня стало то, что если нескольким visibility set' ам принадлежат общие элементы, то они будут сбрасывать друг-друга (об этом писалось в мануале).
Вот простой пример того, что мне нужно сделать.
Имеется 4 параллелепипеда:
1x1 h=1
1x1 h=0.7
1x0.5 h=1
1x0.5 h=0.7
Я создаю 2 visibility set.
Один отвечает за габариты (Visibility states: 1x0.5; 1x1), второй за высоту (Visibility states: h1; h0.7). Возможно ли сделать, чтобы можно было переключать оба тумблера, и при этом они не сбрасывали друг друга? Те в конченом итоге с помощью 2х тумблеров должен быть выбран только один параллелепипед. А в данном случае, из-за принадлежности обоим сетам одинаковых элементов они друг друга сбрасывают.
Вариант с 1 Visibility Set и 4 Visibility States не предлагать, тк задача не настолько тривиальна как приведенный пример.
ПС. У меня автокад механикл 2006, и на нем работает плагин версии 1.1. Все плагины версии выше вылетают, либо при создании visibility set блокируется меню редактора visibility states. Так и должно быть?
vavalexus вне форума  
 
Непрочитано 11.02.2013, 08:58
#523
Volodich

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


Честно говоря я очень давно не работал с несколькими видимостями. Но по-моему они действительно "сбрасывают" друг друга. Значит, надо пытаться использовать то что есть. Не "пересекать" их. По-моему они и созданы-то были для того чтобы можно было независимо управлять разными элементами блока.
Опишите свою задачу и может быть мы что-нибудь полезное посоветуем.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит...
Volodich вне форума  
 
Непрочитано 11.02.2013, 11:32
#524
vavalexus


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


Здравствуйте.

Картинка во вложении. В ней видно семейство деталей (на картинке изображена часть деталей) с меняющимися параметрами:
высота h=0.1; 0.3; 0.5; 0.7; 1.0; 1.1
габариты d=1x1; 1x0.5; 0.5x0.5
видимость для каждой из стенок: v= стена видима; стена не видима

Задача. Собрать это в единый динблок в котором будут следующие тумблеры (ручки):
тумблер высоты h
тумблер габарита b
тублеры видимости на каждой из стен v
На выходе должна получиться всего одна деталь. Добавить параметры видимости не проблема, но проблема в том, что у разных видимостей есть общие элементы, и в силу этого видимости будут сбрасывать друг друга. Те выбрав вариант видимости в первом параметре высоты все будет хорошо, но как только я выберу следующий параметр и изменю его видимость, например изменю габарит, это повлечет за собой сброс первого параметра. В итоге габариты станут верными, но выбранная ранее высота сбросится. То же и с видимостью стен, они тоже сбросят параметры высоты или габарита.
Как вариант я вижу (но еще не пробовал) прописание видимостей параметров h и d для индивидуальной детали, а не для всего семейства, отключение для них ручек видимости (чтобы для варианта, например 1х1, не показывались тумблеры варианты 1х0.5; 0.5х0.5 и тп) и управление видимостями через Lookup. А для видимостей стен уже оставить visibility. Но как представлю сколько будет вариантов выбора через lookup...
1. 1х1, высота 1
2. 1x1, высота 0.7
3. 1х1, высота 0.5
...
7. 1х0.5 высота 1
8. 1х0.5 высота 0.7
...
15. 0.5х0.5 высота 1
...
21. 0.5х0.5 высота 0.1

В выборе такого количества вариантов запутаться можно. А если бы видимости не сбрасывались было бы все просто волшебно. Но видно не судьба. Или может подскажете более "гуманный" способ?

PS. Вопрос еще такого плана. В моей базе габариты меняются с помощью stretch, тк блок состоит из 3D полилиний. В 2006 автокаде они рендеряться при правильном угле сглаживания как параллелепипеды. Но вот начиная с 2007 новый рендер рендерит их уже как цилиндры (если заданы ширина и высота полилиний). Угла сглаживания там нет. Выход только использовать солиды. Но солиды не поддаются стретчу. В пространстве модели легко их поменять за грипы, но вот в дин блоках нет параметра управления их длиной. Не знаете как кроме visibility динамически менять размер солидов (обычных параллелепипедов)?
Миниатюры
Нажмите на изображение для увеличения
Название: Podiums.jpg
Просмотров: 129
Размер:	268.0 Кб
ID:	96440  
vavalexus вне форума  
 
Непрочитано 11.02.2013, 12:42
#525
Volodich

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


Я-то сделал бы по тому варианту, который Вы уже описали - видимости на сторонах, а изменение H и D - растягиванием через lookup.
К сожалению, я не черчу в 3Д, поэтому не понимаю проблемы полилиний или солида и рендера. Может быть эту проблему возможно решить и тогда сделать блок по тому варианту как я описал. Попробуйте с этой проблемой в другую тему (куда-нибудь по 3Д черчению) и тогда вопрос решится.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит...
Volodich вне форума  
 
Непрочитано 11.02.2013, 13:17
#526
vavalexus


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


Спасибо за ответ.
У меня просто всегда была мечта свести количество элементов базы к минимуму. До 2006 автокада не было динблоков и база была просто огромна. В 2006 я стал активно пользоваться динблоками но был ограничен одной видимостью, и комбинировал ее с lookup. Но с видимостями стен нереально было использовать lookup из-за количества вариантов. Ведь только вариантов видимостей стен было бы 16 (по 2 варинта на каждую стену те 2^4=16), а перемножить их на высоты и габариты 16*3*6=288 вариантов. С открытием для себя данного плагина затеплилась надежда. Но и тут появилось очень жесткое ограничение по использованию общих элементов. Но все же задача упростилась.
Думаю в моем случае оптимально все-таки создать 3 элемента, по габаритам: 1х1; 1х0.5; 0.5х0.5, и для каждого с помощью lookup сделать выбор высот, а с помощью visibility выбор видимостей для стен. Это все равно гораздо лучше чем было. Вариант одного динблока это видно утопия, да и вес такого блока будет неоправданно велик. Или может спросить у Supermax, может он подскажет какой-то вариант?

Еще вопрос по команде:
исключение блоков с помощью команды (element-sel-current-del) работает как положено, но вот обратная ей команда (element-sel-current-insert) почему то не срабатывает (версия плагина 1.1). Те раз по ошибке удалив из набора видимости элемент, вроде как можно вернуть его, но при использовании (element-sel-current-insert) и указании данного объекта он в набор не попадает. Более поздние версии плагина у меня не работают, при добавлении 2го набора вываливается фатал еррор, или блокируется диспетчер видимостей.
PS. Можно ли как-то при атозагрузке макроса отключить сообщение "This program works only in the block editor space"?

Спасибо!
vavalexus вне форума  
 
Непрочитано 12.02.2013, 06:57
#527
Volodich

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


Да меня-то за что благодарить, создатель программы молодец ))
Попробуйте по вопросам программы спросить у Supermax'а. Он человек отзывчивый, хоть иногда и резковатый
Программа должна работать, у меня по-моему все добавлялось этими функциями. Там надо очень внимательно быть при переключении рабочего visibility set. Но опять же, я давно работал, на 100% сказать не могу. Все-таки лучше к Supermax'у.
Я так и не понял почему ширину нельзя как и высоту менять с помощью растягивания, чтобы получился один блок, ну да это неважно )))
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит...
Volodich вне форума  
 
Непрочитано 12.02.2013, 10:22
#528
Shoorup


 
Регистрация: 16.09.2006
Минск
Сообщений: 1,587
<phrase 1= Отправить сообщение для Shoorup с помощью Skype™


Всетаки динблоки это инструмент для малой автоматизации. Если речь идет о большой базе то можно готовится к большим тормозам, но если такие тормоза не помеха то можно делать. Много visibility тоже не выход т.к. уже писалось будут сбрасывать друг друга. Как вариант использовать масштаб в качестве "параметра видимости" который не сбрасывается, но я такой фишкой пользуюсь когда блок простенький (зато многофункциональный). Еще один из вариантов автоматизации это таблицы, но они будут работать только с 2010 акада.

Пример
__________________
Поезд который устал от ржавого здравомыслия рельсов...
Shoorup вне форума  
 
Непрочитано 12.02.2013, 11:24
#529
vavalexus


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


Всем привет!
Цитата:
Сообщение от Volodich Посмотреть сообщение
Я так и не понял почему ширину нельзя как и высоту менять с помощью растягивания, чтобы получился один блок, ну да это неважно )))
Потому что это относительно сложный 3D блок который состоит из подсборок. В моей нынешней базе блок состоял из полилиний, которые я "стретчил" по XY, а стретча по координате Z в динблоках нет, да и по z не получилось бы, тк там уже есть другие подсборки (стойки по углам) которые меняют высоту. Как итог я пока еще в старой базе меняю размер габарита через стретч, тк перемычки (стенки) и верхняя столешня состоят из полилиний, а видимость сторон меняю через visibility+lookup, а для разных высот уже используются отдельные блоки, что очень не удобно. Плюс к тому же я готовлюсь на переход базы в 2013 автокад, а там полилинии не пройдут, они не правильно рендеряться. Соответственно только солиды, а солиды "стретчу" в динблоках не поддаются.
Цитата:
Сообщение от Shoorup Посмотреть сообщение
Как вариант использовать масштаб в качестве "параметра видимости" который не сбрасывается, но я такой фишкой пользуюсь когда блок простенький (зато многофункциональный)...Еще один из вариантов автоматизации это таблицы, но они будут работать только с 2010 акада.
Масштаб не подойдет. Как я написал блок сложный и в нем не должны масштабироваться элементы. Вес блока не важен, у меня нет огромного количества копий блоков, максимум десяток-двадцаток на чертеж.
Цитата:
Сообщение от vavalexus Посмотреть сообщение
Как вариант я вижу (но еще не пробовал) прописание видимостей параметров h и d для индивидуальной детали, а не для всего семейства, отключение для них ручек видимости (чтобы для варианта, например 1х1, не показывались тумблеры варианты 1х0.5; 0.5х0.5 и тп) и управление видимостями через Lookup. А для видимостей стен уже оставить visibility. Но как представлю сколько будет вариантов выбора через lookup...
Когда писал сразу не осознал. А попытался сделать и ничего не вышло. Ведь тот же параметр h и d это видимость определенного элемента, например "подиума 1х1, h=1" стенам которого я также пытаюсь задать набор видимости. Те опять получаются общие элементы.
Во вложении блок что я нарисовал. Задача вроде как проста, но у меня никак не получается. В общем один тумблер отвечает за габариты и высоты, а второй за видимость стен (пока сделал только левую). Я подиумы раскидал для наглядности, а вообще они будут в одном месте собраны. Попробуйте поклацать левую ручку, а потом правую. Нажатием на off стена выключится как нужно для конкретного размера подиума, но включив ее на on произойдет сбой. Причем, что интересно, off всегда срабатывает корректно.
Мне тут ответили на автодеск форуме, кто знает английский может прочесть здесь. В общем я пробовал создать еще одну зависимость для стен: all, on, off. Думал если off корректно работает при по-умолчанию установленной on, то может если по умолчанию поставить all, то и on сработает В общем, не прокатило. Тут скорее off тоже сбрасывает видимость, и срабатывает для абсолютно всех стен, просто их не видно, в отличии от положения on.

Вот, сделал пока блок (podium h1000 new) со сменой размера через lookup+stretch и visibilities для каждой стенки. Но стретч не прокатит в 2013 автокаде, там нужны будут солиды. А в данном примере, нужно еще поменять высоты, которые тоже нужно менять через visibility.
Вложения
Тип файла: dwg
DWG 2004
Podium.dwg (208.6 Кб, 4852 просмотров)
Тип файла: dwg
DWG 2004
podium h1000 new.dwg (235.9 Кб, 4812 просмотров)

Последний раз редактировалось vavalexus, 12.02.2013 в 20:31.
vavalexus вне форума  
 
Непрочитано 18.03.2013, 15:58
#530
Krovlaf

геология, геодезия
 
Регистрация: 29.05.2009
Хабаровск
Сообщений: 183


Исправте пожалуйста ошибку в файле "кнопки_макросы.doc"
"7. - Сделать указанный Visibility Set текущим.
Макрос: ^C^C(load "Visibility-ADD2.fas") (visibility-ap)" - up
...ups...
пока не сравнил с описанием функции в теме битый час не мог понять - почему у меня макрос не работает...
И там же -
10. - Удалить из текущего Visibility Set-a выбранные объекты (сделать их свободными).[/FONT]
Макрос^C^C(load "Visibility-ADD2.fas") (element-all-current-del)
И описание функции в теме:(element-sel-current-del) - убирает из текущего Visibility Set-a выделенные элементы

Последний раз редактировалось Krovlaf, 18.03.2013 в 16:12.
Krovlaf вне форума  
 
Непрочитано 08.06.2013, 04:54
#531
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 807


Обнаружил неприятную штуку, когда попытался в 2013 каде подредактировать блок с доп. визибли сетами созданный в 2011 каде.
Я конечно знал, что начиная с 2012 каде, уже начались глюки, нельзя создать новый доп. визибли сет, но править вроде было можно. А теперь выяснилось что и править блоки с сетами желательно до 2011 када включительно.

Выложу видео нормальной работы и плохой работы. Расписывать долго, на видео вроде все понятно. Если коротко то, доп. сеты стали сбрасываться от действия другого сета.
Вложения
Тип файла: zip Films.zip (315.1 Кб, 80 просмотров)
__________________
AutoCad 2011 -> AutoCad 2013
Astartes вне форума  
 
Непрочитано 08.06.2013, 13:00
#532
Нефтепроводчик


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


Цитата:
Сообщение от Shoorup Посмотреть сообщение
Еще один из вариантов автоматизации это таблицы, но они будут работать только с 2010 акада.

Пример
Как такое сделать?
Нефтепроводчик вне форума  
 
Непрочитано 08.06.2013, 16:47
#533
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 807


Нефтепроводчик, Визибли сеты здесь не причем. Тебе в тему Мои динамические блоки.
Скачай блок, нажми два раза на таблицу и увидишь как там заполнены данные.
__________________
AutoCad 2011 -> AutoCad 2013
Astartes вне форума  
 
Непрочитано 10.06.2013, 07:03
#534
Volodich

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


Astartes, к Вам вопрос да и ко всем остальным тоже.
Если с 2012 када пользоваться этой полезностью нельзя, интересно, сами автокадовцы-то придумали что-нибудь подобное для нас, пользователей? Уже 14й кад вышел, кто-нибудь в нем копался? Неужели так и не догадались сделать несколько видимостей?
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит...
Volodich вне форума  
 
Непрочитано 10.06.2013, 10:06
#535
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 807


Volodich, В 2013 точно нет.
Пользоваться можно, но начиная с 2012 акада не работает команда AddVisibly.
Можно взять в качестве основы блок с несколькими визибли сетами из первого поста, и изменить на свое усмотрение.
Ну лучше конечно иметь под рукой акад до 2011. Это проблема для тех у кого лицензия с подпиской. У меня тоже через год нужно будет удалить 2011 (пока стоит), как быть дальше пока не знаю.
__________________
AutoCad 2011 -> AutoCad 2013
Astartes вне форума  
 
Непрочитано 10.06.2013, 11:37
#536
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Я на виртуальной машине держу Акад 2011 32бит для visibility и еще некоторых программ.
Там делаю что нужно с блоками, а в 2012 они работают нормально.
__________________
Из честолюбия или чувства долга не может родиться ни чего ценного. А. Эйнштейн
Jonas вне форума  
 
Непрочитано 10.06.2013, 11:58
#537
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 807


Может попросить Супермакса, пусть обозначит цену, за сколько он переделает свою прогу, что бы она работала на поздних версия.
Потом попробую набрать всем форумом.
__________________
AutoCad 2011 -> AutoCad 2013
Astartes вне форума  
 
Непрочитано 10.06.2013, 14:19
#538
Makswell

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


Astartes, 37 постов назад VVA доказал, что это невозможно в принципе. Печально, но это так.
Если бы было возможно, то я бы с удовольствием поддержал затею и не пожалел бы n-ую сумму денег на такое дело. Потому что программы отличные и я ими пользуюсь регулярно. Для этого установлен Автокад 2008.
Makswell вне форума  
 
Непрочитано 13.06.2013, 15:19
#539
Volodich

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


Я тоже не вижу проблемы установить куда-нибудь себе на ноут или жене на ноут или там еще куда-нибудь старый автокад да и работать спокойно.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит...
Volodich вне форума  
 
Непрочитано 13.06.2013, 15:46
#540
Astartes

Котло- и реакторостроение
 
Регистрация: 25.02.2010
Барнаул
Сообщений: 807


Volodich, Вы наверное работаете в частной конторе, где весь софт паленый. Там да, проблем нет.
А там где за этим следят, могут возникнуть проблемы.
Я в свое время пронес на работу портативный 2008, так чисто в резерв. Нашли его у меня. Обошлось все предупреждением, и письмишком, что я нанес конторе ущерб в размере 100 тыс. рублей, если бы контору проверял соответствующий отдел. .
__________________
AutoCad 2011 -> AutoCad 2013
Astartes вне форума  
Ответ
Вернуться   Форум 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