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

Вернуться   Форум 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.
Просмотров: 362986
 
Непрочитано 01.07.2009, 12:53
#401
Vombat

HVAC (ОВК)
 
Регистрация: 08.10.2005
Ukraine, L'viv
Сообщений: 822


Цитата:
Сообщение от Supermax Посмотреть сообщение
Макрос по перемещению свойств в списке свойств блока меню Properties, для пространства модели или листа.
Программа прелесть, с большинством блоков справляется. Но к сожалению не со всеми. Выдает:

Command: (load "move-properties.fas")
Select object: (move-properties)
Can't reenter LISP.
*Invalid selection*
Expects a point or Last
Select object: ; error: bad argument value: non-negative: -1

Вы не подскажите в чем проблема?
Vombat вне форума  
 
Непрочитано 01.07.2009, 13:05
#402
Кулик Алексей aka kpblc
Moderator

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


Потому что сначала надо объект выделить, и только потом уже перемещать свойства.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 01.07.2009, 13:44
#403
ТуПик


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


Добрый день,
Правильно ли я понял что при установки нескольких параметров visibility всё равно в один момент времени может быть активирован только один набор одного из параметров visibility. Мне нужно чтобы наборы нескольких параметров visibility работали как маски и при задейсвовании нескольких параметров visibility видились только те объекты которые входят в выбранные наборы всех параметров visibility.
ТуПик вне форума  
 
Непрочитано 01.07.2009, 13:50
#404
Vombat

HVAC (ОВК)
 
Регистрация: 08.10.2005
Ukraine, L'viv
Сообщений: 822


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Потому что сначала надо объект выделить, и только потом уже перемещать свойства.
Я его и выделяю. Вот посмотрите пожалуйста.
Вложения
Тип файла: dwg
DWG 2004
1.dwg (55.6 Кб, 3393 просмотров)
Тип файла: rar 2.rar (138.3 Кб, 127 просмотров)
Vombat вне форума  
 
Непрочитано 02.07.2009, 06:36
#405
Volodich

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


ТуПик, если честно как-то непонятно объяснил. По-моему все так и работает как тебе надо... Приведи, пожалуйста, конкретный пример.
tovdi, у меня с твоим блоком еще круче:
Я нажимаю на кнопку move_properties, выбираю блок, вылезает окошечко со списком свойств, я тыкаю в любое свойство, окошко закрывается и вылезает это:
Цитата:
Команда: (load "move-properties.fas")
Выберите объект: ; ошибка: неверное значение аргумента: неотрицательное: -1
При этом я тут же открываю свой файл со своим блоком и все прекрасно работает.
Обратитесь к разработчику
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит...
Volodich вне форума  
 
Непрочитано 02.07.2009, 10:17
#406
ТуПик


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


Volodich,
Цитата:
ТуПик, если честно как-то непонятно объяснил. По-моему все так и работает как тебе надо... Приведи, пожалуйста, конкретный пример.


Привожу пример
Дано матрица обектов 3 на 3

1 2 3
4 5 6
7 8 9

первый парамтр имеет в наборах только столбцы из матрицы
пример
2
5
8

второй параметр имет в наборах только строки из матрицы
пример

4 5 6

Мне нужно чтобы при установке в обойх параметрах видимости наборов приведённых в пример отображался только

5

теперь понятно?
Извините если тяжело обясняю.
ТуПик вне форума  
 
Непрочитано 02.07.2009, 10:30
#407
Vombat

HVAC (ОВК)
 
Регистрация: 08.10.2005
Ukraine, L'viv
Сообщений: 822


Цитата:
Сообщение от Volodich Посмотреть сообщение
tovdi, у меня с твоим блоком еще круче:
Я нажимаю на кнопку move_properties, выбираю блок, вылезает окошечко со списком свойств, я тыкаю в любое свойство, окошко закрывается и вылезает это:

