Архитекторам и проектировщикам
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Соединить два окна программы

Соединить два окна программы

Ответ
Поиск в этой теме
Непрочитано 25.07.2021, 16:52 #1
Соединить два окна программы
АлексЮстасу
 
топограф, технолог
 
Москва
Регистрация: 24.05.2009
Сообщений: 2,914

Можно ли соединить два окна лисп-программы? xdedit_l_ru.lsp.
Программа 2011 г., открытая, автор сейчас недоступен.

Сейчас, если у объекта больше одного App, появляется первое окно - выбора App.

После его выбора появляется второе окно - просмотра-редактирования.

Если у объекта больше одного App, то может быть нужно просмотреть-редактировать сначала содержание одного App, потом второго и т.д.
Сейчас для этого приходится снова и снова вызывать программу.
Можно ли на лисп:
1. или сделать одно общее окно - с выпадающим списком App сверху и полями просмотра-редактирования снизу?

2. или показывать второе окно, сохраняя первое активным, чтобы сразу можно было выбирать App с отображением его содержания во втором окне?
При этом, выводить второе окно сразу под первым, но сохранив возможность его перемещения?

И еще - можно ли, чтобы при вызове команды окна выводились в предыдущем месте, а не всегда в середине экрана?

Миниатюры
Нажмите на изображение для увеличения
Название: xdedit_app_PARCEL.png
Просмотров: 546
Размер:	5.3 Кб
ID:	239209  Нажмите на изображение для увеличения
Название: xdedit_edit_PARCEL.png
Просмотров: 554
Размер:	9.4 Кб
ID:	239210  Нажмите на изображение для увеличения
Название: xdedit_app_edit_PARCEL.png
Просмотров: 557
Размер:	12.9 Кб
ID:	239211  

Вложения
Тип файла: lsp xdedit_l_ru.lsp (11.2 Кб, 23 просмотров)
Тип файла: dwg
DWG 2004
wind_test.dwg (308.8 Кб, 12 просмотров)

__________________
количество моих сообщений не говорит о знании Автокада
Просмотров: 9074
 
Непрочитано 27.07.2021, 13:14
1 | #2
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,890
<phrase 1= Отправить сообщение для VVA с помощью Skype™


С запоминанием позиции диалога (по тексту переменные *DTscreenpoint1* и *DTscreenpoint*)
Вложения
Тип файла: lsp xdedit_l_ru.lsp (11.4 Кб, 7 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Автор темы   Непрочитано 27.07.2021, 17:45
#3
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,914


Если располагаю второе окно сразу под первым (пальцем отмечаю его низ ), то оно при следующем вызове снова выводится в середине...

Если нельзя на лиспе сделать такое одно общее окно, то можно имитировать его этими двумя окнами?
Например:
- Выводить первое окно всегда - даже если App одно.
[Так Вас понял, что сохранить первое окно при выводе второго нельзя?]
- Второе окно выводить всегда сразу под первым. После Ok, Cancel, Esc опять выводить первое окно, если Apps у выбранного объекта больше одного.
На лиспе такое возможно?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 28.07.2021, 20:22
#4
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,914


... Если же можно было бы говорить об одном окне, то что-нибудь вроде такого:

Разве что без горизонтальной прокрутки и возможности изменения размеров пользователем.
При этом типы могли бы быть тоже кликабельными - для координат точек, расстояний и т.п.?
Миниатюры
Нажмите на изображение для увеличения
Название: view-edit1.png
Просмотров: 373
Размер:	16.2 Кб
ID:	239323  
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 28.07.2021 в 21:18. Причина: Замена картинки
АлексЮстасу вне форума  
 
Непрочитано 29.07.2021, 09:56
1 | #5
VVA

Инженер LISP
 
Регистрация: 11.05.2005
Минск
Сообщений: 6,890
<phrase 1= Отправить сообщение для VVA с помощью Skype™


пока сделал так:
1. Зациклил выбор примитивов
2. Зациклил выбор apps (если их >1) для выбранного примитива
3. Заменил диалог popup list на list_box
4. В диалоге list_box можно выбирать двойным кликом
Вложения
Тип файла: lsp xdedit_l_ru v.2.lsp (12.3 Кб, 9 просмотров)
__________________
Как использовать код на Лиспе читаем здесь
VVA вне форума  
 
Непрочитано 29.07.2021, 10:56
#6
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,455


имхо, надо не мельтешение окошек диалога - а сделать палитру (как панель свойств) и туда выводить информацию по событию изменения набора примитивов. Это верный способ "выбесить" пользователя - заставив его постоянно закрывать диалоги/сообщения на каждый "чих")
Сергей812 вне форума  
 
