Артефакты при выводе Solid3d во Viewport в PaperSpace

Автор Тема: Артефакты при выводе Solid3d во Viewport в PaperSpace  (Прочитано 3505 раз)

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

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн temurka1Автор темы

  • ADN OPEN
  • Сообщений: 3
  • Карма: 1
У меня в плагине для AutoCAD 2016 в paper space в отдельный вьюпорт выводится набор из Solid3d, при этом на боковых гранях солидов появляются артефакты, как на изображении:


Подскажите, пожалуйста, какой-нибудь способ избавиться этих артефактов?

Оффлайн temurka1Автор темы

  • ADN OPEN
  • Сообщений: 3
  • Карма: 1
Я нагуглил команду SOLPROF, которая создает 2D профили солидов и распределяет их на два слоя (для видимых и невидимых линий). Если применить эту команду из самого AutoCAD, то результат не имеет артефактов, но у меня не получилось вызвать эту команду из .NET.
Вызывал как-то так:

Код - C# [Выбрать]
  1.            
  2. Editor.SwitchToModelSpace();
  3. Editor.Command("_.solprof", SelectionSet.FromObjectIds(solidsObjectIds), "Y", "Y", "Y");
  4.  

Выдает эксепшен eInvalidInput
« Последнее редактирование: 14-10-2019, 13:46:50 от Александр Ривилис »

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

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

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
Выдает эксепшен eInvalidInput
Во-первых, не "Y", а "_Y".
Во-вторых, в каком контексте запускается команда? Вполне возможно, что нужно запускать черед Editor.CommandAsync
Ну и главное. Прочитай у меня в подписи как следует форматировать код у нас на форуме!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
при этом на боковых гранях солидов появляются артефакты, как на изображении:
Хм, а о чём речь? Я не заметил ничего критичного.

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

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

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 735
Я бы "забил" на это :). Подозреваю, что при печати будет всё хорошо. Возможно, что это видеокарта так балуется. Возможно, что надо основные линии сделать чуток потолще, или невидимые потоньше.
Я нагуглил команду SOLPROF, которая создает 2D профили солидов и распределяет их на два слоя (для видимых и невидимых линий). Если применить эту команду из самого AutoCAD, то результат не имеет артефактов, но у меня не получилось вызвать эту команду из .NET.
Лучше тогда использовать "чистый" .NET, без команд: https://adn-cis.org/forum/index.php?topic=8974.0

Отмечено как Решение temurka1 16-10-2019, 12:58:34

Оффлайн temurka1Автор темы

  • ADN OPEN
  • Сообщений: 3
  • Карма: 1
Цитировать
Наверное имеется в виду пунктиры вдоль сплошных линий.
Да, именно эти пунктиры.

Цитировать
Я бы "забил" на это :). Подозреваю, что при печати будет всё хорошо.
Я бы тоже "забил", но при печати все было плохо :(

Цитировать
Во-вторых, в каком контексте запускается команда? Вполне возможно, что нужно запускать черед Editor.CommandAsync
Вы правы, я совсем забыл про контексты выполнения в AutoCAD. Спасибо!

В итоге смог запустить команду SOLPROF вот этим кодом:

Код - C# [Выбрать]
  1. await DocumentManager.ExecuteInCommandContextAsync(async _ => await Editor.CommandAsync("_solprof", SelectionSet.FromObjectIds(objectIds), "", "_Y", "_Y", "_Y"));

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

  • Administrator
  • *****
  • Сообщений: 13829
  • Карма: 1784
  • Рыцарь ObjectARX
  • Skype: rivilis
temurka1,
Я смотрю, что в исходном коде в параметрах _SOLPROF у тебя не хватало "", т.е. вместо
Код - C# [Выбрать]
  1. Editor.Command("_.solprof", SelectionSet.FromObjectIds(solidsObjectIds), "Y", "Y", "Y");
должно было быть
Код - C# [Выбрать]
  1. Editor.Command("_.solprof", SelectionSet.FromObjectIds(solidsObjectIds), "", "_Y", "_Y", "_Y");
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение