Сообщество программистов Autodesk в СНГ

ADN Club => Организация проектирования => Тема начата: Алексей (IdeaSoft) от 05-07-2017, 10:09:42

Название: Смещается полилиния при изменении св-ва УРОВЕНЬ
Отправлено: Алексей (IdeaSoft) от 05-07-2017, 10:09:42
Всем добрый день!
Такой вопрос возник у проектировщиков.
Есть линии вертикальной планировки
у которых задан Уровень.
 
При смене св-ва Уровень
полилиния смещается. Почему так происходит?

Прикрепляю тестовый файл, в котором я показал
динамику смещения при изм. св-ва Уровень

Я проверил на acad 2012, установлена МСК

 
Название: Re: Смещается полилиния при изменении св-ва УРОВЕНЬ
Отправлено: Александр Ривилис от 05-07-2017, 15:06:04
При смене св-ва Уровень
полилиния смещается. Почему так происходит?
Потому что у них направление выдавливания (0.9500, 0.3122, 0.0000) вместо (0.0000, 0.0000, 1.0000)
Название: Re: Смещается полилиния при изменении св-ва УРОВЕНЬ
Отправлено: К.А.С. от 24-11-2019, 08:31:50
Потому что у них направление выдавливания (0.9500, 0.3122, 0.0000) вместо (0.0000, 0.0000, 1.0000)
Здравствуйте, объясните пожалуйста, как это исправить. Столкнулся с такой же проблемой, но предложенное вами решение не могу применить... где найти это "направление выдавливания"? Уже все перекопал
Название: Re: Смещается полилиния при изменении св-ва УРОВЕНЬ
Отправлено: Александр Ривилис от 24-11-2019, 11:59:07
где найти это "направление выдавливания"?
В командной строке AutoCAD ввести этот код:
Код - Auto/Visual Lisp [Выбрать]
  1. (cdr (assoc 210 (entget (car (entsel)))))
нажать ENTER и выбрать полилинию.
Чтобы изменить направление выдавливания на стандартное можно воспользоваться этим кодом:
Код - Auto/Visual Lisp [Выбрать]
  1. (defun C:SETNORM ( / en e)
  2.  (while (setq en (car (entsel)))
  3.    (setq e (entget en))
  4.    (entmod (subst (cons 210 '(0.0 0.0 1.0)) (assoc 210 e) e))
  5.    (entupd en)
  6.  )
  7.  (princ)
  8. )
Название: Re: Смещается полилиния при изменении св-ва УРОВЕНЬ
Отправлено: К.А.С. от 24-11-2019, 16:30:42
Чтобы изменить направление выдавливания на стандартное можно воспользоваться этим кодом:...
Всвязи с этим еще один вопрос возник: Нет ли возможности сохранить текущее положение в плане? т.к. при применении данного кода линии смещаются так же как если просто поменять значение уровня, хоть и значения направления выдавливания меняется
Название: Re: Смещается полилиния при изменении св-ва УРОВЕНЬ
Отправлено: Александр Ривилис от 24-11-2019, 20:33:55
Чтобы изменить направление выдавливания на стандартное можно воспользоваться этим кодом:...
Всвязи с этим еще один вопрос возник: Нет ли возможности сохранить текущее положение в плане? т.к. при применении данного кода линии смещаются так же как если просто поменять значение уровня, хоть и значения направления выдавливания меняется
В каком плане? В плане ПСК или в плане МСК или в еще каком-то плане?
Название: Re: Смещается полилиния при изменении св-ва УРОВЕНЬ
Отправлено: К.А.С. от 26-11-2019, 09:52:20
В каком плане? В плане ПСК или в плане МСК или в еще каком-то плане?
Да, в ПСК и МСК, имею ввиду что при изменении вертикального положения (уровень)(тут все правильно, и направление выдавливания становится корректным), происходит и горизонтальное смещение (по X и Y), так же как и простом изменении уровня. Видимо полилинии просто переходят в первоначальное положение, которое было до их выдавливания, и с этим ничего не поделать.
Название: Re: Смещается полилиния при изменении св-ва УРОВЕНЬ
Отправлено: Александр Ривилис от 26-11-2019, 10:26:46
Думаю, что в данном случае лучше не уровень менять у полилинии, а переносить её по координате Z на указанное расстояние.
Название: Re: Смещается полилиния при изменении св-ва УРОВЕНЬ
Отправлено: Привалов Дмитрий от 20-12-2019, 12:00:19
Нет ли возможности сохранить текущее положение в плане? т.к. при применении данного кода линии смещаются так же как если просто поменять значение уровня, хоть и значения направления выдавливания меняется

Используй команду "flatten" из ExpressTools.
Но есть нюанс, если в полилинии есть хоть один дуговой сегмент, то полилиния разобъется на составляющие.