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

ADN Club => AutoCAD .NET API => Тема начата: JustMe от 02-09-2015, 15:19:14

Название: Создание и наполнение Palette
Отправлено: JustMe от 02-09-2015, 15:19:14
Добрый день, подскажите пожалуйста принцип (желательно пример) как собственно создать Palette. и как добавлять в него различные элементы кнопки, текстовые поля и т.д.

Пробовал создать так, но выдает ошибку:

Код - C# [Выбрать]
  1. static Autodesk.AutoCAD.Windows.PaletteSet _ps = null;
  2.  
  3.         [CommandMethod("PSSet")]
  4.         public static void CreatePaletteSet()
  5.         {
  6.             if (_ps == null)
  7.             {
  8.                 _ps = new Autodesk.AutoCAD.Windows.PaletteSet("PaletteSet");
  9.                 _ps.Style =
  10.                   Autodesk.AutoCAD.Windows.PaletteSetStyles.NameEditable |
  11.                   Autodesk.AutoCAD.Windows.PaletteSetStyles.ShowPropertiesMenu |
  12.                   Autodesk.AutoCAD.Windows.PaletteSetStyles.ShowAutoHideButton |
  13.                   Autodesk.AutoCAD.Windows.PaletteSetStyles.ShowCloseButton;
  14.  
  15.                 _ps.MinimumSize = new System.Drawing.Size(300, 300);
  16.             }
  17.  
  18.             _ps.Visible = true;
  19.         }
Название: Re: Создание и наполнение Palette
Отправлено: Андрей Бушман от 02-09-2015, 15:25:41
Google забанили (http://g.zeos.in/?q=autocad%20.net%20palette)?
Название: Re: Создание и наполнение Palette
Отправлено: JustMe от 02-09-2015, 15:32:10
 :)

В том то и дело, что обратился сюда, потому что перелопатил уже достаточно большое количество источников и о том как закрывать palette http://through-the-interface.typepad.com/through_the_interface/2011/12/finding-out-when-a-custom-paletteset-is-closed-in-autocad-using-net.html, а не сворачивать и о переопределении его свойств http://adn-cis.org/forum/index.php?topic=364.0 и вроде все понятно, а вот на самом элементарном на его создании и завис! В приведенном коде пытался сделать что излагалось в описанных статьях, но ничего не получилось, вот и решил просить Вашей помощи.
Название: Re: Создание и наполнение Palette
Отправлено: Андрей Бушман от 02-09-2015, 15:38:53
Ты открывал ссылку, которую я тебе дал? Смотрел первую же ссылку в показанном результате поиска? Пробовал делать то, что там подробно расписано? Пока что я вижу, что ты ничего не читаешь и твой "код" тому наглядное подтверждение.
Название: Re: Создание и наполнение Palette
Отправлено: JustMe от 02-09-2015, 15:42:17
Да открывал и пытался, но я не знаю VB, поэтому и не смог на C# перевести это
Название: Re: Создание и наполнение Palette
Отправлено: Андрей Бушман от 02-09-2015, 15:44:40
Да открывал и пытался, но я не знаю VB, поэтому и не смог на C# перевести это
выше ты ссылался на мою тему на форуме. В первом же сообщении той темы на C# присутствует код, создающий palette и добавляющий на неё пользовательский элемент. Если бы ты читал (как ты утверждаешь), то увидел бы это...
Название: Re: Создание и наполнение Palette
Отправлено: JustMe от 02-09-2015, 15:51:04
Честно говоря опираясь на него я и пробовал создать) Убрав оттуда переопределение свойств и не знакомые для меня вещи:
Код - C# [Выбрать]
  1. ElementHost host = new ElementHost();
  2.         host.AutoSize = true;
  3.         host.Dock = DockStyle.Fill;
  4.         // Host my WPF control
  5.         SheetSetViewer control = new SheetSetViewer();
  6.  
  7.         // Save the link to the custom control
  8.         control.tree.Tag = control;
  9.         control.props.Tag = control;
  10.  
  11.         host.Child = control;

получилось так, что не получилось! а в чем ошибка понять не могу

