Jump to content

рассыпается штриховка


Recommended Posts

Добрый день.

Операция нетипичная, наверное, но понадобилось мне ужать блок по оси Х в два раза и затем разбить его.

В итоге оказалось, что при такой операции штриховка внутри блока рассыпается на примитивы. Акад себе такого не позволял :)

image.png.156a75df414b2c605442b00269711204.png

добавлено через 6 минут

и какой-нибудь сложный контур еще и разбить нельзя. Он остается блоком

image.png.15a791c16edc453d8907ac82834466e4.png

image.png.5d2de5ddac13e0df6135b06d2ea01679.png

  • Thanks 1
Link to comment
Share on other sites

в данном случае пример простой

заштриховал прямоугольник
ctrl+A
ctrl+C

ctrl+shift+V

выделил вставленный блок

в инспекторе параметру "Масштаб Х" указал значение 0.5

EXPLODE
=> разруха

блок_штр.dwg

  • Like 3
Link to comment
Share on other sites

10 минут назад, Volkov сказал:

в данном случае пример простой

neo.gif.5e2f7742aaf011ae1d47d1dddcbb53d6.gifok.gif.ee781a4fdb122841431a3edd7647514f.gif

 

4 часа назад, Михаил_ЛМГТ сказал:

сложный контур еще и разбить нельзя.

кривые: сплайны, полилинии, дуги или еще что то....

объединены или нет

может блоку тупо запрещено расчленение

может какой хитрый анонимный

не так уж много вариантов что бы их все по быстрому проверить и понять в чем проблема popcorn.gif.c030bad08f85ad8bce67dffd25da5470.gif

 

добавлено через 3 минут
10 минут назад, Volkov сказал:

разруха

надеюсь @yum  запишет в свой блокнотик, если это конечно не так задумано

Edited by doctorraz
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

12 часов назад, doctorraz сказал:

может блоку тупо запрещено расчленение

как и в примере выше, только не прямоугольник, а полилиния. 

ctrl+C

ctrl+shift+V

выделил вставленный блок

"Масштаб Х" указал значение 0.5

Блок не разбить. 

 

блк.dwg

  • Like 1
  • Confused 1
Link to comment
Share on other sites

42 минуты назад, Михаил_ЛМГТ сказал:

Блок не разбить. 

получается нана не умеет расчленять блоки с разным масштабом

АК этот блок разбил, но 

в нана есть  страшное секретное  оружие

крошит в капусту даже тексты

Спойлер

image.png.b02dd8668479b96b391a3bfb56ca1ff5.png

 

добавлено через 7 минут

PS пока нанодев будет чинить

если ты собрал объекты в блок только для того, что бы задать им разный масштаб и потом взорвать (кстати даже в АК после расчленения это могут быть совсем другие объеты)

Спойлер

image.png.8e2ad147b8b60ec58c8f319582285113.png

для недавно перешедших из АК это может быть неочевидно

Edited by doctorraz
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

Занятная клюква получается.

Блок не разбивается, если в его состав входят элементы, которые нана не умеет разбивать (или не хочет) разбивать корректно.

Проэксперементировал  с несколькими типами объектов.

 

Результаты таковы

Если в состав блока входят элементы, с которыми затруднений не возникает или они невелики, то блок разбивается по примерно такому алгоритму:

1. "правильные элементы" - разбиваются корректно.

    Пока к правильным элементам могу отнести только отрезки.

2. "частично правильные элементы" - разбиваются на составляющие либо с нюансами.

    К ним относятся полилинии без дуговых сегментов и мтексты.

   Полилинии дополнительно разбиваются на отрезки  (в АС они остаются полилиниями).

   Мтексты остаются мтекстами, но вид мтекста становится другим (в АС корректно меняются высота, наклон и сжатие)

3. "Неправильные элементы" - не разбиваются.

    Все элементы этого типа остаются в блоке с именем "*...", т.е. дальнейшему разбиению щтатными средствами не поддаются.

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

    К "неправильным" элементам относятся полилинии с дуговыми сегментами, круги, дуги, тексты.

 

 

Проверка на исходном кейсе:

В исходном примере блок состоит из одной полилиннии с дуговыми сегментами.

Поэтому он не разбивается (правило 3).

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

Если в блоке полилиннию модифицировать, удалив кривизну сегментов, то блок разобьется на 4 отрезка (правило 2)

 

Вывод:

Нанокад некорректно разбивает  разномасштабные блоки, содержащие большинство типов геометрических примитивов.

Это касается разных масштабов по X и Y. Экспериментов с Z  не проводил.

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

Явный косяк, который уважаемая @yum просто обязана взять на карандаш.

 

Edited by EdwardSt
  • Like 2
  • Thanks 1
Link to comment
Share on other sites

15 минут назад, EdwardSt сказал:

Экспериментов с Z  не проводил.

С плоскими блоками разбивает

добавлено через 1 минуту

Кстати АК дуги-полилинии этого блока преобразует в элипс

добавлено через 5 минут

Вопрос конечно интересный.. после расчленения, что должно получиться?

Примитивы которые были в блоке или чего в блоке не было хоп и появилось.. насколько этот подход корректен?

АК жульничает, меняет примитивы одни на другие

НК честно говорит, что расчленить невозможно, это будут не исходные примитивы

  • Like 2
Link to comment
Share on other sites

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

АК жульничает, меняет примитивы одни на другие

Нет, в случае с полилиниями так быть и должно.

В качестве сегмента у полилинии НЕ МОЖЕТ быть эллипс. 

Поэтому дополнительное разбиение корректно.

Просто, АК дополнительно разбивает полилинию, если в ней были дуговые сегменты.

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

 

