xiagood 发表于 2004-9-7 21:13:00

求助

各位大侠:
                                                       你们好。
我是一个初学者。请教下面这几个问题:
void DrawLine()
{
        AcGePoint3d startPoint(5.0,4.0,0.0);
        AcGePoint3d endPoint(15.0,10.0,0.0);
        AcDbLine *PLine= new AcDbLine(startPoint,endPoint);
        PLine->close();
}
为什么这个函数创建的线不能显示出来。
2。怎样获取屏幕上的一个点
通常有函数:ads_getPoint();
                                                                                                                                                                        AcedGetPoint();                       
可是怎么获取不了。 谢谢。

王咣生 发表于 2004-9-7 21:24:00

参考:

创建line:
AcDbObjectId createLine()
{
        AcDbDatabase *pCurDb;
        pCurDb = acdbHostApplicationServices()->workingDatabase();
        AcGePoint3d startPt(4.0,2.0,0.0);
        AcGePoint3d endPt(10.0,7.0,0.0);
        AcDbLine *pLine = new AcDbLine(startPt,endPt);
        AcDbBlockTable *pBlockTable;
        pCurDb->getBlockTable(pBlockTable,AcDb::kForRead);
        AcDbBlockTableRecord *pBlockTableRecord;
        pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,AcDb::kForWrite);
        pBlockTable->close();
        AcDbObjectId lineId;
        pBlockTableRecord->appendAcDbEntity(lineId,pLine);
        pBlockTableRecord->close();
        pLine->close();
        return lineId;
}

easypower 发表于 2004-9-8 10:47:00

1.你没有加入模型空间
2.问题不明

xiagood 发表于 2004-9-8 13:36:00

谢谢。

trampqin 发表于 2004-9-14 19:53:00

创建的实体只有加入到数据库中才会显示!注意一点,别忘记关闭实体,否则也不会显示的。
通过        AcedGetPoint()是得到一个点,它是ads_point类型,再转化成acgePoint3d类型,要在屏幕上显示这个点,你必须在通过画点才看到

timfc 发表于 2004-9-24 11:04:00

acedgetpoint()不是画点命令

zfc8932 发表于 2004-10-11 22:03:00

明白!
谢谢!!!!!!
页: [1]
查看完整版本: 求助