|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Управление видимостью слоев
проектировсчик
Москва
Регистрация: 06.01.2006
Сообщений: 1,986
|
||
Просмотров: 21034
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Ох, на крыса сегодня надежды почти нет - пьяный сидит за моником. Пальцами по клаве не попадает.
ИМХО сделать такое возможно, но уж больно гиморно. По идее надо всем слоям, кроме слоев выбранных примитивов, цвет поменять. Например, с 10 на 11; 11 на 12, с 23 на 24 и так далее. То есть добавить по 1. Если это возможно. А потом вернуть обратно. На написание кода меня чичас не хватат ![]() Либо второй вариант - использовать временное скрытие объектов (есть на сайте у Alaspher'a и на autocad.ru).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
проектировсчик Регистрация: 06.01.2006
Москва
Сообщений: 1,986
|
Сдается, что индексированными цветами тут не обойтиль, придется переходить на True Color... И LUMINANCE уменьшать раза в три...Да еще лочить слои. То есть брать за основу Layiso и вместо примитивного выключения слоев запускать эту бодягу. Но. Никакого layiso.lsp или чего-то похожего я не нашел, да и кишка тонка менять с лету. А струмент хороший может получиться. И назовем его - уже знаю как - СУПЕРКРЫС! (типа это я подлизываюсь...). SuperLayKpblcIso.lsp! Как вы яхту назовете, так она и поплывет!
|
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
(В каестве идеи)
Мне кажется подобное, в принципе, можно оганизовать объединив объекты слоя во временный блок с точкой вставки в нуле и програмно запустив _refedit, по окончании которой переводить объекты обратно в модель и удалять блок. Однако все это выглядит весьма не надежно и надумано, много подводных камней, да и в случае сложного чертежа наверняка тормоза будут. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
> AY : я думаю, что такой вариант, например, при редактировании блока или внешней ссылки может кончиться плачевно (если только не анализировать на ходу cmdnames и вываливать предупреждения соответствующие)
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
>крыс
Я, ведь не наставиваю, а предлагаю как идею :) Впрочем я не предвижу оговоренных тобой трудностей поскольку думаю поступить проще, а именно: - имеем две кнопки. - при нажатии 1-ой, каким-либо образом выбирается слой, создается блок, зписывается в надежном месте информация что за блок и запускается _refedit. - по окончании редактирования нажимаем 2-ую кнопку. Программа анализирует систуацию, а именно находимся ли мы в состоянии _refedit и какого именно блока сравнивает с данными записанными 1-ой кнопкой и соответствующим образом обрабатывает ситуацию. Если юзер самостоятельно вышел из _refedit то проверяется записи и если временный блок цел крушим его. Вобщем в таком духе. Оговорюсь, что мне впринципе подобные махинации не нравятся. Для таких серьезный приемов работы надо требовать штатные средства. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Есть еще один вопрос - все же выбираются примитивы определенного слоя (слоев) или выбранные примитивы? А как быть с примитивами, имеющими такой же цвет, но лежащие на других слоях?
В общем, спробуйте (я не стал делать блоки): Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Есть соображения по поводу "побледнения" слоев.
1. Цвет переводим из ACI в RGB 2. RGB -> HSL 3. LUMINANCE (L) уменьшаем в N раз 4. HSL -> RGB 5.RGB-> ACI Теперь по пунктам 1,5. ACI->RGB решается просто Код:
4. Реализовать алгоритм http://www.easyrgb.com/math.php?MATH=M19#text19 Или найти что-нудь еще Пункт 2 я попробывал. S и L считается нормально, а вот H что-то не совпадает. Посмотрю, может допуслил где ошибку |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Только что специально провеил - нормально работает. С ком.строки вызов (chla).
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Вроде реализовал алгоритм "побледнения" примитивов
Код:
Реализован следующий алгоритм: Берем RGB примитива, преобразуем в HSL. L -Luminance (яркость) уменьшаем в 2 раза, получам новые значения RGB с уменьшенной яркостью, задаем цвет примитиву. Если яркость близка к темной (здесь 20% и меньше) смещаем оттенок. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Вот вариан доработанной команды kpblc
Код:
Работает по принципу выключателя: понизили яркость -> восстановили состояние. Команда CHLA |
|||
![]() |
|
||||
проектировсчик Регистрация: 06.01.2006
Москва
Сообщений: 1,986
|
VVA: -Прикольно. Правда, невыбранные слои не залочиваются пока. И вот бледнеет совершенно недостаточно, и подвирает с цветами... Не работает, если цвет задан примитиву явно. В режиме редактирования блока in place это как то хитрее организовано, там бледнеют -и сильно!- все не входящие в блок элементы. Идея организовать из выбранных примитивов блок, редактировать его находу... хороша, но функция редактирования блока - тормознутая, ногти изгрызешь, пока сработает, да и добавлять в набор примитивы ни к чему.. Layiso быстрее! В принципе, если добавть строки залочивания - и разлочивания! -невыбранных слоев- классная штука получается!
Kpblc: Заработало. Дописал букувку в начале ...defun c:chla (/... , только как то неустойчиво (и висит как-то неуверенно... ![]() |
|||
![]() |
|
||||
Идея с полупрозрачными слоями действитительно интересная, можно будет наконец в автокаде в сборках внутренности показывать без полного отключения наружных деталей.
|
||||
![]() |
|
||||
Конструирование в области нефтеразведки Регистрация: 10.02.2006
Гомель
Сообщений: 321
|
(ИМХО) идея предложенная AY по данному вопросу лично мне кажется более правильной и простой в воплощении, по сравнению с изменением цвета у объектов на определенном слое.
Была у меня мысль сделать таблицу соответствия - (ЦВЕТ . ТУСКЛЫЙ_ЦВЕТ), однако дальше семи основных цветов(1 . 16) (1 . 56) (3 . 96) (4 . 136) (5 . 176) (6 . 216) ничего хорошего не получилось (можете попрововать например подобрать бледный_цвет для цвета 11?). А если на слое есть куча блоков, каждый примитив и атрибут которого надо заставить "побледнеть"... :roll: Вот вариант идеи AY, правда в ACAD'е 2002 не работает, т.к. не смог разобраться с опциями команды ".-refedit" (работает только в таком виде Код:
Код:
Естественно можно сделать наоборот - чтобы "бледнели" примитивы выбираемого слоя... |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Вариант с блокировкой слоев, запоминанием/восстановлением RGB, ACI-color
Код:
Список имеет вид (("42" 7 :vlax-true) ("45" (223 118 83) :vlax-false)) 1-й элемент - метка (поле 5) примитива 2-й - число - ACI-color, список - коды R G B для true-color 3-й элемент - если слой, то его состояние блокировки За "потемнение" отвечает эта строка в коде Код:
Пока что не решен вопрос (надо ли?) с примитивами с явным заданием цвета и с явным заданием цвета примитивов в определении блока. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Может, попробовать получить цвет активного пространства (в котором выполняется рисование) и сдвигать цвета в сторону этого цвета?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
проектировсчик Регистрация: 06.01.2006
Москва
Сообщений: 1,986
|
Дас ист фантастишь! Сбылась мечта идиота!!! Жаль, что идиот чертит на белом
![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
> VVA : Ну это ж была идея, не больше. Если честно, ответа на твой вопрос у меня нет
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
Вот последний( :?: ) вариант с блокировкой слоев, запоминанием/восстановлением RGB, ACI-color + примитивы с явным заданием цвета. Примитивы, входящие в блоки с явным задание цвета, не рассматриваются. Блоки должны быть "правильные".
В области потемнения/осветления делается так: Вычисляем цвет фона, если черный (0), то делаем затемнение, иначе- осветление. Затемнение: Если яркость меньше 20%, сдвигаем оттенок на 45 градусов. Яркость уменьшаем на треть. Осветление: к яркости добавляем 25%. Если яркость > 100% сдвигаем оттенок на 45 градусов, яркость устанавливаем на уровне 90%. Код:
Последний раз редактировалось VVA, 19.09.2015 в 21:06. |
|||
![]() |
|
||||
проектировсчик Регистрация: 06.01.2006
Москва
Сообщений: 1,986
|
Я с коэффициентами поиграл, вроде ничего... Я на белом фоне работаю. Вообще можно и попроще было сделать - силком все в бледно серый загонять, и не париться. Но это не очень гуд. С цветом круче получилось.
(if (zerop mc) (defun chL ( ) (if (< L 0.2)(progn ;:_Яркость меньше 20 Смещаем оттенок на 45 градусов (setq H (+ H 0.125))(if (> H 1)(setq H (1- H))))) (setq L (* 0.4 L))) ;_Для черного фона (defun chL ( )(setq L (+ 0.25 L)) (if (> L 1)(progn (setq H (+ H 0.125))(if (> H 1)(setq H (1- H))) (setq L 0.8))));_Для остальных Вместо морды - 0,8. |
|||
![]() |
|
||||
проектирование Регистрация: 29.09.2005
г. Москва
Сообщений: 343
|
Извините, а чем Вас всех не устраивала работа с стандартными командами управляющими Группами Слоев. Там при определенной довольно элементарной настройке не активная группа бледнеет, кроме того можно запретить изменения примитивов в неактивной группе слоев и многое другое. Да и сам чертеж получается гораздо лучше структурирован.
|
|||
![]() |
|
||||
webcad.pro Регистрация: 06.01.2005
Московская обл.
Сообщений: 501
|
Граждане не поддавайтесь на провокацию. Если вы о такой возможности не знали, то всего вероятней ее вовсе нет (всеж-таки не первый год замужем :). А Андрей, наверное, не совсем понял о чем речь или у него какой-то невиданный Autocad :)
|
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Подскажите пожалуйста, как сделать, чтобы из 30-ти имеющихся слоев 5 сделать ярко-черными, а остальные затенить так, чтоб они были еле видны и при этом выводились на печать в ч/б, т.е. без использования цветного картриджа. Назначал остальным слоям разные оттенки серого - без цветного картриджа не печатаются вообще. Может, настройки печати не те?
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Таблицу печати правь.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
Сержик, визуальное отображение и вывод на печать немного разные вещи...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
инженер Регистрация: 04.10.2005
Одесса
Сообщений: 119
|
ну если выводить на печать тогда только через стили печати в менеджере слоев там при определенной настройке можно задавать процент отображения цвета линий находящихся в слое. так черный с 10% при распечатке становиться бледно серый, красный бледно розовый и т.д и т.п и др.
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
#54 не прочитал?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Спасибо, kpblc, Сержик
![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
skkkk, если по цветам не устраивает, то используй _convertpstyles, и дальше работай со стилезависимой печатью, как посоветовал Сержик
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. Последний раз редактировалось Кулик Алексей aka kpblc, 20.08.2008 в 16:51. Причина: Неверно впечатал имя команды |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
См.#61
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Только одно неясно: как быстро всем слоям присвоить стиль печати Стиль 1 (мой)? По умолчанию у всех Нормальный, но он не редактируется. Нормальный должен остаться лишь у нескольких, а у меня их под сотню, каждый раз все перебивать в диспетчере слоев долговато будет. Как вариант _matchprop с выбором параметра стиля печати, но так только объекты наделяются таким свойством, а не слой....Думается, должен быть продуманный вариант
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
skkkk, образчик покажи
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Неа
![]() ![]() Слои с подчеркиванием "_" в имени надо оставить ярко-черными на печати, а остальные - сделать тусклыми, серыми, но чтоб только черный картридж в ход шел. Файлик пришлось подурезать, некоторые особо весомые слои убрать, покрасить в черный(белый?) цвет, потому как даже один лист не влезал сюда. Правда перестарался слегка ![]() |
|||
![]() |
|
||||
инженер Регистрация: 04.10.2005
Одесса
Сообщений: 119
|
ну вот что у меня получилось. сделал я это так.
открыл твой чертеж создал новый лист (acad -Named Plot Styles) скопировал твой чертеж в новый в диспечере слоев выбрал все слои неподчеркнутые нажал на стиль печати (Normal) выбрал активная таблица стилей печати acad.stb появился список стилей печати (уменя настроены с процентным отображением цвета с шагом в 10% - название стиля - %) выбрал 30 сохранил в моделе можно просматривать при предварительном просмотре при печали, в листе можно сразу установить отображение стиля и будет показывать что напечатается. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
skkkk, моя "коллекция" образцов чистится с интервалом в неделю, не реже
![]() Файл получился здоровый, поэтому залил его на depositfiles: http://depositfiles.com/files/7391683
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Сержик, огромное спасибо за участие. Помимо всего прочего, словами:
Цитата:
![]() ![]() kpblc, тебе тоже огромное, только файл скачать не удалось. " Вы исчерпали лимит подключений! Попробуйте повторить через 52 минут(ы)" - говорит ![]() А вот еще вопросик возник: я ношу эти вещи печатать в типографию на большом формате. Теперь мне надо будет с собой таскать и этот файл *.stb? И чтоб они его себе вставили куда следует?? ![]() |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
20 метров - это видео. Здешний download не хотелось засорять (а если в форум - представь себе, 4 поста сплошных архивов). Не, если сильно интересно, попробую сделать.
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Представь себе, есть у них АвтоКАД
![]() ![]() |
|||
![]() |
|
||||
Moderator
Конструктор (машиностроение) Регистрация: 23.10.2006
Россия
Сообщений: 23,258
![]() |
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
И закачивать тоже
![]() Вариант на рапиде: http://rapidshare.com/files/139597526/ctb2stb.avi
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Странно... Я много СЛИЛом пользовался, никогда проблем не возникало. Давно, правда. Прошу прощения, что не проверил сам - сейчас отключили Интернет, - с телефона приходится...
А залил.ру как, интересно, себя ведет? Страшно любопытно, что же там за видео ![]() |
|||
![]() |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,372
|
То обсуждаем, как сделать, чтобы электронные чертежи даже заказчик не мог использовать, то раздаем куда угодно...
Надо просто у себя печатать в PDF на любой формат в любом виде и только PDF отдавать для печати на бумагу. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
_etransmit, что ли?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 20.03.2008
Сообщений: 2,680
|
Привет вам ![]() ShaggyDog, меня вопрос этот не беспокоит. Да и потом, кому там нужен мой чертеж? Они ведь не отнесут его моему заказчику раньше меня ![]() Сержик, так я и имею в виду, что вместе с файлом dwg мне придется брать с собой файл stb... Алексей, не знал о такой команде (_etransmit), полезная вещь, спасибо ![]() А с рапиды тоже не получилось скачать ![]() Цитата:
Последний раз редактировалось skkkk, 27.08.2008 в 14:29. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,406
|
skkkk, AutoCAD сам разберется.
С депозита так и не скачивается? Вечером постучись мне в аську, попробуем что-нибудь придумать.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |