Сообщество программистов Autodesk в СНГ
ADN Club => AutoCAD .NET API => Тема начата: Lemieux от 29-02-2020, 11:09:48
-
Всех приветствую.
Кто-нибудь знает как получить список всех открытых PaletteSet в окне AutoCAD? Ещё интересует вопрос как деактивировать документ пока открыта PaletteSet?
-
Ещё интересует вопрос как деактивировать документ пока открыта PaletteSet?
Что такое деактивировать документ?
-
По моему AcSmSheetSetMgr - отражает диспетчер подшивок
И, методом GetDatabaseEnumerator(), перебираешь, через Next(), подшивки AcSmDatabase.
:o
-
По моему AcSmSheetSetMgr - отражает диспетчер подшивок
И, методом GetDatabaseEnumerator(), перебираешь, через Next(), подшивки AcSmDatabase.
:o
И какое это имеет отношение к PaletteSet ??? ?
-
Что такое деактивировать документ?
Я хочу сымитировать modalwindow.
-
Что такое деактивировать документ?
Я хочу сымитировать modalwindow.
А подробнее? PaletteSet в любом случае немодальные.
-
Кто-нибудь знает как получить список всех открытых PaletteSet в окне AutoCAD?
Открытого API (т.е. того, которым ты мог бы воспользоваться) для этого нет.
-
А подробнее? PaletteSet в любом случае немодальные.
Сначала я запрашиваю у пользователя выбор блока. Потом считываю значения атрибутов. Строю UserControl и передаю его в свой PaletteSet, вызываю его. И мне нужно, чтобы пользователь ничего не мог делать с чертежом, пока вызван PaletteSet. А поиск своей PaletteSet мне нужен для того, чтобы по нажатию кнопок, которые объявлены в UserControl, PaletteSet закрывался.
Можно конечно сделать стандартно через Window и ShowModalWindow. Но мне хочется стиль окна PaletteSet.
-
Строю UserControl и передаю его в свой PaletteSet, вызываю его ... А поиск своей PaletteSet мне нужен для того, чтобы по нажатию кнопок, которые объявлены в UserControl, PaletteSet закрывался.
А почему не хранить в UserControl ссылку на PaletteSet, чтобы ничего искать не нужно было?И мне нужно, чтобы пользователь ничего не мог делать с чертежом, пока вызван PaletteSet
Так не получится. Вот единственный вариант: https://www.keanw.com/2016/02/disabling-autocads-complete-ui-using-net.html
Но тут возможна масса подводных камней. Так что будь осторожен.
P.S.: Добавил статью: http://adn-cis.org/kak-vremenno-zablokirovat-interfejs-autocad-pri-pomoshhi-.net-i-c.html
-
И какое это имеет отношение к PaletteSet ?
Ой, перепутал.
А, что же тогда имеется ввиду? Любая палитра - и получить их все!?
Странно. Не хочу, чтобы мою палитру кто-то трогал :)
-
И какое это имеет отношение к PaletteSet ?
Ой, перепутал.
А, что же тогда имеется ввиду? Любая палитра - и получить их все!?
Странно. Не хочу, чтобы мою палитру кто-то трогал :)
Он свою найти не может. 😄
-
А почему не хранить в UserControl ссылку на PaletteSet, чтобы ничего искать не нужно было?
Это как? Объявить глобальную переменную, например так
поместить туда созданный PaletteSet, а потом в классе, где описывается UserControl обращаться к этой переменной?
У меня ещё один вопрос. Я почему-то не могу назначить положение PaletteSet при инциализации. Не помогают ни метод SetLocation, ни свойство Location.
-
Это как? Объявить глобальную переменную, например так
Код - C# [Выбрать]
PaletteSet lxPS = null;
поместить туда созданный PaletteSet, а потом в классе, где описывается UserControl обращаться к этой переменной?
Можно и так, а можно в классе унаследованном от UserControl внести переменную типа PaletteSet, где хранить значение твоей PaletteSet.
-
Я почему-то не могу назначить положение PaletteSet при инциализации. Не помогают ни метод SetLocation, ни свойство Location.
PaletteSet запоминает свой размер и положение в файле profile.aws и соответственно при следующем запуске восстанавливает их.
-
Я почему-то не могу назначить положение PaletteSet при инциализации. Не помогают ни метод SetLocation, ни свойство Location.
PaletteSet запоминает свой размер и положение в файле profile.aws и соответственно при следующем запуске восстанавливает их.
И как мне выйти из ситуации? Как я понял это профиль рабочего пространства AutoCAD?
PS Когда блокирую AutoCAD, то и PaletteSet блокируется.
-
И как мне выйти из ситуации?
Например, удалить файл profile.aws.
PS Когда блокирую AutoCAD, то и PaletteSet блокируется.
Увы. Я же предупреждал.
-
Например, удалить файл profile.aws.
А нельзя как-нибудь унаследовать Windows от PaletteSet, чтобы получить иконки, разметку и цвета от PaletteSet? 8)
-
Например, удалить файл profile.aws.
А нельзя как-нибудь унаследовать Windows от PaletteSet, чтобы получить иконки, разметку и цвета от PaletteSet? 8)
Не понял. В чем смысл?
-
Не понял. В чем смысл?
Я же выше писал, что хочу чтобы у моего окна был стиль (цвет, иконка, кнопка закрытия, шрифт) как у PaletteSet. Сейчас попробую вручную сделать Window со стилем PaletteSet, а потом вызвать ShowModalWindow.
-
Не понял. В чем смысл?
Александр, а Вы не владеете информацией какие шрифты используются в окне AutoCAD? А то я вроде повторил окно PaletteSet, осталось шрифт названия окна подобрать.
-
Не понял. В чем смысл?
Александр, а Вы не владеете информацией какие шрифты используются в окне AutoCAD? А то я вроде повторил окно PaletteSet, осталось шрифт названия окна подобрать.
Шрифт названия окна определяется системными настройками Windows. Для примера я поменял шрифт на TXT:
(https://live.staticflickr.com/65535/49604042447_39a485c4e6_o.jpg)
По умолчанию у меня был Tahoma.
-
Вроде получилось сделать почти похожее.
-
Вроде получилось сделать почти похожее.
Так и где твоё окно?
-
Так и где твоё окно?
Где белая заливка. Я шаблон делаю в xaml, чтобы потом туда вставлять то, что мне нужно. Все фишки PaletteSet я не буду имитировать, пока что, вроде подсветки значков и названия окна при перетаскивании, чтобы активировался и деактивировался под курсором и тд.