Применение шаблона коридора к коридору
Можно применить свойства коридора из исходного файла DWT или DWG к коридору на текущем чертеже. К существующему коридору можно применить поверхности, штриховки откосов и стили набора кодов коридора из шаблона.
Шаблон коридора представляет собой файл DWT или DWG, содержащий один или несколько коридоров, свойства которых требуется применить к другим коридорам, новым или существующим.
Рекомендуется импортировать стили, которые потребуются в чертеже назначения, до применения шаблона коридора к коридору. Например, если для коридора в шаблоне используется стиль поверхности, отсутствующий в чертеже назначения, импортируйте этот стиль в чертеж назначения перед выполнением команды «Применить шаблон коридора». Если чертеж назначения не содержит необходимых стилей, при применении шаблона в окне «Средство просмотра событий» появятся сообщения об ошибках.
Применение шаблона коридора
- Выберите на чертеже коридор, к которому требуется применить шаблон.
- На контекстной вкладке ленты Коридор щелкните панель Изменить коридор стрелка раскрывающегося списка Применить шаблон коридора .
Прим.: Чтобы выполнить эту команду, можно также выбрать коридор на чертеже или в дереве навигатора, а затем щелкнуть правой кнопкой мыши для вызова контекстного меню и выбрать «Применить шаблон коридора».
Прим.: Можно также применить шаблон коридора к новому коридору в процессе его создания. Более подробную информацию см. в разделе Создание коридора.
Пример
В этом примере используется образец шаблона коридора.
- Создайте новый чертеж с помощью шаблона чертежа _Autodesk Civil 3D Corridor Template (Metric).dwt, который находится в папке учебных чертежей C:\Program Files\Autodesk\AutoCAD 2022 \C3D\Help\Civil Tutorials\Drawings.
- В окне «Область инструментов» на вкладке «Навигатор» разверните коллекцию «Коридоры».
- Щелкните правой кнопкой мыши элемент «Стандартный коридор (в метрической системе единиц)» «Свойства», чтобы открыть диалоговое окно «Свойства коридора».
- Перейдите на вкладку «Штриховка откоса». Проверьте индекс 1 и его характерную линию 1 (отсчет), характерную линию 2 (насыпь с выходом на рельеф) и стиль штриховки откоса (стандартный).
- Закройте диалоговое окно «Свойства коридора».
- Откройте файл Corridor-5c.dwg, расположенный в папке учебных чертежей.
- В области инструментов на вкладке навигатора щелкните правой кнопкой мыши элемент «Коридор — (1)» «Применить шаблон коридора», чтобы открыть диалоговое окно «Применить шаблон коридора».
- Нажмите «Обзор», чтобы открыть диалоговое окно «Открытие файла шаблона коридора».
- По умолчанию вы будете перенаправлены в папку учебных чертежей. Выберите файл _Autodesk Civil 3D Corridor Template(Metric).dwt и нажмите «Открыть».
- В разделе «Исходный коридор» выберите «Стандартный коридор (в метрической системе единиц)».
- В разделе «Свойства для применения» щелкните , чтобы отменить выбор всех свойств, а затем выберите «Штриховка откоса» «Индекс: 1».
- Нажмите «OK». Штриховка откоса «Индекс: 1» применяется к коридору — (1).
Для шаблона в программе autocad характерно расширение
В файле шаблона чертежа хранятся стандартные параметры. Файл шаблона можно выбрать из комплекта поставки или создать новый. Файл шаблона чертежа имеет расширение .dwt. Изменения, вносимые в созданный на основе шаблона чертеж, на сам шаблон влияния не оказывают. Можно использовать один из файлов шаблонов, прилагаемых к программе , или создавать собственные файлы шаблонов.
- тип и точность представления единиц
- основные надписи, рамки и логотипы
- имена слоев
- значения параметров «Шаг», «Сетка» и «Орто»
- границы сетки
- размерные стили
- текстовые стили
- типы линий
По умолчанию файлы шаблонов хранятся в папке template, поэтому их достаточно просто найти.
Восстановление файла шаблонов чертежа по умолчанию
Если исходные значения по умолчанию параметров файла шаблона чертежа acad.dwt или acadiso.dwt были изменены, их можно восстановить, создав новый чертёж без шаблона, а затем сохранить его как файл шаблона чертежа, заменяя файлы acad.dwt или acadiso.dwt.
Если пользователем задано рабочее пространство 3D моделирования, то файлами шаблона чертежа по умолчанию являются acad3d.dwt и acadiso3d.dwt.
Можно создать новый чертёж с исходными параметрами по умолчанию, используя команду НОВЫЙ для вызова диалогового окна «Выбор шаблона». Для этого нажать стрелку у кнопки «Открыть» и выбрать из списка одну из опций «Открыть без шаблона».
Для шаблона в программе AutoCAD характерно расширение . *jpg *pdf — Ответ на вопрос №47644
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
То есть уже всё готово?
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
А я могу что-то выложить?
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
А если в купленном файле ошибка?
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Можно заказать выполнение работы на СтудИзбе?
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает — и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе «Студизба»
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Создание плагинов для AutoCAD с помощью .NET API (часть 1 – первые шаги)
Решил рассказать о своем опыте работы с AutoCAD. Может быть, кому-то это поможет – ну или хотя бы интересным покажется.
public static string disclaimer = "Автор не является профессиональным разработчиком и не обладает глубокими знаниями AutoCAD. Этот пост – просто небольшой рассказ о начальном этапе создания плагина.";
Предыстория
Началось все достаточно просто: в очередной раз почувствовав острую нехватку денег, я решил, что пора бы уже начать их где-нибудь разыскивать. И вот после пары недель поиска на «Фрилансим» обнаружилась вакансия разработчика для создания программы, взаимодействующей с AutoCAD.
Скажу сразу: до того дня общаться с AutoCAD мне не доводилось. Однако объявление содержало в себе фразу «Опыт работы не требуется», которая наполнила мою душу надеждой. Я связался с разместившим вакансию человеком и получил тестовое задание.
Для пробы предлагалось создать на чертеже пару объектов, а также вывести текст. Несколько дней я искал информацию об API и пытался подружиться с непривычной программой. В конце концов фигуры были нарисованы, текст выведен, а тестовое задание отправлено на проверку. И через несколько дней я неожиданно узнал, что принят! Чудеса, да и только.
В следующих абзацах – мои впечатления, синяки и шишки, мысли и советы (возможно, вредные). Разработка велась под AutoCAD 2010, в качестве IDE использовалась верная Visual Studio 2013 Express. Язык разработки – C#.
1. Подготовка необходимых инструментов
1.1. Собственно AutoCAD
Тут все понятно. Качайте с официального сайта Autodesk, ставьте, 30 дней наслаждайтесь прекрасным инструментом. Потом узнайте цену покупки и повесьтесь. Для разработчиков действует специальная программа ADN , по которой можно получать девелоперские лицензии на продукты Autodesk. Стоимость базовой версии подписки, как указано на сайте, составляет от 700 долларов в год.
1.2. ObjectARX SDK – набор библиотек, необходимых для работы с AutoCAD
Последние три-четыре версии библиотек можно бесплатно скачать тут после регистрации. Более ранние придется поискать – скажем, тут. На всякий случай продублирую список прямо здесь – не такой уж он и длинный:
ссылки для загрузки ObjectARX SDK для версий AutoCAD 2000 – 2011
Версия SDK и ссылка для загрузки | Совместимость с версиями AutoCAD |
---|---|
2011 | 2011, 2012 |
2010 | 2010, 2011, 2012 |
2009 | 2009 |
2008 x86 | 2008, 2009 x86 |
2008 x64 | 2008, 2009 x64 |
2007 | 2007, 2008, 2009 x86 |
2006 | 2006 |
2005 | 2005, 2006 |
2004 | 2004, 2005, 2006 |
2002 | 2002 |
2000i | 2000i, 2002 |
2000 | 2000, 2000i, 2002 |
R14 | R14 |
Лично меня в свое время очень заинтересовал вопрос обратной совместимости ObjectARX. Как-то раз заказчик спросил: «А с какими версиями AutoCAD сможет работать программа?», и мне пришлось изрядно времени потратить на поиски ответа. В целом, ответ звучит так: « Autodesk поддерживает обратную совместимость в течение трех лет ». Какие версии совместимы между собой, можно посмотреть под спойлером выше.
Пока задачи перекомпилировать программу с другими библиотеками у меня не возникало. Думаю, что это хорошо: перспектива создавать отдельную версию продукта для других выпусков AutoCAD не радует совершенно.
1.3. MS Visual Studio 2013 Express
Великолепная IDE! Больше про нее и говорить-то нечего. Ссылок для скачивания масса – например, вот.
Можно, конечно, использовать и более ранние версии. Я начинал работу над проектом в MS Visual Studio 2010, но потом решил перейти на более современный выпуск.
1.4. Поисковик, усидчивость, здравый смысл
- нет привычных всплывающих подсказок о назначении класса, свойства или метода;
- нет подробной справки.
В конце этой статьи приведен список ресурсов, на которых можно позадавать вопросы и, если повезет, получить на них ответы.
2. Создание проекта библиотеки
Первые шаги вполне внятно описаны здесь. Владеющие английским могут попробовать зайти еще и сюда. Правда, в материалах по последней ссылке упор сделан на Visual Basic, плюс нужно будет установить «AutoCAD .NET Wizard» – шаблон проекта для создания плагинов под AutoCAD. Люди знающие говорят, что этот шаблон сильно упрощает жизнь; я же никогда им не пользовался, поэтому скромно промолчу.
Вкратце продублирую основные этапы:
2.1. Создать проект «Библиотека классов» («Class Library»)
Если плагин предназначен для старой версии AutoCAD, то целесообразно сразу же задать в свойствах проекта версию .NET, которую будем использовать. Например, AutoCAD 2010 не может загружать плагины, созданные с использованием .NET Framework 4, поэтому я в качестве используемой версии указываю .NET Framework 3.5.
При понижении версии .NET Framework, используемой в проекте, могут появляться сообщения об ошибках. В моем случае Visual Studio ругается на отсутствие сборки «Microsoft.CSharp» – ее просто нужно исключить из ссылок (References).
2.2. Добавить ссылки на необходимые библиотеки AutoCAD .NET API
На этом пункте стоит остановиться чуть подробнее. AutoCAD .NET API включает в себя достаточно большое количество классов, которые разнесены по разным пространствам имен (namespaces). В свою очередь, эти пространства имен разнесены по нескольким контейнерам (проще говоря, DLL-файлам).
Эти DLL-файлы находятся в папке с именем inc- . Так, в моем случае я добавляю ссылки на библиотеки из папки C:\ObjectARX 2010\inc-win32.
у меня дома установлена 32-разрядная ОС, у заказчика – 64-разрядная. Пока серьезных проблем с совместимостью не возникало. Но однажды я все же напоролся на то, что у меня функция возвращала Int32 , а у заказчика – Int64 . Линковщик ОЧЕНЬ расстраивался. Нужно иметь эту особенность в виду.
Первое знакомство с API у меня заключалось в лихорадочных попытках скомпилировать хоть какой-нибудь из примеров, щедро разбросанных по Сети. И что сλка характерно, компилироваться они упорно не хотели, ругаясь на неизвестные пространства имен и классы. В попытках собрать свой первый проект я с горя включил в него чуть ли не все DLL-файлы, которые шли с ObjectARX. Плохой способ – так делать не надо.
А как надо?
Ну, это вопрос не ко мне. Я только могу сказать, что в начале примеров обычно идет перечисление используемых пространств имен – скажем, так:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data.SqlClient; using Autodesk.AutoCAD.Runtime; using Autodesk.Windows;
То, что начинается со слова «Autodesk», – это и есть те дроиды пространства имен, которые мы ищем. Теперь осталось разыскать контейнеры, которые их содержат. Исчерпывающего перечня сопоставлений я найти не смог, поэтому все проверялось методом научного тыка. Если есть более правильный способ, было бы интересно его узнать…
А пока – вот список DLL-файлов, которые я использую в проекте, и содержащихся в них пространств имен:
- Autodesk.AutoCAD.ApplicationServices
- Autodesk.AutoCAD.EditorInput
- Autodesk.AutoCAD.GraphicsSystem
- Autodesk.AutoCAD.Internal
- Autodesk.AutoCAD.Internal.Calculator
- Autodesk.AutoCAD.Internal.DatabaseServices
- Autodesk.AutoCAD.Internal.Forms
- Autodesk.AutoCAD.Internal.PreviousInput
- Autodesk.AutoCAD.Internal.PropertyInspector
- Autodesk.AutoCAD.Internal.Reactors
- Autodesk.AutoCAD.Internal.Windows
- Autodesk.AutoCAD.PlottingServices
- Autodesk.AutoCAD.Publishing
- Autodesk.AutoCAD.Runtime
- Autodesk.AutoCAD.Windows
- Autodesk.AutoCAD.Windows.Data
- Autodesk.AutoCAD.Windows.ToolPalette
- Autodesk.AutoCAD.Colors
- Autodesk.AutoCAD.ComponentModel
- Autodesk.AutoCAD.DatabaseServices
- Autodesk.AutoCAD.DatabaseServices.Filters
- Autodesk.AutoCAD.Geometry
- Autodesk.AutoCAD.GraphicsInterface
- Autodesk.AutoCAD.GraphicsSystem
- Autodesk.AutoCAD.LayerManager
- Autodesk.AutoCAD.Runtime
- Autodesk.Internal.InfoCenter
- Autodesk.Internal.Windows
- Autodesk.Internal.Windows.ToolBars
- Autodesk.Private.InfoCenter
- Autodesk.Private.SubAwareService
- Autodesk.Private.WebSearchService
- Autodesk.Private.Windows
- Autodesk.Private.Windows.ToolBars
- Autodesk.Private.WsCommCntrLib
- Autodesk.Windows
- Autodesk.Windows.Common.Utilities
- Autodesk.Windows.ToolBars
- Autodesk.AutoCAD.Customization
имена многих классов AutoCAD .NET API совпадают с именами стандартных классов .NET, что не очень удобно. Например, если обратиться в коде к классу Application , то Visual Studio выругается на неоднозначность этого определения: класс с таким именем есть как в пространстве имен System.Windows , так и в пространстве имен Autodesk.AutoCAD.ApplicationServices . Чтобы не писать каждый раз полное имя, можно добавить в начало файла строку
using acadApp = Autodesk.AutoCAD.ApplicationServices.Application;
Теперь в любом месте этого файла можно вместо Autodesk.AutoCAD.ApplicationServices.Application писать acadApp .
Есть смысл провернуть такую операцию с наиболее часто употребляемыми классами. Непременно так делайте, код будет компактнее и понятнее. Цинизм данного совета заключается в том, что к тому моменту, когда вы наконец поймете, какие же классы являются у вас наиболее часто употребляемыми, что-то менять будет уже сильно лень.
Важный момент: обязательно запретите копирование библиотек AutoCAD .NET API в каталог сборки при построении проекта! Для этого найдите в свойствах каждой добавленной ссылки параметр CopyLocal и установите его в False .
2.3. Написать код плагина
using System.Windows.Forms; using Autodesk.AutoCAD.Runtime; namespace MyAutoCADDll < public class Commands : IExtensionApplication < // функция инициализации (выполняется при загрузке плагина) public void Initialize() < MessageBox.Show("Hello!"); >// функция, выполняемая при выгрузке плагина public void Terminate() < MessageBox.Show("Goodbye!"); >// эта функция будет вызываться при выполнении в AutoCAD команды «TestCommand» [CommandMethod("TestCommand")] public void MyCommand() < MessageBox.Show("Habr!"); >> >
Все очень просто. Вначале мы указываем необходимые пространства имен. Нам потребуются два.
В первом пространстве имен ( System.Windows.Forms ) хранится описание класса MessageBox , с помощью которого мы будем выводить сообщения. Чтобы сделать его доступным, необходимо добавить ссылку на одноименную сборку .NET.
Во втором пространстве имен ( Autodesk.AutoCAD.Runtime ) определены интерфейс IExtensionApplication и атрибут CommandMethod . Причем описание IExtensionApplication находится в файле AcDBMgd.dll, а описание CommandMethod – в файле AcMgd.dll, поэтому придется добавить ссылки на обе эти библиотеки.
Таким образом, всего необходимо добавить три ссылки:
UPD. 09.04.2018. Важное дополнение от lasteran: В новых версиях (предположительно начиная с AutoCAD 2013) класс CommandMethod содержится не в AcDBMgd.dll, а в AcCoreMgd.dll, так что придётся добавить ссылку ещё и на эту библиотеку. Учтите это, если работаете с новой версией!
Затем мы объявляем класс Commands . Именно он и будет «отправной точкой» плагина. Наш класс унаследован от интерфейса IExtensionApplication , поэтому в нем могут быть реализованы методы Initialize и Terminate . Первый из них автоматически выполняется при загрузке плагина, второй – при выгрузке.
AutoCAD не предоставляет разработчику возможность выгрузить плагин после того, как он будет загружен. Поэтому реально метод Terminate будет вызываться только в одном случае – при закрытии самого AutoCAD.
Почитать поподробнее про методы Initialize и Terminate можно тут (rus) и там (англ.).
Наконец, мы объявляем функцию MyCommand , которая будет реализовывать команду AutoCAD. Она обязательно должна ничего не принимать на вход и ничего не возвращать на выходе (не знаю, откуда у меня взялось это убеждение, но оно есть). Внутри этой функции можно делать все, что заблагорассудится (в пределах разумного, конечно), причем есть возможность работать как с AutoCAD .NET API, так и со стандартными классами .NET. Например, можно создать обычную форму Windows с полями ввода, отобразить ее на экране с помощью ShowModal() , а затем на основе введенных пользователем данных внести изменения в открытый в AutoCAD чертеж.
Чтобы «превратить» созданный метод в команду AutoCAD, применяется атрибут CommandMethod . В скобках после него указывается имя создаваемой команды, которое можно будет использовать непосредственно в среде AutoCAD.
После сборки этого проекта у нас получится готовый к употреблению плагин.
2.4. Загрузить созданный плагин
Нужно запустить AutoCAD и выполнить команду «NETLOAD»:
Затем в открывшемся окне указать путь к файлу плагина:
После этого плагин будет загружен в AutoCAD. Мы должны увидеть первое сообщение:
Если при загрузке плагина произошла критическая ошибка, она будет выведена в консоль AutoCAD:
Сообщения обычно понятные – помогут разобраться, если случай не сильно клинический. 🙂
если плагин не смог загрузиться из-за ошибки, то перед тестированием очередного (исправленного) варианта нужно закрыть и заново запустить AutoCAD. В противном случае он может отказаться загружать плагин, даже если ошибок в коде уже не будет.
Теперь, когда плагин загружен, можно выполнить нашу тестовую команду:
… и увидеть результат:
Работает. Теперь можно закрывать AutoCAD.
А как же…
Да – внимательный читатель, конечно, заметит, что при закрытии AutoCAD мы почему-то не увидим сообщения «Goodbye». Как уже говорилось выше, внутри функции «Terminate» можно сделать далеко не все. Но с ее помощью вполне получится, например, создать файл при закрытии AutoCAD.
2.5. Отладить плагин (при необходимости)
Процедура запуска плагина для отладки очень хорошо расписана в этом посте Tepliuk.
Финал
- http://adn-cis.org/forum/ (rus) – форум Сообщества программистов Autodesk в СНГ. Один из лучших русскоязычных ресурсов среди всех мною встреченных в 2013-2014 годах. Сам я туда прихожу за советом, когда совсем припекает, – и не было пока случая, чтобы мне не помогли. Хотя я, конечно, стараюсь особо не злоупотреблять.
- http://forums.autodesk.com/t5/russkoe-soobshchestvo/bd-p/392 (rus) – официальные форумы Autodesk – раздел русского сообщества. Можно позадавать вопросы.
- http://forums.autodesk.com/t5/net/bd-p/152 (англ.) – официальные форумы Autodesk – раздел, посвященный .NET API. Тоже можно задать вопрос – правда, его могут и проигнорировать.
- http://through-the-interface.typepad.com (англ.) – блог, который ведет Kean Walmsley, один из ведущих экспертов в разработке под AutoCAD. Ценнейший ресурс. Можно попробовать что-нибудь спросить у самого хозяина блога – и даже получить ответ, если тот будет в настроении. Впрочем, неинтересные (и простые) вопросы Kean часто игнорирует – или же предлагает вопрошающему поискать решение на официальном форуме
(см. рис. 1). - http://adndevblog.typepad.com (англ.) – коллективный блог разработчиков из ADN . Порой бывает полезен.
- http://www.theswamp.org/index.php (англ.) – еще один форум со множеством примеров и решений.
- работа с лентой (Ribbon);
- работа со слоями;
- работа с динамическими блоками;
- реализация пользовательского ввода;
- взаимодействие плагина с внешним приложением.