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

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

Вставка определенного блока из файла

Ответ
Поиск в этой теме
Непрочитано 12.08.2010, 12:43 #1
Вставка определенного блока из файла
Zaghim
 
Регистрация: 01.07.2010
Сообщений: 521

Скажите, возможно ли из файла, в котором много блоков, выцепить определенный блок, зная его имя, и вставить в другой файл? Ну например открыли мы пустой чертеж, указали путь к этому файлу и дальше делаем инсерт из этого файла определенного блока. Или это нереально и нужно отрисовывать каждый блок в отдельной файле?
Просмотров: 4944
 
Непрочитано 12.08.2010, 12:49
#2
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


возможно.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 12.08.2010, 12:51
#3
Zaghim


 
Регистрация: 01.07.2010
Сообщений: 521


классный ответ))) а как это сделать?
Zaghim вне форума  
 
Непрочитано 12.08.2010, 12:53
#4
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от Zaghim Посмотреть сообщение
классный ответ))) а как это сделать?
Какой вопрос - такой ответ. Сделать это можно программно. Предвижу очередной вопрос: "как именно программно". Ответ - я не медиум, чтобы угадывать на чём ты пишешь.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 12.08.2010, 12:54
#5
Zaghim


 
Регистрация: 01.07.2010
Сообщений: 521


)))
Действительно - это нужно сделать программно на Autolisp'e...
Zaghim вне форума  
 
Непрочитано 12.08.2010, 13:05
#6
IVlad


 
Регистрация: 16.01.2009
Москва
Сообщений: 78


Можно ручками: открываешь DesignCenter, находишь нужный файл и выбираешь и перетаскиваешь нужный блок
IVlad вне форума  
 
Непрочитано 12.08.2010, 13:06
#7
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Я вставляю макросом.
Порядок следующий:
- вставить фаил с блоком как блок,
- удалить вставленный блок-файл, останется описание нужного блока,
- вставить блок.

Вот пример макроса
Цитата:
Код:
[Выделить все]
^C^C_INSUNITS;4;_-insert;C:/Блоки/ЕСКД/С_сварка.dwg;0,0,0;;;;_erase;_last;;_-insert;сварка;\;;;_-purge;_b;С_сварка;_n;
Jonas вне форума  
 
Непрочитано 12.08.2010, 13:07
#8
Кулик Алексей aka kpblc
Moderator

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


http://forum.dwg.ru/showthread.php?t=41671
http://forum.dwg.ru/showthread.php?t=11905
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.08.2010, 13:09
#9
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
Сообщение от IVlad Посмотреть сообщение
Можно ручками: открываешь DesignCenter, находишь нужный файл и выбираешь и перетаскиваешь нужный блок
Предполагаю, что автор знает об этом способе. Он уточнил, что решение интересует в разрезе использования Lisp.
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:
hwd вне форума  
 
Автор темы   Непрочитано 12.08.2010, 14:22
#10
Zaghim


 
Регистрация: 01.07.2010
Сообщений: 521


В лиспе понятно теперь как...но как-то кустарно все, вставить все из чертежа, потом удалить, потом вставлять по имени...неужели сразу нельзя?
Zaghim вне форума  
 
Непрочитано 12.08.2010, 14:26
#11
Кулик Алексей aka kpblc
Moderator

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


Ты ссылки смотрел, которые я привел?
Если не нравится программно, то делай либо через DesignCenter, либо через палитры инструментов...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.08.2010, 14:45
#12
hwd

C, C++, C#
 
Регистрация: 07.10.2009
С-Пб.
Сообщений: 2,762
Отправить сообщение для hwd с помощью Skype™


Цитата:
В лиспе понятно теперь как...но как-то как-то кустарно все, вставить все из чертежа, потом удалить, потом вставлять по имени...неужели сразу нельзя?
Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Ты ссылки смотрел, которые я привел?
Если не нравится программно, то делай либо через DesignCenter, либо через палитры инструментов...
Похоже он принял за лисп то, что приведено в посте #7.
Да уж...

