Создание динамического блока.

Одними из важнейших элементов Автокада в последнее время стали динамические блоки. Они открывают широкие возможности по адаптации Автокад. И хотя существующие динамические блоки уже решают многие современные задачи проектирования, всегда хочется создать что-то уникальное, своё. Что-то, что будет решать ваши специфические задачи.

В этом уроке мы создадим свой простой динамический блок, а в следующем рассмотрим возможности управления динамический блоком из LISP программы

Давайте создадим свой динамический блок выноски с надписями. См. Рис. 1. 

Динамический блок.

Рис. 1.  Динамический блок выноски с надписями.

Блок будет иметь два атрибута – две надписи.

И три ручки управления:

1 – меняет положение всего блока;

2 – меняет длину выносной линии, изменяя положение полки и надписей;

3 – меняет длину полки.

Размер выноски зависит от размера объекта, для которого она предназначается. Я в качестве объекта взял куб со сторонами 300.

Нарисуете две линии.

Выделите их и нажмите на кнопку «Создать блок». См. Рис. 2.

Динамический блок.

Рис. 2.  Создание блока.

Откроется окно: «Определение блока»

Задайте имя блока.

Укажите базовую точку.

Поставьте галочки перед надписями «Аннотативный» и «Открыть в редакторе блоков» и нажмите «ОК». См. Рис. 3.

Динамический блок.

Рис. 3.   Определение блока.

Откроется редактор блоков.

Давайте создадим атрибут для верхней надписи.

На ленте перейдите на вкладку «Вставка»

Нажмите на кнопку «Задание атрибутов». Откроется окно «Определение атрибута». См. Рис. 4.

Динамический блок.

Рис. 4.  Определение атрибута.

В поле «Тег:» напишите <txt1>.

В поле «Подсказка:»  <верхний>

В поле «Высота текста:» <50>

Нажмите «ОК» и вставьте атрибут сверху полки. См. Рис. 5.

Динамический блок.
Рис. 5.   Определение атрибута.

Аналогично создаем атрибут для нижней надписи.

В результате получим. См. Рис. 6.

Динамический блок.

Рис. 6.  Блок с атрибутами.

Перейдите на вкладку «Редактор блоков».

Создайте Точечный параметр, который будет управлять расположение надписей и полки. См. Рис. 7.

Динамический блок.

Рис. 7.   Точечный параметр.

Выделите параметр: Положение1.

Нажмите <Ctrl+1>. Откроется окно «Свойства».

Напротив пункта: «Цепочка операций» поставьте Да

Напротив пункта: «Число ручек» поставьте 0

См. Рис. 8.

Динамический блок.

Рис. 8.   Свойства точечного параметра «Положение1».

Перейдите на вкладку «Операции».

Выберите: «Перемещение».

На запрос: «Выберите параметр» — укажите параметр «Положение1»

На запрос: «Выберите объекты» — укажите надписи и полку.

Нажмите <Enter>. См. Рис. 9.

Динамический блок.

Рис. 9.  Операция «Перемещение».

Перейдите на вкладку «Параметры».

Создайте Полярный параметр (от нижней точки к верхней), который будет управлять длиной и положением выносной линии. См. Рис. 10.

Динамический блок.

Рис. 10.   Полярный параметр.

Выделите параметр: Расстояние1.

В окне «Свойства» напротив пункта: «Число ручек» поставьте 1.

См. Рис. 11.

Динамический блок.

Рис. 11.   Свойства полярного параметра «Расстояние1».

Перейдите на вкладку «Операции».

Выберите: «Полярное растяжение».

На запрос: «Выберите параметр» — укажите параметр «Расстояние1».

На запрос: «Укажите точку параметра» — укажите точку пересечения отрезков.

На запрос: «Укажите первый угол рамки растяжения» — укажите нижнюю точку рамки.

На запрос: «Противоположный угол» — укажите верхнюю точку рамки.

См. Рис. 12.

Динамический блок.

Рис. 12.   Операция «Полярное растяжение».

На запрос: «Выберите объекты» — укажите выносную линию и параметр Положение1. Нажмите <Enter>.

На запрос: «Укажите объекты только для поворота» «Выберите объекты»  — Нажмите <Enter>.

Давайте протестируем, что у нас получилось.

На  ленте нажмите на кнопку: Тестировать блок.

Динамический блок.

Выделите блок. Должны быть видны две ручки. См. Рис. 13.

Динамический блок.

Рис. 13.  Тестирование блока.

Нижняя (1) – перемещает весь блок.

Верхняя (2) – меняет положение полки.

После того, как Вы поэкспериментировали, на ленте нажимаем на кнопку: Закрыть окно тестирования блока.

 Динамический блок.

