Все Блоки Для Автокада

/ Comments off

В пятой части, посвященного разработке плагинов под AutoCAD, я расскажу про создание простых блоков и размещение их на чертеже. Public static string disclaimer = 'Автор не является профессиональным разработчиком и не обладает глубокими знаниями AutoCAD. Этот пост – просто небольшой рассказ о создании плагина.' Введение Если при работе с чертежом возникает необходимость создания однотипных объектов, то лучше всего делать это с помощью механизма блоков — именованных групп объектов, которые ведут себя как единый объект.

Общие сведения о блоках можно получить. Важно уметь четко разграничивать два понятия: определение блока и вхождение блока. Подробное описание различий приведено (англ.) и (rus). Вкратце изложу суть: когда мы создаем новый блок, AutoCAD помещает его описание в специальную таблицу блоков.

Это описание называется определением блока (block definition). Определение блока существует исключительно в таблице блоков и на чертеже не отображается. Непосредственно на поле чертежа AutoCAD помещает вхождение блока (block reference) — ссылку на определение блока. При изменении определения блока все вхождения блока повторяют эти изменения. Далее в статье я иногда буду опускать первое слово («определение» или «вхождение») и писать просто «блок». Должен сказать, что лично мне перевод «экземпляр блока» нравится гораздо больше, чем «вхождение блока». Но раз уж так написано в документации Как говорится, почитай отца своего, почитай мать свою и почитай руководство по эксплуатации.

CAD для электриков. Все файлы сохранены в 2. CAD, поэтому проблем с его открытием. Apr 4, 2014 - Как составить большую библиотеку блоков в Автокаде? Итак, рассмотрим блоки мебели для АutoCAD в качестве примера. В первую очередь соберите в одном файле все блоки, которые должны войти в коллекцию. Можете либо создать их с нуля, либо скачать из интернета, а затем.

В процессе общения с Autocad я сталкивался с двумя видами блоков: обычными и динамическими. Главная особенность вторых — возможность задать их элементам некоторые «настраиваемые» параметры (например, длину линии в блоке или угол ее наклона). Главный минус динамических блоков в том, что их невозможно создать средствами.NET API.

Про динамические блоки я расскажу в другой раз. А пока посмотрим, как можно работать с обычными блоками. Создание блока вручную средствами AutoCAD Для начала давайте создадим блок непосредственно в AutoCAD. Программирования здесь не будет — но умение создать блок вручную полезно для того, чтобы быть в состоянии хотя бы приблизительно оценить результат работы плагина.

Подробности процесса — под спойлером. Итак, во-первых необходимо добавить на чертеж элементы, которые мы будем объединять в блок. Для начала добавим в блок простую окружность. В командной строке AutoCAD выполним команду CIRCLE, затем укажем центр и радиус.

На чертеже появится окружность: Выделим окружность и выполним команду BLOCK. На экране появится меню создания блока. К аналогичному результату приведет нажатие кнопки «Create» на панели «Block»: Зададим блоку имя, выставим единицы измерения «Unitless» и снимем флажок «Open in Block Editor», после чего нажмем «ОК». Выбор единиц измерения позволяет задать блоку размер, который будет автоматически пересчитываться в разных системах измерения (европейской, с метрами и миллиметрами — и американской, с футами и дюймами). Если выставить значение «Unitless», то блок будет использовать те единицы измерения, которые установлены в чертеже. Я всегда выставлял значение «Unitless»; хорошо это или плохо — не знаю. После этого AutoCAD попросит указать на чертеже точку, которая будет являться для блока базовой.

Обычно в качестве этой точки задают центр блока или его нижний левый угол. Укажем в качестве базовой точки центр окружности. Мы завершили создание блока. Первое вхождение блока будет добавлено на чертеж автоматически и заменит собой элементы, из которых был создан этот блок. Чтобы добавить на чертеж несколько вхождений созданного блока, можно использовать команду INSERT или одноименную кнопку на панели «Block»: После выполнения команды или нажатия на кнопку на экране появится окно вставки блока: Выбираем в списке нужный блок, нажимаем «OK», указываем точку вставки — и блок появляется на чертеже. В том, что это именно блок, можно убедиться, выделив объект и посмотрев на окно свойств: Для редактирования блоков используется редактор, который вызывается командой BEDIT или соответствующей кнопкой на панели «Block»: После выполнения команды или нажатия на упомянутую кнопку на экране появится окно выбора определения блока: В этом окне необходимо выбрать определение, которое мы будем редактировать, и нажать «OK».