Автор темы   Непрочитано 29.07.2021, 15:49
#7
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,914


О! Именно!
Все - удобнее и быстрее.
Цитата:
Сообщение от VVA Посмотреть сообщение
1. Зациклил выбор примитивов
Да!
Цитата:
Сообщение от VVA Посмотреть сообщение
2. Зациклил выбор apps (если их >1) для выбранного примитива
Да!
Цитата:
Сообщение от VVA Посмотреть сообщение
3. Заменил диалог popup list на list_box
Да!
Цитата:
Сообщение от VVA Посмотреть сообщение
4. В диалоге list_box можно выбирать двойным кликом
Да!
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
имхо, надо не мельтешение окошек диалога - а сделать палитру (как панель свойств) и туда выводить информацию по событию изменения набора примитивов.
Да!

Единое окно - см. у меня в предыдущем - и могло бы быть такой "панелью". Стояло бы на выбранном пользователем месте, и только бы данные в нем менялись.

Сейчас же, в принципе бы - всегда выводить окно выбора Apps, даже для одного App, но оставлять это окно после вызова окна редактирования? Но на лиспе невозможно?

Можно ли убрать Ok - в окне Свойства мы же вводим-редактируем без него?
Cancel, допустим, оставить - для отмены изменений.
Но чтобы выбор следующего объекта в чертеже был активен без действий закрывания окна?
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 29.07.2021 в 16:03.
АлексЮстасу вне форума  
 
Непрочитано 29.07.2021, 16:05
#8
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,455


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Можно ли убрать Ok - в окне Свойства мы же вводим-редактируем без него?
Cancel, допустим, оставить - для отмены изменений.
Но чтобы выбор следующего объекта был активен без действий закрывания окна? Чтобы предыдущее окно закрывалось при выборе объекта с выведением окон уже его данных?
окно свойств (палитра) написано не на лиспе)
Сергей812 вне форума  
 
Непрочитано 29.07.2021, 16:28
1 | #9
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,268


можно сделать имитацию на лиспе, но тогда не нужно сначала выбирать примитив, а выбирать его из диалога, который будет висеть, пока его не закроют.
koMon вне форума  
 
Автор темы   Непрочитано 29.07.2021, 17:35
#10
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,914


... И в конечном итоге нужно, чтобы отображались Apps и их содержание для всех выбранных объектов, для нескольких, а не только для одного. Как в окне Свойства.
Если значения в одинаковых полях разные, то чтобы писалось бы *РАЗЛИЧНЫЕ* или *VARIES*.
Или это я сейчас впереди паровоза?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 29.07.2021, 17:46
#11
koMon


 
Блог
 
Регистрация: 26.09.2017
Сообщений: 1,268


это будет уже какой-то фьюжн с темой про статистику xd.
koMon вне форума  
 
Непрочитано 29.07.2021, 18:01
#12
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,455


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
в конечном итоге нужно, чтобы отображались Apps и их содержание для всех выбранных объектов, для нескольких, а не только для одного. Как в окне Свойства.
ну так из обработчика события изменения выбора получаете набор выделенных примитивов и обрабатываете их.
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Если значения в одинаковых полях разные, то чтобы писалось бы *РАЗЛИЧНЫЕ* или *VARIES*.
сохранить первый раз встретившееся значение в словаре с ключем, равным имени поля - и потом если встречается еще раз значение: сравнить и принять решение. Это уже обычные рабочие задачи программирования.
Сергей812 вне форума  
 
Автор темы   Непрочитано 29.07.2021, 18:14
#13
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,914


