3DCenter.ru

Здравствуйте, гость ( Вход | Регистрация )

6 страниц V   1 2 3 > »   
Reply to this topicStart new topic
> Dotnet + MaxScript, Обсуждаем применение DotNet
Track
сообщение 31/01/2010, 17:23
Сообщение #1


Русскоговорящий жидо-бандеровец
Иконка группы

Группа: Пользователи
Сообщений: 1 336
Регистрация: 16/07/2004
Из: Украина-Одесса
Пользователь №: 6 600



Всем привет.
Думаю эта тема должна была появиться уже лет надцать назад, но лучше поздно, чем никогда.

Итак для начала ссылки по теме

http://msdn.microsoft.com/ru-ru/library/y4325aw3.aspx ---Элементы управления
http://lonerobot.net/
CGSociety - dotNet + MXS - http://forums.cgsociety.org/showthread.php?f=98&t=551473
CGSociety - DotNet Tutorials or reference sites? - http://forums.cgsociety.org/showthread.php?f=98&t=658978
Paulneale.com - DotNet Tutorials: Treeview http://www.paulneale.com/tutorials/dotNet/dotNet.htm
Paulneale.com - DotNet Tutorials: Listview - http://www.paulneale.com/tutorials/dotNet/dotNet.htm

И пара скриптов и программка в помощь разработчикам
Show DotNet Properties (Мое smile.gif )
Прикрепленное изображение
Прикрепленный файл  ShowProperties_DotNet.zip ( 3,22 килобайт ) Кол-во скачиваний: 700

Net Property Inspector (Martin Dufour - взял здесь )
Очень крутая утилита, иначе не скажешь! Очень удобно для настройки интерфейса
Прикрепленное изображение
Прикрепленный файл  MaxTroYx_PropertyInspector01.zip ( 10,44 килобайт ) Кол-во скачиваний: 636


http://sottnick.narod.ru/winsprus.htm Утилита для просмотра свойств окон, открытых в Windows, и объектов на них (видимых и невидимых)

И еще - интерфейсы очень удобно строить в Visual Studio - спасибо Vitus за подсказку.
--------------------------------------------------
Ну а дальше делимся опытом и задаем вопросы

Довел до ума утилитку
Теперь можно загружать объекты из dll,
искать объекты с нужными свойствами,
загружать в список связанные объекты и
фильтровать список по части имени объекта.
Удобное копирование и встроенная записная книжка.
Спасибо за идеи Royal Ghost и Martin Dufour.

Прикрепленное изображение
Show Net Propety 2.01

Сообщение отредактировал ECXIMER - 07/11/2011, 10:44
Go to the top of the page
 
+Quote Post
1асс
сообщение 31/01/2010, 17:38
Сообщение #2


Рыцарь форума
Иконка группы

Группа: Пользователи
Сообщений: 1 956
Регистрация: 08/01/2005
Из: Нижний Новгород
Пользователь №: 9 336



Тему нужно закрепить однозначно
Go to the top of the page
 
+Quote Post
[Vitus]
сообщение 01/02/2010, 14:38
Сообщение #3


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 280
Регистрация: 30/05/2006
Пользователь №: 32 013



Track, спасибо за утилиты!

В дополние, хочу обратить внимание на компонент TreeList ("DevExpress.XtraTreeList.TreeList").
Он поставляется вместе с максом, и бесплатен для пользователей. Очень интересный элемент интерфейса, используется в SceneExplorer.

Подробнее про него можно почитать тут:
http://devexpress.com/Products/NET/Control...orms/Tree_List/

И на CGSociety можно найти неколько тем по нему.

Go to the top of the page
 
+Quote Post
Track
сообщение 02/02/2010, 13:51
Сообщение #4


Русскоговорящий жидо-бандеровец
Иконка группы

Группа: Пользователи
Сообщений: 1 336
Регистрация: 16/07/2004
Из: Украина-Одесса
Пользователь №: 6 600



Спасибо за наводку на XtraTreeList.

Прошлый раз я невнимательно отнесся к этому компоненту- подумал, что он платный и потому забросил.
А он и в самом деле встроен в макс.
Но многие вещи в нем на мой взгляд отличаются от мелкософтовских компонент.