Нана же, с дугами вообще отказывается работать а с только прямыми сегментами -  крошит в капусту разбивает на отрезки.

 

добавлено через 2 минуты
Только что, yum сказал:

По штриховке написала.

Кстати, в моем разборе штриховка относится к "частично правильным" элементам, которые нана может извлекать из блока, но обязательно дальше разбивает на примитивы - отрезки. 

  • Like 2
Link to comment
Share on other sites

6 минут назад, EdwardSt сказал:

Нана же, с дугами вообще отказывается работать

блок с окружностью тоже  не умеет если блок с разными масштабами

всежэж полилиния разбивается на отрезок и дугу, 

PS и всежэж расчленить это разделить на составляющие...

удивительно было бы если после расчленения оставались только руки или только головы, но АК и не такое может biglol.gif.00b96a09bb898063d857adcecf2f80cb.gif

 

 

добавлено через 3 минут
3 минуты назад, doctorraz сказал:

АК и не такое может 

 

нана не отстает

офф хэх .. про необратимые операции

чертим круг

меняем ему масштаб по х на 0,5, по у-1

упсс элипс,

но если задать кругу масштаб по х-2

получится элипс в форме круга)))

  • Like 2
Link to comment
Share on other sites

20 минут назад, EdwardSt сказал:

круг - это частный случай эллипса

Курвы они оба частные случаи

добавлено через 2 минуты

Кстати фокус с разными масштабами для дуги из полилинии не работает..

 

Возможно надо добавить ее преобразование в элипс

добавлено через 6 минут
3 часа назад, Михаил_ЛМГТ сказал:

только не прямоугольник, а полилиния. 

Не хочу показаться занудой, но на самом деле прямоугольника не существует..

Команда есть, а примитива такого нет)))

добавлено через 8 минут

Прямоугольник, частный случай замкнутой полилинии (С)

  • Like 1
  • Haha 1
Link to comment
Share on other sites

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

Кстати фокус с разными масштабами для дуги из полилинии не работает..

Наверное, я слишком путано описал...

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

Это справедливо и для АС, и  для NC.

 

При разбивке блока с полилинией с только прямыми сегментами:

  • АС - создает пересчитанную полилинию, не разбивая ее на отрезки
  • NC - создает набор отрезков, соответствующих сегментам пересчитанной полилинии

 

При разбивке блока с полилинией с дуговыми сегментами:

  • АС - создает набор примитивов - отрезков и кусков эллипса - соответствующих сегментам. Это связано с тем, что формат хранения полилинии НЕ предполагает сегментов в виде эллипса.
  • NC - отказывается работать с примитивом и оставляет его в исходном или анонимном бллоке
  • Like 1
Link to comment
Share on other sites

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

Прямоугольник, частный случай замкнутой полилинии

вообще не спорю :) имел ввиду геометрически: прямоугольник и "непрямоугольник". Как назвать нарисованную фигуру по научному не знаю, потому назвал полилинией :)

  • Like 1
Link to comment
Share on other sites

2 минуты назад, Михаил_ЛМГТ сказал:

Как назвать нарисованную фигуру по научному не знаю

Не прибедняйся :lol:

И не поддавайся на провокации. Тебя просто троллят :lol:

  • Like 1
Link to comment
Share on other sites

2 минуты назад, EdwardSt сказал:

NC - отказывается работать с примитивом и оставляет его в исходном или анонимном бллоке

а почему? он же его отрисовал как-то. Или каким образом происходит масштабирование? 

добавлено через 1 минуту
Только что, EdwardSt сказал:

И не поддавайся на провокации. Тебя просто троллят

да сколько угодно, лишь бы не работать :)

  • Like 1
Link to comment
Share on other sites

2 минуты назад, Михаил_ЛМГТ сказал:

а почему? он же его отрисовал как-то.

Потому я выше и писал, что нанокад НЕ ХОЧЕТ, а не не может работать с такими примитивами.

Собственно, это и есть суть баги, которую зафиксировали

  • Like 1
Link to comment
Share on other sites

7 минут назад, EdwardSt сказал:

Наверное, я слишком путано описал...

нормально ты написал

нано не умеет преобразовывать дугу из полилиний в эллипс

  • Like 1
Link to comment
Share on other sites

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

нано не умеет преобразовывать дугу из полилиний в эллипс

умеет (т.к. отрисовывает корректно), но не делает.

А задача создать  полилинию, содержащую эллипсы - неразрешима в рамках формата DWG.

 

Edited by EdwardSt
  • Like 1
  • Thanks 1
Link to comment
Share on other sites

1 минуту назад, EdwardSt сказал:

Потому я выше и писал, что нанокад НЕ ХОЧЕТ, а не не может работать с такими примитивами.

именно, что  не может

одно дело трансформировать матрицу  вхождения блока и так показать (в описании то ничего не меняется)

другое дело при расчленении это корректно преобразовать в другой примитив

добавлено через 3 минут
1 минуту назад, EdwardSt сказал:

умеет

может @Lion007 забежит на минутку и расставит точки над ху

  • Like 1
  • Confused 1
Link to comment
Share on other sites

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

одно дело трансформировать матрицу  вхождения блока и так показать (в описании то ничего не меняется)

Вообще-то, это самое сложное в данном действе!

Когда пересчитаны координаты, которые корректно отображаются, создать элемент - это вообще не вопрос!

При чем тут описание?

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

Все тривиально после пересчета...

  • Like 1
  • Thanks 1
Link to comment
Share on other sites

3 минуты назад, EdwardSt сказал:

При чем тут описание?

при том что дуге из полилинии не получится задать разные масштабы

5 минут назад, Михаил_ЛМГТ сказал:

так умеет

да,

уже забыл с чего все началось)))

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
 Share

  • Tell a friend

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