Цитата:
Сообщение от koMon Посмотреть сообщение
это будет уже какой-то фьюжн с темой про статистику xd.
Статистика - иное, о количестве вообще и в частности, и о различных описаниях одноименных Apps.

Про работу сразу с несколькими - всеми - выбранными объектами в принципе же очевидно. Мы же все именно так делаем для свойств через Свойства. Не тыкаем же по очереди в каждый объект, если нужно одинаково изменить что-то для всех нескольких.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 29.07.2021, 18:37
#14
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,455


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Статистика - иное, о количестве вообще и в частности, и о различных описаниях одноименных Apps.
ну так при анализе набора примитивов придется предварительно делать и анализ последовательности типов полей по приложениям - например, как ранее говорил, посчитать хэши этих последовательностей. Свойства и XData - это совершенно разные вещи. Когда перейдете от академического созерцания описательных данных к написанию самого кода - поймете это.
Сергей812 вне форума  
 
Автор темы   Непрочитано 29.07.2021, 20:15
#15
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,914


Цитата:
Сообщение от koMon Посмотреть сообщение
это будет уже какой-то фьюжн с темой про статистику xd.
Offtop: Тема про статистику оказалась дюже сложной! Неподъемной! ))

... Но Вы в принципе правы - если при названиях Apps давать их число в выделенных объектах.
Как в моей картинке из #4.
И некоторое дублирование в пакете команд - это хорошо. Практика работы с подобными (скрытыми, трудно анализируемыми) данными показывает, что наличие различных, альтернативных вариантов для одного и того же оч. помогает. И наличие косвенных данных/признаков - чтобы помочь обеспокоиться о чем-то или проверить на ходу что-то.
В этом же случае хорошо сразу видеть, у скольких указанных объектов есть каждого Apps.

----- добавлено через ~3 ч. -----
Цитата:
Сообщение от Сергей812 Посмотреть сообщение
Свойства и XData - это совершенно разные вещи.
С точки зрения пользователей (которые, собственно все и делают, и ради которых все и делается) это одно и то же.
Сейчас пользователи делают практически то же самое - дают описательную информацию - почти прямо, чаще косвенно: назначая объектам нужные слои, веса, цвета, типы линий. Давая нужное содержание в текстах, в атрибутах. И т.д.
Здесь же они будут делать это напрямую. Разве что в других окнах и т.п.
Поэтому и приемы работы во многом будут одинаковые - в т.ч. ввод и редактирование значений в XData, в т.ч. нужность этого не только поштучно, а сразу для многих выбранных объектов.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 30.07.2021, 01:21
#16
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,455


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
С точки зрения пользователей (которые, собственно все и делают, и ради которых все и делается) это одно и то же.
с точки зрения обычного рядового пользователя акада есть определенный фиксированный набор свойств объектов + именованные вставки атрибутов (с фиксированным текстовым типом данных). А XData, XRecord - это программные контейнеры для скрытого хранения некоторого набора данных. Аутодеск ничего не знает, в каком порядке разработчики надстроек будут заносить данные - так как это внутреннее дело стороннего разработчика надстройки. А вы всё пытаетесь это внутреннее дело (по сути черный ящик для пользователя) перевести в некий общий набор правил, которые непонятно с какого хрена должны соблюдать другие участники рабочего процесса)
Сергей812 вне форума  
 
Автор темы   Непрочитано 30.07.2021, 03:00
#17
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,914


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
А XData, XRecord - это программные контейнеры для скрытого хранения некоторого набора данных.А вы всё пытаетесь это внутреннее дело (по сути черный ящик для пользователя) перевести в некий общий набор правил, которые непонятно с какого хрена должны соблюдать другие участники рабочего процесса)
XData, XRecord, еще и Object Data, Property Sets - это просто контейнеры для пользовательских неграфических дополнительных данных. Они настолько же "программные", как отрезки, сплайны, точки и пр. И не для "скрытого", а просто для хранения. "Скрытость" их не есть их обязательное свойство, а есть, во-первых, следствие того, что сделаны они для описательных, т.е. неграфических данных. Во-вторых, вследствие отсутствия инструментов их отображения. Сделайте средства их показа - будут не "скрытые".
В общем-то в этой теме мы отчасти этим и занимаемся.
Демонизация, однако. Правил я не собираюсь создавать и не создаю. Нельзя соблюдать или нарушать то, чего нет и не будет.
Все инструменты, нужные для работы с XData, я предполагаю совершенно нейтральными к тому, как пользователи организуют их структуру и содержание.

