|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как вставить в таблицу динамический блок с параметром видимости и с атрибутами?
Москва
Регистрация: 25.12.2005
Сообщений: 13,627
|
||
Просмотров: 8727
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,236
|
Без проверки, в качестве идеи:
Цитата:
Вставить дин.блок, поменять в нем параметры, получить его имя через vla-get-name (ни в коем случае не vla-get-effectivename) и вставлять это имя. Вхождение удалить.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Привет, Алексей.
Спасибо. Но ведь в твоем коде как раз и используется vla-get-name. У меня программа автоматически подсчитывает и сортирует блоки и определяет их количество по имени. Без учета параметра видимости получается картинка 1 С помощью разработок Lee Mac ( http://www.lee-mac.com/dynamicblockfunctions.html ) я вытаскиваю имена параметра видимости и получается картинка 2 Если же вставить блок в таблицу с помощью твоего кода, то получается картинка 3. Причем, отменить вставку уже невозможно. Эскиз в картинке 1 идентичен эскизу в картинке 3, просто мелко очень. Последний раз редактировалось Profan, 24.02.2016 в 15:16. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Все, вроде бы, хорошо, но:
изображение в таблице отличается от исходного изображения по цвету и по толщине линий. А для некоторых значений видимости и по размеру. Неплохо было бы указывать не таблицу, а ячейку таблицы, поскольку в реальности таблица может содержать много строк. |
|||
![]() |
|
||||
Обновил #4
Когда блок вставляется в ячейку таблицы, то он вставляется на слой таблицы со всеми вытекающими
__________________
Как использовать код на Лиспе читаем здесь |
||||
![]() |
|
||||
Цитата:
При вставке блока в таблицу он вставляется по габариту. Т.е если есть примитивы на отключенных и замороженных слоях, то они все равно участвуют в определении габаритов Добавил удаление примитивов блока на выключенных и замороженных слоях Код:
__________________
Как использовать код на Лиспе читаем здесь |
||||
![]() |
|
||||
идущий по граблям Регистрация: 26.05.2005
Днепройт
Сообщений: 4,853
|
Рассматривался ли вариант разработки двух разных блоков с похожими названиями по каждому виду УГО:
1) собственно для чертежа - динамический со сложными атрибутами; 2) для таблицы условных обозначений - упрощенный, возможно вообще без атрибутов, с обезличенными надписями типа xBTHn.m в виде статических текстовых объектов (с примечанием о том, что x - номер ППК, n - номер шлейфа, m - номер извещателя). Код уважаемого VVA в #8, в принципе, делает то же самое автоматически, но зачастую удобнее и правильнее прорисовать блок для таблицы условных обозначений отдельно и особо (да что я рассказываю, Вы наверняка лучше меня все это знаете)
__________________
Одно меня лишь радует - я это вижу сам! (С) Последний раз редактировалось kp+, 28.02.2016 в 21:05. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
У меня работает собственная программа, которая автоматически проставляет выноску-нумератор типа СС 1 к блокам условных обозначений и автоматически формирует таблицу, показанную в сообщении #3. Если в чертеже присутствуют динамические блоки с атрибутами, то вместо эскиза для соответствующего имени блока с текущей видимостью типа "Извещатель_АПС Ручной извещатель" вставляется фигня. Я подумал, что может потом, после формирования таблицы, изменить эскиз вручную, но получается так, что программы достаточно сложные, а эскизы в силу своей анонимности не являются точной копией по свойствам отображению самих блоков в чертеже.
При разработке своей программы я использовал в том числе и разработки Lee Mac. У него есть программа Block Counter (http://www.lee-mac.com/blockcounter.html) для подсчета обычных блоков с формированием таблицы и программа Dynamic Block Counter (http://www.lee-mac.com/dynamicblockcounter.html) для подсчета динамических блоков, но без формирования таблицы. Такой подсчет у меня тоже выполняется, но как достать эскиз с учетом параметра видимости для автоматической вставки в таблицу (и при этом избавиться от атрибута) - я пока не знаю. Методика преобразования динамического блока в анонимный в данном случае, как мне представляется, не подходит. |
|||
![]() |
|
||||
Цитата:
Но я бы поступил как посоветовал kp+ в #10. Имел бы 2 блока - для чертежа и спецификации. Помимо видимости есть еще один нюанс при вставки блока в таблицу. Он вставляется по габариту. При определении габарита участвуют все примитивы, входящие в описание блока не зависимо от того, видимы ли они сейчас или нет, отключены ли их слои или нет. Именно поэтому при вставке блока в таблицу получается Цитата:
__________________
Как использовать код на Лиспе читаем здесь |
||||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
VVA, это все верно. Для своего пакета программ для СС я и блоки условных обозначений создавал сам и проблем не было. Но в данном случае некий главспец СС навставлял в чертеж кучу взятых из неизвестного источника динблоков с атрибутами, (которые, кстати говоря, и не нужны совсем, поэтому этот инженер очистил значение атрибута, но сам атрибут остался) и возникли проблемы. А этих блоков в чертеже сотни. И таблица у меня - не просто таблица условных обозначений, а именно таблица подсчета однотипных блоков. При изменении количества блоков на чертеже (добавлении новых или удалении существующих) таблица автоматически пересчитывается. И выноски тоже перечерчиваются.
Вариант твой из сообщения #8 вставляет в таблицу вроде правильные картинки, но одновременно разрушается параметр видимости. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Вот сильно упрощенный вариант моей программы:
Код:
Как в этот код добавить возможность учета параметра видимости в эскизе и в имени блока? Примечание: Не стОит эту программу пробовать с другими чертежами, она работает исключительно с приложенным файлом. Последний раз редактировалось Profan, 01.03.2016 в 17:46. |
|||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Вот код программы вставки блоков и динамических блоков в таблицу. Пока вариант не универсальный, расчитанный на прилагаемый файл.
Атрибут удален вручную в редакторе блоков. Теперь бы приспособить сюда подсчет количества однотипных блоков. Код:
|
|||
![]() |
|
||||
Регистрация: 26.06.2007
Воронеж
Сообщений: 151
|
|
|||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Динамический блок. Параметр видимости. | Shoorup | Динамические блоки | 14 | 30.10.2019 10:23 |
Программная вставка блока с атрибутами в таблицу. Как сохранить установленные значения атрибутов? | Кулик Алексей aka kpblc | Программирование | 8 | 22.07.2010 15:01 |
Динамический блок с вложенным динамическим блоком? | Sync02 | Динамические блоки | 17 | 18.05.2009 17:51 |
Динамический блок и коммандная строка | Сергей Дубина | Динамические блоки | 30 | 24.04.2009 09:16 |
Динамический блок с атрибутами не масштабируется? | X-DeViL | Динамические блоки | 7 | 24.11.2005 11:59 |