При этом я тут же открываю свой файл со своим блоком и все прекрасно работает.
Обратитесь к разработчику
С конкретно этим блоком именно то что Вы написали и происходит (видео 2.rar), в то время как с другими блоками все отлично работает.
Блок не сложный, его можно переделать по новой, но хотелось бы разобраться, в чем именно загвоздка, дабы не повторять подобного рода ошибок в дальнейшим.
Vombat вне форума  
 
Непрочитано 02.07.2009, 21:01
#408
Volodich

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


ТуПик, да уж... Понятно. Но по-моему такое сделать не получится. Один элемент может принадлежать только одному параметру видимости. Когда мы создаем новый параметр видимости, его сразу же очищаем от всех элементов. Иначе получается путаница. Поэтому то что ты хочешь, сделать не выйдет. Вот только ума не приложу, куда можно это приспособить...
tovdi, пиши Supermax'у в личку, может ответит. Что-то его не видно на форуме.
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит...
Volodich вне форума  
 
Автор темы   Непрочитано 03.07.2009, 18:13
#409
Supermax

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


tovdi, этот блок испорченный. Почему? - не разбирался пока, но как-нибудь разберусь. Возможно появится способ защиты блока от перестановок. Хотя зачем и кому это надо не представляю.

ТуПик, для того, чтобы сделать так, как ты хочешь, надо делать не просто динамический блок, а программно-динамический.
Автокад при переключении представления сначала выключает видимость всем элементам блока, вообще всем, а затем включает видимость элементам, которые попали в список включенных в текущих представлениях во всех visibility set-ах.
Таким образом у тебя будут видны

_2
456
_8

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

Господа, внимательно читайте тему. Я уже давно все разжевал.

Последний раз редактировалось Supermax, 03.07.2009 в 18:18.
Supermax вне форума  
 
Непрочитано 04.07.2009, 19:37
#410
Volodich

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


Цитата:
Сообщение от Supermax Посмотреть сообщение
Volodich , элементы могут принадлежать и нескольким visibility set-ам, но тогда если хоть в одном из текущих представлений он включен, то и будет виден.
Я это знаю и помню, сам с этим столкнулся. Поначалу не понимал, почему все не так работает как мне надо. Просто решил так сказать чтобы не путать человека. Потому что все равно вряд ли найдется случай, когда надо будет один элемент вставлять в несколько параметров видимости. Хотя проектировщики на всякое горазды )))
__________________
Неважно, что что-то идет неправильно. Возможно, это хорошо выглядит...
Volodich вне форума  
 
Непрочитано 13.07.2009, 09:23
#411
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


Помогите/научите плз.

