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

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Чем, как определять связи объектов

Чем, как определять связи объектов

Ответ
Поиск в этой теме
Непрочитано 18.06.2023, 03:58 #1
Чем, как определять связи объектов
АлексЮстасу
 
топограф, технолог
 
Москва
Регистрация: 24.05.2009
Сообщений: 3,048

Была тема Реакторы, связывание объектов, но она была об одном из возможных способов. И результат был, по-моему, отрицательный - реакторы в AutoCAD лучше не использовать.
Т.е. вопрос остался - чем, как определять связи объектов?

Например - надписи в чертежах/моделях. Исхожу из того, что надписи всегда являются производными, вторичными, вспомогательно-иллюстративными объектами. Что надписи всегда логически связаны с объектами. Но эти связи обеспечиваются только в головах пользователей. Но не обеспечены физически.
Лучше, но не полностью обеспечены связи размеров, штриховок с объектами. Размеры и штриховки могут существовать без физических связей с объектами.

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

Обеспечение таких связей я условно разделяю на:
- определение связей, т.е. фиксацию каким-либо образом факта связи объектов,
- реализацию (актуализацию или др.) связей, т.е. средства для соответствующих действий - синхронного перемещения, поворота, наложения и пр.

В этой теме для начала лучше рассмотреть способы, средства определения связей.

Если реакторами, которые для подобных задач как раз и задуманы, лучше не пользоваться, то как, чем связи объектов определять?
Куда, как записать, обозначить, что эта надпись (или др.) связана с тем-то отрезком, сплайном и т.д.?
__________________
количество моих сообщений не говорит о знании Автокада
Просмотров: 1722
 
Непрочитано 18.06.2023, 17:44
#2
kp+

идущий по граблям
 
Регистрация: 26.05.2005
Сообщений: 5,067


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Куда, как записать, обозначить, что эта надпись (или др.) связана с тем-то отрезком, сплайном и т.д.?
Так много абстракции, так мало конкретного. Пример dwg приложить бы: есть то и это, надо так и сяк.
Если надпись должна отображать стандартное свойство объекта (например, длину или площадь), то пользуйтесь полями. Я, например, считаю, что штатный интерфейс полей слишком неудобный для частого применения, в связи с чем даже сделал небольшую прогу для "механизации" этого нудного дела.
Т.е. выбираешь объект, потом надпись (текст, мтекст или атрибут), и в нее вставляется уже настроенное поле, отображающее длину объекта.

Чтобы обеспечить перемещение надписи вместе с с объектом - есть параметризация, хоть ее многие не любят.

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

Последний раз редактировалось kp+, 18.06.2023 в 17:57.
kp+ вне форума  
 
Непрочитано 18.06.2023, 18:31
#3
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,739


Создание связи - несильно сложно. В словарь или РД (что, с моей точки зрения, более опасно) - засунуть указатель на "источник", внутрь источник по аналогии - указатели на "подчиненных".
Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
реализацию (актуализацию или др.) связей, т.е. средства для соответствующих действий - синхронного перемещения, поворота, наложения и пр.
Примерно то же самое - реакторы (на лиспе) / события (на NET). В последнем не уверен, еще толком не реализовывал.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 18.06.2023, 19:55
#4
Сергей812


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


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
средства для соответствующих действий - синхронного перемещения, поворота, наложения и пр.
синхронно врятли получится, классика - в idle (простое). Ну выполнили определенное действие - а кто результат будет контролировать? Не налезло ли на другие элементы чертежа до степени нечитаемости и т.д. Не всегда можно по чисто габаритным условиям проверить в условиях "насыщенного" элементами чертежа.
Сергей812 вне форума  
 
Непрочитано 18.06.2023, 21:08
| 1 #5
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
<phrase 1=


Кроме создания "связей" необходимы средства для навигации по ним, иначе туши свет
zamtmn вне форума  
 
Непрочитано 18.06.2023, 21:26
| 1 #6
Сергей812


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


причем они то должны быть синхронны - создал связь, сразу в палитре отразилась и выделилась где-то в контроле списка/дерева созданная связь. И сразу можно задать дополнительные параметры на той же палитре. Но с фантазиями ТС об универсальном решении... Хотя в том же WPF можно извратиться с произвольным набором полей ввода стандартными средствами ЯП - вопрос только, нафига)
Сергей812 вне форума  
 
Автор темы   Непрочитано 19.06.2023, 07:14
#7
АлексЮстасу

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


Цитата:
Сообщение от kp+ Посмотреть сообщение
Если надпись должна отображать...
Если говорить именно о надписях, то я сам только вчера доформулировал их особенности в черчении - Начнем с начала (о надписях).
Цитата:
Сообщение от kp+ Посмотреть сообщение
Так много абстракции, так мало конкретного.
Исхожу из гипотезы, что определение самого факта связи не зависит от конкретики. Например, как предлагает Кулик Алексей:
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
В словарь или РД (что, с моей точки зрения, более опасно) - засунуть указатель на "источник", внутрь источник по аналогии - указатели на "подчиненных".
Со словарями в лисп нужно быть супер-программистом или средние дилетанты могут разобраться?

Я видел пример из смежной области - там определяют связи ("указатели" или т.п.) только у зависимых объектов на базовые.
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 19.06.2023, 07:43
#8
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,739


Цитата:
Сообщение от АлексЮстасу Посмотреть сообщение
Со словарями в лисп нужно быть супер-программистом или средние дилетанты могут разобраться?
Мне сильно сложным не показалось. Одно "но" - записи в словарях не модифицируются (по крайней мере под лиспом), их надо сначала сносить, потом создавать новые.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.06.2023, 09:12
#9
Сергей812


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


только лисп и френдли-интерфейс для работы с большим объемом разрозненных данных...
Сергей812 вне форума  
 
Непрочитано 19.06.2023, 09:13
#10
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,739


Цитата:
Сообщение от Сергей812 Посмотреть сообщение
только лисп и френдли-интерфейс для работы с большим объемом разрозненных данных...
Не лей мне чай на спину...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.06.2023, 09:23
#11
Сергей812


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


не говоря уже о том, что связанные объекты могут быть в разных файлах, часть из которых могут быть даже закрыты в текущий момент... но зачем использовать внешнюю БД с связями таблиц: связь один к одному, связь один ко многим, связь многие ко многим - когда можно заниматься изысканной камасутрой с синхронизацией хранимой в самих *.dwg информацией.
Сергей812 вне форума  
 
Непрочитано 19.06.2023, 09:28
#12
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,739


Вот тут не скажи, иногда подобные "связи" засовывать во внешнюю БД нет никакого смысла.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 19.06.2023, 09:59
| 1 #13
Сергей812


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


ну если ТС, не зная программирования, решил - что он реализует (причем на лиспе) связь "динамических" параметров примитивов внутри *.dwg лучше непосредственных разработчиков - ну флаг ему в руки. Создание связей между объектами, как, например, в нашем spds graphics - вполне востребованная задача, имхо. Осталось найти волонтеров-программёров)
Сергей812 вне форума  
 
Непрочитано 19.06.2023, 15:47
#14
trir


 
Регистрация: 18.12.2010
Сообщений: 5,056


Цитата:
не говоря уже о том, что связанные объекты могут быть в разных файлах, часть из которых могут быть даже закрыты в текущий момент... но зачем использовать внешнюю БД с связями таблиц: связь один к одному, связь один ко многим, связь многие ко многим - когда можно заниматься изысканной камасутрой с синхронизацией хранимой в самих *.dwg информацией.
А можно в Map 3d просто подключится к внешней БД
trir вне форума  
 
Непрочитано 19.06.2023, 17:07
#15
zamtmn

КИПиА
 
Регистрация: 21.03.2005
Tyumen
Сообщений: 1,559
<phrase 1=


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

Я у себя сделал (ну почти) механизм "централизации" устройства могут ссылаться на "переменные" другдруга
Также пытаюсь родить механизм "включения" когда примитив имеет доступ к переменным "включающего" его примитива на котором он лежит - например извещатель лежит на помещение, которое в свою очередь лежит на плане этажа, а план на листе и т.п. - но это еще на очень ранней стадии
zamtmn вне форума  
 
Автор темы   Непрочитано 20.06.2023, 04:47
#16
АлексЮстасу

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
засунуть указатель на "источник", внутрь источник по аналогии - указатели на "подчиненных"
Уточни, плз, какого рода указатели имеешь в виду?
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 20.06.2023, 17:48
1 | #17
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,739


ename-указатели (в крайнем случае ObjectId). Насколько я помню, это допускается. Подробности были на adn-cis.org
Правда, опять же проблемы при клонировании объектов (что внутри чертежа, что между чертежами).
Offtop: Кстати, на adn-cis последнее время плохо работает (или вообще не работает) сертификат. Делайте выводы.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 20.06.2023, 18:36
#18
АлексЮстасу

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


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
ename-указатели (в крайнем случае ObjectId). Насколько я помню, это допускается. Подробности были на adn-cis.org
Правда, опять же проблемы при клонировании объектов (что внутри чертежа, что между чертежами).
Гм... А не шило ли на мыло, если что так, что эдак? Или хэндлы однозначно хуже?
Миниатюры
Нажмите на изображение для увеличения
Название: Autodesk_quit.png
Просмотров: 17
Размер:	142.4 Кб
ID:	256827  
__________________
количество моих сообщений не говорит о знании Автокада
АлексЮстасу вне форума  
 
Непрочитано 20.06.2023, 19:42
#19
Кулик Алексей aka kpblc
Moderator

LISP, C# (ACAD 200[9,12,13,14])
 
Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,739


В моей сегодняшней реальности - хендлы хуже. Доказывать не буду.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 20.06.2023, 20:15
1 | #20
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,460


Цитата:
реакторы в AutoCAD лучше не использовать.
Имхо, временные реакторы могут быть хорошим решением. Если собираемся как-то интерактивно редактировать объекты с учетом связей - включаем реакторы для этой группы и работаем. Постоянные реакторы, которые сохраняются в БД, вероятнее всего приведут к глобальным тормозам и проблемам с передачей файла смежникам.
Т.е. информацию по связям объектов хранить можно, но контроль изменений и перегенерацию лучше включать отдельной кнопкой.

Цитата:
Сообщение от zamtmn Посмотреть сообщение
Кроме создания "связей" необходимы средства для навигации по ним, иначе туши свет
Согласен полностью. Без средства отладки (как будут работать подобные связи) ничего более-менее сложного создать невозможно.

Последний раз редактировалось nickname2019, 20.06.2023 в 20:25.
nickname2019 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Чем, как определять связи объектов

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Разработка ПОС, искусство проектирования Tyhig Технология и организация строительства 117 25.11.2021 17:38
Scad, Односторонние связи (КЭ 352) - как правильно задать mann SCAD 27 20.12.2016 15:08
Связи по колоннам при покрытии из ферм "Молодечно" HG Конструкции зданий и сооружений 27 26.06.2014 06:44
Максимальная ошибка в узле 50797 по направлению 2: 0.387%. Kastrulkin Расчетные программы 11 06.12.2011 15:35
Непонятки со связями bezo Расчетные программы 8 06.06.2010 12:34