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

ADN Club => Civil 3D API => Тема начата: Вильдар от 19-04-2018, 11:22:08

Название: Проблема с DrawableOverrule для ProfileView
Отправлено: Вильдар от 19-04-2018, 11:22:08
Может, кто по симптомам поможет.
Перерисовываю вид профиля ProfileView DrawableOverrule.
Вот что происходит при перемещении за ручку (другие случаи пока не смотрел):
(https://s31.postimg.cc/4a148irl3/image.gif) (https://postimg.cc/image/4a148irl3/)
После регенерации - прорисовывается.
Во время перетаскивания у drawable пустой Id. При этом, пропускаю свою прорисовку и вызываю базовую.
Иногда вид профиля вообще не перемещается за ручку.
Название: Re: Проблема с DrawableOverrule для ProfileView
Отправлено: Александр Ривилис от 19-04-2018, 11:35:13
Поиграйся с включением/отключением аппаратного ускорения в AutoCAD и переключением визуальных стилей.
Название: Re: Проблема с DrawableOverrule для ProfileView
Отправлено: Александр Ривилис от 19-04-2018, 11:36:09
Иногда вид профиля вообще не перемещается за ручку.
Даже без твоего DrawableOverrule или только с ним?
Название: Re: Проблема с DrawableOverrule для ProfileView
Отправлено: Вильдар от 19-04-2018, 12:18:14
Блин. Попробовал всегда пропускать свою прорисовку, даже когда drawable id не пустой.
Все нормально прорисовывается.
Проблема в моей прорисовке.
А что не рекомендуется делать при DrawableOverrule?
Например, транзакции можно запускать?
Название: Re: Проблема с DrawableOverrule для ProfileView
Отправлено: Александр Ривилис от 19-04-2018, 12:22:29
Например, транзакции можно запускать?
В принципе можно, если всё корректно завершается. Только в них нужно осторожно выполнять модификации объектов/примитивов, так как это приводит к дополнительной перерисовке, т.е. может быть бесконечный цикл. Попробуй заменить на эмуляцию транзакции (или вообще на Open/Close)
Название: Re: Проблема с DrawableOverrule для ProfileView
Отправлено: Дмитрий Загорулькин от 19-04-2018, 12:34:17
Насколько я помню, всё именно так - надо убрать транзакции. Вообще, лучше забыть про транзакции в методах Overrule. Да и вообще в любых не-командных. Но и после этого у меня не самое правильное поведение при перемещении ВП, но я пока оставил так:
(https://s9.postimg.cc/9io4pue7f/p_Views_Move.gif) (https://postimg.cc/image/9io4pue7f/)
Название: Re: Проблема с DrawableOverrule для ProfileView
Отправлено: Вильдар от 19-04-2018, 14:29:25
Да, поменял на StartOpenCloseTransaction и стало норм.  ;)
Еще мне нужно менять свойства профиля.
В самой DrawableOverrule похоже это лучше не делать.
Сам объект drawable обычно не открыт на запись. А если его открыть на запись UpgradeOpen, то он потом перестает нормально выделяться.

Спасибо всем!)
Название: Re: Проблема с DrawableOverrule для ProfileView
Отправлено: Александр Ривилис от 19-04-2018, 16:04:07
В самой DrawableOverrule похоже это лучше не делать.
Это точно.
А если его открыть на запись UpgradeOpen, то он потом перестает нормально выделяться.
Это если ты его таким и оставил, а не выполнил потом DowngradeOpen.