Как улучшить оплетку в AutoCad

Обновлено: 21.11.2024

Хотите создать собственный стул с нуля? Можно с уверенностью сказать, что обучение навыкам работы с деревом для самостоятельного изготовления деревянной мебели заставит вас забыть об обычных предметах и ​​добавит нотку стиля в ваш дом.

Основатель студии Ofício Lenho и победитель Salão Design дизайнер мебели Данилло Фариа (@danillo_faria) посвятил свою карьеру этому ремеслу.

Разрабатывая и вручную вырезая деревянную мебель и предметы с использованием традиционных столярных технологий (с добавлением других материалов), работа Данилло основана на трех столпах: качество, долговечность и красота. Его творчество воплощается в фирменных изделиях, которые вызывают чувство комфорта, ностальгии и восхищения у своих владельцев.

Данилло начинает с трех столпов (качество, долговечность и красота), чтобы превратить свое творчество в фирменные изделия.

В этом посте Данилло делится техническим чертежом для проектирования собственного стула в Blender и AutoCAD из своего курса «Дизайн и изготовление деревянной мебели». Прежде чем вы начнете, вот несколько полезных фактов о деревообработке.

Материалы для начала работы по дереву

Патрисио Ортега является основателем Maderistica (@maderistica), ремесленной мебельной мастерской, где он сочетает искусство и дизайн для создания уникальных предметов. В «Доместике» он преподает курс «Профессиональная деревообработка для начинающих».

Патрицио рассказывает о материалах, необходимых для создания вашего первого проекта по деревообработке.

Основные материалы для начала работы по дереву.

Материалы

- Дерево на выбор
- Молоток
- Резак
- Двусторонний скотч
- Столярный клей
- Наждачная бумага
- Один дюйм гвозди
- Шурупы (от 1 до 1/4)
- 10-миллиметровые дюбели для дерева
- Маска (желательно с клапанами)
- Каски (защита органов слуха)
- Защитные очки
- Перчатки (только для покраски, не для электроинструмента)
- Большой рабочий стол

Данилло Фариа – основатель студии Ofício Lenho и победитель конкурса Salão Design.

Электроинструменты и дополнительное оборудование

- Фрезерный станок
- Сверлильный станок
- Электролобзик
- 10-миллиметровое сверло
- 10-миллиметровое сверло по дереву
- Полудюймовый копир- фрезерный станок
- Фрезерный станок ¼ дюйма
- Прямофрезерный станок
- Полотно лобзика

Как настроить рабочий стол

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

Хема Касадо Олеа, основатель и директор агентства "Сделай сам" El Tarro de Ideas (@eltarrodeideas), специализируется на проектировании и создании рабочих мест ручной работы, которые подходят для всех творческих людей.

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

Технический эскиз деревянного стула в Blender и AutoCAD

Чтобы помочь вам в создании стула, Данилло поделился техническим эскизом изделия, которое он разработал с помощью Blender и AutoCAD. Вы можете использовать этот шаблон для создания других фигур и адаптации дизайна к своему стилю.

Нажмите кнопку ниже, чтобы загрузить ZIP-файл на свой компьютер (для распаковки файла можно использовать бесплатную программу, например WinZip). После распаковки вы найдете Эскиз деревянного стула для Blender и AutoCAD среди загрузок на вашем компьютере.

Материал будет доступен до 14 октября 2021 г. Если вы хотите получить к нему доступ после этой даты, вы можете записаться на курс «Дизайн и конструирование деревянной мебели», на котором вы изучите традиционные методы деревообработки для создания оригинальный стул с соломенным плетеным сиденьем.

HellermannTyton бесплатно предоставляет данные о продуктах в нужных вам форматах 2D и 3D!

Трехмерное представление и выравнивание осей соответствуют рекомендациям CES (автомобильная электрическая система), рекомендациям AK и стандарту немецкой автомобильной промышленности для электрических компонентов.

Статья выровнена по системе координат

Доступные форматы (75 форматов 3D и 27 форматов 2D)

Форматы 2D-данных:

