Как получить c moon в autocad

Обновлено: 03.07.2024

Цель лекции: изучить принципы и конкретные технологии программирования на VBA .

Введение. Обзор команд. Объектная модель

Введение

Интерфейс AutoCAD ActiveX/VBA дает некотoрые преимущества по сравнению с другими методами создания приложений AutoCAD :

  1. Высокая скорость выполнения процесса, так как в отличие от AutoLISP -приложений выполнение команд происходит внутри процесса;
  2. Простота использования, обусловленная простотой языка программирования;
  3. Большие возможности межпрограмного обмена, так как VBA и ActiveX разрабатывались для взаимодействия с другими Windows -приложениями.

Понятие внедренных и глобальных проектов VBA

Приложение Autocad VBA представляет собой набор программных модулей, модулей классов и форм. Пороект может быть сохранен как в рисунке (внедренный), так и во внешнем файле. Внедренный проект автоматически загружается при открытии рисунка. Ограничение внедренных проектов в том, например, что они не могут закрыть рисунок, внутри которого находятся. Глобальные проекты в этом плане более гибки, при этом однако пользователь должен знать где расположен файл в котором хранятся макросы. Глобальный проект проще передавать другим пользователям и в нем удобно хранить общие макросы. В любой момент могут быть использованы оба типа проектов. На уровне двоичного кода проект Autocad VBA не совместим с проектом Visual Basic , однако обмен формами, модулями и классами можно производить через экспорт- импорт. (Команды IMPORT и EXPORT VBA ).

Загрузка существующего проекта

При загрузке проекта все глобальные процедуры, называемые так же макросами, становятся доступными для использования. Загрузить проект можно через VBA -менеджер или с командной строки VBALOAD . Кроме того автокад грузит автоматически проект с именем acad. dvb , который может найти в путях файлов поддержки. При загрузке проекта может появиться предупреждение, что он содержит макросы, а значит может содержать и вирусы. Выгрузка проекта командной VBAUNLOAD приводит к высвобождению памяти ранее занятой проектом. Внедрить проект в рисунок можно с помощью VBA -менеджера, он же позволяет извлечь проект из рисунка, при этом предлагая сохранить его в отдельном файле. Чтобы среда разработки VBA автоматически загрузилась при загрузке AutoCAD , в файл acad.arx нужно внести строку acadvba.arx .

Определение компонентов проекта

Проект может состоять из различных компонентов:

  • объекты;
  • формы;
  • стандартные модули;
  • модули класса;
  • ссылки.

Добавить компонент можно через меню Insert , компоненты так же можно импортировать из файлов ( .frm, . bas , .cls ).

Обзор команд VBA AutoCAD

  • VBAIDE - открывает окно VBA IDE , позволяющее редактировать, запускать и отлаживать программы.
  • VBALOAD - загружает проект.
  • VBARUN - запускает макрос на выполнение.
  • VBAUNLOAD - выгружает проект, освобождая память.
  • VBAMAN - показывает окно менеджера VBA .
  • VBASTMT - позволяет выполнить команду VBA в командной строке AutoCAD .

Основные понятия объектной модели AutoCAD

Все объекты AutoCAD организованы в виде иерархической структуры. Корнем дерева является объект Application .

Через объект Application можно получить доступ к следующим объектам:

  • Preferences;
  • Documents;
  • MenuBar;
  • MenuGroups;

Через объект Preferences можно получить доступ к следующим объектам

  • PreferencesDisplay;
  • PreferencesDrafting;
  • PreferencesFiles;
  • PreferencesOpenSave;
  • PreferencesOutput;
  • PreferencesProfiles;
  • PreferencesSelection;
  • PreferencesSystem;
  • PreferencesUser.

Через объект Documents можно получить доступ к объекту Document а через него к большинству других объектов и коллекций:

В двух последних расположены объекты AutoCAD , видимые на рисунке:

Доступ к иерархии объектов. Коллекции, свойства и методы

Связь VBA с активным чертежом обеспечивается посредством объекта ThisDrawing . С его помощью можно получить немедленный доступ ко всем свойствам и методам объекта Document а также ко всем другим объектам в иерархии.

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

Ссылка на объекты в иерархии объектов

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

