Jump to content

Функциональность слоя "0"


Recommended Posts

Выявлена некорректная реализация функциональности элементов блока, расположенных на слое "0".

По фэнь-шую  (а также и в аналоге, и в нано версий <=20) примитивы, входящие в состав блока и расположенные на слое "0", НАСЛЕДУЮТ состояние видимости/заморозки слоя, на котором расположено вхождение блока, а не собственно слоя "0".

Т.е. они видимы, если слой блока видим и не заморожен.

С удивлением (точнее, был ошарашен!) наткнулся на кривую реализацию этой фичи в 21.0.

Проектировщики заморозили в своем файле слой "0" и практически все блоки на других слоях утратили видимость своих элементов. Сходу даже не смог им сказать, в чем проблема, т.к. такой подставы от разработчиков не ожидал.

 

Возможно, эту тему уже и поднимали, но считаю  это явным багом и настоятельно прошу исправить. 

  • Like 3
Link to comment
Share on other sites

Я не знаток внутренностей, но по-моему так этот слой и должен работать. На то он и служебный.

Link to comment
Share on other sites

27 минут назад, Kreator сказал:

но по-моему так этот слой и должен работать. На то он и служебный.

 

Подготовил пример с блоком, расположенным на слое "2".

В нем два элемента:

- отрезок на слое "0" с цветом "по блоку"

- окружность на слое "1" с цветом "по слою"

Слой "0" заморожен

 

Спойлер

image.png.febeaafd9fb908b94eafea12af973876.png

Тут все по-честному.

отрезок красного цвета, т.к. у него цвет "по блоку", а сам блок расположен на красном слое "2"

И плевать, что отрезок в блоке расположен на замороженном слое "0"

 

и

Спойлер

image.png.51c1544736d4f4cb1505d6c8c43b4b36.png

Наблюдаем пропадание видимости отрезка.

Т.е. он не унаследовал состояние видимости родительского объекта (а должен, т.к. расположен на служебном слое "0"), а повел себя, как объект, расположенный на заблокированном слое

 

Можете поэкспериментировать с переключениями состояний заморозки и цветов слоев.

Фактически мы наблюдаем,  что слой "0" не является служебным, а полностью идентичен по поведению любому другому слою. А это не есть гуд :angel:

Блок со слоем 0.dwg

  • Like 2
Link to comment
Share on other sites

Насчёт цветов - а сделайте цвет примитива в слое 0 "По слою", а не "По блоку". И он начнёт реагировать на цвет слоя, на который положен блок. Т.е. будет игнорировать цвет и вес линии слоя 0.

Что касается видимости/заморозки, то тут вопрос к идеологам как это должно быть правильно. По мне, если при заморозке он не морозится - это не правильно. Но опять же - слой особенный, возможно, действительно правильно его не морозить. В 20.1 действительно он отображается даже при заморозке и скрытии. Что лично мне странно. В DWG TV 2018 слой так же не исчезает. Вероятно, это и есть "правильно".

А вообще, не работайте в 0 да и всё - общая рекомендация для всех и всегда.

  • Like 1
Link to comment
Share on other sites

5 минут назад, Kreator сказал:

В DWG TV 2018 слой так же не исчезает. Вероятно, это и есть "правильно".

Это было еще со времен Адама.

Вся методология создания блоков у автодеска базировалась на этом принципе:

слой "0" - особенный, объекты на этом слое, включенные в блоки, безусловно наследуют состояние видимости/заморозки (не путать с цветами, типами линий и другими атрибутами слоя) слоя, на котором расположено вхождение блока.

 

 

В качестве примера:

допустим, у вас есть блок - выключатель.

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

Но блок у вас будет использоваться один и тот же!

Если его примитивы будут расположены на слое "0", вы сможете на одном чертеже делать одинаковые блоки видимыми и невидимыми в соответствии с установками слоев (в данном примере "проводка1" и "проводка2"), на которых они расположены.

Если же примитивы будут на  слое. отличном от "0" , то вы не сможете отключить блоки на одном слое, не выключив на другом.

Так было всегда в акаде и в нано до 21 версии

 

Link to comment
Share on other sites

Мы делали всё, как в аналоге. Слой 0 ведёт себя не так, как остальные слои. Надо очень внимательно смотреть, может что-то отвалилось. Но точно делали как в АС

Link to comment
Share on other sites

Только что, yum сказал:

Мы делали всё, как в аналоге.

Это именно тот случай, когда по другому быть и не должно.

Это не вопрос удобства или привычки.

Очень надеюсь, что найдете источник проблемы.

Link to comment
Share on other sites

К сожалению проверить ничо пока не могу, но выключение и заморозка принципиально разные действия

При заморозке все блоки на этом слое будут невидимы, независимо на каких слоях их примитивы.

При выключении слоя скроются  только примитивы расположенные на этом слое, независимо в составе блока или нет. 

Если примитивы блока на слое 0 и свойства по слою, то принимают все свойства слоя на который вставлен блок.

  • Like 1
Link to comment
Share on other sites

38 минут назад, doctorraz сказал:

..., но выключение и заморозка принципиально разные действия

При заморозке все блоки на этом слое будут невидимы, независимо на каких слоях их примитивы.

Да, это так. Если вхождение блока расположено на замороженном слое, то невидимо все его содержимое.

 

Но

38 минут назад, doctorraz сказал:

При выключении слоя скроются  только примитивы расположенные на этом слое, независимо в составе блока или нет.

                      , а также примитивы на слое "0", если они входят в спрятанный блок. И только они.

Куски блока, расположенные на других слоях, будут видны. 

 

Если блок носит характер библиотечного (т.е. многократно используемого), то расположение примитивов в нем не на слое "0" должно быть только в исключительных случаях, например, если предполагается возможность частичного изменения видимости.

Предпочтительно использование слоя "0" и свойств "по блоку".

Только в таком случае гарантировано логичное поведение блоков: поместил блок на невидимый слой - весь блок стал невидимым, установил цвет блока любым способом - все его элементы приняли установленный цвет

  • Haha 1
Link to comment
Share on other sites

  • 4 months later...
Guest
This topic is now closed to further replies.
 Share

  • Tell a friend

    Love Официальный форум компании Нанософт Разработка? Tell a friend!
×
×
  • Create New...