|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Соединить два окна программы
топограф, технолог
Москва
Регистрация: 24.05.2009
Сообщений: 3,074
|
||
Просмотров: 16373
|
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
С запоминанием позиции диалога (по тексту переменные *DTscreenpoint1* и *DTscreenpoint*)
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Если располагаю второе окно сразу под первым (пальцем отмечаю его низ
![]() Если нельзя на лиспе сделать такое одно общее окно, то можно имитировать его этими двумя окнами? Например: - Выводить первое окно всегда - даже если App одно. [Так Вас понял, что сохранить первое окно при выводе второго нельзя?] - Второе окно выводить всегда сразу под первым. После Ok, Cancel, Esc опять выводить первое окно, если Apps у выбранного объекта больше одного. На лиспе такое возможно?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
... Если же можно было бы говорить об одном окне, то что-нибудь вроде такого:
Разве что без горизонтальной прокрутки и возможности изменения размеров пользователем. При этом типы могли бы быть тоже кликабельными - для координат точек, расстояний и т.п.?
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 28.07.2021 в 21:18. Причина: Замена картинки |
||||
![]() |
|
||||
Инженер LISP Регистрация: 11.05.2005
Минск
Сообщений: 6,996
|
пока сделал так:
1. Зациклил выбор примитивов 2. Зациклил выбор apps (если их >1) для выбранного примитива 3. Заменил диалог popup list на list_box 4. В диалоге list_box можно выбирать двойным кликом
__________________
Как использовать код на Лиспе читаем здесь |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
имхо, надо не мельтешение окошек диалога - а сделать палитру (как панель свойств) и туда выводить информацию по событию изменения набора примитивов. Это верный способ "выбесить" пользователя - заставив его постоянно закрывать диалоги/сообщения на каждый "чих")
|
|||
![]() |
|
||||
О! Именно!
Все - удобнее и быстрее. ![]() Да! Да! Да! Да! Цитата:
Единое окно - см. у меня в предыдущем - и могло бы быть такой "панелью". Стояло бы на выбранном пользователем месте, и только бы данные в нем менялись. Сейчас же, в принципе бы - всегда выводить окно выбора Apps, даже для одного App, но оставлять это окно после вызова окна редактирования? Но на лиспе невозможно? Можно ли убрать Ok - в окне Свойства мы же вводим-редактируем без него? Cancel, допустим, оставить - для отмены изменений. Но чтобы выбор следующего объекта в чертеже был активен без действий закрывания окна?
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 29.07.2021 в 16:03. |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
|
|||
![]() |
|
||||
можно сделать имитацию на лиспе, но тогда не нужно сначала выбирать примитив, а выбирать его из диалога, который будет висеть, пока его не закроют.
|
||||
![]() |
|
||||
... И в конечном итоге нужно, чтобы отображались Apps и их содержание для всех выбранных объектов, для нескольких, а не только для одного. Как в окне Свойства.
Если значения в одинаковых полях разные, то чтобы писалось бы *РАЗЛИЧНЫЕ* или *VARIES*. Или это я сейчас впереди паровоза?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
это будет уже какой-то фьюжн с темой про статистику xd.
|
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
сохранить первый раз встретившееся значение в словаре с ключем, равным имени поля - и потом если встречается еще раз значение: сравнить и принять решение. Это уже обычные рабочие задачи программирования. |
|||
![]() |
|
||||
Статистика - иное, о количестве вообще и в частности, и о различных описаниях одноименных Apps.
Про работу сразу с несколькими - всеми - выбранными объектами в принципе же очевидно. Мы же все именно так делаем для свойств через Свойства. Не тыкаем же по очереди в каждый объект, если нужно одинаково изменить что-то для всех нескольких.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
ну так при анализе набора примитивов придется предварительно делать и анализ последовательности типов полей по приложениям - например, как ранее говорил, посчитать хэши этих последовательностей. Свойства и XData - это совершенно разные вещи. Когда перейдете от академического созерцания описательных данных к написанию самого кода - поймете это.
|
|||
![]() |
|
||||
Offtop: Тема про статистику оказалась дюже сложной! Неподъемной! ))
... Но Вы в принципе правы - если при названиях Apps давать их число в выделенных объектах. Как в моей картинке из #4. И некоторое дублирование в пакете команд - это хорошо. Практика работы с подобными (скрытыми, трудно анализируемыми) данными показывает, что наличие различных, альтернативных вариантов для одного и того же оч. помогает. И наличие косвенных данных/признаков - чтобы помочь обеспокоиться о чем-то или проверить на ходу что-то. В этом же случае хорошо сразу видеть, у скольких указанных объектов есть каждого Apps. ----- добавлено через ~3 ч. ----- С точки зрения пользователей (которые, собственно все и делают, и ради которых все и делается) это одно и то же. Сейчас пользователи делают практически то же самое - дают описательную информацию - почти прямо, чаще косвенно: назначая объектам нужные слои, веса, цвета, типы линий. Давая нужное содержание в текстах, в атрибутах. И т.д. Здесь же они будут делать это напрямую. Разве что в других окнах и т.п. Поэтому и приемы работы во многом будут одинаковые - в т.ч. ввод и редактирование значений в XData, в т.ч. нужность этого не только поштучно, а сразу для многих выбранных объектов.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
с точки зрения обычного рядового пользователя акада есть определенный фиксированный набор свойств объектов + именованные вставки атрибутов (с фиксированным текстовым типом данных). А XData, XRecord - это программные контейнеры для скрытого хранения некоторого набора данных. Аутодеск ничего не знает, в каком порядке разработчики надстроек будут заносить данные - так как это внутреннее дело стороннего разработчика надстройки. А вы всё пытаетесь это внутреннее дело (по сути черный ящик для пользователя) перевести в некий общий набор правил, которые непонятно с какого хрена должны соблюдать другие участники рабочего процесса)
|
|||
![]() |
|
||||
Цитата:
В общем-то в этой теме мы отчасти этим и занимаемся. ![]() Демонизация, однако. Правил я не собираюсь создавать и не создаю. Нельзя соблюдать или нарушать то, чего нет и не будет. Все инструменты, нужные для работы с XData, я предполагаю совершенно нейтральными к тому, как пользователи организуют их структуру и содержание. ----- добавлено через ~31 мин. ----- ... Опять, возможно, впереди паровоза. Насчет изменения размеров окон. Может быть есть возможность расположить на окне кнопки изменения размеров окон - кнопки (-ка) для размера по горизонтали и кнопки (-ка) для размера по вертикали? Например, предусмотреть хотя бы три варианта: "минимального", "среднего" и "максимального" размера окна по вертикали, так же для размера по горизонтали. Или даже вариантов побольше. ![]() Может быть кнопка с выбором размера. Может быть цифрой - от 1 до 3, например. Лучше до 10. ![]() Чтобы в процессе работы можно было подбирать этими кнопками подходящий к случаю размер окон. Кнопки, допустим, на рамке в середине слева и снизу. Вообще, и без жутких трудозатрат реализуемо?
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 30.07.2021 в 03:36. |
||||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Цитата:
Цитата:
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Offtop: Ну подождем октябрь 2021г ) Начало уже положено - придуман префикс для команд, это мощная заявка на успех)
|
|||
![]() |
|
||||
Если управление размерами окна возможно через кнопки, то, допустим, так - с кнопками на рамке "-", "+" или цифрами, или стрелками:
Если это требует рутинной работы, то я в полном распоряжении. ![]() ----- добавлено через ~20 мин. ----- Окно же для редактирования в любом случае нужно с ограниченными размерами с вертикальной прокруткой. Cейчас выдается ошибка если много полей-кодов, что окно не умещается на экране.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 30.07.2021 в 20:08. Причина: замена картинок на меньшие |
||||
![]() |
|
||||
Кажется, понял, как можно решить все основные задачи.
Исхожу, что окна с двумя списками с вертикальными прокрутками на лиспе возможны: Т.е. можно сделать в целом в том виде, как в предыдущем сообщении. (Пусть без горизонтальной прокрутки, если нельзя). Программе нужно еще воспринимать не только одиночные объекты, но все выбранные объекты. Уже выбранные или запрашивать выбор. В верхний список выводятся строки, сформированные из количества объектов, у которых есть App, порядкового номера App - для одноименных, но с разным составом-числом кодов, и название App. Например: Цитата:
В нижний список выводятся строки, сформированные из типов данных и значений. С разделителем, имитирующим вертикальную табличную черту. (Не так, как здесь, а как одну вертикальную ![]() Например: Цитата:
В нижнем списке строки не редактируемые, но при двойном клике на строке выводится окно ввода-редактирования. Свое для каждого типа данных. Ширина этих окон ввода лучше фиксированная - чтобы не было ошибок как сейчас, если длинные строки не умещаются на экране. Эти окна для строк ввода с кнопками Ok и Cancel. Или даже без них - при Enter сохраняются изменения и окно закрывается. При Cancel или крестике тоже закрывается, изменения отменяются. Например, для строковых и Distance: В таких окнах можно давать подсказки об ограничениях или т.п. Например, для строк можно выводить счетчик количества символов. Для слоев можно сделать выбор из выпадающего списка. И т.п. Окна перемещаемые. Контроль введенного на ограничения, конечно, должен быть обязательно. Как и контроль общего объема всех Apps у объектов. Из-за общих правил безопасности.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 03.08.2021 в 18:29. Причина: Добавил про слои |
||||
![]() |
|
||||
В 2010 г. было сделано и выложено Lee Mac - http://www.lee-mac.com/listboxsync.html.
Окно с двумя списками, в котором содержание второго зависит от выбранного в первом. На этой основе сделан эскиз нужного здесь окна - приложен. Переделано в вертикальное расположение и в создание диалога "на лету", без отдельного dcl. Верхний список для выбора XData по названию, нижний для значений в выбранном приложении. При двойном нажатии в нижнем списке на строку появляется окно-строка для ввода/редактирования этого значения. Это только набросок - там все условно и не все действует. Но кажется подходящим для задачи в общем. ... Еще бы убрать или максимально ужать бессмысленно-огромный подвал с "Ok".
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 04.10.2021 в 00:00. |
||||
![]() |
|
||||
Все-таки удалось сделать с общим окном - на основе диалога Lee Mac с зависимыми списками, xdvedit.
Плюсы из исходной программы gile и дополнений VVA сохранены. Некоторые улучшения тоже сделаны: проверка/исправление строчных данных с длиной больше 255 символов, проверка на зарезервированные Apps, выбор слоев и пр. Кроме того, эта версия не отказывается работать с XData с большим количеством полей данных, длинных строчных данных - как исходная программа gile. Чуть сыровато, но в целом аналог xdedit_l с ускорением просмотра-выбора XData сделан.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Вариант мощнее, точнее и удобнее - XDTOOLS_VEDIT.lsp.
Просмотр и редактирование не для одного указанного, а для всех выбранных объектов. По аналогии с окном Свойства. И т.п. Может быть лучше сделать редактирование не на двойной клик, а на одинарный? Двойной клик был сделан, чтобы можно было ставить курсор в списке для выделения строки, прокрутки колесом. Или от случайного нажатия. И потому что просмотр бывает чаще редактирования. И редактируется чаще не все. Чтобы не нужно было в таких случаях гасить окно редактирования. ----- добавлено через ~11 ч. ----- Цитата:
![]() Нужно подумать - может быть удобно...
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 22.11.2021 в 15:44. Причина: замена лиспа - некоторые важные уточнения |
||||
![]() |
|
||||
С новогодними праздниками!
Улучшена-уточнена логика действий + некоторые исправления. XDTOOLS_VEDIT-v-0-2.lsp
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Еще улучшено-уточнено - XDTOOLS_VEDIT-v-0-4.lsp.
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,425
|
АлексЮстасу, создай ты уже наконец на GitHub свой репозиторий - и выкладывай туда обновления.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Цитата:
Тема же чисто автокадовская. Чем-то для автокадовцев GitHub лучше?
__________________
количество моих сообщений не говорит о знании Автокада |
||||
![]() |
|
||||
Регистрация: 18.01.2021
Сообщений: 404
|
|
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
на гитхабе не будет столько просмотров) Здесь все-таки многие заходят в ветку в надежде - что увидят что-то практически применимое для личных целей, имхо.
Последний раз редактировалось Сергей812, 24.01.2022 в 18:49. Причина: невнимательность) |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,425
|
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Регистрация: 18.01.2021
Сообщений: 404
|
Цитата:
растолкую еще раз: эта ветка закончится и ваша ссылка пропадет втуне и никто даже не догадается слазить в эту ветку радит этой темы по мне это очевидно дивлюсь, что непонятно собеседникам ----- добавлено через ~3 мин. ----- нормальный чел и не подумет лазить в какой то "хаб", ему и без того проблем достаточно нормальному надо разьяснять, что оно того стоит и это не страшно |
|||
![]() |
|
||||
Регистрация: 10.08.2013
Сообщений: 11,499
|
Offtop: ну трудно назвать нормальным программиста (да и просто инженера) - который не умеет/не хочет пользоваться поиском в инете. Слишком большая роскошь - собирать своим лбом все шишки на пути)
|
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,425
|
Offtop: 99% потерь времени на данный момент лично у меня - гугл/яндех/рамблер/... - что по поводу <вот такой задачи> почитать/посмотреть/послушать/...
![]()
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
1. Да к теме - соединить два связанных окна - эти обновления относятся лишь косвенно. Конечно, лучше разместить готовую программу в соответствующем месте.
2. При 11.5 тыс просмотров темы нашелся только один (!) лиспер, koMon, обсуждавший эту задачу, и создавший свое решение. Самое подходящее предмету и самое доступное решение пришлось искать мне, вообще не программисту, самому. И нашлось - 2010 г. (!) от всем известного Lee Mac. Как-то помочь фактически оказался способен только один (!) из всего сообщества - VVA. (К огромному сожалению он, кажется, ушел из AutoCAD). 3. Поскольку тема github нашла отклик, то обсуждающие могут же такую создать, и перенести отсюда сообщения с #28 до #40 туда.
__________________
количество моих сообщений не говорит о знании Автокада Последний раз редактировалось АлексЮстасу, 26.01.2022 в 17:46. |
||||
![]() |
![]() |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Импорт из АutoCAD 3D в расчетные программы (Лира, Скад) | Вовчанцый | SCAD | 4 | 07.12.2009 05:19 |
Появление окна загрузки приложения во время выполнения программы. Как избежать? | Tugodum-ka | Программирование | 10 | 05.04.2009 01:56 |
Диалоговые окна за пределами экрана (не FILEDIA) | kosmax | AutoCAD | 7 | 30.03.2009 16:30 |
Окна и двери по ГОСТ. Нужно ли | Aleks ManaeFF | Архитектура | 8 | 01.08.2008 10:41 |
Диалоговые окна FILE | klopius | AutoCAD | 2 | 21.11.2007 10:36 |