• objectarx之画多段线和画直线


    void CCommonFuntion::DrowPloyLine(AcGePoint2dArray& inputpoints)
    {
    if (inputpoints.length() < 3)
    return;
    AcDbPolyline *pPolyLine = new AcDbPolyline(3);
    for (int i = 0; i < inputpoints.length(); i++)
    {

    pPolyLine->addVertexAt(i, inputpoints.at(i), 0, 1.0, 1.0);

    }

    AcDbBlockTable *pBlockTable = NULL;
    acdbHostApplicationServices()->workingDatabase()->getBlockTable(pBlockTable, AcDb::kForRead);
    AcDbBlockTableRecord *pBlockTableRocord;
    pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRocord, AcDb::kForWrite);
    AcDbObjectId lineId;
    pBlockTableRocord->appendAcDbEntity(lineId, pPolyLine);
    pBlockTable->close();
    pBlockTableRocord->close();
    pPolyLine->close();
    }

    AcDbObjectIdArray CCommonFuntion::DrowLine(AcGePoint3dArray& inputpoints)
    {
    AcDbObjectIdArray ids;
    if (inputpoints.length() < 2)
    return ids;
    for (int i=0;i<inputpoints.length();i++)
    {

    if (i==inputpoints.length()-1)
    {
    AcDbLine *pPline = new AcDbLine(inputpoints[i], inputpoints[0]);
    AcDbObjectId ID=CCommonFuntion::PostToModelSpace(pPline);
    if (pPline)
    pPline->close();
    ids.append(ID);
    }
    else
    {
    AcDbLine *pPline = new AcDbLine(inputpoints[i], inputpoints[i + 1]);
    AcDbObjectId ID = CCommonFuntion::PostToModelSpace(pPline);
    if (pPline)
    pPline->close();
    ids.append(ID);
    }

    }
    return ids;
    }

  • 相关阅读:
    21-while里的break简单用法
    20-使用while循环求从1累加至100的值
    19-random猜数
    18-random猜数,直到正确。
    17-简化后的石头剪刀布
    16-if实现石头剪刀布
    生成随机数
    转换数字的进制(Integer、Long)
    数字的舍入
    格式化数字
  • 原文地址:https://www.cnblogs.com/Pond-ZZC/p/11813636.html
Copyright © 2020-2023  润新知