Код - C# [Выбрать]
  1. static Autodesk.AutoCAD.Windows.PaletteSet _ps = null;
  2.  
  3.         [CommandMethod("PSSet")]
  4.         public static void CreatePaletteSet()
  5.         {
  6.             if (_ps == null)
  7.             {
  8.                 _ps = new Autodesk.AutoCAD.Windows.PaletteSet("PaletteSet");
  9.                 _ps.Style =
  10.                   Autodesk.AutoCAD.Windows.PaletteSetStyles.NameEditable |
  11.                   Autodesk.AutoCAD.Windows.PaletteSetStyles.ShowPropertiesMenu |
  12.                   Autodesk.AutoCAD.Windows.PaletteSetStyles.ShowAutoHideButton |
  13.                   Autodesk.AutoCAD.Windows.PaletteSetStyles.ShowCloseButton;
  14.  
  15.                 _ps.MinimumSize = new System.Drawing.Size(300, 300);
  16.             }
  17.  
  18.             _ps.Visible = true;
  19.         }
Название: Re: Создание и наполнение Palette
Отправлено: Александр Ривилис от 02-09-2015, 15:51:12
Более того в этой теме есть готовый проект на C#: http://adn-cis.org/forum/index.php?action=dlattach;topic=364.0;attach=88
Название: Re: Создание и наполнение Palette
Отправлено: Андрей Бушман от 02-09-2015, 15:55:32
Убрав оттуда переопределение свойств и не знакомые для меня вещи:
А может не стоило удалять "незнакомые вещи"? Ты не задумывался о том, что они там не просто так? Тем более, что в коде имя переменной host должно наводить на некоторые мысли... Не нужно делать бездумных телодвижений. Вырезать аппендицит на угад, определяя его положение на основе созвучия этого слова - не самый надёжный способ достичь желаемого результата.
Название: Re: Создание и наполнение Palette
Отправлено: Александр Ривилис от 02-09-2015, 15:55:46
JustMe
Прочитай пожалуйста как форматировать код на форуме у меня в подписи.
Название: Re: Создание и наполнение Palette
Отправлено: JustMe от 02-09-2015, 15:57:48
Ну спасибо! Прям забросали комплиментами неопытного начинающего программиста вместо того чтоб разъяснить и подсказать, то что мне было незнакомо.
Название: Re: Создание и наполнение Palette
Отправлено: Александр Ривилис от 02-09-2015, 16:01:45
Ну спасибо! Прям забросали комплиментами неопытного начинающего программиста вместо того чтоб разъяснить и подсказать, то что мне было незнакомо.
Тебе же дали готовый проект. Открывай, смотри, меняй по своему усмотрению.
Название: Re: Создание и наполнение Palette
Отправлено: Андрей Бушман от 02-09-2015, 16:03:35
Прежде чем задавать вопрос, не ленись читать тот материал по теме, который уже имеется в свободном доступе. Если возникают конкретные вопросы по изложенному в тексте контенту - пробуй искать ответ на них в Интернете. Если не удастся найти, либо объяснение окажется непонятным - тогда спрашивай на форуме, не забывая указывать, какие шаги ты САМ предпринял для того, чтобы найти ответ. Не трать понапрасну чужое время.

На данный момент содержимое этой темы чётко показывает, что тебе лень ознакомиться даже с тем уже готовым материалом, ссылка на который у тебя есть. Такого рода темы засоряют форум т.к. являются бесполезным хламом. Не стоит создавать темы по вопросам, ответы на которые легко находятся в Google.
Название: Re: Создание и наполнение Palette
Отправлено: Александр Ривилис от 02-09-2015, 16:06:54
Прежде чем задавать вопрос, не ленись читать тот материал по теме, который уже имеется в свободном доступе. Если возникают конкретные вопросы по изложенному в тексте контенту - пробуй искать ответ на них в Интернете. Если не удастся найти, либо объяснение окажется непонятным - тогда спрашивай на форуме, не забывая указывать, какие шаги ты САМ предпринял для того, чтобы найти ответ. Не трать понапрасну чужое время.
С этим согласен на 100%.
Такого рода темы засоряют форум т.к. являются бесполезным хламом. Не стоит создавать темы по вопросам, ответы на которые легко находятся в Google.
А это оставь на усмотрение администрации форума!
Название: Re: Создание и наполнение Palette
Отправлено: Андрей Бушман от 02-09-2015, 16:10:03
А это оставь на усмотрение администрации форума!
Оставляю. Когда я вижу форум, "богатый" такого рода "полезными" темами, то обычно прохожу мимо (не регистрируюсь и не посещаю). Или ухожу с него, как с двг.ру. И так поступаю не только я. Хотя... Если вам важно количество, а не качество, тогда не вопрос - пусть пишет дальше.
Название: Re: Создание и наполнение Palette
Отправлено: JustMe от 02-09-2015, 16:16:41
Да спасибо, буду с ним разбираться...
Цитировать
какие шаги ты САМ предпринял для того
Я вроде привел пример того, пусть для Вас и несуразного кода, до которого дошел в своих поисках.И обратился к Вам не просто так...и по истории моих вопросов этот всего второй за все время, а Вы "лентяй"!
Да и вместо конкретики начались колкие фразы! Зачем?! лучше ничего тогда не писать, чем самоутверждаться за счет новичка!