Едва нашел как найти ноду под курсором.(CalcHitInfo "System.Drawing.Point)
Ужасно раздражает, когда правой кнопкой не можешь выделить ноду-для вызова меню для конкретной ноды приходиться вначале ее выделять левой кнопкой.

Код
fn nodeMouseClick tv arg =
   (
     pointTest = (dotNetObject "System.Drawing.Point" arg.x arg.y)
    if arg.button == tv.mousebuttons.right and (myNode=(tv.CalcHitInfo pointTest).Node)!=undefined then
     (
        if not myNode.Selected then (
            if not keyboard.controlPressed then tv.Selection.Clear()
            myNode.Selected=true
        )
        contextmenu.Show tv pointTest
     )
   )


Сейчас не могу найти такой простой вещи как определить имя ноды - то есть записать имя я записал, а как обратно вытянуть непонятно.
И еще хочется для некоторых нод менять цвет фона, а получается только для всех сразу.

Прикрепил файлик с образчиком, который ты мне когда-то закидывал.
Прикрепленный файл  XtraTreeList_Test.rar ( 1,33 килобайт ) Кол-во скачиваний: 495

Спасибо.

Go to the top of the page
 
+Quote Post
[Vitus]
сообщение 02/02/2010, 14:07
Сообщение #5


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 280
Регистрация: 30/05/2006
Пользователь №: 32 013



Да, там с этим XtraTreeList всё совсем неочевидно. Это потому что, он по сути выдран из контекста, из комплексной среды разработки.
Там на http://devexpress.com можно скачать функциональную дему всего пакета, на два месяца, поставить её и поизучать в VS, как оно там что. Мне это помогло немного разобраться, но далеко не во всём, а щас забросил, не помню уже smile.gif

p.s. Но компонент очень гибкий и универсальный, стоит того чтобы позаморачиваться.

Сообщение отредактировал [Vitus] - 02/02/2010, 14:10
Go to the top of the page
 
+Quote Post
Track
сообщение 02/02/2010, 14:31
Сообщение #6


Русскоговорящий жидо-бандеровец
Иконка группы

Группа: Пользователи
Сообщений: 1 336
Регистрация: 16/07/2004
Из: Украина-Одесса
Пользователь №: 6 600



Ага-будет полезно.
В далеких планах написать какой-то нормальный image viewer для макса.
Про имя разобрался
Метод для TreeList.node
.<System.String>GetDisplayText <System.Object>columnID
Go to the top of the page
 
+Quote Post
Track
сообщение 03/02/2010, 19:59
Сообщение #7


Русскоговорящий жидо-бандеровец
Иконка группы

Группа: Пользователи
Сообщений: 1 336
Регистрация: 16/07/2004
Из: Украина-Одесса
Пользователь №: 6 600



А порезали для макса XtraTreeList конкретно-
в полной версии - RestoreLayoutFromXml(string xmlFile, OptionsLayoutTreeList options);
в максе только так RestoreLayoutFromXml(string xmlFile)

В максе сохранять-загружать в xml можно только с дефолтными параметрами.
А некоторые методы хоть и показываються, но не работают
Код
  .ExportToHtml <System.String>fileName
  .ExportToHtml <System.IO.Stream>stream
  .ExportToMht <System.String>fileName
  .ExportToMht <System.String>fileName <System.String>htmlCharSet
  .ExportToMht <System.IO.Stream>stream <System.String>htmlCharSet <System.String>title <System.Boolean>compressed
  .ExportToMht <System.String>fileName <System.String>htmlCharSet <System.String>title <System.Boolean>compressed
  .ExportToPdf <System.String>fileName
  .ExportToPdf <System.IO.Stream>stream
  .ExportToRtf <System.IO.Stream>stream
  .ExportToRtf <System.String>fileName
  .ExportToText <System.String>fileName
  .ExportToText <System.IO.Stream>stream
  .ExportToXls <System.IO.Stream>stream
  .ExportToXls <System.String>fileName


То есть можно только так.
Код
  .ExportToXml <System.IO.Stream>stream
  .ExportToXml <System.String>xmlFile


Так что порезали его по самые ....

Я думаю, может самому писать в xml.
Интересно, я по скорости выиграю так?
Все-таки встроенный метод однозначно быстрей должен быть

Сообщение отредактировал Track - 03/02/2010, 20:00
Go to the top of the page
 
+Quote Post
Track
сообщение 03/02/2010, 22:37
Сообщение #8


Русскоговорящий жидо-бандеровец
Иконка группы

Группа: Пользователи
Сообщений: 1 336
Регистрация: 16/07/2004
Из: Украина-Одесса
Пользователь №: 6 600



Этот XtraTreeList несмотря на свою платность работает через ...

В общем при копировании части дерева id нод не меняются и пишутся в XML с id оригиналов.
При загрузке дерева из XML -файла получаем полную кашу.

В общем использовать его стоит на свой страх и риск - в любой момент можно столкнуться с багом.
Пока что еще попробую использовать его, но с XML в любом случае придется разбираться для составления своей базы.
По прикидкам в XML должно будет храниться дерево порядка 10 000 нод, а то и больше.
Весьма интересно как он сможет это все переваривать.
Ну и конечно насколько быстро.
Go to the top of the page
 
+Quote Post
Track
сообщение 04/02/2010, 01:10
Сообщение #9


Русскоговорящий жидо-бандеровец
Иконка группы

Группа: Пользователи
Сообщений: 1 336
Регистрация: 16/07/2004
Из: Украина-Одесса
Пользователь №: 6 600



Отлично - из xml загрузилось
58 089 нод за 1.7 секунды!

Вот здесь кстати можно найти примеры по работе с XML и не только.
http://paulneale.com/tutorials/dotNet/dotNet.htm

Монолог продолжается. smile.gif
Go to the top of the page
 
+Quote Post
[Vitus]
сообщение 04/02/2010, 10:05
Сообщение #10


Мастер
Иконка группы

Группа: Участник
Сообщений: 1 280
Регистрация: 30/05/2006
Пользователь №: 32 013



Paul Neale, кстати неоднократно публично матюкался на XtraTreeList, но всё равно использовал smile.gif
Go to the top of the page
 
+Quote Post
Track
сообщение 04/02/2010, 20:31
Сообщение #11


Русскоговорящий жидо-бандеровец
Иконка группы

Группа: Пользователи
Сообщений: 1 336
Регистрация: 16/07/2004
Из: Украина-Одесса
Пользователь №: 6 600



Пока что еще не уверен, что буду его использовать, но скорей всего да. smile.gif
Вот здесь нашел про перерисовку отдельной ноды

Пока еще не разбирался как перевести это в макскрипт, но за этим надеюсь дело не станет.
В принципе стоило сразу начинать искать в свойствах, методах и эвентах строчки с CustomDraw

Теоретически все dotNetObjects должны иметь свойства для "ручной перерисовки"
А в XtraTreeList, если я правильно понял, можно перерисовывать отдельные ноды, а не весь объект.
Go to the top of the page
 
+Quote Post
MadlasS
сообщение 15/02/2010, 14:56
Сообщение #12


Знаток
Иконка группы

Группа: Пользователи
Сообщений: 259
Регистрация: 25/11/2005
Пользователь №: 18 441



а можно както создать дотнетовский объект типа стринг, хотелось бы воспользоваться форматированием.
http://msdn.microsoft.com/ru-ru/library/0c899ak8.aspx
Если возможно подскажите как?
Go to the top of the page
 
+Quote Post
Track
сообщение 15/02/2010, 15:26
Сообщение #13


Русскоговорящий жидо-бандеровец
Иконка группы

Группа: Пользователи
Сообщений: 1 336
Регистрация: 16/07/2004
Из: Украина-Одесса
Пользователь №: 6 600



dotNetObject "System.String" String
Оно?

Сообщение отредактировал Track - 15/02/2010, 15:27
Go to the top of the page
 
+Quote Post
MadlasS
сообщение 15/02/2010, 17:09
Сообщение #14


Знаток
Иконка группы

Группа: Пользователи
Сообщений: 259
Регистрация: 25/11/2005
Пользователь №: 18 441



да оно сам не пойму чё у меня не получалось
Спасибо
Go to the top of the page
 
+Quote Post
MadlasS
сообщение 17/03/2010, 17:03
Сообщение #15


Знаток
Иконка группы

Группа: Пользователи
Сообщений: 259
Регистрация: 25/11/2005
Пользователь №: 18 441



Такой вапрос, есть image=((dotnetclass "System.Drawing.Image").FromFile (iconPath+str+".png"))
Mожно потом както узнать имя файла для image?
Mожно в image.tag записать стринг с именем файла?
Go to the top of the page
 
+Quote Post
Bots
сообщение Системное сообщение






6 страниц V   1 2 3 > » 
Fast ReplyReply to this topicStart new topic

1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



RSS Текстовая версия Сейчас: 29/03/2024 - 01:36