Ролики Проверил на встроенном плейере ТВ Samsung UE-C7000. Обратите внимание - два ролика в разрешении 1280х720, остальные - 1920х1080. Инфо: Ролики взяты с разных сайтов, ничего не перекодировал, только перемуксировал в матрёшку. Демо-ролики в основном специально демонстрируют 3Д-вылеты с замедлением. Год выпуска: 2012, 2013 Страна: Корея, Япония, Китай, Тайвань Жанр: Демо, Видовые Продолжительность: ~ 46 минут Перевод: В основном не требуется Описание: Видовые и демо 3Д ролики.

После этого AutoCAD откроет редактор блоков. Пробежимся по самым, на мой взгляд, важным кнопкам панели редактора:. Save Block — сохранить все сделанные изменения. После закрытия редактора блоков все вхождения блока, размещенные на чертеже, будут обновлены в соответствии с изменениями определения блока. Authoring Palettes — показать или скрыть окно атрибутов.

Это окно пригодится при работе с динамическими блоками. Point — в этом выпадающем подменю находится пункт «Basepoint», с помощью которого можно задать блоку новую базовую точку. Close Block Editor — закрыть редактор блоков. Все несохраненные изменения будут потеряны. Внутри редактора можно добавлять к определению блока новые объекты и удалять ненужные. Редактирование блока происходит аналогично редактированию обычного чертежа.

На этом краткий экскурс в создание блоков в AutoCAD завершен. Можно переходить к коду.:-) Создание блока с помощью AutoCAD.NET API Пример создания простого блока Этот раздел базируется на соответствующем в блоге Kean Walmsley (наш пример по сравнению с первоисточником будет заметно облегчен). Мы будем создавать простейший блок, состоящий из полилинии, окружности и блока текста. Кстати, раз уж зашел разговор про колбасные обрезки За последние пару лет (боже, как время-то летит!) произошло много всего хорошего.

В частности, все-таки бесплатную профессиональную версию Visual Studio. Да, Visual Studio Community Edition занимает больше места, чем Express, и интерфейс у нее чуть посложнее — но рано или поздно у разработчика обычно возникает необходимость работы с дополнениями IDE, а они в Express-версиях не поддерживаются. Пример из жизни: автор этих строк весело писал плагин в VS Express, и ничто не предвещало беды пока не встала задача добавить программу установки (msi-файл, который создается с помощью технологии Wix). В итоге весь код инсталлятора пришлось писать в Notepad, ежеминутно сверяясь с документацией, и компилировать вручную. А в Visual Studio Professional можно было бы просто подключить плагин для работы с Wix и делать все прямо в IDE — с подсказками, автодополнением кода и компиляцией прямо в проекте.

Было бы В общем, если вы работаете в компании, у которой не больше 250 ПК и годовой доход менее $1 000 000, то очень рекомендую при наличии пары-тройки лишних, бессмысленных часов жизни потратить их на установку этого продукта и далее работать с ним. Если же бессмысленных часов в вашей жизни нет, то осознайте, что все — тлен, жизнь — боль, а влачить свое существование без установленной Visual Studio Community Edition — значит лишь увеличивать энтропию этого мира. Чтобы создать блок и поместить его вхождение на чертеж, необходимо сделать следующее:.

Создать в таблице блоков новую запись (определение блока). Добавить в определение блока необходимые геометрические объекты. Добавить на чертеж вхождение блока. Итак, приступим. Я уже не буду подробно останавливаться на таких мелких особенностях создания плагина, как подключение внешних ссылок, запрет CopyLocal, указание версии.NET и тому подобное — это неоднократно обговаривалось в прошлых постах цикла.

В этом примере нам потребуются ссылки на библиотеки AcMgd и AcDBMgd. Кода будет немного; сразу приведу его весь, а потом разберем детали. Теперь давайте разбираться, что происходит в коде.

Вначале мы проводим подготовительные операции: получаем ссылки на документ, его БД и свойство Editor, задаем имя нового блока и начинаем транзакцию. Ничего нового в этом нет, кроме разве что свойства Editor.