Второй раз пытаюсь подобраться к нескольким параметрам видимости, в прошлый раз хоть что то получалось теперь упёрся в то же. (

(кстати есть CUI файл менюшки по вашим иконкам и макросам)

Сильно не ругайте, но решил что если не отпишусь так и не разберусь. В пятницу всё настроение испоганил отказами работать видимостей...

(2008 акад рус) :
Видимости получилось победить но они управляют сразу всеми объектами. Когда из одной видимости удаляю все объекты, потом пытаюсь присоеденить Visibility-ADD2.fas вот что получается. (

Цитата:
Команда: (load "Visibility-ADD2.fas") SOOTVETSTVIE
Команда: (element-sel-current-insert) найдено: 1
_BSAVE
Команда: nil
Текст команды макроса. :
Цитата:
^C^C(load "Visibility-ADD2.fas") (element-sel-current-insert)
Отккуда Сохранение блока выползает не понимаю.

Скачал по новой "Visibility-ADD2.fas". Всеравно не хочет присоединять.

Втрой блок кидаю в коотром внутри две единички. В первой видимости две единички одну видно только по тому что убрал вторую на обеих видимостях. Со второй было так же и они друг друга отключали. Попробывал удалить все объекты - удалил но присоеденить не могу. (В прошлый раз застрял на этом же месте) Видимости перекрывали друг друга, но похоже тогда не разобрался какая команда не работала)
Вложения
Тип файла: dwg
DWG 2007
Второй блок, не присоеденяется объект.dwg (70.0 Кб, 3369 просмотров)
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.

Последний раз редактировалось Juss_00, 13.07.2009 в 10:57.
Juss_00 вне форума  
 
Автор темы   Непрочитано 13.07.2009, 18:53
#412
Supermax

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


Здесь выложен макрос Kpblc-а по управлению видимостями
http://forum.dwg.ru/showpost.php?p=292468&postcount=147
открыть блокнотом, прочитать и использовать для включения видимости всем элементам блока в редакторе блока. Включает видимость тем элементам, которые выброшены из всех visibility set-ов.
После того, как ты включишь видимость всем элементам, указывай на те элементы, что тебе нужны и они перенесутся в текущий visibility set.
Элементы не принадлежащие ни одному visibility set называются "свободными элементами" если у них видимость включена, то они всегда будут видны, а если выключена - не видны.
Когда устанавливается новый visibility set, то в него попадают все элементы блока. Все до единого, включая и "Свободные". Эти "Свободные" тут же перестают быть "свободными", так, как попадают в новый visibility set. Есть еще функция, очищающая visibility set от всех элементов, но не удаляющая из него дин. параметры. Есть, которая вообще все удаляет. Есть, которая устанавливает видимость в группе представлений и многое еще.
У меня тоже он не захотел присоединяться (потом разберусь) скопировал в буфер и вставил в чистый файл с оригинальными координатами, а от туда опять в блок тоже с оригинальными координатами.
Вложения
Тип файла: dwg
DWG 2004
к, присоеденяется объект.dwg (36.2 Кб, 3383 просмотров)

Последний раз редактировалось Supermax, 13.07.2009 в 19:14.
Supermax вне форума  
 
Непрочитано 14.07.2009, 01:33
#413
kor99


 
Регистрация: 28.02.2007
Riga
Сообщений: 19


Если можно, я тоже об этом.
Во первых - большое спасибо.
Во вторых - я тоже никак присоеденить объекты к visibility set не могу. Я удаляю только ненужные а не все.

Сделал один блок, но если копировать его в файл в котором такой блок уже есть, то он портится. В чём может быть проблема?
Вложения
Тип файла: dwg
DWG 2007
SBLK_3.dwg (137.5 Кб, 3361 просмотров)
kor99 вне форума  
 
Непрочитано 14.07.2009, 09:04
1 | #414
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


Supermax, премного благодарен. Хоть пока и не очень понятно но думаю разберусь. (За обедом)

Получилось, но на уровне танцев с бубном.

Как я понял:
Лисп Крыса прячет объекты где то в чертеже как будто их и нет. Достать тока его же лиспом и можно ))
1) Делаем сколько угодно Видимостей
2)Чистим все видимости от всего. (на сколько понял можно просто от объектов)
3)Выключаем видимость (крыс-макросом) всем объектам кроме тех что будут относится к активной видимости.
4) "Visibility-ADD2.fas" не присоединяет, по этому сделаю макрос на копирование сточкой 0 удаление и вставкой на от же место. (по сути и получится присоединить объекты) Но как я понимаю при такой работе Дин Свойства можно накладывать только в активной видимости. Значит блок нужно заранее хорошо продумать.
5) Включаем видимости (макрос-крыса) Активизируем другу видимость. И Погнали дальше с 3 пункта...
Как то так? Иль это бред прошлого века?

п.с. В сложные блоки (с полями и расчётом) пока вставлять не поспешу.
П. П. С. Большое спасибо Supermax !!! Вопрос о второй видимости просился как только первую увидел. И даже если это не приживётся из за каких ни будь их (блоков) особенностей это уже сильный толчок.

А подскажите где прочесть про то зачем вы вставляетете параметр выбора в блоках с видимостями. (Никогда не использовал и зачем не понимаю) Эт тож самое что таблица блока в 2010?

Вобщем вот такой вот получился с вашими советами. Заместо "Visibility-ADD2.fas" стал использовать
Код:
[Выделить все]
^C^C_.copybase;0,0,0;_.erase;_.pasteclip;0,0,0
А так, кое что получилось ))
Вложения
Тип файла: dwg
DWG 2007
1234.dwg (179.6 Кб, 3439 просмотров)
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.

