|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Конвертор по переводу блока во внешнюю ссылку
Регистрация: 29.06.2005
Сообщений: 10
|
||
Просмотров: 5369
|
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
>Dude Great
это можно сделать стандартным способом. 1. команда _wblock - выбираем нужный блок и указываем путь к новому файлу - создается новый dwg, содержащий объекты выбранного блока. 2. команда express tools - blocktoxref, выбираем все тот же блок, и указываем путь к созданному ранее файлу, блок заменяется внешней ссылкой, попутно по запросу удаляется все лишнее от замененного блока. |
|||
![]() |
|
||||
Регистрация: 29.06.2005
Сообщений: 10
|
to Apelsinov
Большое спасибо за ответ. Вся мулька в том, что мне надо получить чертежи не столько как xref, а как dwg без длиных имен в слоях,блоках и т.д. В дальнейшем эти чертежи будут использованы как многоступенчатые вложения, и лишние проблемы с длиными именами мне не нужны. К сожалениию, обычными методами это не решить, только программно или, как я сейчас вручную переименовывааю. Это очень весело, особенно если чертежей около 40. В любом случае, благодарю за помощь |
|||
![]() |
|
||||
Проектировщик ВК. LISP-любитель. Регистрация: 15.12.2003
Москва
Сообщений: 1,202
![]() |
>Dude Great
В этом случае, ессесно, описанное выше Вам не поможет. Все это издержки заbindаривания xref, насколько я понял, это делали не вы, и исправить положение всавкой xref как insert уже нельзя. Единственый выход, что я вижу, это программирование, Вы правы, но тут важно как вы хотите это все переименовать...а вообще это не так и сложно. И, может поможет в ручном перемименовании, обратите внимание на команду _.rename. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
Есть еще один вариант - попробовать dws, но и с ним мороки будет тьма - пока его сделаешь...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
Цитата:
Код:
Восстановить XRefы не получится. При Бинде информация о них стирается. |
|||
![]() |
|
||||
Регистрация: 29.06.2005
Сообщений: 10
|
to Fantomas
Большое спасибо за ответ. Подобная программка, что ты набросал у меня есть. Я нашел ее где-то лет 5 назад, добавил только свой .dcl файл. Все правильно, с одинаковыми названиями она добавляет цифры по-порядку. Вот тут и собака зарыта. Если лэеры я могу сделать merge (прошу прощения у меня английская версия и я не знаю, как этот пункт в меню называется в русской версии), то как быть с блоками или лайнтайпами. Их только можно переименовать. А это опять только ручками Не могу согласиться, что байданные xrefы теряют какую-либо инфу. По крайней мере если я делаю table search - все живое. ![]() В любом случае, еще раз спасибо! Ну очень хочется получать исходные xrefы. [sm905] |
|||
![]() |
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
[quote="Fantomas"]
Цитата:
Допущение 1: - все референс файлы имели имя которое начиналось, например, с X или имело какой либо признак, что это референс файл. . Допущение 2: - нестед референсов не было. Если они были, то потребуется подополнительная обработка сохранённых файлов, думаю, что больше 2-3 входимостей не будет. Алгоритм: 1. Unlock все лэеры. 2. Найти все блоки, которые вставлены в PS, и имеют имя не содержащее $ и начинаюшееся с X (см. допущение 1). Для красоты картины определить лэеры на которых они находятся. 3. Установить rememberfolders=0. Для каждого блока выполнить -WBLOCK с ключём = (block=output file). Поскольку будет производится обработка многих чертежей, перед операцией -WBLOCK для конкретного блока проверить на наличие этого блока в директории и не выполнять эту операцию для данного блока если он уже имеется. 4. Проделать п.п. 2 и 3 для блоков, подходящих по критерям в п.2, и расположенных в PS. 5. Erase все блоки (в пространстве модели и в пространстве листа), которые соответствовали критерию в п.2. 6. PURGE файл. необходимо это сделать несколько раз. 7. Открыть каждый сохранёный файл и, если небыло NESTED reference файлов, то всё (типы линий, стили текста, размерные стили и т.д. и т.п.) должно спокойно переименоваться т.е. с правой стороны до первого $. RENAME это делает легко, а в командной строке знаки * и ? не поддерживаются. При помощи LISP это, кажется, делается. Сохранить файл и закрыть его. 8. В оригинальном файле соответствено в PS и в MS приатачить подготовленые файлы (для красоты картины предварительно создав лэеры, на которых они сидели раньше). Приношу извинения за столь пространые излияния. |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
> Dude Great : Если не жалко, пришли, поковыряю...
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |
|
||||
Инженер по системам безопасности Регистрация: 23.11.2003
Рига
Сообщений: 1,099
|
>Залётный
Если делать такое количество допущений, то любую программу можно назвать рабочей. В пределах допустимого конечно ![]() >Dude Great Цитата:
Объект XRefDatabase можно получить только если (vla-get-IsXRef равняется :vlax-true, то блок еще является XRef'ом. Не факт конечно что где то эта информация не остаётся. Хотя по логике должна вычищатся, чтобы не увеличивать размер файла. |
|||
![]() |
|
||||
Регистрация: 15.04.2005
Сообщений: 243
|
Цитата:
|
|||
![]() |
|
||||
Регистрация: 29.06.2005
Сообщений: 10
|
Спасибо всем за ответы.
2 Залётный В принципе рассуждения в верном ключе. Думаю, что можно упростить - забыть про PS (как правило, здесь только title block & notes, а это не критично), далее - достаточно вытащить references мах до 2-х вложений. И самое важное, никаких дальнейших байндов, тем более bind - insert, вот тогда точно вся инфа в исходных xrefах будет потеряна. По мне, идеальное решение это один или два (если нужно) dwg's, бывшие xrefы, в той же директории. 2 kpblc Прошу простить меня. Я не понял, что я должен прислать. Если чертеж, то его легко сделать самому. Притянуть один чертеж к другому, как xref. Далее сделать bind как bind. Это все. 2 Fantomas У меня большая надежда на Вашу помощь Спасибо |
|||
![]() |
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 40,431
|
> Duge Great : Да у меня пока просто нет возможности сделать xref с несколькими десятками слоев. Вообще-то на уровне идеи:
1. Последовательно выбрать все слои (точнее, все объекты на слоях) с символами "|" или "$" и одинаковым началом. 2. Выбор записать в отдельный файл. 3. Открыть только что записанный файл. 4. Переименовать слои или объекинить (для слоя "0") любым доступным способом. --- Какие могут быть проблемы: 1. Слой "0" (как он мне надоел!) - иногда (было на 2004 Eng) при бинде xref'a слой "0" ссылки объединялся со слоем "0" сборочного файла. Выцепить объекты не удается. 2. Блоки. Сам блок может находиться на слое "Ссылка1$Блоки", а его элементы - на слое "Ссылка1". Что куда попадет - я пас, надо профессионалов спрашивать. 3. гиперссылки. Не дай бог они там есть - скорее всего, потеряются. 4. xdata могут оказаться там же.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
![]() |