Александр, к Вам не относится вышесказанное..
Название: Re: Создание и наполнение Palette
Отправлено: JustMe от 02-09-2015, 16:19:02
Цитировать
тогда не вопрос - пусть пишет дальше
Андрей Бушман , будьте спокойны, к Вам мои вопросы целенаправлены не будут!
Название: Re: Создание и наполнение Palette
Отправлено: Александр Ривилис от 02-09-2015, 16:20:49
JustMe,Андрей Бушман
С оффтопом закончили!
Название: Re: Создание и наполнение Palette
Отправлено: Владимир Шу от 02-09-2015, 17:36:01
http://www.autodesk.ru/adsk/servlet/index?id=22740301&siteID=871736
Урок №4.
Ссылку на конвертер vb.net - C# надеюсь сам найдешь.


ЗЫ.
Действительно лентяй
Название: Re: Создание и наполнение Palette
Отправлено: VitaliyB от 18-07-2023, 17:41:03
добрый день! а как сделать цвет palette темной или светлой соответственно в выставленных настройках autocad?
Название: Re: Создание и наполнение Palette
Отправлено: Алексей Кулик от 20-07-2023, 22:07:42
Имеется в виду фоновый цвет? Если палитра сделана как UserControl на WPF, то, по-моему, она сама меняет цвет в соответствии с настройками ACAD.
Название: Re: Создание и наполнение Palette
Отправлено: VitaliyB от 21-07-2023, 10:52:33
Да, имеется ввиду фоновый цвет. нет, это не wpf. я делал как Form. переделывать как wpf мне представляется трудоемко  (хотя я wpf ни разу не делал - может быть и не понимаю чего-то) , поскольку много уже всего под нее написано. я только осваивал на тот момент c# и api autocad, поэтому дело было так - я сделал форму и сначала она была как отдельное окно в windows, обрастала функционалом, потом нашел решение на этом форуме (сильно позже, если не ошибаюсь Андрей Бушман описывал) и добавил сделал следующее:

Код - C# [Выбрать]
  1.  
  2. //как я понимаю - создаем класс палитры, который включит в себя форму
  3. public class CustomPaletteSet : PaletteSet
  4. {
  5.         public CustomPaletteSet()
  6.             : base("ОТДЕЛ ПТО", "пт_(ПТО:меню)", new Guid("{CB44AAE8-B3C8-4F97-817B-D5F96FDB3C1C}"))
  7.         {
  8.             Style = PaletteSetStyles.ShowAutoHideButton |
  9.                     PaletteSetStyles.ShowCloseButton |
  10.                     PaletteSetStyles.ShowPropertiesMenu;
  11.             MinimumSize = new System.Drawing.Size(350, 750);
  12.             f_JOB f = new f_JOB();
  13.             Add("Слои", f);
  14.         }
  15. }
  16.  
  17. //вызываем форму командой
  18.  [CommandMethod("пт_(ПТО:меню)")]
  19.  
  20.         public static void f_Start_JOB()
  21. {        
  22.                     if (palette == null)
  23.                     palette = new CustomPaletteSet();
  24.                    palette.Visible = true;
  25. }
  26.  
  27. //в прошлом сама форма, сейчас наследую от UserControl (уже не помню по какой причине). пробовал от Form - ничто не изменилось
  28.     public partial class f_JOB : System.Windows.Forms.UserControl
  29.     {
  30.  
  31.   public f_JOB()
  32.         {
  33.            InitializeComponent();
  34.          
  35.          }
  36.           // мой код , события при взаимодействием с элементами формы (Control)
  37.  
  38.  

вот как сейчас выглядит:

(https://i.ibb.co/5cpnWbv/2023-07-21-10-50-11.png) (https://ibb.co/0J4FjHZ)
gallery server (https://imgbb.com/)
Название: Re: Создание и наполнение Palette
Отправлено: Алексей Кулик от 21-07-2023, 22:54:22
А что будет, если попробовать переписать форму (ну или хотя бы ее часть) на WPF? Для старта можно даже и подход особо не менять, пихая все в Behind-Code.
Название: Re: Создание и наполнение Palette
Отправлено: VitaliyB от 24-07-2023, 11:52:13
буду пробовать)