|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Последний диалог на DCL я написал 20.12.2003. Да и то смеха ради. Хотя некоторые подходят очень тщательно, например, был такой "Леха", у которого огромный диалог так был вылизан space-ами, что был "как настоящий". Правда он только один диалог и сделал, потом вообще от AutoCAD отошел.
В LISP надо использовать его преимущества и избегать недостатков. Главный из них - убогий DCL. Я лично делаю диалоги в виде COM-серверов. У меня всего их 19 шт на пару тысяч LISP-программ. Причем 17 из них используются и в других моих программах, вообще не связанных с AutoCAD. И все их более 4 лет уже не трогал. Диалоги можно делать и в ObjectARX (но зачем тогда только диалоги?). Но здесь давно отбила охотку совместная "стратегия" MS и Autodesk - привязка версий AutoCAD и VS. Т.е. постоянно следить за контролем версий у себя и всех пользователей. Можно и на .NET. И связывать судьбу своей "вшивенькой" по объему программы с очередной гонкой обновлений .NET. Пусть уж этим занимаются те, кто пока самые умные (про "пока" они пока не знают). Нам, старым дуракам, пока COM хватает. В обозримом будущем Microsoft от этой технологии не откажется. Кстати, COM-диалог в Delphi сделать лишь немного посложнее, чем Hello Word. Да и в любой нормальной среде программирования. |
|||
|
||||
Я кстати в Delphi писал свою выпускную программу в лицеи, но было это аж 15 лет назад, и ни о каком COM я не в курсе.
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
У COM сервера "беда" в том, что его тоже надо регистрировать (хотя "приличная" программа на автолиспе все-равно требует установки), и из-за этого я пару раз писал диалоги для автолиспа в виде простого exe - передавал аргументы, кстати, не параметрами - а цеплялся к "активному" автокаду - в общем "тоже вариант".
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Цитата:
|
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Есть хороший способ - передавать такой программе только один параметр - имя INI-файла. А уж там могут быть какие угодно аргументы, в том числе записанные из Lisp. Туда же и результаты записываются. Очень удобно для больших "диалогов", например расчетных программ, по результатам работы которых надо что-то сделать в Автокаде, причем в разных функциях. |
|||
|
||||
Да, как таковых проблем то нет.
Есть неудобство, например картинки по пикселям рисовать Зато потом научился Или вот Но так извращаться в наше время, как-то мне кажется глупо. Offtop: Почему закрыли доступ к загрузке картинок через Радикал? Охота картинки прям по тексту вставлять, а так получается и в тексте и ещё раз в низу в миниатюрах дублируются, особенно GIF не прилично мелькают
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
К тому же их надо делать проще. Взять, например, твой диалог с откосом. В него затолканы все мыслимые параметры, включая цвет. А большинство из них не нужны! Надо использовать штатные средства. 1. Например, любая программа должна рисовать так, как задано в AutoCAD - слой, цвет, тип линии и прочее - текущими настройками, а не индивидуальными настройками каждой программы. Хочешь откос на каком-то "откосном" слое? Так установи предварительно этот слой. Причем, желательно, из классификатора (справочника) слоев, в котором есть и точное название и цвет и всё прочее. Для топографии это особенно важно. Её часто приходится сводить, и если в каждой шараге будут свои слои, то ничего хорошего не будет. 2. А зачем в диалоге столько "технологических" настроек (шаг, недовод и прочее)? Это всё должно делаться по стандартным правилам. В 99% так и должно быть, а для редких случаев может быть опция во время рисования. Фактически нужно выбрать только тип рисунка откоса, их есть несколько стандартных, и, для любителей, может быть сколько угодно нестандартных. Лишние настройки только мешают пользователю, да и время разработчика отнимают. На прилагаемых скриншотах единый диалог "чего угодно". Он написан один раз, а применяется тысячи раз. Тут и рельеф, и линии, и точечные знаки. Что, для каждого вида рисунка свой диалог сочинять? Так только в топографии более 500 разных УГО, замучаешься. А уж про все виды чертежей и говорить нечего. На диалоге видно, что каждый "листик" имеет название, длинное описание, иллюстрацию (которую можно делать "на лету", прямо с нарисованного изображения). Само меню (их может быть сколько угодно) описано в XML. Элемент, описывающий окос, выглядит так Код:
И еще несколько примеров. 1. Выбор линейных условных знаков и выбор точечных. 2. Простенький диалог с двумя вводами чисел применяется очень часто - там где надо ввести одно или два значения (длина и ширина и т.п.). Можно задать допустимый диапазон, позволить выбрать число из справочника (который, разумеется, будет также в виде древовидного XML), "прочитать" число из AutoCAD, указав на какой-то примитив (текст, атрибут). Такой диалог можно вызвать где угодно. Если надо, так и в рисовании откосов, в качестве опции. Вызов наподобие Код:
3. И, для сравнения, выбор файла. Там много чего отличается от штатных средств Windows. Но этот диалог сделан в виде функции с аргументами наподобие Код:
|
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Можно использовать библиотеки слайдов, рисуются они быстрее чем картинки
Согласен, рисование откоса слайдами намного проще, а показывать его в цвете - красивость... о, это мохнатый диалог, написанный даже не помню уже кем и когда, но вы добавили красивость, затратив время, кстати не такое уж большое. Имхо, выбирать блоки нужно из списка, а не бродить по дереву а формировать список можно по разному: жестко-програмно или библиотечно-папочно, тут COM в помощь, все уже написано до нас кстати диалог откоса мне сразу не понравился, эти рога вверху... неэргономично, насчет слоя согласен с ShaggyDoc (либо текущий, либо из списка, либо определенный программой, создание нового слоя, может привести к к каше Как итог, такой диалог пишется, ну, 10 мин макс, с тестированием |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Где слайды рисуются "быстрее"? На экране, что ли? Не смешите. А сколько надо телодвижений, чтобы создать слайд (да ещё правильно отображиющийся), да создать библиотеку. И ради чего, ради убогого DCL (а больше никому sld не нужен). А растровую картинку мы получаем одним щелчком (левая нижняя кнопка). Картинка прямо с экрана нужного размера вырезается, сохраняется в нужное место и сама показывается. Цитата:
|
|||
|
||||
строю, ломаю Регистрация: 03.04.2008
Украина
Сообщений: 5,515
|
Сколько разных блоков ваши пользователи используют за час. день, месяц, год?
Согласен, в автокаде dcl убогий, в брикскаде, например, нет проблемы с пробелами, нет проблемы со слайдами, улучшено отображение табулированных списков, директива include работает как надо и т.д., а слайд делается очень просто, без всяких вырезаний, с помощью простого лиспа Почему я против деревьев? Например многие пользователи любят формальности, да так, что, чтоб найти нужный файл, нужно войти аж в: сервер/гипство/завод/цеха/цех/год/проект/конструкции... или даже глубже... Последний раз редактировалось gomer, 06.12.2012 в 17:27. |
|||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Цитата:
Вот, например, в Total Commander есть кнопка[*], которая позволяет запомнить каталог в списке (и так же легко удалить оттуда). Кто умеет работать - постоянно ей пользуются. Кто не умеет - стонет "я против". Вот так и у меня в ruCAD есть такое "Мое меню", в которое пользователь отбирает то, что именно он, чаще всего использует. Разумеется, тоже в виде дерева. А деревья всегда раскрыты при вызове не предыдущем использованном пункте, потому что вероятность использования однотипных команд (или повтора) гораздо больше. Заодно и все пункты меню имеют легко запоминающиеся цифровые имена команд. Не "ОТКОСГЕОДЕЗИЧЕСКИЙ", а 0030, например. И запоминается легко, и с клавиатуры можно вызвать проще. Сами цифровые имена видны в меню AutoCAD или в хинтах. |
|||
|
||||||
Парни спасибо, что поддержали тему, но опять ушли в сторону.
hwd, буду ждать обещанного примера, Цитата:
Что касается "шага и прочих параметров", нифига это однозначно не определено в нормативах, например: Цитата:
или Цитата:
И я безусловно вам благодарен, уважаемый ShaggyDoc, вы часто даёте дельные и полезные советы, но приводимые вами отрывки из ваших ru-функций, абсолютно бесполезны, во-первых это отрывки выдернутые из неизвестного нам кода, во-вторых, как правило приведённые вами примеры вызова ваших функций и так всем понятны, а вот самое интересно(содержание этих функций) вы и не приводите, да оно и понятно, тогда бы вам пришлось выкладывать всю вашу библиотеку, ведь каждая ваша функция использует в себе ещё 10 других ваших функций и так до бесконечности. Цитата:
Цитата:
Вот из-за эргономики меня и достал DCL, чтоб элементы подвинуть\передвинуть\выровнять, столько мороки. А в моих диалогах, есть запоминание всех последних введённых параметров навсегда, раз настроил, и больше не надо, только вызывай команду и сразу пользуйся.
__________________
Почему все вдруг становятся умными, когда уже не надо? |
||||||
|
||||
Я делаю несколько вариантов, под разные сценарии работы. Результат выложу в блоге и дам ссылку. Здесь выкладывать не буду, т.к. нет желания.
Цитата:
@Disney На тему плюсов/минусов связки .NET + LISP так же отпишусь в блоге. Как-то у вас это в привычку вошло...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Ну на самом деле, если бы не автоматическое создание кода в Visual Studio, писать диалоги WinForm (и WPF, наверное) было бы не намного легче, чем DCL. Разумеется, возможностей, всяких контролов и пр. красивостей и удобностей в WinForm гораздо больше. И диалоги научиться делать в VS довольно несложно, особенно после хорошей практики в DCL. Правда, для меня пока полная загадка, будут ли они работать в других автокадах/виндовсах, кроме тех версий, под которые я их напишу
|
||||
|
||||
Цитата:
WinForms - это всего лишь управляемая оболочка над функциями WinAPI, создающими GUI. Для прорисовки используется ЦП. WPF полностью самостоятельна, для прорисовки используется DirectX и видеокарта. Преимущества WPF не заканчиваются на мощной графике. Очень грамотно реализована идея привязок. Само приложение делится на три части: модель (собственно объектная модель, для работы с которой создаём GUI), представление (сам GUI) и модель представления (связующее звено, между моделью и представлением). За счёт такой структуры любое звено можно заменить другой реализацией, без каких либо изменений/последствий в проекте. Этот паттерн известен как MVVM. Цитата:
Компилировать .NET код можно для платформ x86, x64 или AnyCPU. Последний вариант создаёт код, независимый от разрядности ОС. Первые два следует использовать в том случае, если в .NET коде используются сторонние библиотеки, зависящие от разрядности платформы (как правило это не .NET библиотеки). Под каждую новую версию AutoCAD, .NET код нужно компилировать отдельно, что обусловлено реализацией .NET API компанией Autodesk. Неприятно, но не смертельно, ибо занимает немного времени, как правило - 3-5 секунд на решение, в котором находится десяток проектов. Неприятная необходимость компилирования под каждую версию AutoCAD с лихвой компенсируется возможностями, которые разработчику предоставляет .NET - это далеко не только построение GUI, но и решение любых задач, с которыми неудобно\невозможно возиться в LISP... Ограничение WPF: эта технология реализована только под Windows. Реализации для MAC OS и Linux отсутствуют в виду того, что реализация требует много усилий.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 07.12.2012 в 11:13. |
||||
|
||||
Thượng Tá Quân Đội Nhân Dân Việt Nam Регистрация: 14.03.2005
44d32'44"С, 33d26'51"В
Сообщений: 13,381
|
Цитата:
Да вид-то проще всего установить - хоть в каком стиле, хоть "линуксовый", хоть Win8, хоть какой. |
|||
|
||||
Цитата:
Любая программа для своей работы имеет определённые системные требования. .NET разработчик волен компилировать один и тот же код под разные версии .NET Framework, чтобы клиент мог воспользоваться той версией, которая соответствует установленной у него платформой. Более того, зачастую нужные версии уже присутствуют на компьютере. Актуальный версий, которые могут потребоваться, не так уж и много: 3.5, 4.0 и 4.5. Компания Microsoft, в отличие от компании Autodesk, к счастью пока не грешит ежегодным выпуском своих продуктов, в погоне за планом ежегодных продаж. .NET Framework - бесплатная платформа, поэтому версий .NET гораздо меньше, чем версий AutoCAD. Не мешайте мух с котлетами... Представления, шаблоны и стили - это "четыре совершенно разных человека"! Всё это грамотно реализовано в WPF.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: Последний раз редактировалось hwd, 07.12.2012 в 11:50. |
||||
|
||||
Весьма полезная информация! Спасибо!
Цитата:
Цитата:
При этом, как мне думается, проблем с версиями AutoCAD практически не должно быть. |
||||
|
||||
Совершенно верно.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome: |
||||
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,840
|
Раз уж вспомнили, там проявляется еще "положительный момент", при "должной" проверке на ошибки - окна без проблем делаются не диалоговыми, а "интерактивными" - типа как в моей змейке рубика (там правда нет ни строчки на лиспе, но я про суть "интерактивности") - ИХМО этот подход (при опять-же правильной обработке лиспом) - позволяет сильно облегчить юзеру работу.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание графика в AutoCAD на основе txt или xls файла | Red Nova | Программирование | 116 | 06.04.2017 09:20 |
AutoCad MEP. Структура проекта. Создание розеточной сети. | serg01 | Вертикальные решения на базе AutoCAD | 3 | 04.03.2008 13:22 |
Создание своего шаблона в AutoCAD 2007 | RodiXX1 | AutoCAD | 2 | 05.08.2007 23:58 |
Одна из целей: Создание экспертных систем на базе AutoCAD. | Сергей Юрьевич | Программирование | 9 | 01.01.2005 15:17 |