Allplan 2008
BMP (2D-просмотр)
BMP (3D-просмотр)
Cadkey CDL>=V19
Catia IUA V4
DWF ASCII 5.5
DWF Binary 5.5
DWF Compressed 5.5
DWF DWF V6, ASCII
DWF V6, НЕСЖАТЫЙ ДВОИЧНЫЙ
DWG AUTOCAD ВЕРСИЯ 14
DWG AUTOCAD ВЕРСИЯ 2000 – 2002
DWG AUTOCAD ВЕРСИЯ 2004 – 2006
DWG AUTOCAD ВЕРСИЯ 2007 – 2009
DWG AUTOCAD ВЕРСИЯ 2010 – 2012
DWG AUTOCAD ВЕРСИЯ 2013
DXF AUTOCAD ВЕРСИЯ 11 – 12
DXF AUTOCAD ВЕРСИЯ 14
DXF AUTOCAD ВЕРСИЯ 2000–2002
DXF AUTOCAD ВЕРСИЯ 2004–2006

Форматы 3D-данных:

3D Studio Max
Allplan 2008
AutoCAD>=V14
Autodesk Revit >=2012
Aveva PDMS / Marine
BeckerCAD
Caddy++SAT -V4.2
Catia>=V5R8
Catia IUA V4
CoCreate Modeling>=2007
Creo Elements/Direct Modeling>=17.0
Creo Elements/Pro 5.0 < br />Creo Parametric 1.0
Creo Parametric 2.0
DWG AUTOCAD ВЕРСИЯ 14
DWG AUTOCAD ВЕРСИЯ 2004 – 2006
DWG AUTOCAD ВЕРСИЯ 2007 – 2009
DWG AUTOCAD ВЕРСИЯ 2010 – 2012
DWG AUTOCAD ВЕРСИЯ 2013
DXF AUTOCAD ВЕРСИЯ 14

Чтобы получить дополнительную информацию о 2D- и 3D-данных продукта, нажмите на значок справа.

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

Я считаю, что плетение собственных волос может стать отличным выходом для творчества! Мало того, что косы чрезвычайно практичны для фиксации ваших волос во время физических упражнений и активного отдыха, вы можете использовать косы, чтобы выразить свой личный стиль для любого случая, одетый или распущенный. Я даже использовала косички, чтобы завести новых друзей, так как они отлично подходят для начала разговора!

В этом пособии вы впервые научитесь заплетать косички. Мы рассмотрим основы плетения и немного попрактикуемся. Подойди к своему зеркалу и приступим к нему.

Это руководство является частью моей серии плетений для начинающих. Если вам понравился этот урок, попробуйте остальные!

Чтобы быть в курсе того, над чем я работаю, следите за мной на YouTube, Instagram, Twitter, Pinterest и подписывайтесь на мою рассылку. Являясь партнером Amazon, я зарабатываю на соответствующих покупках, которые вы совершаете по моим партнерским ссылкам.

Шаг 1. Дополнительные материалы

Чтобы научиться плести косички, вам понадобятся волосы, зеркало и ловкость обеих рук. Все остальное здесь только улучшает ваши результаты!

Как партнер Amazon я зарабатываю на соответствующих покупках, которые вы совершаете по моим партнерским ссылкам.

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

После завершения плетения используются резинки для волос и заколки-невидимки, чтобы закрепить все на месте. Мне нравятся крошечные прозрачные резинки для большинства косичек. Покупая заколки-невидимки, постарайтесь найти те, которые соответствуют цвету ваших волос!

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

Плетеные прически отлично подходят для менее чем чистых волос, но чтобы привести в порядок жирные корни между мытьем, вы можете попробовать сухой шампунь в виде спрея.При нанесении вокруг передней и коронной областей и втирании он поглощает излишки масла, устраняя жирный вид кожи головы. Сухой шампунь также может придать объем вашей прическе, даже если он не грязный! Вы можете сделать свой собственный сухой шампунь из кукурузного крахмала (используйте отдельно на светлых волосах) и несладкого какао-порошка (смешайте их для темных волос). Полный рецепт смотрите в Инструктаже Джесси!

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

Шаг 2. Выберите раздел

Захватите прядь волос на передней части головы. Не особенно важно, где именно и сколько волос включено. Я рекомендую выбрать участок справа или слева от центральной части. Если вы хотите быть точным, нарисуйте большим пальцем линию на коже головы, начиная с виска и поднимаясь к макушке, пока не дойдете до пробора.