----- добавлено через ~31 мин. -----
... Опять, возможно, впереди паровоза.
Насчет изменения размеров окон. Может быть есть возможность расположить на окне кнопки изменения размеров окон - кнопки (-ка) для размера по горизонтали и кнопки (-ка) для размера по вертикали?
Например, предусмотреть хотя бы три варианта: "минимального", "среднего" и "максимального" размера окна по вертикали, так же для размера по горизонтали. Или даже вариантов побольше.
Может быть кнопка с выбором размера. Может быть цифрой - от 1 до 3, например. Лучше до 10.
Чтобы в процессе работы можно было подбирать этими кнопками подходящий к случаю размер окон.
Кнопки, допустим, на рамке в середине слева и снизу.
Вообще, и без жутких трудозатрат реализуемо?
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 30.07.2021 в 03:36.
АлексЮстасу вне форума  
 
Непрочитано 30.07.2021, 09:23
#18
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,455


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
XData, XRecord, еще и Object Data, Property Sets - это просто контейнеры для пользовательских неграфических дополнительных данных. Они настолько же "программные", как отрезки, сплайны, точки и пр.
пользователь на "голом" акаде может взять и использовать их? Нет - значит, они программные)

Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Насчет изменения размеров окон. Может быть есть возможность расположить на окне кнопки изменения размеров окон - кнопки (-ка) для размера по горизонтали и кнопки (-ка) для размера по вертикали?
Например, предусмотреть хотя бы три варианта: "минимального", "среднего" и "максимального" размера окна по вертикали, так же для размера по горизонтали. Или даже вариантов побольше.
Может быть кнопка с выбором размера. Может быть цифрой - от 1 до 3, например. Лучше до 10.
Чтобы в процессе работы можно было подбирать этими кнопками подходящий к случаю размер окон.
Кнопки, допустим, на рамке в середине слева и снизу.
Вообще, и без жутких трудозатрат реализуемо?
если взять не застывший в своем развитии лисп, а тот же .Net + WPF - там можно реализовать почти все в пределах разумных трудозатрат. Но вы же делать этого не будете - ни сами изучать программирование, ни заказывать в разделе исполнителей. Будете сидеть и фантазировать - как волонтеры под вашим чутким руководством несут описательные XData в широкие массы)
Сергей812 вне форума  
 
Непрочитано 30.07.2021, 09:24
#19
Boxa

КЖ; C#
 
Регистрация: 03.11.2005
Санкт-Петербург
Сообщений: 2,459


Offtop:
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
В общем-то в этой теме мы отчасти этим и занимаемся.
"Мы", как мило =о)
__________________
_бложиг
Boxa вне форума  
 
Непрочитано 30.07.2021, 10:17
#20
Сергей812


 
Регистрация: 10.08.2013
Сообщений: 9,455


Offtop: Ну подождем октябрь 2021г ) Начало уже положено - придуман префикс для команд, это мощная заявка на успех)
Сергей812 вне форума  
 
Автор темы   Непрочитано 30.07.2021, 18:49
#21
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,914


Если управление размерами окна возможно через кнопки, то, допустим, так - с кнопками на рамке "-", "+" или цифрами, или стрелками:


Если это требует рутинной работы, то я в полном распоряжении.

----- добавлено через ~20 мин. -----
Окно же для редактирования в любом случае нужно с ограниченными размерами с вертикальной прокруткой.
Cейчас выдается ошибка если много полей-кодов, что окно не умещается на экране.
Миниатюры
Нажмите на изображение для увеличения
Название: view-edit2_знаками_60.png
Просмотров: 164
Размер:	40.0 Кб
ID:	239361  Нажмите на изображение для увеличения
Название: view-edit2_стрелками_60.png
Просмотров: 164
Размер:	39.6 Кб
ID:	239362  Нажмите на изображение для увеличения
Название: view-edit2_цифрами_60.png
Просмотров: 164
Размер:	39.6 Кб
ID:	239363  
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 30.07.2021 в 20:08. Причина: замена картинок на меньшие
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 03.08.2021, 17:48
#22
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,914