Длина надписей в нашем динамическом блоке может быть разной. Поэтому, давайте добавим Линейный параметр (справа налево), который будет менять длину нашей полки. См. Рис. 14.

Динамический блок.

Рис. 14.  Линейный параметр.

Выделите параметр: Расстояние2.

В окне «Свойства» напротив пункта: «Число ручек» поставьте 1.

См. Рис. 15.

Динамический блок.

Рис. 15.   Свойства линейного параметра «Расстояние2»

Перейдите на вкладку «Операции».

Выберите: «Растянуть».

На запрос: «Выберите параметр» — укажите параметр «Расстояние2».

На запрос: «Укажите точку параметра» — укажите правую точку полки.

На запрос: «Укажите первый угол рамки растяжения» — укажите первый угол.

На запрос: «Противоположный угол» — укажите второй угол.

Важно: рамка не должна заходить за середину полки. См. Рис. 16.

Динамический блок.

Рис. 16.  Операция «Растянуть».

На запрос: «Выберите объекты» — укажите полку. Нажмите <Enter>.

Далее наведите курсор мыши на значок Перемещения и нажмите на правую кнопку  мыши. Появится контекстное меню.

Выбираем пункт: «Набор объектов для операции». Затем: «Изменения набора объектов». См. Рис. 17.

Динамический блок.

Рис. 17.  Изменения набора объектов.

На запрос: «Выберите объект для добавления в набор операций» —  укажите параметр Расстояние2  и нажмите <Enter>. См. Рис. 18.

Динамический блок.

Рис. 18.    Добавление параметра «Расстояние2».

Протестируйте блок. Теперь у блока можно менять и длину полки.

Завершите тестирования блока.

На ленте нажмите на кнопку: «Сохранить блок»

 Динамический блок.

Появится окно, в котором выбираем «Сохранить изменения». См. Рис. 19.

Динамический блок.

Рис. 19.   Сохранить изменения.

Затем закрываем редактор блоков.

 Динамический блок.

Давайте проверим, как работает блок:

На ленте, нажимаем на кнопку: «Вставить».

В поле имя, выбираем «Vyn» и нажимаем ОК. См. Рис. 20.

Динамический блок.

Рис. 20.   Вставка блока.

На запрос в командной строке «Точка вставки» — укажите любую точку в рабочем окне Автокад.

На запрос «Введите значения атрибутов» «Вставить верхний» — введите «text1» и нажмите <Enter>.

На запрос «Вставить нижний» — введите «text2» и нажмите <Enter>.

В результате у нас должен был получится блок изображенный на Рис. 21.

Динамический блок.

Рис. 21.  Динамический блок: выноска с надписями.

Сохраните свой блок на диск.

Выделите блок и нажмите на кнопку: «Запись блока на диск». Откроется окно Запись блока на диск

Убедитесь, что в поле имени блока выбран нужный блок (Vyn).

Выберите путь сохранения блока (D:\MyLisp\Vyn.dwg). и нажмите ОК.

См. Рис. 22.

Динамический блок.

Рис. 22. Запись блока на диск.

 Скачать динамический блок Скачать динамический блок (Размер файла: 30 kB)

(Если Вы скачали динамический блок.

Возможно Вам будет интересна статья: «Как использовать динамический блок«).

Часто используемые блоки, для быстрого доступа к ним, можно разместить на палитре инструментов.

На ленте перейдите на вкладку «Вид».

Нажмите на кнопку «Инструментальные палитры». Откроются «Палитры инструментов». См. Рис. 23.

Динамический блок.

Рис. 23.   Палитра инструментов.

Давайте создадим свою палитру.

Для этого поместите курсор мыши на любую палитру инструментов и нажмите на правую кнопку мыши.

Появиться контекстное меню, в котором выбираем пункт «Создать палитру». См. Рис. 24.

Динамический блок.

Рис. 24.   Создание новой палитры.

Вместо названия «Новая палитра» введите «Му».

Нажмите <Enter>.

Теперь, для того чтобы поместить наш блок в палитру:

Сохраните чертеж.

Выделите блок.

Поместите на него курсор мыши, нажмите левую кнопку мыши и не отпуская ее перетащите блок в палитру и там отпустите. См. Рис. 25.

Динамический блок.

Рис. 25. Перетащите блок на палитру.

В палитре «My» появиться новый блок. См. Рис. 26.

Динамический блок.

Рис. 26.   Блок на палитре.

Теперь Вы можете вставлять ваш блок на любом чертеже. Для этого нужно открыть палитру «My» и перетащить из нее нужный блок в рабочее окно Автокад.

На этом наш урок окончен.

В следующем уроке мы рассмотрим пример управления  динамическим блоком из LISP программы.

Пишите в комментариях:

Все ли у Вас получилось в этом уроке?

Была ли для Вас полезной информация, данная в этом уроке?

