设为首页收藏本站

中国膜结构网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

膜结构车棚
膜结构车棚膜结构资质国产膜材 膜结构网中国膜结构协会
查看: 180|回复: 2

在现有的对象集和点指示实现类似的轮廓ARX

[复制链接]
  • TA的每日心情
    开心
    2021-6-23 14:19
  • 签到天数: 1543 天

    [LV.Master]伴坛终老

    发表于 2020-12-27 13:38 | 显示全部楼层 |阅读模式
    1. //-> отключаем вывод в окне левых акадовских строк               
    2.                 struct resbuf cmdechoVar;
    3.                 cmdechoVar.restype = RTSHORT;
    4.                 cmdechoVar.resval.rint = 0;
    5.                 acedSetVar(_T("cmdecho"), &cmdechoVar);
    6. //<-

    7.                 ads_name mas; //если работаем по варианту 2, то пора бы заполнить mas данными и не забыть почиститься в конце функции
    8.                 AcGePoint3d p;
    9.                 AcGePoint3dArray points;
    10.                 ads_name plBoundary, plBoundaryPreviousStep;
    11.                 if ( acdbEntLast(plBoundaryPreviousStep) != RTNORM )
    12.                 {
    13.                         acutPrintf(_T("\nЧертеж пустой"));
    14.                         return;
    15.                 }
    16.                 AcDbObjectId id;
    17.                 AcDbEntity * pEnt;
    18.                 while(acedGetPoint(0,_T("\nВнутренняя точка: "),asDblArray(p)) == RTNORM)
    19.                 {
    20.                         points.append(p);
    21.                 }
    22.                 if(points.length() > 0)
    23.                 {
    24.                         for(int i= 0;i<points.length();i++)
    25.                         {
    26.                                 /*
    27.                                         предпочтительней второй вариант, т.к. первый постоянно выбирает видимые объекты экрана,
    28.                                         и если точек больше одной, то:
    29.                                                 - создаваемые контура будут включаться в последующие наборы, что может привести к неправильной работе команды
    30.                                                 - постоянный выбор всех видимых объектов тормозит комп.
    31.                                         так что если надо включить все видимые объекты, то лучше их сразу собрать в mas и потом просто подствалять в команду.
    32.                                 */
    33.                                 acedCommandS(
    34.                                         RTSTR, _T("_.-boundary"),
    35.                                         RTSTR, _T("_a"), // дополнительные данные
    36.                                         RTSTR, _T("_o"), // тип объекта для контура
    37.                                         RTSTR, _T("_p"), // создаваемый контур будет полилинией
    38.                                         RTSTR, _T("_i"), // нужно ли искать островки
    39.                                         RTSTR, _T("_y"), // нужно, либо _T("_n") - не нужно
    40.                                         RTSTR, _T("_b"), // объекты которые будут участвовать в формировании контуров
    41.                                         /*или 1*/RTSTR, _T("_e"), // это будут все видимые на экране объекты, либо вместо этого варианта выбрать /*2*/
    42.                                         /*или 2
    43.                                         RTSTR, _T("_n"), // новый набор
    44.                                         RTPICKS, mas, // указываем ads_name объектов, которые будут участвовать в команде
    45.                                         RTSTR, _T(""),// подтверждение
    46.                                         */
    47.                                         RTSTR,_T(""), // возвращаемся к указанию точки
    48.                                         RTPOINT, asDblArray(points.at(i)), // наша точка, указанная пользователем
    49.                                         RTSTR,_T(""), // подтверждаем ввод точки
    50.                                         RTNONE // конец команды
    51.                                         );

    52.                                 acdbEntLast(plBoundary);
    53.                                 if (plBoundaryPreviousStep[0] == plBoundary[0] && plBoundaryPreviousStep[1] == plBoundary[1])
    54.                                 {
    55.                                         acutPrintf(_T("  %d-я точка поганая\n"),i+1);
    56.                                         continue;
    57.                                 }
    58.                                 // перекинули последний добавленный в акад объект
    59.                                 plBoundaryPreviousStep[0] = plBoundary[0];
    60.                                 plBoundaryPreviousStep[1] = plBoundary[1];

    61.                                 ::acdbGetObjectId(id,plBoundary);
    62.                                 if(acdbOpenObject(pEnt,id,AcDb::kForWrite) == Acad::eOk)
    63.                                 {
    64.                                         pEnt->setColorIndex(i+1);
    65.                                         pEnt->downgradeOpen();
    66.                                         pEnt->draw();
    67.                                         pEnt->close();
    68.                                 }
    69.                         }
    70.                 }

    71. //-> возвращаем все в зад :)
    72.                 cmdechoVar.resval.rint = 1;
    73.                 acedSetVar(_T("cmdecho"), &cmdechoVar);
    74. //<-
    复制代码
    回复


    http://www.mjgw.org/ 专业从事膜结构设计、制作加工、施工安装的膜结构工程服务,能够为客户提供专业的膜结构整体解决方案。做中国最好的膜结构综合服务平台。欢迎大家联系电话:198-7840-1958,QQ:463017170.
    相关关键词:膜结构车棚,膜结构车棚覆盖,膜结构车棚公司,膜结构车棚多少钱,膜结构车棚厂家,膜结构车棚价格,社区膜结构车棚,膜结构车棚膜布厂家 ,膜结构车棚哪家好,膜结构车棚多少钱一米,膜结构车棚报价,膜结构车棚哪里有,膜结构车棚定制,膜结构车棚安装,膜结构车棚设计,膜结构车棚电话,膜结构车棚加工,膜结构车棚膜布价格,膜结构车棚批发,膜结构车棚制造商,膜结构车棚生产厂家,膜结构车棚设计,膜结构车棚施工,膜结构车棚多少钱一平米,膜结构车棚订制,张拉膜车棚,张拉膜车棚覆盖,张拉膜车棚公司,张拉膜车棚多少钱,张拉膜车棚厂家,张拉膜车棚价格,社区张拉膜车棚,张拉膜车棚膜布厂家 ,张拉膜车棚哪家好,张拉膜车棚多少钱一米,张拉膜车棚报价,张拉膜车棚哪里有,张拉膜车棚定制,张拉膜车棚安装,张拉膜车棚设计,张拉膜车棚电话,张拉膜车棚加工,张拉膜车棚膜布价格,张拉膜车棚批发,张拉膜车棚制造商,张拉膜车棚生产厂家,张拉膜车棚设计,张拉膜车棚施工,张拉膜车棚多少钱一平米,张拉膜车棚订制,常用膜材品牌:德国杜肯、法国法拉利、德国海德斯、德国米乐、日本平岗、韩国秀博、比利时希运、美国赫虏伯、中国科宝、上海慧遥。

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-23 14:19
  • 签到天数: 1543 天

    [LV.Master]伴坛终老

     楼主| 发表于 2020-12-27 13:38 | 显示全部楼层
    1. Acad::ErrorStatus acedTraceBoundary(
    2.     const AcGePoint3d& seedPoint,
    3.     bool detectIslands,
    4.     AcDbVoidPtrArray& resultingBoundarySet
    5. );
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2021-6-23 14:19
  • 签到天数: 1543 天

    [LV.Master]伴坛终老

     楼主| 发表于 2020-12-27 13:39 | 显示全部楼层
    1.                                 acdbEntLast(plBoundary);
    2.                                 if (plBoundaryPreviousStep[0] == plBoundary[0] && plBoundaryPreviousStep[1] == plBoundary[1])
    3.                                 {
    4.                                         acutPrintf(_T("  %d-я точка поганая\n"),i+1);
    5.                                         continue;
    6.                                 }
    7.                                 // перекинули последний добавленный в акад объект
    8.                                 plBoundaryPreviousStep[0] = plBoundary[0];
    9.                                 plBoundaryPreviousStep[1] = plBoundary[1];
    复制代码
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    关闭

    推荐膜材品牌上一条 /6 下一条

    进口膜材 国产膜材 pvdf膜材ptfe膜材ETFE膜材
    最好的膜结构公司 一级膜结构资质 膜结构一级资质
    膜结构设计-膜结构十大品牌-etfe设计-充气膜结构
    诺科膜结构
    遨都膜结构设计
    中国膜结构网
    中国空间膜结构

    QQ|申请友链|手机版|中国膜结构论坛