Завяжите остальные волосы сзади резинкой (или используйте заколки, если они слишком короткие), чтобы они не мешали при плетении косы. Почистите участок от лица, чтобы сгладить его. Эта первая коса предназначена только для практики, и ее легче увидеть, если она прямо перед вашими глазами. Позже вы научитесь контролировать направление своих косичек, но пока не беспокойтесь об этом!

Шаг 3. Создайте три раздела

С помощью пальцев разделите волосы на три части. Возьмите две из этих секций в левую руку, а третью — в правую.

Шаг 4. Переход

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

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

Шаг 5. Крест-накрест

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

Повторяйте эти чередующиеся крест-накрест по всей длине волос.

Полюбуйтесь своей работой!Вы впервые успешно заплели волосы в косу!

Шаг 6. Закрепите резинкой

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

Шаг 7. Давайте поразмыслим

Круто, ты заплела свою первую косу! Замечаете ли вы в нем что-нибудь, что хотели бы улучшить? А как насчет того, что он прилипает к середине лица?

Когда вы откидываете косу набок, она образует странный комок. Это результат того, как были направлены волосы, когда вы начинали плести косу.

Хотите узнать, как это исправить? Аккуратно расплетите косу, расчешите колтуны и начнем сначала.

Шаг 8. Сдвиг в сторону

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

Начните плести еще одну косу, взяв две пряди в одну руку и одну в другую, затем чередуйте крайние пряди к центру.

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

Шаг 9. Уравновешивание

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

Сохраняйте первые несколько стежков (пары крест-накрест) близко к коже головы, чтобы избежать небрежного провисания у начала косы.

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

Шаг 10. Далее попробуйте.

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

Спасибо, что следите за нами! Буду рад услышать ваши отзывы и вопросы в комментариях.

Если вам нравится этот проект, вас могут заинтересовать другие мои проекты:

Чтобы быть в курсе того, над чем я работаю, следите за мной на YouTube, Instagram, Twitter, Pinterest и подписывайтесь на мою рассылку.

Компонентная объектная модель Microsoft (COM) — это механизм, который позволяет AutoCAD взаимодействовать с другими приложениями с помощью интерфейсов автоматизации ActiveX.Узнайте, как создавать макросы, полностью работающие в AutoCAD, или обмениваться информацией и процессами с другими программами в виде клиентских или серверных приложений.

Эта глава из книги

Эта глава из книги

Эта глава из книги 

Все непротиворечивые аксиоматические формулировки теории чисел включают неразрешимые утверждения. — Курт Гёдель

Я полагаю, что, начав свою профессиональную жизнь в качестве архитектора, я продолжаю искать элегантность структурных деталей. Далее в этой книге вы найдете отражение этой склонности в примерах, демонстрирующих использование объектов AutoCAD. векторное равновесие Бакминстера Фуллера, обманчиво простая структура, определяемая плотной упаковкой сфер, почти бесконечно масштабируема в форме геодезического купола. В главе 9 мы используем его для демонстрации объекта AutoCAD PolyfaceMesh.

В своей книге Гёдель, Эшер, Бах: вечная золотая коса Дуглас Хофштадтер обсуждает метаматематику в отношении музыки, изобразительного искусства и компьютерного программирования. Общим в его диалогах является то, что для понимания таких систем обычно требуется выпрыгнуть из них, чтобы увидеть их с более высокого уровня. Это наводит на мысль о древней модели творения, в которой этот мир действия содержится внутри другого мира, мира формирования. Объектная модель AutoCAD построена на аналогичной и оригинальной организационной основе, компонентной объектной модели (COM). В домене, который является предметом этой книги, центр этой более высокой оболочки имеет соответствующее имя IUnknown.

Разработка интегрированных решений на Visual Basic и VBA зависит от COM. Объектная модель AutoCAD 2002 строится по правилам COM, что обеспечивает оболочку, в которой она работает. Краткий курс по COM может быть не тем, на что вы подписались здесь, но понимание его основных концепций важно, если вы действительно хотите взять под контроль AutoCAD и заставить его работать с другими приложениями. Его основы проще, чем вы можете себе представить.

Компоненты и автоматизация