Для доступа к объекту через объектную переменную поступаем следующим образом. Определяем переменную желаемого типа, после чего устанавливаем переменную так, чтобы она ссылалась на нужный объект. К примеру следующий код определит объектную переменную moSpace типа AcadModelSpace так, чтобы она ссылалась на текущее пространство модели :

В примере добавляем линию в пространство модели , используя эту переменную:

Корневой объект Application расположен в иерархии выше объекта Document . Выше показано, что объект ThisDrawing обеспечивает доступ к объекту Document . А у объекта Document есть свойство Application , которое и является ссылкой на объект Application . Пример обращения:

Коллекции объектов

Объект Collection - является предопределенным объектом содержащим все вхождения подобных объектов. Существуют следующие объекты коллекции:

Доступ к коллекции

Большинство коллекций доступны через объект Document , т.к. он содержит свойства для каждой из коллекций. Следующий код устанавливает ссылку объектной переменной на коллекцию Layers :

Коллекции Documents, MenuBar и MenuGroups доступны через объект Application . Он содержит свойства для каждой из этих коллекций. Следующий пример определяет объектную переменную и создает ссылку через нее на коллекцию:

Добавление нового элемента коллекции

Следующий пример создает слой и добавляет его в коллекцию:

Перебор членов коллекции

Для выбора нужного члена коллекции используется метод Item . В качестве параметра ему передается номер ( Index ) объекта в коллекции либо его символьный идентификатор. Пример демонстрирует перебор всех слоев с отображением их имен

Пример поиска слоя с именем ABC :

Не следует использовать методы редактирования примитивов ( Copy, Array, Mirror и др.) на любом объекте который одновременно перебирается с помощью механизма For Each . В случае необходимости нужно закончить перебор, создать временный массив эквивалентный коллекции и в этом массиве выполнить редактирование.

Удаление члена коллекции

Пример удаления слоя:

Удаленный объект восстановлению не подлежит.

Понятие свойств и методов

Каждый объект обладает связанными с ним свойствами и методами. Свойства описывают некоторые характеристики присущие объекту, а методы позволяют выполнять действия над объектами, в частности, менять и читать свойства. Например, объект окружность имеет свойство Центр, которое представляет трехмерную координату центра окружности. Чтобы сменить свойство достаточно задать ему другое значение. Окружность как целое имеет метод Offset , который создает новый объект на указанном смещении от существующего. Полный перечень свойств и методов есть в ActiveX and VBA Reference .

Понятие родительского объекта

Каждый объект имеет своего родителя с которым он постоянно связан. Доступ к каждому объекту можно осуществить следуя от родительского объекта к дочернему. Кроме того все объекты имеют свойство Application , как непосредственную ссылку на корневой объект.

Библиотеки типов

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

Получение первого примитива из базы данных рисунка

Применение variant в методах и свойствах

Для передачи массива данных AutoCAD использует тип Variant который может принимать данные любого типа за исключением строк фиксированной длины и типов данных, определяемых пользователем. Может также принимать значения Empty, Error, Nothing, NULL . Чтобы узнать какой именно тип данных хранятся в переменной типа Variant , нужно обратиться к функции VarType или TypeName .

Тип данных Variant используется для передачи массива данных из/в AutoCAD ActiveX Automation . В AutoCAD VBA -входные массивы автоматически преобразуются в тип Variant . Однако c выходными массивами все не так просто. Метод CreateTypedArray преобразует массив в Variant , содержащий "смесь" из Integer, Double и т.д. Эту "смесь" можно передать в любой метод или любое свойство AutoCAD , которые принимают массив чисел как Variant .

В примере преобразуются три массива координат сплайна с передачей их методу AddSpline .

Интерпретация variant-массивов

Передаваемая AutoCAD ActiveX Automation информация массива возвращается как тип Variant , если типы данных элементов массива известны. Иначе применяем функции VarType Typename . Для перебора элементов массива удобен метод For Each . Пример вычисления расстояния между двумя точками введенными пользователем:

Использование других языков программирования

Чтобы использовать приведенные примеры не в VBA а в VB следует, во-первых, сослаться на библиотеку типов, во-вторых заменить все ссылки ThisDrawing Для этого определить переменную для приложения AutoCAD (myApp) и для активного документа ( myDoc ). Если AutoCAD запущен, метод GetObject возвращает объект AutoCAD Application . Если AutoCAD не запущен, то вызывается обработчик ошибок. Затем метод CreateObject пытается создать объект AutoCAD Application , как в следующем примере:

