| Правила | Регистрация | Пользователи | Поиск | Сообщения за день | Все разделы прочитаны |  Справка по форуму | Файлообменник |

Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нахождение координат прямой

Нахождение координат прямой

Ответ
Поиск в этой теме
Непрочитано 22.01.2024, 20:03 #1
Нахождение координат прямой
kotuk6547
 
Регистрация: 22.01.2024
Сообщений: 1

Всем добрый день. Пишу плагин для autocad на c++. Требуется помощь с определением точек, задающих прямую.
```
ads_name xlineName;
ads_point pt;

int result = acedEntSel(_T("\nSelect the XLine: "), xlineName, pt);


// Open the XLine entity for reading
ads_name entName;
acedSSName(entName, 0, xlineName);
AcDbObjectId objId;
acdbGetObjectId(objId, entName);
AcDbEntity* pEntity = nullptr;
acdbOpenAcDbEntity(pEntity, objId, AcDb::kForRead);

AcDbLine* pLine = AcDbLine::cast(pEntity);
pEntity->close();
/*
startPoint[X] = pLine->startPoint().x;
startPoint[Y] = pLine->startPoint().y;
startPoint[Z] = pLine->startPoint().z;
direction[X] = pLine->endPoint().x - pLine->startPoint().x;
direction[Y] = pLine->endPoint().y - pLine->startPoint().y;
direction[Z] = pLine->endPoint().z - pLine->startPoint().z;
*/
acutPrintf(L"\nstart is" " : %0.9f, %0.9f, %0.9f\n", pLine->startPoint().x, pLine->startPoint().y, pLine->startPoint().z);
acutPrintf(L"\nend is" " : %0.9f, %0.9f, %0.9f\n", pLine->endPoint().x, pLine->endPoint().y, pLine->endPoint().z);
delete pLine;
```
вот отрывок кода, отвечающего за это. Не могу исправить ошибку в строке
```
AcDbLine* pLine = AcDbLine::cast(pEntity);
```
Просмотров: 560
 
Непрочитано 23.01.2024, 08:40
#2
trir


 
Регистрация: 18.12.2010
Сообщений: 5,057


Очевидно, что XLine это не AcDbLine https://help.autodesk.com/view/OARX/...Services_Xline
trir вне форума  
 
Непрочитано 23.01.2024, 09:09
#3
nickname2019


 
Регистрация: 18.11.2019
Сообщений: 1,519


Я пользовался примерно таким кодом
Код:
[Выделить все]
 
ads_name ename ;
ads_point pt ;

if ( acedEntSel (_T("Выберите объект: "), ename, pt) != RTNORM ){
  return ;
}

AcDbObjectId idObj ;
if ( acdbGetObjectId (idObj, ename) != Acad::eOk ){
  return ;
}


AcDbObject *pObject;
if (acdbOpenObject(pObject, idObj, AcDb::kForRead)!=Acad::eOk){
  return ;
}

AcDbLine *mLine;
AcGePoint3d p1,p2;
if(pObject->isA() == AcDbLine::desc () ) {
  mLine=((AcDbLine *)pObject);
  p1=mLine->startPoint();
  p2=mLine->endPoint();
}
pObject->close();

nickname2019 вне форума  
Ответ
Вернуться   Форум DWG.RU > Программное обеспечение > Программирование > Нахождение координат прямой

Размещение рекламы
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как избежать расхождения направляющей и прямой при повороте за ручку после зума? rebus AutoCAD 19 05.03.2018 16:00
Как убрать смену системы координат при смене вида Очкарик студент AutoCAD 5 24.11.2016 11:31
Какая система координат предпочтительна для генплана? randum Прочее. Архитектура и строительство 12 31.10.2013 17:11
Помощь по Лире Серега М Лира / Лира-САПР 52 28.05.2007 02:47
управление системой координат Автокад из Делфей Владимир В Программирование 12 27.04.2005 09:54