COM устанавливает стандартизированные средства, с помощью которых одна часть программного обеспечения может обращаться к другой за услугами. Серверное приложение разделяет свои объекты с другими приложениями. И наоборот, программа, использующая объекты других приложений, называется клиентским приложением. Такое совместное использование объектов осуществляется с помощью технологии COM, известной как Automation.

Как показано на рис. 1-1, AutoCAD и Excel могут выполнять роль клиента или сервера в VBA. Приложение client — это приложение, запускаемое пользователем, которое затем вызывает объекты в приложении server через COM-интерфейсы. Затем компоненты обеих объектных моделей выполняются в процессе в клиентском приложении. Мы увидим примеры обеих конфигураций в последующих главах.

Рис. 1-1 Автоматизация COM

Напротив, приложение Visual Basic выполняется в своем собственном пространстве памяти, но вызывает объектные модели других приложений через те же COM-интерфейсы. Это не означает, что процедура VBA не может обращаться более чем к одному серверному приложению. Он может. Но приложение VB запускается независимо, вне процесса, как программа EXE. В любом случае фактические компоненты находятся в библиотеках динамической компоновки (DLL) или элементах управления ActiveX.

Поскольку основное внимание в этой книге уделяется макросам AutoCAD VBA, большинство примеров, которые мы представляем, написаны в этом контексте. Однако позже в этой главе мы рассмотрим короткую программу VB, которая передает информацию из Excel в AutoCAD, при этом ни одно из приложений не отображается. Однако сначала давайте углубимся в COM.

Фонд

Чтобы понять, как работает автоматизация, нам нужно взглянуть выше объектной модели AutoCAD (которая является предметом главы 4), чтобы увидеть, как взаимодействуют приложения с поддержкой COM.

Характеристики объектов

Во-первых, что такое Object? Объекты — это, по сути, области компьютерной памяти. Конкретный объект — это определенная область памяти с именем, определенным набором кода и данных (атрибуты объекта) и интерфейсом. Каждый объект является экземпляром, конкретным экземпляром (общего) класса. Когда создается объект, говорят, что он создается из своего класса. Каждый объект на C++, языке, на котором теперь написан сам AutoCAD, поддерживает единый интерфейс с единым набором методов. COM-объект, с другой стороны, имеет несколько интерфейсов, каждый из которых определяется своим классом.

Мы говорим о компьютерных языках как о объектно-ориентированных. В дополнение к созданию объектов, состоящих из методов и данных, а затем организации их в соответствии с классами, объектная ориентация требует наличия трех дополнительных характеристик. Наследование является одним из них.COM-объекты поддерживают наследование интерфейса, что позволяет дочернему объекту основываться на функциях родительского объекта, делая их специфичными. Например, в AutoCAD Линия является частным случаем Объекта. Но в этой иерархии есть нечто большее, как мы сейчас увидим.

Вторая характеристика, полиморфизм, позволяет одному и тому же объекту появляться в разных обличьях в разное время. COM позволяет объектам Visual Basic реализовывать несколько интерфейсов, поэтому Entity может быть Line, Circle или PolyfaceMesh! Более того, COM обеспечивает эволюцию программных приложений, чтобы можно было вводить новые функции, не нарушая старый код.

Третья определяющая характеристика объектов — инкапсуляция. Единственный способ получить доступ к объекту — через его методы, свойства или события. Методы — это действия, которые вы можете приказать объекту выполнить. Свойства — это характеристики, которыми обладает объект, некоторые из которых можно установить или изменить. События происходят, когда объект меняет свое состояние, и вы можете создать код, который будет выполняться при срабатывании определенного события. Однако внутренняя работа объекта всегда скрыта от пользователя, чтобы защитить данные объекта от случайного или преднамеренного изменения. (Сами модули Visual Basic и VBA реализуют другой тип инкапсуляции, определяя процедуры как общедоступные или частные.)

Классы и интерфейсы

Но что же такое класс? Класс — это определяемый пользователем тип данных, представляющий собой совокупность стандартных типов данных (byte, double, string и т. д.), используемых вместе для определенной цели. COM-классы — это средства определения интерфейсов с объектами, дополненные их собственными методами, свойствами и событиями. Класс объекта определяет, является ли объект общедоступным и при каких обстоятельствах он может быть создан. Библиотеки типов, содержимое которых можно просматривать с помощью обозревателей объектов, используются для хранения описаний классов и их интерфейсов.