Разыскать подробную информацию по классу Editor я с ходу не смог. Буду рад, если кто-то из более знающих людей подскажет ссылку на вменяемое описание этого класса и его методов (или хотя бы где его найти в ObjectARX Reference).

В этом примере класс Editor используется только для вывода сообщения о том, что блок с таким именем уже существует в БД. В AutoCAD это сообщение выглядит так: Внутри транзакции мы действуем по алгоритму, изложенному в начале этого подраздела.

Автокада

На первом шаге мы создаем новую запись в таблице блоков, для чего:. открываем таблицу блоков (запрашиваем доступ на запись, поскольку будем вносить изменения);.

проверяем, нет ли в таблице блока с таким именем (при попытке создать блок с именем, которое уже есть в таблице блоков, мы получим исключение eDuplicateRecordName, которое нам совершенно не нужно);. создаем новое определение блока;. задаем созданному определению блока имя;. добавляем созданное определение блока в таблицу блоков и в транзакцию. На втором шаге мы добавляем к созданной записи необходимые геометрические примитивы.

У нас их будет три: полилиния, окружность и текст. Добавление на чертеж полилинии и окружности разбиралось в предыдущей статье; с текстом все происходит аналогично. Добавление к блоку графического объекта обычно происходит в три приема:. создается необходимый объект;. задаются свойства этого объекта;. созданный объект добавляется в определение блока и в транзакцию. Это применимо как к полилинии и окружности, так и к тексту.

Какая часть кода за какой пункт отвечает — вполне очевидно. Почитать подробнее про добавление текста на чертеж можно (англ.) и (rus). На третьем шаге мы добавляем вхождение созданного блока на чертеж. Порядок действий тут такой:. открывается на запись пространство модели;.

создается новое вхождение блока;. созданное вхождение блока добавляется на пространство модели и в транзакцию. Остановимся чуть подробнее на конструкторе класса BlockReference, используемом при создании нового вхождения блока.

Все

Данный конструктор принимает два параметра: точку размещения блока (с этой точкой будет совмещена базовая точка вхождения блока) и ID определения блока. Иными словами, мы должны сообщить AutoCAD, какой блок мы хотим увидеть и где. В нашем примере в качестве точки размещения блока указано начало координат ( Point3d.Origin), а ID определения блока мы сохранили еще на первом шаге, при создании этого определения. Использование блоков, уже имеющихся в таблице блоков документа Если в предыдущем примере выполнить команду HabrCommand, а затем удалить с чертежа появившийся блок и выполнить команду HabrCommand еще раз, то мы увидим сообщение «A block with the name „pvtBlock“ already exists», и на чертеже ничего не появится.

Все блоки для автокада генплан

Чтобы использовать ранее созданное определение блока, нужно узнать ObjectID этого определения. В нашем случае код можно переписать так. Использование UpgradeOpen, наверное, является хорошей практикой. По крайней мере, Kean Walmsley точно так делает. Но подробных данных о том, какие сокровища и жизненные блага достаются тем, кто использует UpgradeOpen, у меня нет. Сам я в работе эту конструкцию не использовал и особых огорчений по этому поводу не испытывал.

Если кто-то может представить свою позицию по использованию UpgradeOpen — рад буду увидеть ее в комментариях или ЛС. Изменение позиции вставки блока В каком месте чертежа появится блок, заранее предсказать невозможно зависит от двух вещей:. от базовой точки, заданной в определении блока;.

от точки вставки, заданной во вхождении блока. В нашем примере базовая точка расположена в центре блока. Заметим, что при создании определения блока мы нигде не задавали базовую точку в явном виде — в подобном случае AutoCAD считает, что базовой точкой является начало координат. В нашем примере «центр» фигуры был специально подобран так, чтобы он совпал с центром координат. Изменить базовую точку определения блока можно вручную с помощью редактора блоков (как это сделать, говорилось в первом разделе поста) или средствами.NET API. В последнем случае для этой цели используется свойство Origin класса BlockTableRecord. В качестве примера давайте перенесем базовую точку определения блока в нижний левый угол.

