|
||
| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны | Справка по форуму | Файлообменник | |
|
Поиск в этой теме |
18.08.2016, 14:33 | #1 | |
Создание Динамического блока с атрибутами методами Lisp.
Проектировщик ВК
Анапа
Регистрация: 18.09.2014
Сообщений: 55
|
||
Просмотров: 4140
|
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
На theswamp.org, кажется, пробовали создать. Чем закончилось - увы, не помню.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Лучше бы попробовать заменить "command" на "vl-cmdf", если не перестанет работать (такое может быть). Потому как данный код точно не пойдет на последних версиях Автокада, где вместо "command" появилась "command-s", которая не принимает несколько команд подряд в одних скобках.
|
|||
|
||||
Когда-то мне тоже понадобилось программно добавлять дин.блоки в чертеж. Реализовал такой способ: создавал блок вручную, помещал его в чертеж-библиотеку блоков и при необходимости использования загружал все описания блоков из библиотеки в чертеж. Потом вставлял блок, задавал значения дин.параметрам и атрибутам. Очень помогла мне в этом статья Алексея по работе с неактивным документом: http://autolisp.ru/2010/04/08/procee...tive-document/
Но у меня были такие непростые блоки, что устанешь командными методами их создавать
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Регистрация: 20.03.2008
Сообщений: 2,653
|
Do$, согласен, с библиотекой работать гораздо удобней, в том числе править блоки в редакторе блоков, а не в коде программы. Я организовал (по совету ShaggyDoc'a) программную вставку файла библиотеки блоков с немедленной отменой, то есть описания всех блоков в чертеже появляются, а физически он не вставляется. Только получалось так, что при очень большом весе файла библиотеки наблюдалось заметное подтормаживание работы кода. Поэтому пришлось делать несколько менее весомых файлов. И еще после выполнения кода в файле остаются описания всех блоков библиотеки, приходится чистить. При программной очистке после каждого запуска любой из функций также бывает заметно некоторое подвисание. Подумываю над тем, чтобы делать каждый блок отдельным файлом. и складывать их все в папку, прописанную в путях доступа.
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
skkkk, будьте проще, сядьте на пол: используй ObjectDBX и через vla-copyobjects копируй описание блока. Достаточно элементарная задача. Другой вопрос, если тебе надо переопределять уже имеющийся блок - тогда да, тогда проще всего командные методы.
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
Покопался в старых своих наработках, нарыл вот такую функцию:
Код:
*do$-dir-path* - это путь от какой-либо папки поддержки автокада до папки с файлом DWG (библиотека блоков). *do$-blocks* - это коллекция описаний блоков в текущем чертеже. Запоминал глобально для увеличения быстродействия, когда вставлял блоки по одному. В том виде, в котором функция сейчас, можно заменить на локальную переменную. _lispru-odbx - функция из статьи Алексея. Функция проверяет наличие блока в чертеже. Если блока нет - копирует блоки из библиотеки (все, кроме анонимных). Работает и по сей день в каких-то моих старых программах
__________________
Толковый выбор приходит с опытом, а к нему приводит выбор бестолковый. (The Mechanic) |
||||
|
||||
Проектировщик ВК Регистрация: 18.09.2014
Анапа
Сообщений: 55
|
Добрый день.
Почитал форум пытаюсь создать программку копирования конкретного блока из неактивного файла. Как получить список описаний блоков стороннего документа? Начала программы взял у Кулик но как дошел до получения списка все тупик. Код:
пробую вот так но чувствую что не то делаю Код:
|
|||
|
||||
Moderator
LISP, C# (ACAD 200[9,12,13,14]) Регистрация: 25.08.2003
С.-Петербург
Сообщений: 39,833
|
Без внимательного просмотра: попробуй копировать не в пространство модели, а в коллекцию блоков текущего документа (vla-get-blocks (vla-get-activedocument (vlax-get-acad-object)))
__________________
Моя библиотека lisp-функций --- Обращение ко мне - на "ты". Все, что сказано - личное мнение. |
|||
|
||||
ОПС Регистрация: 29.03.2012
Kazakhstan
Сообщений: 128
|
До кучи вставка описания блока из файлов dwg, dxf, dws, dwt
куча.lsp Последний раз редактировалось roaa, 05.11.2016 в 13:51. |
|||
|
Опции темы | Поиск в этой теме |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Создание динамического 3D блока швеллера в AutoCAD 2014 | Robenzon | Динамические блоки | 11 | 08.08.2019 14:06 |
Создание динамического блока со скрытыми текстовыми атрибутами | IIIkunep | Динамические блоки | 4 | 04.07.2016 13:52 |
Создание зависимого динамического блока | Начинающий архитектор | Динамические блоки | 4 | 27.09.2014 06:02 |
Создание кнопки для динамического блока и привязка к чертижам | dmitry77 | Программирование | 10 | 07.05.2014 11:26 |
Создание блока с атрибутами | молодой человек | Программирование | 5 | 15.11.2010 17:23 |