Реклама i
|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
|
||||
Вернемся все-таки к библиотеке.
Где лежат блоки? - Правильно, в файлах. А какие это файлы? - Двух видов. Первый - файл, в котором фигурирует только этот блок и больше ничего. Второй - файл, в котором помимо этого блока есть много других и прочий мусор, блоками не являющийся (чертежи и модели короче). Можно легко написать макрос, который переколбасит на вашем компьютере все файлы DWG и слижет из них списки с имеющимися в файлах блоками. Долго это, понимаю, но делать периодически проверку компьютера на вирусы тоже похожая по продолжительности задача. По этому списку легко находить по имени блока файл, в котором он лежит. Опись так сказать. По сути, дерево папок вещь хорошая, но что делать, если вам подарили модель теплового пункта, а там штук 200 блоков и что разбирать по болтику? Далее. Эта опись построена по принципу базы данных, где и по алфавиту можно все посмотреть и по признаку. Признак этот - это название группы, к которой относится этот блок. У группы тоже есть свой признак и так далее. Открываем AutoCAD, запускаем прогу работающую с эти БД-шным файлом и ползая ли по признакам (как по дереву папок), или ползая ли по алфавиту (типа ищем Кран на букву К) сразу видим в каких файлах сие лежит и давим кнопень "слизать". Автоматически открывается тот файл, копируется в настоящий файл от туда блок и производится обновление состава блоков в файле БД. Таким образом, в какой бы вы файл не зашли, у вас будет отслеживаться файл БД автоматически. Короче библиотекой является весь комп и в чем там все лежит - дело вторичное. Подарить такую "библиотеку" можно только вместе с винчестером. Но зато пользоваться такой библиотекой куда как удобней, чем лазить по дереву папок и искать где и что лежит. Кстати про поиск. В текстовом файле или БД Access поиском найти нужное сочетание букв в названии блока - это не то, чтобы все файлы dwg перелопачивать. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Дело не только и не столько в том, что "весь комп есть библиотека". Помимо текстового представления есть еще и графическое, а оно не менее важно. В этом смысле ИМХО ToolPalettes с группировкой дадут фору любому варианту.
P.S. Хотел написать тьму всякого, но подумал, что сам запутаюсь и всех запутаю. Ээх, жалко, ShaggyDoc сюда особо не заглядывает, он бы рассказал...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Я не согласен с тобой Kpblc, TOOLPALETTES - не удачная задумка AutoDECK-a. Если хочешь в этом убедиться - набросай туда лиспов. Там и лиспы вставляются как и DWG файлы. Причем даже простым перетаскиванием из папки в TOOLPALETTES.
Нет там дерева, нет поиска, нет видов представлений как в простых папках. Можно только либо значки, либо текст к ним, либо то и другое. Все. Я бы сказал, что простые папки Винды - в сто раз лучше. В них даже поиск есть. Вот меня мучает вопрос, а если в путях Сupport File Search Path не указан путь к файлу с моделью, в которой много нужных блоков, можно ли такой файл считать библиотечным? |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Supermax, в ToolPalettes можно менять картинки
![]() Цитата:
Цитата:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Картинки, вещь безусловно нужная и полезная, но одними картинками сыт не будешь.
Надо хелп-справку изучать тщательнее, но пока руки не доходят. Может от туда через внешние ссылки можно будет вываливаться в нужные места. Я точно знаю, что создание любой библиотеки, будь то блоки, будь то функции напарывается на проблему усвоения нового и отслеживание изменений существующего. Вторую часть проблемы можно преодолеть усилив решение первой части. Например: Я имею некую программу, которая всю базу файлов dwg на моем компьютере делает библиотекой. Проводит учет имеющихся файлов dwg, bak, sv$ и либо по мере их открытия списывает из них список с блоками, либо один раз на пол дня занимает комп и перелопачивает все файлы. Таким образом, мы всегда относимся к имеющимся файлам как к новому поступлению находим блоки исходя из неопределенности их наличия. Если написать такую программу то почти всем, кто работает с AutoCAD-ом будет интересно "а что же есть у меня в компьютере?". Порядок поддерживают единицы. У большинства, к сожалению, все лежит хоть и отсортированное по папкам, но все равно без понятия, "а что же у меня есть?". Я тоже без такого понятия. И так будет постоянно. Надо с этим кончать "технически". Никакие "obliko morale" не помогут. Это еще производители нас жалеют, не выбрасывают на свои сайты и по сети блоки и файлы со своими изделиями. Пока не поздно, надо готовиться к наплыву графики. Я тут базу к архикаду ставил одной девушке, так там список папок - фиг прочтешь, а там еще и подпапки есть и в них еще и еще. Без поиска даже файл не найти, а надо не выходя из программы, решая задачу вставки блока в данную точку. Кошмар! |
||||
![]() |
|
||||
Простейшая вещь, однако облом приключился.
Запустил поиск *.dwg - искало 2 минуты. Винт - 200 гиг, из которых 152 заняты и 47 свободны. Нашло 14046 файлов (чисто файлов, не ярлыки). Списать результаты поиска в файл txt - увы не получилось. А надо как-то это сделать. Может в других программах есть сервис с сохранением результатов поиска? Последний раз редактировалось Supermax, 24.12.2007 в 15:47. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Примерный код:
Код:
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Загрузи fas, потом vlide и попробуй выполнить. Например, такое:
(dwgru-browsefiles-in-directory "c:\\1" "*.dwg" t) Предварительно в папку c:\1 накидай пару-тройку файлов, чтоб результат увидеть.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Автокад по видимому нашел все, что у меня есть. Долго выдавал пачками распечатки путей (это же всего один список) и вырубился без предупреждения. Просто взял и выключился. Даже когда мне надо снести задачу через диспетчер задач, так бысто никогда не получится.
Нельзя так перегружать память и логику программы. Надо сразу в файл результат писать, а лучше в таблицу. Сам попробуй запустить такое. Добавлено: Слетает систематически. Последний раз редактировалось Supermax, 24.12.2007 в 19:45. |
||||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Если честно, то я не понимаю конечного назначения программы / лиспа. Как бы то ни было: каталог D:\test; количество файлов dwg - 41 620; время срабатывания лиспа - около минуты; через TotalCommander - примерно секунд 20-30. Лисп не обращается к WinAPI напрямую, хотя, наверное, надо бы. dos_* функции не тестировал - они не дают пройтись "внутри" каталога, а рекурсию рисовать лениво.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Да, маловато у тебя файлов на D:. Может 40 тысяч и у меня прокатит? Сейчас попробую.
Смысл не в проге, а втом, чтобы задокументировать имеющиеся файлы на компе (для начала). Блоки из них переписать таким же макаром видно не судьба - комп и это еле-еле тянет. Наверное надо будет просто по мере работы с файлами автоматом их прочесывать, или в крайнем случае небольшими партиями, а не так глобально. Хочу узреть общую картину. |
||||
![]() |
|
||||
Регистрация: 25.12.2005
Москва
Сообщений: 13,627
|
Вот еще тема о блоках:
http://www.caduser.ru/cgi-bin/f1/board.cgi?t=19887gd |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Исходник, который я применил в DwgRuLispLib (слегка его модифицировав): http://www.caduser.ru/cgi-bin/f1/boa...19612AN&page=2
Второй вариант: http://www.caduser.ru/cgi-bin/f1/board.cgi?t=32891aD По результатам сравнения (в папке 2 файла dwg) z-files-in-directory в 2,3 раза медленнее getfile (для 14 файлов - в 8,47 раз). P.S. Библиотеку, кстати, придется переделывать...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Просмотрел и опробовал все функции.
Getfile, как самая, самая, выдала тот же эффект, что и твоя. "2006 - обваливается 2008 - держится, но от этого не легче. Создать список из 160000 строк, каждая из которых полный путь к файлу, каду не под силу. Да и не нужно это. Это ошибочная стратегия написания функции. Надо каждый путь сбрасывать в файл, или создавать переменные по 100 путей в каждой. Данная функция хороша для поиска или для одной, не большой папки. Для проведения тотального документирования содержимого компьютера непригодна и именно из за того, что пытается создать список и вывести результат на дисплей. |
||||
![]() |
|
||||
Задачу надо усложнить.
К пути и имени файла надо присовокупить размер файла, чтобы отслеживать изменение файлов. Путь нужен отдельно, а имя отдельно. Результат надо сливать в mdb файл Access-а. По столбцам : Путь; Имя; Размер. Далее будут столбцы с именем блока, его размером и далее дерево вложенности данного блока по группам, к которым он относится. Таким образом, имея дерево файлов мы можем отсортировать его по пути и собрать все файлы конечной папки, отсортировать по имени файла и собрать все папки где таковой имеется и т.д. При открытии файла, автоматически будет списываться состав блоков в этом файле и дополняться эта база. С картинками сложнее, но надо сделать. Предлагаю запускать внешнее приложение с адресом выбранного файла, а оно уже будет показывать его слайд. |
||||
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
|
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Библиотека доступа к содержимому растров из LISP - существуе | kp+ | LISP | 6 | 16.10.2007 21:45 |
Пропали привязки у блоков | Валенок | AutoCAD | 7 | 20.06.2007 15:27 |
Взрыв блоков | Filcarpenter | Разное | 19 | 28.01.2007 09:57 |
Библиотека динамических блоков | Коробейников Алексей | Динамические блоки | 2 | 05.04.2005 16:08 |