#include "dialog.h"
#include "ui_dialog.h"
#include<tchar.h>
Dialog::Dialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::Dialog)
{
ui->setupUi(this);
th1 = new xiancheng();
connect(th1,SIGNAL(sendData(int)),this,SLOT(recvData(int)));
connect(this,SIGNAL(sendAllData(std::string)), th1,SLOT(recvAllData(std::string)));
}
Dialog::~Dialog()
{
delete ui;
}
int nCount = 0;
std::string g_sAllData = "";
/*获得实体数据 实际为非扩展数据*/
void Dialog::on_pushButton_4_clicked(){
dataSize_T data;
data.str = "56789";
data.nSize = data.str.length();
ads_name ename;
if(acedSSGet(NULL,NULL,NULL,NULL,ename) ==RTNORM ){
int nLenth;
acedSSLength(ename,&nLenth);
acutPrintf(TEXT("\n select sets count is :%d"),nLenth);
ui->textEdit_3->setText("\n aha The Following Content is Total Data:");
for(int y=0; y<nLenth; y++){
ads_name entres;
acedSSName(ename,y,entres); //将获取的名字放入entres.
AcDbObjectId entid;
acdbGetObjectId(entid,entres);
ads_name entName;
acdbGetAdsName(entName,entid);
int rt, i;
ads_point pt;
struct resbuf *rbEnt; // 保存实体数据的结果缓冲区
struct resbuf* pBuf;
// if(acedEntSel(TEXT("\n请选择实体:"),entName,pt)){
// }
rbEnt =acdbEntGet(entName);
pBuf = rbEnt;
TCHAR buf[133];
for (i = 0; pBuf != NULL; i++, pBuf = pBuf->rbnext) {
if (pBuf->restype < 0)
rt = pBuf->restype;
else if (pBuf->restype < 10)
rt = RTSTR;
else if (pBuf->restype < 38)
rt = RT3DPOINT;
else if (pBuf->restype < 60)
rt = RTREAL;
else if (pBuf->restype < 80)
rt = RTSHORT;
else if (pBuf->restype < 100)
rt = RTLONG;
else if (pBuf->restype < 106)
rt = RTSTR;
else if (pBuf->restype < 148)
rt = RTREAL;
else if (pBuf->restype < 290)
rt = RTSHORT;
else if (pBuf->restype < 330)
rt = RTSTR;
else if (pBuf->restype < 370)
rt = RTENAME;
else if (pBuf->restype < 999)
rt = RT3DPOINT;
else
rt = pBuf->restype;
switch (rt) {
case RTSHORT:
if (pBuf->restype == RTSHORT){
acutPrintf(TEXT("RTSHORT : %d\n"),
pBuf->resval.rint);
ui->textEdit_3->append(QStringLiteral("\n RTSHORT:")+ ',' +(QString::number(pBuf->resval.rint)));
g_sAllData += QString::number(pBuf->resval.rint).toStdString() + '\n';
}
else{
acutPrintf(TEXT("(%d . %d)\n"), pBuf->restype,
pBuf->resval.rint);
ui->textEdit_3->append(QStringLiteral("\n RTSHORT:") + ',' + (QString::number(pBuf->restype)) + ',' + (QString::number(pBuf->resval.rint)));
g_sAllData += QString::number(pBuf->restype).toStdString() + '\n';
g_sAllData += QString::number(pBuf->resval.rint).toStdString() + '\n';
}
break;
case RTREAL:
if (pBuf->restype == RTREAL){
acutPrintf(TEXT("RTREAL : %0.3f\n"),
pBuf->resval.rreal);
ui->textEdit_3->append(QStringLiteral("\n RTREAL:") + ',' + QString::number(pBuf->resval.rreal,'f',2));
g_sAllData += QString::number(pBuf->resval.rreal).toStdString() + '\n';
}
else{
acutPrintf(TEXT("(%d . %0.3f)\n"), pBuf->restype,
pBuf->resval.rreal);
ui->textEdit_3->append(QStringLiteral("\n RTREAL:") + ',' + QString::number(pBuf->restype) + ',' + QString::number(pBuf->resval.rreal,'f',2));
g_sAllData += QString::number(pBuf->restype).toStdString() + '\n';
g_sAllData += QString::number(pBuf->resval.rreal).toStdString() + '\n';
}
break;
case RTSTR:
if (pBuf->restype == RTSTR){
acutPrintf(TEXT("RTSTR : %s\n"),
pBuf->resval.rstring);
ui->textEdit_3->append(QStringLiteral("\n RTSTR:") + ',' + QString::fromWCharArray(pBuf->resval.rstring));
g_sAllData += QString::fromWCharArray(pBuf->resval.rstring).toStdString() + '\n';
}
else{
acutPrintf(TEXT("(%d . \"%s\")\n"), pBuf->restype,
pBuf->resval.rstring);
ui->textEdit_3->append(QStringLiteral("\n RTREAL:") + ',' + QString::number(pBuf->restype) + ',' + QString::fromWCharArray(pBuf->resval.rstring));
g_sAllData += QString::number(pBuf->restype).toStdString() + '\n';
g_sAllData += QString::fromWCharArray(pBuf->resval.rstring).toStdString() + '\n';
}
break;
case RT3DPOINT:
if (pBuf->restype == RT3DPOINT){
acutPrintf(
TEXT("RT3DPOINT : %0.3f, %0.3f, %0.3f\n"),
pBuf->resval.rpoint[X],
pBuf->resval.rpoint[Y],
pBuf->resval.rpoint[Z]);
QString pop = QString::number( pBuf->resval.rpoint[X],'f',2);
ui->textEdit_3->append(QStringLiteral("\n RT3DPOINT:") + ',' + QString::number(pBuf->resval.rpoint[X],'f',2) + ',' + QString::number(pBuf->resval.rpoint[Y],'f',2) + ',' + QString::number(pBuf->resval.rpoint[Z],'f',2));
g_sAllData += QString::number(pBuf->resval.rpoint[X]).toStdString() + '\n';
g_sAllData += QString::number(pBuf->resval.rpoint[Y]).toStdString() + '\n';
g_sAllData += QString::number(pBuf->resval.rpoint[Z]).toStdString() + '\n';
}
else{
acutPrintf(
TEXT("(%d %0.3f %0.3f %0.3f)\n"),
pBuf->restype,
pBuf->resval.rpoint[X],
pBuf->resval.rpoint[Y],
pBuf->resval.rpoint[Z]);
ui->textEdit_3->append(QStringLiteral("\n RT3DPOINTTwo:") + ',' + QString::number(pBuf->restype,'f',2) + ',' + QString::number(pBuf->resval.rpoint[X],'f',2) + ',' + QString::number(pBuf->resval.rpoint[Y],'f',2) + ',' + QString::number(pBuf->resval.rpoint[Z],'f',2));
g_sAllData += QString::number(pBuf->restype).toStdString() + '\n';
g_sAllData += QString::number(pBuf->resval.rpoint[X]).toStdString() + '\n';
g_sAllData += QString::number(pBuf->resval.rpoint[Y]).toStdString() + '\n';
g_sAllData += QString::number(pBuf->resval.rpoint[Z]).toStdString() + '\n';
}
break;
case RTLONG:
acutPrintf(TEXT("RTLONG : %d\n"),
pBuf->resval.rlong);
ui->textEdit_3->append(QStringLiteral("\n RTLONG:") + QString::number(pBuf->resval.rlong));
g_sAllData += QString::number(pBuf->resval.rlong).toStdString() + '\n';
break;
case -1:
case RTENAME:
acutPrintf(TEXT("(%d<Entity name:>)\n"),
pBuf->restype, pBuf->resval.rlname[0]);
ui->textEdit_3->append(QStringLiteral("\n <Entity name: %x>:") + ',' + QString::number(pBuf->resval.rlname[0],16));
g_sAllData += QString::number(pBuf->resval.rlname[0]).toStdString() + '\n';
break;
case -3:
acutPrintf(TEXT("(-3)\n"));
ui->textEdit_3->append("(-3)");
g_sAllData += "(-3)" + '\n';
}
if ((i == 23) && (pBuf->rbnext != NULL)) {
i = 0;
acedGetString(0,
TEXT("Press <ENTER> to continue..."), buf);
}
}
}
}
emit sendAllData(g_sAllData);
g_sAllData = "";
return;
}
/*连接服务器*/
void Dialog::on_pushButton_clicked(){
th1->start();
acutPrintf(TEXT("i am Client"));
}
void Dialog::recvData(int data){
nCount = data;
}
void Dialog::on_pushButton_2_clicked(){
acutPrintf(TEXT("\n nCount:%d"),nCount);
}
void Dialog::on_pushButton_3_clicked(){
//emit sendAllData(g_sAllData);
}