Здесь уже используем acadDoc -переменную для ссылки на текущий рисунок AutoCAD . Если запущены несколько сеансов, AutoCAD -функция GetObject возвращает первое вхождение из Windows Running Object Table (ROT) .

Следующий пример демонстрирует создание линии в VB и VBA

Управление окружением AutoCAD

Открытие, сохранение и закрытие чертежа

Коллекция Documents и объект Document обеспечивают доступ к файловым функциям. Для этого следует использовать один из методов Add, Close, Save, SaveAs, Import, Export . Пример открытия рисунка:



ObjectARX — это большой набор библиотек, предназначенный для разработки приложений для AutoCAD в среде программирования Microsoft Visual C++. Сам AutoCAD разработан с использованием ObjectARX.

ObjectARX общедоступен и его можно скачать с сайта Autodesk.
Кроме того, по этому же адресу можно скачать обширную документацию по SDK.

Внимание! Необходимо использовать одинаковые версии ObjectARX и Autocad! Совместимость работы библиотеки одной версии с Autocad другой версии не гарантируется. Так что при изменении версии используемого Autocad необходимо перекомпилировать Вашу программу с новыми библиотеками! Кроме того, советую обратить внимание на совместимость различных версий ObjectARX и MS VS! Все описанные ниже примеры написаны для Autocad 2009, соответственно используется ObjectARX 2009, MS Visual Studio 2008.

2. Возможности ObjectARX

Набор библиотек ObjectARX представляет разработчику огромный набор инструментов как для работы чертежами, так и с окнами Autocad.

Подробнее о ObjectArx можно почитать в документации (в папке ObjectARX\docs\), так же в составе документации по ObjectARX есть примеры (папка \ObjectARX\samples\).

3. Примеры

Ниже в данной статье будет рассмотрено несколько примеров работы с Autocad и по каждому примеру будут даны небольшие комментарии.

Для просмотра результата, необходимо в Autocad вызвать команду «netload» (без кавычек), загрузить получившуюся в результате компиляции dll-сборку и вызвать имя новой команды (addEntity и addBlock соответственно, регистр роли не играет).

3.1. Добавление новых примитивов в существующий чертеж

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



2. Создание блока и изменение его свойств

Пример немного посложнее: создадим новый блок и разместим его на чертеже. Для этого добавим новую функцию:

Данный пример иллюстрирует процесс создания более сложных объектов — блоков. Процесс создания блоков следующий:

1) создаем определение блока (как элемент таблицы BlockTable) и добавляем его в таблицу блоков (не забываем проверить корректность имени блока);
2) создаем и добавляем в определение блока примитивы и определения атрибутов блока;
3) создаем экземпляр блока (BlockReference) и добавляем его в базу данных того пространства, которое нас интересует (в примере — пространство модели);
4) задаем значения атрибутов.



Злоключение

На этом поспешу закругляться. Всем спасибо за прочтение статьи, и напоминаю: с радостью рассмотрю все замечания, указание ошибок и просто критические комментарии!
Так же прошу в комментариях указать, есть ли смысл писать далее об этой теме и интересует ли эта тема кого-нибудь.

Как начать работать в AutoCAD? Интерфейс программы. Самое начало.

Итак, Как начать работать в AutoCAD? Прочитали эту фразу? Отлично! Значит, нам пора поздороваться! Доброго времени суток! Мы очень рады приветствовать Вас на нашем сайте. Отдельный раздел которого посвящен одной из самых востребованных программ в строительной отрасли всего мира. В России в том числе – AutoCAD от компании Autodesk.

Про данный программный продукт написано огромное количество статей/заметок/учебников и прочей литературы. Наш сайт не будет первым, кто научит Вас как начать работать в AutoCAD.

Видео на тему: AutoCAD для начинающих. Начало работы.

Наши статьи и учебные материалы составлены таким образом, чтобы конечный результат, направленный на освоение всех необходимых функций САПР AutoCAD был достигнут в максимально короткий срок.

С эффективной системой внедрения теоретических знаний в практическую значимость для каждого из Вас.

И самое главное – обучение на нашем сайте абсолютно БЕСПЛАТНО!

Всегда есть такие люди, которые спрашивают: «Как начать работать в AutoCAD?». Или же, не знают, как спросить и с чего начать.

