Смещается полилиния при изменении св-ва УРОВЕНЬ

Автор Тема: Смещается полилиния при изменении св-ва УРОВЕНЬ  (Прочитано 10102 раз)

0 Пользователей и 4 Гостей просматривают эту тему.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Всем добрый день!
Такой вопрос возник у проектировщиков.
Есть линии вертикальной планировки
у которых задан Уровень.
 
При смене св-ва Уровень
полилиния смещается. Почему так происходит?

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

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

 

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
При смене св-ва Уровень
полилиния смещается. Почему так происходит?
Потому что у них направление выдавливания (0.9500, 0.3122, 0.0000) вместо (0.0000, 0.0000, 1.0000)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн К.А.С.

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Потому что у них направление выдавливания (0.9500, 0.3122, 0.0000) вместо (0.0000, 0.0000, 1.0000)
Здравствуйте, объясните пожалуйста, как это исправить. Столкнулся с такой же проблемой, но предложенное вами решение не могу применить... где найти это "направление выдавливания"? Уже все перекопал

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
где найти это "направление выдавливания"?
В командной строке 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. )
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн К.А.С.

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
Чтобы изменить направление выдавливания на стандартное можно воспользоваться этим кодом:...
Всвязи с этим еще один вопрос возник: Нет ли возможности сохранить текущее положение в плане? т.к. при применении данного кода линии смещаются так же как если просто поменять значение уровня, хоть и значения направления выдавливания меняется

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Чтобы изменить направление выдавливания на стандартное можно воспользоваться этим кодом:...
Всвязи с этим еще один вопрос возник: Нет ли возможности сохранить текущее положение в плане? т.к. при применении данного кода линии смещаются так же как если просто поменять значение уровня, хоть и значения направления выдавливания меняется
В каком плане? В плане ПСК или в плане МСК или в еще каком-то плане?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн К.А.С.

  • ADN OPEN
  • Сообщений: 3
  • Карма: 0
В каком плане? В плане ПСК или в плане МСК или в еще каком-то плане?
Да, в ПСК и МСК, имею ввиду что при изменении вертикального положения (уровень)(тут все правильно, и направление выдавливания становится корректным), происходит и горизонтальное смещение (по X и Y), так же как и простом изменении уровня. Видимо полилинии просто переходят в первоначальное положение, которое было до их выдавливания, и с этим ничего не поделать.

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13886
  • Карма: 1788
  • Рыцарь ObjectARX
  • Skype: rivilis
Думаю, что в данном случае лучше не уровень менять у полилинии, а переносить её по координате Z на указанное расстояние.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Привалов Дмитрий

  • ADN Club
  • *****
  • Сообщений: 546
  • Карма: 119
Нет ли возможности сохранить текущее положение в плане? т.к. при применении данного кода линии смещаются так же как если просто поменять значение уровня, хоть и значения направления выдавливания меняется

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