Интерфейсы автоматизации

Привязка

При использовании объекта в Visual Basic или VBA вы сначала объявляете его как объект, а затем создаете ссылку на объект в объектной переменной. Этот процесс известен как связывание. Существует два типа связывания, раннее и позднее, и, как вы могли догадаться, позднее связывание является более медленным из двух. Например:

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

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

Из этого следует, конечно, что переменная, объявленная как принадлежащая определенному классу, может содержать ссылки только на объекты этого класса. Ранняя или поздняя привязка ссылок к объектам полностью зависит от способа объявления переменных и не имеет никакого отношения к способу создания объектов. Рекомендуется использовать раннее связывание при создании объекта приложения AutoCAD, как показано в примере VB далее в этой главе.

Раннее связывание подразделяется на два типа: vtable и DispID. Каждое свойство или метод в библиотеке типов имеет идентификационный номер процедуры или DispID (идентификатор отправки). Привязка DispID использует этот номер. Если компонент представлен в библиотеке типов, но не поддерживает привязку vtable, VB использует DispID во время компиляции для поиска и привязки функции.

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

Общее представление

За исключением случаев, когда речь идет о пропускной способности, не имеет значения, находятся ли COM-компоненты в одном месте или на другом конце планеты. Термины COM и DCOM (Распределенный COM) часто путают, поскольку само понятие компонента подразумевает распределение. Строго говоря, COM становится DCOM, когда сетевые протоколы заменяют локальные вызовы процедур. Джордж Гилдер, эксперт в области телекоммуникаций, говорит нам, что скоро мы будем наслаждаться бесконечной пропускной способностью по нулевой цене. Тогда это на самом деле не имеет значения!

На рис. 1–2а показан внутрипроцессный вызов клиента без посредников и, следовательно, без накладных расходов.Различные процессы, которые должны взаимодействовать, создают некоторые накладные расходы из-за необходимости защищать процессы друг от друга. Это функция операционной системы, которая управляет взаимодействием между процессами через библиотеки времени выполнения, обеспечивая при этом необходимое экранирование. На рис. 1–2b эта ссылка показана как локальный вызов процедуры (LPC).

Когда клиент и компоненты находятся на разных компьютерах, среда выполнения COM использует поставщика безопасности операционной системы вместе с удаленными вызовами процедур (RPC) для создания сетевых пакетов в соответствии со стандартом проводного протокола DCOM. Это расположение изображено на рисунке 1-2c. Единственное существенное различие между рисунками 1-2b и c заключается в длине соединительного волокна.

Рис. 1-2 Компонентная объектная модель

Подробнее

Есть два COM-интерфейса над объектной моделью AutoCAD, которые необходимы для ее работы: IDispatch и IUnknown. (Имена интерфейсов по соглашению начинаются с буквы I.) Эти основные интерфейсы расположены в подкаталоге Windows\System в файле библиотеки типов с именем StdOle2.tlb.

Явно объявленные объектные переменные обеспечивают доступ к идентификационному номеру, называемому идентификатором процедуры или DISPID, для каждого свойства и метода, принадлежащего объекту. DISPID AutoCAD находятся в его библиотеке типов, Acad.tlb, и устанавливают необходимую связь с IDispatch посредством раннего связывания. Если объектная переменная не объявлена ​​явно, например как сущность, без указания типа сущности, доступ к методу или свойству осуществляется по имени во время выполнения, что называется поздним связыванием.

Идиспатч

Все интерфейсы в объектной модели AutoCAD, кроме одного, IAcadObjectEvents, наследуют методы интерфейса IDispatch, допускающие позднее связывание. Если они объявлены явно, они получают информацию о типах из библиотеки типов Acad.tlb во время компиляции, поддерживая прямой доступ через раннее связывание vtable. По этой причине говорят, что они поддерживают двойные интерфейсы. Как мы видели, используемый тип привязки определяется способом объявления объектных переменных.

Интерфейс IDispatch поддерживает четыре метода:

Жеттипеинфокаунт