Последний раз редактировалось Juss_00, 14.07.2009 в 16:58.
Juss_00 вне форума  
 
Автор темы   Непрочитано 15.07.2009, 11:47
#415
Supermax

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


kor99, я починю скоро функцию добавления элемента в текущий visibility set. Пока копированием попользуйтесь.
Цитата:
Сделал один блок, но если копировать его в файл в котором такой блок уже есть, то он портится. В чём может быть проблема?
В Автокаде нельзя вставлять одноименные блоки! Если в базе рисунка уже есть блок с таким именем, то вставится он, а не из буфера. Редактируй наименование блока.

Juss_00,
Цитата:
Как я понял:
Лисп Крыса прячет объекты где то в чертеже как будто их и нет. Достать тока его же лиспом и можно ))
Ничего он не прячет. Просто в каждом элементе есть свойство "видимость", если там 1 - то он видим, а если 0 - то не видим. Элемент никуда не девается, просто не прорисовывается. Слой - тоже элемент и тоже имеет свойство видимости, но если видимость слоя выключена, то не зависимо от того, выключина ли видимость элемента, он прорисовываться не будет.
Работает макрос везде, не только в пространстве редактора блоков.
Почему AutoDesk не афиширует тот факт, что элементам можно видимость вкл\выкл делать - наверное не может делать "серую видимость" как в редакторе блоков, всей модели. Но "Включить все" и откат назад - решает эту проблему.
Можно сделать надстройку на макрос Kpblc-a. Нажимаешь кнопку "Включить избранное" и макрос включает все, просит указать нужные элементы, запоминает их, откатыват назад в состояние когда все не было включено и затем включает видимость выбранным элементам.

Visibility-ADD2.fas - это не одна функция, а целая куча!

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

Цитата:
... И даже если это не приживётся из за каких ни будь их (блоков)...
Почему же не приживётся?
http://discussion.autodesk.com/forum...pa?forumID=154
Supermax вне форума  
 
Непрочитано 15.07.2009, 13:17
#416
kor99


 
Регистрация: 28.02.2007
Riga
Сообщений: 19


Цитата:
Сообщение от Supermax
В Автокаде нельзя вставлять одноименные блоки! Если в базе рисунка уже есть блок с таким именем, то вставится он, а не из буфера. Редактируй наименование блока.
Если я вставляю другой дин. блок в файл в котором такой блок уже есть, наверно вставляется блок которий уже есть в базе рисунка, я не спорю, но он вставляется с мне нужними свойствами. Мне не нужно вставить блок, опять выделять его и выбирать дин. свойства.
Например если нужно вставить готовий узел из другово рисунка.
kor99 вне форума  
 
Непрочитано 15.07.2009, 14:10
#417
Juss_00

Инженер
 
Регистрация: 11.12.2007
Москва
Сообщений: 295


ПРошу прощения, имел в виду Лукапы. Вроде нашол, прочту седня.
__________________
Live as though tomorrow you will die,
Study as though you will live eternally.
Juss_00 вне форума  
 
Автор темы   Непрочитано 16.07.2009, 14:42
#418
Supermax

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


Внимание, обновление!
Исправлена ошибка в функции (element-sel-current-insert)
Скачайте и замените Visibility-ADD2.fas
http://forum.dwg.ru/showpost.php?p=292452&postcount=144

Прога пошла в мир!
Очень хороший пример использования нескольких групп видимости
http://discussion.autodesk.com/forum...36387&tstart=0

Последний раз редактировалось Supermax, 16.07.2009 в 15:18.
Supermax вне форума  
 
Непрочитано 16.07.2009, 16:20
#419
kor99


 
Регистрация: 28.02.2007
Riga
Сообщений: 19


Большое спасибо.

Но мне кажется что теперь почему то не работает функция (visibility-ap)
kor99 вне форума  
 
Автор темы   Непрочитано 16.07.2009, 18:01
#420
Supermax

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


Если кажется - креститься надо.
Supermax вне форума  
Ответ
Вернуться   Форум 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