gnanapaul 发表于 2022-7-6 12:02:21

ObjectARX-选定圆C

你好
 
我正在做一个应用程序,以获得选定的圆心和半径。
 
其实我已经做完了。但问题是,如果我只移动圆,它会显示中心点。
 
它应该显示我是否选择了实体。请帮帮我。
 
我的代码是
 


void CDbModReactor::objectModified(const AcDbDatabase* pDb,
const AcDbObject* pDbObj)
{
AcAxDocLock docLock(pDbObj->ownerId(), AcAxDocLock::kNormal);

if(docLock.lockStatus() != Acad::eOk)
return;
else
gpDlg->objDisplay("modified", pDbObj);
}

void objDisplay(const char* pWhat, const AcDbObject* pDbObj)
{
if(!gpDlg)
return;
char hstr;
char idstr;
const char *pClsName = NULL;

double pRadius, y_value;

if(pDbObj)
{
AcDbObjectId id = pDbObj->objectId();

AcDbHandle h;
pClsName = pDbObj->isA()->name();

pDbObj->getAcDbHandle(h);

h.getIntoAsciiBuffer(hstr);

//acutPrintf("\nDbModReactor: obj %s: "
// "class %s, id %lx, handle %f.\n",
// pWhat, pClsName , id, idstr);

//sprintf(idstr, "0x%08lx", id);
}
else
{
pClsName = "";
strcpy(hstr, "");
strcpy(idstr, "");
}

ads_name ss;
if( RTNORM !=
acedSSGet("P",NULL,NULL,NULL,ss))
{
// Get Previous selection set
if( RTNORM != acedSSGet(NULL,NULL,NULL,NULL,ss))
{
acDocManager->unlockDocument(acDocManager->curDocument());
return;
}
}

long nEnts;
acedSSLength(ss,&nEnts);
AcDbObjectIdArray entities(nEnts);
//acutPrintf("\nFound %d Entities", nEnts);

CString Tot_Cir;
Tot_Cir.Format("%d",nEnts);

gpDlg->SetDlgItemText(IDC_EDIT1, Tot_Cir);

AcDbCircle* pCircle = AcDbCircle::cast(pDbObj);
if(pCircle == NULL)
return;
AcGePoint3d pCenter = pCircle->center();
y_value = pCenter.y;
pRadius = pCircle->radius();

//acutPrintf("Selected object Y value %f\n", y_value);
//acutPrintf("Selected object X value %f\n", pCenter);
Cir_Radius.Format("%f",pRadius);
Cent_X.Format("%f",pCenter);
Cent_Y.Format("%f",y_value);

m_lstCtrl.InsertItem(0,Cent_X);
m_lstCtrl.SetItemText(0,1,Cent_Y);

FILE * pFile;
pFile = fopen ("C:myfile.csv","a");
if (pFile!=NULL)
{

CString x2 = Cent_X+","+Cent_Y+"\n";
fwrite(x2, x2.GetLength(), 1, pFile);
fclose (pFile);
}

acedSSFree(ss);
}

fuccaro 发表于 2022-7-6 12:51:56

线程已移动

Lee Mac 发表于 2022-7-6 13:10:19

格纳帕,
 
这个论坛对于ObjectARX不是特别强大,所以,如果你在这里没有得到足够的回应,请在theSwamp上试试。组织。
 
页: [1]
查看完整版本: ObjectARX-选定圆C