На какие вопросы, Вы хотели бы, получить ответы в следующих уроках?

Я с удовольствием отвечу на ваши вопросы.

Если вы хотите получать новости с моего сайта. Оформляйте подписку.

До новых встреч.

 «Автор: Михаил Орлов»

Google

Также на эту тему Вы можете почитать:

18 комментарии на “Создание динамического блока.

  1. Leonid 21.05.2015 11:04

    При изменении размеров выноски, направлений и прочих геометрических параметров Блок меняет свое название на *U# (*U5 к примеру). CAD переводит блок в unnamed block, и дальнейшие массовые манипуляции уже не возможны. Есть ли решения данной проблемы?

    • Михаил Орлов 25.05.2015 21:31

      Не совсем понятно о какой выноски (блоке) идет речь. Пришлите мне ваш блок на почту: acadprog@gmail.com

  2. Алексей 10.07.2015 16:04

    Класс! Спасибо, у меня все получилось!

  3. Алексей 10.07.2015 16:20

    Я сделал блок с тремя атрибутами, параметры двух (text1 и text2) заполняются автоматически из свойств объекта внутри блока, а третий атрибут представляет собой порядковый номер блока на чертеже. Т.е картина такая: при вставке блока вылетает окно-подсказка, где я ставлю номер блока (блок N 1, блок N 2, блок N 3…. и.т.д), а все остальные атрибуты заполняются автоматом из свойств объекта. Так вот вопрос: «Можно ли сделать так, чтобы не приходилось вбивать порядковый номер блока вручную, (поскольку блоков на чертеже может быть больше сотни, то велика вероятность отвлечься и ошибиться), а все пробивалось бы автоматом?»

    • Михаил Орлов 13.07.2015 18:35

      Как это сделать просто вставляя динамический блок, я не знаю. Может такое возможно. Нужно подумать. Но зато я знаю, как это сделать, если блок вставлять при помощи LISP программы.
      В данной статье рассмотрен пример вставки блок с автоматическим заполнением атрибутов: http://acad-prog.ru/vstavka-dinamicheskogo-bloka/

  4. Алексей 10.07.2015 16:22

    надеюсь не слишком туманно )

  5. releyshic 25.07.2015 06:05

    А можно ли както сделать чтобы если поставить эту выноску цифрой 1 на обьект (линию например) то считывалась бы длина линии и отображалась в тексте выноски text?

  6. Дмитрий черевко 03.10.2015 17:03

    О——
    /
    Товарищи, как сделать такую выноску / , в круге номер позиции, на полке описание профиля или толщина металла?

  7. Елена 22.11.2015 15:08

    Михаил, ни как не получается сделать правильно операцию ПОЛЯРНОЕ РАСТЯЖЕНИЕ. Все делаю в точности, как пишете вы, но все равно при тестировании блока оказывается, что полка на месте, а угол меняет только выноска. В чем же ошибка?

    • Михаил Орлов 22.11.2015 16:49

      1) Возможно в конце операции ПОЛЯРНОЕ РАСТЯЖЕНИЕ на запрос: «Выберите объекты» Вы выбираете только выносную линию. Выбрать нужно 2 объекта: Выносную линию и Параметр Положение1. См. Рис. 12.
      2) Возможно Вы когда меняли свойства Параметра Положение1 забыли установить ЦЕПОЧКА ОПЕРАЦИЙ в положение ДА. Рис. 8.

      • Елена 22.11.2015 17:18

        Получилось!
        т.е. ТОЧЕЧНЫЙ параметр с операцией ПЕРЕМЕЩЕНИЕ ставиться, что бы как раз и связывать эти две части.

  8. Елена 22.11.2015 17:29

    Михаил, а будет ли урок по сложным динамическим блокам с параметризацией?

    • Михаил Орлов 26.11.2015 12:28

      Возможно. Будет свободное время, напишу.

  9. Сергей 25.03.2016 07:46

    Здравствуйте! Не нашел почтового адреса, поэтому напишу в комментариях. У Меня существует некий динамический блок. Вопрос, возможно ли внутрь этого блока вставить текст таким образом, чтобы его(текст) можно было изменять не открывая окно редактора блоков?

    • Михаил Орлов 25.03.2016 13:37

      Данные в блоке можно хранить в атрибутах или в динамических свойствах. И те и другие можно менять не открывая редактор блока.
      Любой объект Автокад может, хранить в себе дополнительные данные (что-то вроде скрытых атрибутов блока). Эти данные можно программно добавлять к объекту и в нужные моменты читать или изменять.

  10. Дмитрий 11.04.2018 08:24

    Не могу добавить блок в палитру:

Оставить комментарий

Ваш mail не будет опубликован.

Вы можете использовать HTML теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>