Тема: Где можно найти примеры создания графических примитивов?
Народ, подскажите пожалуйста где можно найти примеры
создания на ObjectARX каких либо графических приметивов (точка, прямая и т.д. ) с описание на русском.
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → ObjectARX → Где можно найти примеры создания графических примитивов?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Народ, подскажите пожалуйста где можно найти примеры
создания на ObjectARX каких либо графических приметивов (точка, прямая и т.д. ) с описание на русском.
Я тоже хотел бы, подобные примеры
Конечно можно было бы написать "и мне!!!", не сомниваюсь в эффективности такого рода заявления. Желающих много и каждому в отдельности отправлять не рационально, поэтому предлагаю такую вещь, если кто-то вышлет мне выше указанные примеры, то я обязуюсь разместить их в интернете и дать в этом разделе ссылку, для всеобщего скачивания.
э-э-э... чё-то я не догоняю
Это ж самое начало ARX-ных примеров
вообще, не очень понятно - если занимаешься ARX-ом, значит есть лабы, а значит вопросов возникать не должно...
Допустим, где-то когда-то был создан объект AcDbLine: AcDbLine *pLine=new AcDbLine; pLine->setStartPoint(...); ... добавить его в чертёж можно использую функцию из второй лабы есть более правильные и быстрые способы, но если только начинаешь лучше за них не браться, а пользоваться простым вариантом AcDbObjectId outId; AcDbLine *pLine=new AcDbLine; pLine->setStartPoint(...); postToDatabase(pLine, outId); мало того, что объект добавляется в тазу банных, ещё и получаешь его идентификатор Да, и ещё, удалять pLine после всего не следует - ты линию создал и отдал базе данных, она больше не твоя ;) //================================ // Собссно, сама функция: //================================ #include <dbents.h> #include <dbsymtb.h> #include <dbapserv.h> //Назначение: // Добавление Ентити в MODEL_SPACE в CURRENT чертёж. Acad::ErrorStatus postToDatabase(/*[in]*/AcDbEntity* pEnt,/*[out]*/AcDbObjectId& idObj) { Acad::ErrorStatus es; AcDbBlockTable* pBlockTable; AcDbBlockTableRecord* pSpaceRecord; //Проверка наличия базы данных if (acdbHostApplicationServices()->workingDatabase()==NULL) return Acad::eNoDatabase; //Указатель на текущий чертёж //и получение его таблицы блоков if ((es = acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable, AcDb::kForRead))==Acad::eOk) { //получаем указатель на Model Space record, которая будет владельцем, и открываем для записи if ((es = pBlockTable->getAt(ACDB_MODEL_SPACE, pSpaceRecord, AcDb::kForWrite))==Acad::eOk) { //добавляем pEnt в Model Space и закрываем Model Space if ((es = pSpaceRecord->appendAcDbEntity(idObj, pEnt))==Acad::eOk) pEnt->close(); pSpaceRecord->close(); } //закрываем block table pBlockTable->close(); } return es; }
пардон, не совсем так, может заматериться насчёт неприведенных типов. Надо так:
postToDatabase((AcDbEntity*)pLine, outId);
На www.arxmaster.fatal.ru в разделе "Исходники"
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → ObjectARX → Где можно найти примеры создания графических примитивов?
Форум работает на PunBB, при поддержке Informer Technologies, Inc