Offtop: После такого даже не пытаюсь спрашивать о глубине познаний LISP.
Похоже мне ещё "повезло", что на вопрос по поводу "на чём пишешь" (из поста #5 ) автор не ответил мне как-то так: "на клавиатуре", или "на русском"...
__________________
Надеюсь, ты не социальный овощ? Это определяется делами! :welcome:

Последний раз редактировалось hwd, 12.08.2010 в 14:56.
hwd вне форума  
 
Автор темы   Непрочитано 12.08.2010, 15:15
#13
Zaghim


 
Регистрация: 01.07.2010
Сообщений: 521


Не стоит принимать незнакомых людей за дураков...
в лиспе разве нельзя выполнить команду инсерт, сохранить свойства вставленного объекта-ласт и потом команду erase сделать?!?! ппц
Zaghim вне форума  
 
Непрочитано 12.08.2010, 15:25
#14
Кулик Алексей aka kpblc
Moderator

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


Zaghim, то, что ты пишешь - возможно. Еще раз отправляю по ссылкам из #8.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Автор темы   Непрочитано 12.08.2010, 16:13
#15
Zaghim


 
Регистрация: 01.07.2010
Сообщений: 521


Вы сами запутались и меня запутали)
Тот способ, который был описан в макросе я сделал в лиспе, но не считаю этот способ корректным. И потом, если вставляться будет много блоков из большого кол-ва файлов, потом программно purge всего этого ненужного барахла будет сделать сложно...
В содержимом ссылок пока не разобрался, вижуаллисп не понимаю...
Zaghim вне форума  
 
Непрочитано 12.08.2010, 16:20
#16
Кулик Алексей aka kpblc
Moderator

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


Вообще-то я никого не запутал, эта проблема достаточно успешно решена.
Хорошо, тогда кратко опишу алгоритм вставки блока из стороннего файла.
1. Проверить имеющиеся описания блоков в текущем файле. Если нужный уже есть, какой смысл пытаться импортировать описание? Поэтому сразу в п.4.
2. Если нужного нет, в фоновом режиме через ObjectDBX открыть файл библиотеки.
3. В файле библиотеки найти описание нужного блока и через vla-CopyObjects скопировать его в текущий файл. Закрыть файл библиотеки.
4. Вставить нужный файл.
Вариант 2 (особенно хорошо подходит для неаннотативных и нединамических блоков):
1. Проверить имеющиеся описания
2. Если нужного нет, создать такой блок программно
3. Вставить блок.

В обоих вариантах основная проблема будет в визуализации последнего пункта. А решение - в одной из ссылок #8.
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 12.08.2010, 17:50
#17
CB

Конструирование в области нефтеразведки
 
Регистрация: 10.02.2006
Гомель
Сообщений: 321


> Кулик Алексей aka kpblc
Цитата:
эта проблема достаточно успешно решена
Почему бы решение этой задачи не выложить в готовые программы?
CB вне форума  
 
Непрочитано 12.08.2010, 18:37
#18
Кулик Алексей aka kpblc
Moderator

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


Потому что код там немеряный
В аттаче к http://forum.dwg.ru/showpost.php?p=144820&postcount=40 вроде были соответствующие функции...
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
 
Непрочитано 13.08.2010, 13:25
#19
Jonas

конструктор машиностроитель
 
Регистрация: 14.05.2007
Новосибирск
Сообщений: 893


Цитата:
Сообщение от Кулик Алексей aka kpblc Посмотреть сообщение
Потому что код там немеряный
В аттаче к http://forum.dwg.ru/showpost.php?p=144820&postcount=40 вроде были соответствующие функции...
А скажите пож. библиотека - это папка с файлами где кждый фаил с одним блоком или, библиотека это - фаил в котором много описаний бдоков?

имею в виду "_kpblc-block-insert-lib"
Jonas вне форума  
 
Непрочитано 13.08.2010, 13:25
#20
Кулик Алексей aka kpblc
Moderator

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


Лично я под библиотекой понимаю "один файл - много блоков".
__________________
Моя библиотека lisp-функций
---
Обращение ко мне - на "ты".
Все, что сказано - личное мнение.
Кулик Алексей aka kpblc вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Вставка определенного блока из файла



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Нужна функция импорта блока из файла Krieger Программирование 20 18.01.2017 07:19
Вставка блока "Высотная отметка" Danger_pgs Программирование 20 18.02.2016 10:06
Повторное создание вхождения блока из внешнего файла hwd AutoCAD 6 02.04.2010 16:16
Обновление/замена блока с таким же именем из другого файла. Pesec AutoCAD 2 11.11.2009 19:33