С чего начатьС чтения литературы по .NET и C#: http://adn-cis.org/forum/index.php?topic=400.0
если можно небольшой пример по построению отрезка или другого примитива в автокаде.Можно. Вот пример построения контура (замкнутой полилинии). Вершины полилинии указывает пользователь.
литература конечно же изучается и примеров не мало как на форуме так и в инете но вот вопрос, просто записать в файл
using Autodesk.AutoCAD***
не работает надо наверняка подключить какие то библиотеки, короче попытки разобраться самостоятельно не увенчались успехом (хоть что то написанное в vs заработало в каде), вот обратился за помощью.
понятное дело вопрос смешной, но для меня пока что невыполнимый.
The AutoCAD .NET API is made up of different DLL files that contain a wide range of classes, structures, methods, and events that provide access to objects in a drawing file or the application. Each DLL file defines different namespaces which are used to organize the components of the libraries based on functionality.
The main DLL files of the AutoCAD .NET API that you will frequently use are:
•AcCoreMgd.dll. Use when working within the editor, publishing and plotting, and defining commands and functions that can be called from AutoLISP.
• AcDbMgd.dll. Use when working with objects stored in a drawing file.
• AcMgd.dll. Use when working with the application and user interface.
• AcCui.dll. Use when working with customization files.
bakaIIHX забыл про AcCoreMgd.dll (кажется она в 2014 появилась...)Она появилась в AutoCAD 2013
не работает надо наверняка подключить какие то библиотеки, короче попытки разобраться самостоятельно не увенчались успехом (хоть что то написанное в vs заработало в каде), вот обратился за помощью.Вопрос совсем не смешной. Можно вручную подключить, как уже писали, acmgd.dll, acdbmgd.dll и accoremgd.dll - для начала этих трёх должно хватать. Эти dll-файлы есть в каталоге AutoCAD (там же где acad.exe) и в составе ObjectARX SDK в каталоге inc. Autodesk'овцы рекомендуют использовать те, которые в составе ObjectARX SDK. Очень важно если ты самостоятельно их подключаешь устанавливать им свойство Copy Local в FALSE:
понятное дело вопрос смешной, но для меня пока что невыполнимый.
думаю, не последний мой вопрос.С нетерпением жду! :)
я начал с этой статьи http://habrahabr.ru/post/148844/код компилируется, инициализируется в автокаде, но на команду,вводимую в ком строку, ругается
код весь как есть записываю в файл "myPlagin.cs"Внимательнее. Файл называется myPlugin.cs
но если переместить новую команду в "myCommand.cd" то ругается уже vs.1) Зачем её туда перемещать?
Да и еще файл ObjectARX, скачанный с сайта аутодеск обзывается такТы сейчас про ObjectARX SDK 2014 или про AutoCAD .NET Wizard говоришь? Если про ObjectARX SDK 2014 то ты нашел правильно. Его нужно скачать и разархивировать.
Autodesk_ObjectARX_2014_Win_64_and_32Bit, другого к сожалению нет или я не нашел.
код компилируется, инициализируется в автокаде, но на команду,вводимую в ком строку, ругаетсяВ автокаде 2014 помимо этих файлов
"неизвестная команда "бла бла бла""
Короче куда ни кинься везде засада.Выручайте.Можешь выложить куда-нибудь свой получившийся проект, тогда будет понятнее где что не так.
пример из помощи автокада и так же не работает.И не будет. Может быть не будешь таким лаконичным в описании проблем и:
Ты как создавал проект? Вручную или при помощи AutoCAD .NET Wizard?при помощи AutoCAD.NET Wizard
Ты сейчас про ObjectARX SDK 2014 или про AutoCAD .NET Wizard говоришь?про ObjectARX SDK 2014.
2) Удалил файл myCommands.csне удалял, сейчас попробую.
3) Заменил содержимое файла myPlugins.cs на то, которое ты написалда (полный текст см. выше).
4) Откомпилировал пример, загрузил в AutoCAD и выполнил команду ADDLINEточно
5) Выполнил команду _ZOOM _ALL чтобы увидеть добавленный отрезок.AutoCAD не принимает команду из пункта 4 ADDLINE.
Где-то Андрей Бушман проводил исследования в каких случаях AutoCAD "видит" командные методы в нескольких классах, а в каких нет.
Насколько я знаюДима "правильно знает". В дополнение к тому, что он написал, хочу добавить, что сборка может иметь столько атрибутов CommandClass, сколько потребуется (т.е. вовсе не обязана ограничиваться лишь одним). Но если присутствует хотя бы один такой атрибут, то (как Дима уже сообщил) AutoCAD не будет искать команды нигде, кроме как в указанных при помощи этих атрибутах классах. Тут (https://sites.google.com/site/bushmansnetlaboratory/arx/rukovodstvo-razrabotcika-objectarx/netuse/wrapclasses/wrapstart/initopt/attuse) некоторый перевод SDK по теме.
Поэтому я предпочитаю все команды держать в одном классе и в одном файле.Поскольку атрибутов CommandClass может быть сколько угодно и имеется возможность создавать частичные классы, то если команд много - я не леплю всё в одну, трудно перевариваемую кучу, но предпочитаю распределять логическими порциями по соответствующим классам. Так гораздо проще и удобней работать (имхо).
Где почитать что скрывают за собой(какие функции) библиотеки ObjectARX.В документации ObjectARX SDK (см. подкаталог doc).
Видел на просторах инета функцию, которая выдает длину и площадь выбранных примитивов, то есть, выбирается примитив - меняется цифера в форме, убирается примитив из набора (наверняка с помощью SHIFT) - меняется цифера.Остальное не читал. Подписывайся на события Editor.SelectionAdded и Editor.SelectionRemoved и отслеживай в них текущее состояние набора выбранных примитивов.
Editor.SelectionAdded и Editor.SelectionRemovedХм. А я подписывался на Document.ImpliedSelectionChanged и DocumentManager.DocumentActivated. Первое событие - для отслеживания изменения набора. Второе - чтобы обновлять данные при смене активного чертежа.
Видел на просторах инета функцию, которая выдает длину и площадь выбранных примитивов, то есть, выбирается примитив - меняется цифера в форме, убирается примитив из набора (наверняка с помощью SHIFT) - меняется цифера.Александр Наумович, сдается мне, что речь идет о SelSim :)
Александр Наумович, сдается мне, что речь идет о SelSim :)Скорее GeomProps - там длина/площадь/объём пересчитываются при изменении набора предварительного выбора.
Ой, конечно же, GeomProps! Просто перепутал :)Только там совсем другая логика работы - без всяких реакторов. И на .NET это не реализуется (только при помощи прокладки типа OPMNETEXT).
существует в .net эквивалент wcmath. то есть (wcmatch(vla-get-layer obj)"kkk*" можно быстро реализовать в .net. или надо выбирать примитивы а потом фильтровать их по слою.В AutoCAD .NET API есть полный эквивалент (wcmatch): Autodesk.AutoCAD.Internal.Utils.WcMatchEx
":D"
понадобилось?
Предоставление девелоперских лицензий на продукты Autodesk с открытым API для разработки, поддержки и демонстрации своих программных продуктов.
можно trial поставить (https://www.autodesk.ru/products/autocad/free-trial), а так - ADN (https://ru.wikipedia.org/wiki/Autodesk_Developer_Network)Но по лицензии ADN ни 2014, ни 2015 уже не поставить.ЦитироватьПредоставление девелоперских лицензий на продукты Autodesk с открытым API для разработки, поддержки и демонстрации своих программных продуктов.
и как жить дальше?как и все, отлаживать на виртуалке с триальным автокадом.
плагины на .net ну очень зависят от версий ОС и автокада.Это смотря как сделать. Я пишу под 2014 версию и без перекомпиляции работает в версиях 2014-2018.
Я пишу под 2014 версию и без перекомпиляции работает в версиях 2014-2018.мои творения дальше моего компа не ходили пока что. И попробовать не было возможности.