Кажется, понял, как можно решить все основные задачи.
Исхожу, что окна с двумя списками с вертикальными прокрутками на лиспе возможны:

Т.е. можно сделать в целом в том виде, как в предыдущем сообщении. (Пусть без горизонтальной прокрутки, если нельзя).

Программе нужно еще воспринимать не только одиночные объекты, но все выбранные объекты. Уже выбранные или запрашивать выбор.

В верхний список выводятся строки, сформированные из количества объектов, у которых есть App, порядкового номера App - для одноименных, но с разным составом-числом кодов, и название App.
Например:
Цитата:
(3) MYAPP
(1) 1 PIPE
(1) 2 PIPE
Где: в скобках - количество объектов, у которых это App, число после (если такое есть) - порядковый номер App, если присоединены одноименные, но с разным составом-числом кодов-полей.

В нижний список выводятся строки, сформированные из типов данных и значений. С разделителем, имитирующим вертикальную табличную черту. (Не так, как здесь, а как одну вертикальную )
Например:
Цитата:
3Real | 1.00,1.00,0.00
String | dddddddddddddd
Integer | 222
Real | 123.45
String | *VARIES*
*VARIES* - если у указанных объектов в этих полях разные данные.
В нижнем списке строки не редактируемые, но при двойном клике на строке выводится окно ввода-редактирования. Свое для каждого типа данных.
Ширина этих окон ввода лучше фиксированная - чтобы не было ошибок как сейчас, если длинные строки не умещаются на экране.

Эти окна для строк ввода с кнопками Ok и Cancel. Или даже без них - при Enter сохраняются изменения и окно закрывается. При Cancel или крестике тоже закрывается, изменения отменяются.
Например, для строковых и Distance:



В таких окнах можно давать подсказки об ограничениях или т.п. Например, для строк можно выводить счетчик количества символов.
Для слоев можно сделать выбор из выпадающего списка. И т.п.
Окна перемещаемые.

Контроль введенного на ограничения, конечно, должен быть обязательно.
Как и контроль общего объема всех Apps у объектов.
Из-за общих правил безопасности.
Миниатюры
Нажмите на изображение для увеличения
Название: String_Edit_XData_60.png
Просмотров: 101
Размер:	3.2 Кб
ID:	239481  Нажмите на изображение для увеличения
Название: Distance_Edit_XData_60.png
Просмотров: 101
Размер:	2.7 Кб
ID:	239482  
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 03.08.2021 в 18:29. Причина: Добавил про слои
АлексЮстасу вне форума  
 
Автор темы   Непрочитано 03.10.2021, 14:38
#23
АлексЮстасу

топограф, технолог
 
Блог
 
Регистрация: 24.05.2009
Москва
Сообщений: 2,914


В 2010 г. было сделано и выложено Lee Mac - http://www.lee-mac.com/listboxsync.html.
Окно с двумя списками, в котором содержание второго зависит от выбранного в первом.

На этой основе сделан эскиз нужного здесь окна - приложен.
Переделано в вертикальное расположение и в создание диалога "на лету", без отдельного dcl.

Верхний список для выбора XData по названию, нижний для значений в выбранном приложении.
При двойном нажатии в нижнем списке на строку появляется окно-строка для ввода/редактирования этого значения.

Это только набросок - там все условно и не все действует. Но кажется подходящим для задачи в общем.
... Еще бы убрать или максимально ужать бессмысленно-огромный подвал с "Ok".
Миниатюры
Нажмите на изображение для увеличения
Название: XD_VE.png
Просмотров: 12
Размер:	14.6 Кб
ID:	241393  
Вложения
Тип файла: lsp listbox_XD_VE.lsp (5.1 Кб, 0 просмотров)
__________________
количество моих сообщений не говорит о знании Автокада

Последний раз редактировалось АлексЮстасу, 04.10.2021 в 00:00.
АлексЮстасу вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > LISP > Соединить два окна программы

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Импорт из А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