Как начать работать в AutoCAD? Начинаем!

И так, ищем на рабочем столе ярлык для запуска и запускаем его!

AutoCAD, довольно сложная и мощная программа, но не смотря на это она может работать и на не совсем новых компьютерах. Однако, это зависит от сложности и объема тех файлов, с которыми вы работаете.

Другими словами, если у вас большой сложный чертеж, то он будет требовать больше вычислительных мощностей от компьютера.

Как начать работать в AutoCAD

Но вот запуск программы – это всегда процесс не быстрый. Поэтому приготовьтесь немного подождать.

Как начать работать в AutoCAD. Интерфейс программы

Ускорить запуск AutoCAD может установка программы на современный высокоскоростной твердотельный SSD диск.

Автокад подготовка рабочей среды. Как начать работать в AutoCAD

После запуска программы Вы увидите окно программы:

Автокад запуск программы. Как начать работать в AutoCAD

Мы специально выделили разными цветами наиболее значимые элементы интерфейса окна AutoCAD. И сейчас расскажем про каждый из них. Сверху/вниз, слева/направо и по порядку! J Поехали!

Автокад. Как начать работать в AutoCAD

Красным прямоугольником обведена кнопка вызова главного меню программы, при помощи которого Вы можете «Создать файл», Открыть существующий, Сохранить, Распечатать или Экспортировать файл чертежа в другой формат.

Например, в формат PDF, для просмотра на компьютере, где не установлен AutoCAD. Или для демонстрации заказчику. Также тут представлен список последних файлов, с которыми Вы работали, для быстрого и удобного их открытия.

Автокад меню. Как начать работать в AutoCAD

Зеленым цветом выделена «Панель быстрого доступа», которая содержит команды из «Главного меню», а также другие полезные команды.

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

Откроется меню адаптации панели и путем установки или снятия нужных «галочек» добавляем или убираем кнопки команд с панели.

Настройка Автокада. Как начать работать в AutoCAD

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

дэвэгешки. Как начать работать в AutoCAD

В правой части окна заголовка находится «Облачное меню», которое позволяет получить доступ к справочной информации и «облачным сервисам» компании Autodesk.

Облачное меню. Как начать работать в AutoCAD

Ниже, синим цветом, выделена «Лента команд». Автокад как и многие программы, имеет современный «Ленточный интерфейс», который позволяет оптимизировать рабочее пространство окна.

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

Название «активной» ленты команд на рисунке подчеркнуто синей пунктирной линией «Главная». Нажатие на другие вкладки активизирует переход к ним.

Панель автокада. Как начать работать в AutoCAD

Каждая лента команд разделена на «Области». Для примера, на рисунке голубым цветом выделена область команд «Рисование».

Автокад панель 2. Как начать работать в AutoCAD

Названия областей подобраны не случайно.Они подсказывают пользователю, кнопки каких команд собраны на этой области.

Например, кнопки в области команд «Рисование» отвечают за создание 2D примитивов и прочих элементов (круг, прямоугольник, дуга…).

Элемент интерфейса кнопок

Отдельно хочется отметить элемент интерфейса кнопок команд, который встречается на разных областях у разных кнопок – это «маленький треугольник», направленный острием вниз.

Он говорит нам о том, что данная кнопка отвечает за несколько, логически объединенных в себе команд. Проще говоря, эта кнопка может выполнять не одну команду, а несколько.

Автокад маленький треугольник. Как начать работать в AutoCAD

Например, нажатие на треугольник/стрелочку возле кнопки с командой построения «Прямоугольника» открывает доступ к кнопке построения «Многоугольника» или как его сейчас именуют в AutoCAD – «Полигон».

Полигон автокад.

Количество дополнительных кнопок команд может быть небольшим (пара/тройка новых команд). Или же, как в случае с командой «Круг» - перед Вами откроется довольно внушительный список новых команд.

Как начать работать в AutoCAD: Для чайников, пошагово
Как начать работать в AutoCAD: Для чайников, пошагово

Этот же маленький треугольник/стрелочка, который нам встречался ранее на панели быстрого доступа. Для открытия меню адаптации панели, встречается и возле названий областей команд.

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

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

