|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Маскировка
Регистрация: 29.07.2006
Сообщений: 38
|
||
Просмотров: 55954
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,405
|
Поскольку вопрос в разделе "AutoCAD", то ответом, наверное, будет такое: никак. Назначить показ/скрытие можно, а определить - только визуально
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер-электрик Регистрация: 16.01.2007
Москва
Сообщений: 19
|
А может кто подсказать. Есть динамический блок с маскировкой. Блок этот вставлен в инструментальную палитру. Если этот блок вытащить в какой-нибудь рисунок с инструментальной палитры, то маскировка всегда выходит на передний план( соответственно скрывает весь блок). Исправляю только редактированием блока, в редакторе задаю порядок следования. Причем если этот же блок вставить в рисунок через копирование, то все нормально... как бы избавиться от этого?
|
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
Переделай сам блок в том файле где он собсно и храниться. Причем переделать надо не при помощи draworder. Необходимо соблюдать последовательность построения. Wipeout должен быть нарисован самым первым, чтоб он оказался внизу. Т.е. можно выделить все в блоке кроме Wipeout, скопировать (не переместить) в строну, удалить старое и поставить на место копию. Копия будет создана позже, а значит будет сверху. Такая фишка будет сохранятся при вставке блока.
|
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
|
|||
![]() |
|
||||
Интересно, а так можно? Если считать, что до первого <Откл>, - она всегда <Вкл>.
Команда: МАСКИРОВКА Первая точка или [Контуры/Полилиния] <Полилиния>: К Выберите режим [Вкл/Откл] <Откл>:
__________________
*...И Случай, бог изобретатель. * Последний раз редактировалось skif58, 16.01.2008 в 06:04. |
||||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Если кому интересно, макрос на кнопку получился такой:
Цитата:
|
|||
![]() |
|
||||
Я заметил такой момент. В какой бы последовательности не создавалось бы WIPEOUT в блоке - почему-то при изменении атрибута он всеравно помещается наверх закрывая тем самым весь блок. Ну и как с этим бороться?
__________________
Поезд который устал от ржавого здравомыслия рельсов... |
||||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Попутно возникла такая идея. Хорошо бы, чтобы состояние wipeout'ов отображалось в строке режимов. Здесь уже макросом не обойтись:
Код:
Код:
|
|||
![]() |
|
||||
Уважаемые Гуру, вы как-то не заметили мой вопрос выше и я теперь весь в сомнениях, - может быть я раньше много чего неправильно понимал и делал...
![]() Я только о том, что в первых двух постах этой темы. Дальше для меня темный лес..., - от того сомнений еще больше... Мне часто попадают чертежи, где что-то закрыто маскировкой, - горизонтали в вырезках...и.т.п. Чтобы понять есть ли маскировка, - я так и делал: - Маскировка - (_WIPEOUT), правой из контекста - Контуры - и смотрел в комстроке или ДИНе, - что там пишет... Если стоит <Откл>: значит есть (или была) маскировка и ее контуры отключены. Вопрос: всегда ли это действительно ТАК? В комстроке всегда отображается текущее состояние? Поскольку этой методой пользуюсь и в др.случаях... с той же THICKNESS и.т.п... ![]() Проверил на _WIPEOUT строчкой от Krieger: (cdr (assoc 70 (dictsearch (namedobjdict) "ACAD_WIPEOUT_VARS"))) , - вроде все совпадает. ??? ![]() Ну а визуально, чтобы быстро увидеть что замаскировано, - всегда жму любой др. визуальный стиль или 3DOrbit. Чтобы выделить, увидеть, двигать или удалять контуры маскировки, - Быстрый выбор Растра и правой...
__________________
*...И Случай, бог изобретатель. * |
||||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
skif58,
Я думал, что это ты ответил на первый пост. А так думаю что и так можно определять, вроде бы там всегда текущее значение записывается. Т.е. Крыс во втором постинге был не прав. Код из поста #13 включает и выключает границы wipeout при этом записывает результат в статусную строку. |
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
К посту 13 от Krieger.
Ещё раз спасибо. У меня просто с какой-то тормоз с MODEMACRO случился в мозгах. Был у меня такой стереотип, что определение MODEMACRO должно быть в acaddoc.lsp (или запускаться из acaddoc.lsp) и что в значении переменной должны присутствовать выражения DIESEL для динамического отслеживания и вывода значения в строку режимов. Но в принципе ничто не мешает переопределять значение в процессе работы (с оставлением в нём DIESEL-выражений). Вообще-то в acaddoc.lsp у меня было прописано просто: Код:
Код:
Только убрал в ней определение локальной переменной temp и сделал wipeout_frame_key и pr локальными. Ну и такое же значение MODEMACRO как определено в acaddoc.lsp. Только вот сомневаюсь так ли нужно (vl-cmdf "_regen"). Это я так понял введено из-за того, что если находишься на листе, то при изменении видимости границ маскировки не во всех ВЭ это отображается корректно. Спасает как раз _.regen или лучше _.regenall. Так то всё правильно, но тормозит. В общем я эту строку убрал. PS Ещё понравилось вкл/выкл маскировки через (entmod). Класс! |
|||
![]() |
|
||||
инженер (КМ) Регистрация: 30.10.2004
Красноярск
Сообщений: 3,837
|
Цитата:
При (vl-cmdf "_.WIPEOUT" "_Frames" "_on"), кстати, регенерация тоже выполняется. А через (entmod) не выполняется, т.е. если ты смотришь на границу wipeout и выключаешь её через entmod, то она никуда не исчезает, пока не сделаешь регенерацию. Так что нужна она или нет решать пользователю. Последний раз редактировалось Krieger, 18.01.2008 в 12:21. |
|||
![]() |
|
||||
Инженер-строитель Регистрация: 15.08.2007
Киров
Сообщений: 2,204
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 30.05.2006
Сообщений: 91
![]() |
Странная вещь происходит при печати динамического блока с вложенной туда маскировкой, при изменении изображения (например поворот тела с маскировкой) все происходит как надо, отправляешь на печать то что скрыто не печатает, но!!! стоит у нас плоттер Xerox 510dp так вот он не хочет печатать как надо, а скрывает при распечатке тока то место куда первоначально была вставлена маскировка, до поворота к примеру, как такое вылечить?
|
|||
![]() |