Для этого после указания имени блока зададим свойство Origin: // задаем имя блока btr.Name = blockName; // задаем базовую точку btr.Origin = new Point3d(-50, -125, 0); Числа -50 и -125 — это минимальные координаты нашего блока по осям X и Y соответственно (такие координаты имеет нижняя левая вершина полилинии, образующей внешнюю границу нашего блока). Файл с наборами фигур: Файл с вхождениями блока: Первая причина Некоторое увеличение размера файла чертежа — это нехорошо, но не так уж и страшно: Россия большая, места хватит всем. Однако есть проблемы и посерьезнее.

Представим, что в вышеупомянутый Приказ №1500 внесли дополнение, жестко регламентирующее расположение пуговицы на погоне, и нам нужно перенести на всех погонах окружность несколько выше от текущего положения. Если мы использовали блоки, то задача решается в несколько строк кода: мы просто откроем определение блока, найдем там окружность и сдвинем ее центр в нужную точку.

Поскольку все вхождения блока ссылаются на одно и то же определение, после выполнения команды все они обновятся автоматически. Как читатель уже наверняка заметил, в этой команде происходит редактирование блока. Ничего запредельного в этом нет; в одной из следующих статей я постараюсь чуть подробнее осветить вопросы выбора элементов на чертеже и их редактирования. Данный пример основан на (англ.) и (англ.) источниках.

По второй ссылке, кстати, можно найти целых пять разных способов убедиться в том, что объект является окружностью. Мы, разумеется, использовали самый неэффективный простой и понятный из них. Маленькая деталь: AutoCAD действительно обновит все вхождения блоков, однако чтобы это увидеть, необходимо выполнить команду REGEN. ДО: ПОСЛЕ: Безусловно, подобную операцию можно провернуть и в случае геометрических фигур, а не вхождений блоков, однако тогда придется работать уже со всем чертежом и менять координаты центра окружности не один раз, а десять тысяч. Тестов я не проводил, но думаю, что эта процедура займет несколько больше времени, чем редактирование определения блока.

С другой стороны, каждая монета имеет аверс и реверс, а использование блоков накладывает свои ограничения. Например, если потребуется заменить лейтенантский погон, расположенный в одиннадцатой строке и сорок втором столбце, на капитанский, то при использовании блоков никаким нормальным способом мы это сделать не сможем. Придется либо создавать новый блок для капитана, либо дорисовывать звездочки вручную, либо прибегать к каким-нибудь дополнительным извращениям. NэBpaЩeHuЯ — одна из причин, по которым мне НЕ нравится программировать. С некоторых пор я работаю, чему искренне рад. Краткий вывод (куда ж без него-то): использование блоков может сэкономить массу сил и времени, но применять их надо обоснованно, при наличии необходимости.

На этом я, пожалуй, завершусь. В следующий раз расскажу про поиск и редактирование объектов на чертеже. Как всегда, буду рад любым отзывам, замечаниям и предложениям — в комментариях или ЛС. Спасибо за внимание! Метки:. Добавить метки Пометьте публикацию своими метками Метки лучше разделять запятой.

Например: программирование, алгоритмы. Драйвера на samsung ml-1661. Спасибо за отзыв! Текст менять точно можно (я такое делал) — осталось только вспомнить, как. Я использовал динамические блоки; не помню, можно ли добавить изменяемый текст в обычный блок. Напишу об этом в следующей статье про блоки.

Все Блоки Для Autocad Взорвать

Над защитой чертежа я, к сожалению, не работал. Честно говоря, слабо верится, что можно сделать блок, который не будет редактироваться. Я придерживаюсь той точки зрения, что на всякую хитрость найдется оборудованное винтом приспособление, позволяющее ее обойти. Может быть, кто-то из более знающих хабражителей сможет рассказать про защиту чертежа? Было бы неплохо, если бы вы скинули ссылку на два файла — исходный и защищенный такой программой. Посмотреть, покрутить, удивиться.).

Там LISP используется С ним я не работал и, честно говоря, не очень сейчас хочется расковыривать незнакомый код. По вашей ссылке мне больше всего понравился вот пост: Предлагаю как выход поставить DJVU принтер и печатать в него непосредственно.

Заманчиво это тем, что рисунок, полученный в итоге, уже ничем не отредактируешь; кроме того, есть в этом принтере такая приятная функция, как уровень сжатия. То есть на выходе получается файлик, который обломно печатать и нести, допустим, в экспертизу — но его вполне достаточно для ознакомления с качеством чертежа.Однако я не являюсь знатоком AutoCAD и могу не знать всех тонкостей. Я бы вам посоветовал попробовать спросить. Это будет не совсем профильный вопрос для того форума, но если вы цивилизованно зададите вопрос, то наверняка получите дельный совет.).