И так, напоминаем, мы рассматриваем «Интерфейс программы AutoCAD» на примере версии 2018. Изучив основные элементы верхней части окна программы, переходим к основному рабочему пространству программы AutoCAD.

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

Сколько файлов можно использовать в AutoCAD одновременно?

Автокад может работать с несколькими файлами одновременно. И вместо вкладок «Чертеж1», «Чертеж2» у Вас будут названия этих файлов.

Рабочее поле представлено «бесконечным пространством» или «пространством модели» разделенным на клеточки. Именно здесь, в пространстве модели мы будем создавать 2D примитивы, окружности и прямоугольники. Использовать инструмент «Полилиния» и, путем редактирования всего этого – получать готовый чертеж!

В правом верхнем углу рабочего поля имеется «компас». Или его еще называют «видовой куб». Он обведен фиолетовым кругом.

Его задача - помогать нам. Ориентироваться в пространстве модели, так как в Автокаде можно не только создавать 2D элементы, но также и моделировать в 3D, но обо всем по порядку.

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

В нижней части окна, находится один из самых важных элементов интерфейса – «Командная строка» или «Строка команд».

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

Строка команд автокада.

Также, желтым прямоугольником выделены вкладки переключения между «пространством модели» и «пространством листа».

Их мы рассмотрим в наших следующих статьях. Как и выделенную красным цветом панель, где есть кнопки включающие или отключающие дополнительные режимы моделирования.

На этом наша статья подошла к завершению. Мы рассмотрели интерфейс программы AutoCAD, познакомились с основными понятиями окна программы.

И теперь уже знаем, где и чего «нажимать»! Теперь можете попробовать самостоятельно пощелкать мышью выбирая различные команды построения элементов.

А в следующей статье мы подробно рассмотрим команды создания 2D элементов чертежей.

alt

Чтобы работать в AutoCAD максимально эффективно, без таких объектов, как блоки, просто не обойтись (читать подробнее про использование блоков в Автокад). Готовые блоки для AutoCAD уже есть в самой программе.

Базовая палитра блоков в Автокаде

Где взять готовые блоки для Автокада?

1) Готовые блоки в Автокаде можно найти на инструментальной палитре (Ctrl+3) (см. материал ниже).

3) В интернете по запросу «Готовые блоки для AutoCAD».

4) Создать собственную библиотеку блоков, поместить ее на инструментальную палитру и пользоваться ей постоянно (читать подробнее про создание своей коллекции блоков AutoCAD).

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

Прежде чем изучать создание блоков в AutoCAD, рассмотрим уже готовые варианты.

Инструментальные палитры с динамическими блоками AutoCAD

В AutoCAD по умолчанию есть набор блоков, которые разработчики вставили как пример. Они располагаются на инструментальной палитре, которая находится на вкладке «Вид» - панель «Палитры» (см. рис. 1).

Инструментальные палитры AutoCAD

Рис. 1. dwg блоки Автокад расположены на инструментальных палитрах.

Любую палитру можно перемещать по экрану, а можно закрепить, перемещая ее мышкой к какому-либо краю графического пространства. Но наиболее удобный вариант - свернуть панель. Для этого надо нажать ПКМ на краю панели и в появившемся контекстном меню выбрать «Закрепить слева» (или справа), как показано на рис. 2.

Палитра блоков для AutoCAD в формате dwg

Рис. 2. Работа с инструментальной палитрой блоков в AutoCAD.

Панель сворачивается до надписи. Если еще раз по ней нажать ПКМ, то эту панель можно свернуть до значка. Теперь она будет появляться всякий раз, когда вы наводите на значок.

На инструментальной палитре по умолчанию есть вкладка «Архитектура», где собраны стандартные блоки (см. рис. 3).

Рассмотрим блок на примере алюминиевого окна. Для этого находим его в списке и щелкаем по нему один раз ЛКМ. Затем в графическом пространстве указываем точку вставки.

Инструментальная палитра «Архитектура

Рис. 3. Вкладка «Архитектура» на инструментальной палитре.

После проделанных действий в рабочем пространстве появится уже готовый объект «Окно», обладающий свойствами динамики. Если его выделить и потянуть за ручки, то размеры объекта изменятся в реальном времени.

Блок «Алюминиевое окно» AutoCAD

dwg блоки Автокад

Рис. 4. Готовые блоки в Автокаде с динамическими свойствами.

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

Читайте также: