Реклама i
|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Загрузка параметров дин. блоков из базы данных
Продуман
Питер
Регистрация: 22.02.2007
Сообщений: 2,839
|
||
Просмотров: 4182
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Если коротно - то головняк и геморрой. Добраться до допустимых свойств дин.блока, и их значений возможно. Если свойства индексированы, то работа с БД возможна. Но вот внесение новых значений в дин.блок... Что делать, если сначала были допустимы значения параметра 1: 1, 2, 3, 5; а после обновления - 1.5; 6; 18? А в файле уже вставлены блоки с первыми значениями параметров? В ADT, например, приходится руками по новой импортировать описания стилей AEC-объектов (прародителей дин.блоков) для корректной работы с ними.
ИМХО прежде чем ваять код, надо с БД разобраться по полной программе, и всю технологию проработать.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Прошу прощения, но это не технология, а просто 1 [почти] штатная кадовская форма, и не больше.
Вопрос-то не столько в оформлении, сколько во внутренностях софта. Какова структура БД? Насколько она нормализована (или там все в одной таблице болтается)? Кто имеет права на ее изменение? Что делать со вставленными ранее блоками при изменении БД? Что делать, если состав блока пришлось менять, вводить новые параметры (в том числе и видимости) - в смысле, как поступать с уже вставленными блоками? Как отслеживать соответствие изменения БД и неоткрытых файлов? Как быть с файлами, содержащими внешние ссылки? Меня пугает не столько трудность написания, сколько количество вопросов, на которые нет однозначных ответов.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Попробую описать - я думаю что для большинства задач не больно нужна гибкая структура данных (данный пример, как я уже писал, сделан в экселе - соответственно нормализации там никакой нет "все в одной таблице болтается") - алгоритм примерно такой (напишу на словах ну не блок-схему же рисовать).
1. Находим и открываем первый блок. 2. Проверяем есть ли в нем настраиваемые параметры и связи. 3. Берем атрибут блока - его считаем номером поля (строки таблицы), в принципе правильней будет придумать контрольное слово например "строка х", где х - и есть номер. 3а. Если не хочется заморачиваться с атрибутами то можно воспользоваться штатной связью (там есть выборка) - но по моему с атрубутом более гибгко получится. 4. Берем имя 1-го настраиваемого параметра - ищем такое же в строке и осуществляем импорт (в случае экспорта либо меняем "атрибутную" запись, либо создаем с номером атрибута). 5. Аналогично с другими параметрами. 6. Аналогично со всеми блоками. В результате получаем следующее - подготавливаем дин. блоки, а далее что нужно - либо с них спецификацию снимаем, либо рисунок строится на основе полей - ну чем не САПР.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Жалко, до abok.ru не достучаться... Есть там тема "автоматическое создание спецификаций", подобные вопросы и там тож поднимались. Првда, с привязкой больше к внешним ссылкам, но все равно.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Да как раз то спецификации - это дело вторичное (сдесь и полями обойтись можно и штатные средства есть), вопрос скорее в построении по б/д - просто у меня очень много однотипных задач (да я думаю не только у меня) и хочется все это "оцифровать" - дин. блоки уже почти везде сделал, но по ним прыгать муторно - а так в таблицу данные ввел и 80 процентов работы сделал.
P.S. - абок молчит.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Тема http://forum.abok.ru/index.php?showtopic=14612
Цитата:
Код:
Код:
А вариант Код:
Цитата:
Цитата:
Цитата:
Цитата:
Видишь ли, в дин.блоках есть еще свойства неиндексируемые, то есть у которых значение не ограничено чем-то-там. Как с этим делом поступать?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
Насчет вхождения блока - это абослютно правильно - ерунду написал, а по поводу вносить или нет в бд - то подразумевается, что если вхождение блока связано то вносить. Но с другой стороны - если ты считаешь - что если из б/д в рисунок экспорт неуместен, то и тема колом всатет (больше ее почему-то никто не подхватывает), ведь основная идея все таки в этом была, а спецуху, как я уже говорил, можно гораздо легче в любой файл снять, а потом штатными средствами СУБД разгруппировать.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Еще один вопрос - как определяется, "связан" блок или нет?
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Продуман Регистрация: 22.02.2007
Питер
Сообщений: 2,839
|
C точки зрения лиспа не знаю (вобще в лиспе как свинья в апельсинах), но с уровня пользователя, нажимаешь на вхождение правой кнопкой (и если горит связь значит подключен???) - или мы друг друга не поняли.
P.S. Кстати, только что проверил - сделал два блока - один связанный, другой нет; их ctrlC, закрыл документ, создал новый, ctrlV - связи остались - по сему предпологаю что хранятся они где-то во вхождении.
__________________
Когда в руках молоток все вокруг кажется гвоздями. |
|||
![]() |