Под утилитами, надо понимать имеется ввиду утилита purge (очистить). Эта утилита удаляет (как это было отмечено в предыдущем сообщении) только НЕИСПОЛЬЗУЕМЫЕ блоки, то есть, 'неиспользованое в чертеже определение блока'. Неиспользуемые блоки, это которые не вставлены ('нет вхождений'), хотя определение блока присутствует. Утилита рассматривает определение блока (при условии отсутствия вхождений) как лишнюю информацию, и удаляет, точно так же, как удаляет и неиспользуемые стили (чего угодно), слои и т.п. Разбитый командой explode блок, вхождением блока уже не является. Если утилита purge не удаляет чего либо, значит, это где-то вставлено или используется в чертеже.

Значит нужно искать, например, на закрытых слоях, как здесь отмечалось. При использовании вложенных блоков, какой-то блок может не удаляться именно по этой причине (использование вложенных блоков). И надо эту причину определить. Например, в чертеже присутствуют блок 'шкаф' и блок 'тумба'. В обоих присутствует в качестве вложенного блока блок 'ручка мебельная'. На некой стадии тумба была удалена (удалено вхождение, а определение то осталось!). Затем шкаф преобразовали в стеллаж, удалив дверки и ручки.

Если теперь попытаться удалить утилитой конкретно блок 'ручка мебельная', (которого вроде как нигде и не видно), то ничего не получится, - ручка присутствует в (не удаленном) определении блока 'тумба'. Если про тумбу просто забыли, и она не понадобится, то можно использовать purge для очистки чертежа глобально, т.е. Удалить все неиспользуемые блоки. Впрочем, список неиспользуемых определений блоков будет выдан, в нем можно будет выбрать, что удалять. Ручки в этом списке не будет, - она пока используется, - можно посмотреть что такого имеется в чертеже, чего удалить нельзя, - переключиться в верхнем разделе окна утилиты ('имена объектов' или как там по-русски написано, - у меня английский акад). Чтобы ручка все же удалилась ОДНИМ ЗАХОДОМ использования утилиты, надо включить настройку 'удалять элементы гнезда' (вторая после окна выбора элементов). Как правило, этого бывает достаточно.

Казалось бы зачем все так муторно? Но на самом деле политика блоков акада, если знать как это все устроено, конкретно облегчает работу. И возможность существования в чертеже неиспользованных определений блоков не есть блажь или недоработка разработчиков. Все можно использовать. Например, определение той же тумбы могло быть оставлено намеренно, что бы потом при необходимости использовать в процессе работы над проектом. Ведь наиболее быстрые способы вставки блоков в акаде, - это вставка из заготовленных зарание инструментальных палитр и из 'внутреннего' списка определений в файле. Вставка блока сохраненного в отдельный файл может занимать больше времени из-за необходимости найти и указать на компе этот файл (а если на винчейстере порядку нет, тады ой).

Все Блоки Для Автокада Скачать

Конечно в конце работы с проектом чертеж чистится. Как вариант можно использовать неиспользуемые фичи при создании файла-шаблона (dwt). Например, практически точно известны некоторые слои, стили размеров, блоки оформления чертежей, которые используются постоянно.

Такие вещи можно сразу включить в шаблон, что бы потом было меньше телодвижений. Стр.: 1 Приглашаем на семинар-практикум: «Теплотехническое оборудование электростанций и тепловых сетей. Правила по обеспечению безопасности при эксплуатации. Новый ТКП 608-2017», который пройдет в г.Минске.

Компания EATON, мировой эксперт в области управления энергии, стала одним из первых производителей источников бесперебойного питания(ИБП), разработавшим комплексную систему резервного энергоснабжения, где вместо аккумуляторных батарей используются суперконденсаторы собственного производства. Для тех, кто осмелится стать свободным, сбросить надоевшую повседневность, попробовать полюбить отечественную САПР, заглянуть за кулисы жизни разработчика. Разместите бесплатно информацию о предлагаемой подработке и заинтересованные проектировщики оперативно предложат свои услуги. А вам, как заказчику, остается только выбрать наиболее выгодное предложение!