|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Alexander250505, жму пять! Вот именно так и надо делать "дополнительные параметры видимости" в динамическом блоке. Удивляет скудность фантазии тех, кто пытается это сделать программным способом, оперируя с нестабильными недокументированными возможностями. 30 с лишним страниц обсуждения различных проблем, автор уже сам давно это дело забросил, и все равно кто-то пытается это использовать. Видать, у людей куча ненужного свободного времени
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Autodesk Authorized Author Регистрация: 16.05.2006
Санкт-Петербург
Сообщений: 14
|
К несчастью, автор темы недавно ушел из жизни:
http://isicad.ru/ru/articles.php?article_num=18968 Пусть земля ему будет пухом. |
|||
|
||||
Регистрация: 02.02.2017
Сообщений: 1
|
Доброго времени суток!
Начал изучение данной темы по созданию расширенных динамических блоков. В общем и целом все уже давно разжевано и обкатано, поэтому в основном я разобрался. Уважаемые форумчане, прошу помочь разобраться в некоторых нюансах. Выкладываю свою модель необходимого мне блока. Создан динамический блок стандартными средствами автокад 2010 с тремя видимостями: вид 1, вид 2, вид 3, которые переключают три разноцветных прямоугольника. В этом блоке ещё создан дополнительный параметр Visibility Set с видимостями: VS 1, VS 2, которые выбирают фигуры: круг или квадрат. Все работает и переключается как надо. Вопрос: как сделать, чтобы дополнительные параметры Visibility Set отключались (были невидимы) при выборе вида 3, а при выборе вида 1 и вида 2 оставались? С уважением, Иван. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Подскажите, пожалуйста, если кто знает, как получить список объектов текущего состояния видимости в динамическом блоке? Есть динамический блок, в нем присутствуют статические блоки в разных состояниях видимости. Нужно подсчитать все дочерние блоки, которые видны на экране.
Взрывать или преобразовывать его (копию) в статический - это вариант, конечно, но как-то уж слишком он брутфорсен, планируется обработка больших количеств. Ковырял через ActiveX, но там явно не добраться до такой информации. Остается надежда на dfx-коды, но как-то уж для меня этот метод не слишком дружелюбен, и я обращаюсь к нему редко. Перед тем, как лезть в дебри и писать код, решил узнать, может, кто-то уже решал такую задачу или просто натолкнет на мысль или любую вспомогательную информацию. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
В смысле, посчитать общее количество всех одинаковых блоков и разделить на количество вариантов параметра видимости?
Ну просто в одном варианте видимости может быть два одинаковых блока, а в другом - три. Делитель везде разный будет. Плюс и количество параметров видимости может быть не равным одному (спасибо Supermax'у). Отсюда и вопрос. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Точнее не видимости. Если можно на лиспе достучаться до содержимого промежуточного анонимного блока *U - то в этих блоках как раз будут видимые в данном состоянии субблоки и примитивы находиться. Акад напрямую то не умеет динблоки отображать. Т.е. посчитали сначала количество вставок с привязкой к определениям анонимных блоков, потом по этому списку сформировать список субблоков, умножая на количество вставок.
|
|||
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,992
|
Дополню Сергей812 Достучаться можно (dxf группа 2 или свойство Name будет содержать имя анонимного блока, а EffectiveName - человеческое)
Цитата:
Т.е. нужно "собрать" блоки с включенной видимостью
__________________
Как использовать код на Лиспе читаем здесь Последний раз редактировалось VVA, 07.07.2017 в 11:02. |
|||
|
||||
HVAC (ОВК) Регистрация: 08.10.2005
Ukraine, L'viv
Сообщений: 822
|
Здравствуйте.
Не получается в данном блоке добавить дополнительный параметр видимости. «Command: (LOAD "D:/LISP/visibility/visibility-ADD2.fas") C:HIDEOBJ Command: (Visibility_add) Укажите место расположения Visibility Set: ; error: bad argument type: lentityp nil» Проблема именно с этим блоком. Win 7 x 86, Autocad 2011 |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
Дополнение к посту №630 - пример получения списка видимых примитивов в динамическом блоке на .Net. Не тестировал на текущий момент, просто для информации.
|
|||
|
||||
HVAC (ОВК) Регистрация: 08.10.2005
Ukraine, L'viv
Сообщений: 822
|
Странно. У меня не получилось.
В Вашем варианте блока (с добавленной видимостью) все равно выскакивает та же ошибка "Command: (visibility-up) Выберите параметр требуемого Visibility Set: ; error: bad argument type: lentityp nil" p/s вечером попробую на другом ПК Win7x64 |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
VVA, Сергей812, спасибо за помощь и прошу прощения за долгое молчание по моему вопросу - большой аврал, не было времени все хорошенько проверить и разобраться. Пришлось для текущего горячего проекта идти "в лоб" - переконвертировал все блоки (точнее, копии) в статические и собрал списки объектов из них, произведя подсчет вложенных блоков. Около сотни блоков отрабатывает примерно секунд за пять. Я думал, будет хуже. И в статическом блоке мне не удалось найти все объекты из всех видимостей, применив к нему функцию Алексея (см. ссылку на функцию ниже), я получил список объектов текущего состояния видимости - как раз, то, что требовалось.
Однако я не оставил попыток разобраться с изначально желаемым подходом. Идея мне понравилась, но реализовать ее мне не удалось. Использовал функцию Алексея отсюда. Она по указанному вхождению блока возвращает список всех элементов из всех видимостей. То есть, она обращается не к описанию блока *U, а к описанию самого динамического блока. Пока пытаюсь понять, как получить список объектов не описания, а вхождения блока и результатами еще похвастаться не могу. Vombat, действительно странно. (visibility-up) у меня тоже отработало нормально. Но ведь его действие распространяется только в текущем режиме редактирования блока. Смысла нет прикладывать файл с "апнутым" сетом. Если нужно срочно и сможете легко объяснить, какие объекты надо убрать из этого визабилити сета, то я могу это сделать. Правда текстом это объяснить, полагаю, если и не невозможно, то как минимум, трудно. Можно, выделить неким особенным цветом то, что нужно из него удалить. |
|||
|
||||
Регистрация: 10.08.2013
Сообщений: 11,052
|
skkkk, самое интересное:
Цитата:
|
|||
|
||||
HVAC (ОВК) Регистрация: 08.10.2005
Ukraine, L'viv
Сообщений: 822
|
результат идентичен. Та же ошибка
Спасибо, но не надо, так как после этого я уже не смогу редактировать (дорабатывать) блок, а это творческий процесс и он бесконечный. Сделал по старинке через Lookup и масштабирование (пришлось ввести дополнительные параметры). Через Visibility Set было бы проще Последний раз редактировалось Vombat, 27.07.2017 в 20:07. |
|||
|
||||
Регистрация: 16.09.2010
Сообщений: 24
|
Добрый день. Необходима помощь. Пытаюсь создать рамку с несколькими параметрами видимости: для основной надписи, для рамки сквозной нумерации и для дополнительной графы слева. Пробовал это сделать в AutoCAD 2013, 2016 и 2018. Всё делаю как показано в в этом видео. https://www.youtube.com/watch?v=3VWoHxLD8Lc
Для основной рамки использую 4 видимости: для блока со штампом по форме 3, по форме 4, по форме 5 и по форме 6. Для сквозной нумерации 2 видимости: показывать или не показывать сквозную нумерацию. По итогу получается, что в режиме по умолчанию можно менять виды штампов по отдельности и показывать/не показывать сквозную нумерацию. Но когда в режиме отсутствия нумерации пытаюсь перейти на другой штамп, то у меня показывается штамп по форме 3, или все сразу (такое тоже бывает). И когда перехожу в другие виды штампов, то появляется рамка нумерации, хотя сама рамка стоит в режиме нет (не отображать). Делаю вроде всё по инструкции. Сначала добавляю параметр видимости VSPadd. Потом перехожу на него VSPSet. Убираю объекты штампов основной надписи командой VSPDelsel. В чём может быть проблема? Что же я делаю не так? Есть ли более подробная инструкция, как с этим приложением работать? За ранее благодарен помощи. ----- добавлено через ~7 мин. ----- Пытался делать по этой схеме, но до конца так и не понял, что к чему и в каком порядке. Цитата:
|
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Black Diamond, полагаю, что предварительно нужно вновь создаваемые параметры видимости очистить от всех объектов с помощью функции (Visibility_clear). Потом активировать этот параметр функцией (visibility-up) и уже после создавать состояния видимости и назначать им соответствующие объекты.
|
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
как с помощью 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 |