Получает количество интерфейсов информации о типах, которые предоставляет объект (либо 1, либо 0); всегда 1 для объектов AutoCAD.

Получить информацию о типе

Получает информацию о типе объекта, которую затем можно использовать для получения информации о типе интерфейса.

ПолучитьIDsOfNames

Сопоставляет один член вместе с необязательным набором имен аргументов соответствующему набору DispID (целых чисел), который кэширует их для последующего использования в последующих вызовах Invoke< /i> метод. GetIDsOfNames используется в поздней привязке, когда клиент IDispatch привязывается к именам во время выполнения.

Обеспечивает доступ к методам и свойствам объекта.

Неизвестно

Интерфейс IUnknown буквально является центром вселенной COM. Он позволяет клиентам получать указатели на другие интерфейсы, принадлежащие данному объекту, и управляет существованием каждого объекта на протяжении всего его жизненного цикла. Все интерфейсы, включая IDispatch, наследуются от IUnknown, три метода которого составляют самые верхние записи в vtable для всех остальных интерфейсов. Эти три метода следующие:

Интерфейс запросов

Возвращает указатель на конкретный интерфейс объекта, на который в данный момент ссылается клиент. Когда клиент обращается к объекту компонента для выполнения функции, все аспекты его внутреннего поведения скрыты. Только через указатель интерфейса клиент может получить доступ к функциям, представленным в интерфейсе. Именно эта принудительная инкапсуляция позволяет COM обеспечивать как локальную, так и удаленную прозрачность посредством эффективного двоичного стандарта.

Увеличивает счетчик обращений к интерфейсу объекта.

Уменьшает счетчик обращений к интерфейсу объекта.

AddRef и Release вместе управляют продолжительностью жизни объектов в выполняющейся программе. Это обеспечивает механизм, с помощью которого посредством наследования динамически разрешаются ссылки на все компоненты. Эти два метода просто подсчитывают количество ссылок на каждый компонентный объект, когда он использует интерфейс. Пока счетчик ссылок больше нуля, объект должен оставаться в памяти. Когда счетчик ссылок уменьшается до нуля, никакие другие компоненты не ссылаются на объект, который затем можно безопасно выгрузить.

Пример 1-1 иллюстрирует IUnknown. Он написан на IDL (язык разработки интерфейсов), который выглядит примерно как C/C++ и совсем не похож на Visual Basic.Отличительной особенностью является использование атрибутов, которые представляют собой ключевые слова в квадратных скобках, определяющие характеристики интерфейса вместе с данными и методами внутри. Стандартный формат в IDL начинается с заголовка, содержащего атрибуты интерфейса, за которым следует тело интерфейса, заключенное в фигурные скобки.

Пример 1-1. IНеизвестно

Тело IUnknown содержит объявления трех удаленных процедур в интерфейсе вместе с их типами данных. Ключевое слово restricted указывает, что метод нельзя вызывать произвольно. В методе QueryInterface riid — это запрошенный идентификатор интерфейса клиентской программы, передающей данные в удаленную процедуру. ppvObj содержит адрес переменной-указателя, запрошенной в riid, которая передается из удаленной процедуры.

Что это значит для AutoCAD?

Ранее мы указывали, что все интерфейсы объектной модели AutoCAD, кроме одного, наследуют методы интерфейса IDispatch, который, в свою очередь, наследуется от IUnknown. На рис. 1-3 используется интерфейс IAcadObject для иллюстрации того, как объекты AutoCAD наследуют необходимые методы, позволяющие им взаимодействовать через COM.

Рисунок 1-3. Наследование объектов

IAcadObject наследует четыре метода IDispatch вместе с тремя, принадлежащими IUnknown. Таким образом, эти методы передаются всем объектам, унаследованным от IAcadObject. Существует 13 методов и свойств, к которым IAcadObject обеспечивает прямой доступ, из которых вы увидите только 11 в обозревателе объектов VBA. Метод и свойство, обозначенные символом H, скрыты, что означает, что они выполняют внутренние функции AutoCAD и не доступны напрямую. Свойство Database возвращает объект базы данных, а свойство Erase стирает объект сущности. Эти функции-члены, необходимые для обслуживания базы данных AutoCAD, наследуются практически всеми объектами AutoCAD наряду с видимыми объектами.

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