天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 83|回复: 0

‎使用 LISP 将剖面线作为单独的线访问图案填充‎

[复制链接]
  • TA的每日心情
    开心
    2024-8-31 15:58
  • 签到天数: 89 天

    [LV.6]常住居民II

    488

    主题

    207

    回帖

    3366

    积分

    管理员

    积分
    3366
    发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
    [code]int hatchlines()

    {

        int res;

        resbuf *argRb;

        ads_name ename;

        AcDbObjectId objId;

        AcDbEntity *pEnt;

        AcDbHatch *pHatch;



        argRb = acedGetArgs();



        if (!argRb) {

            //

            // Get parameters

            //

            ads_point pt;



            if (RTNORM != (res = acedEntSel(

                                            _T("\nSelect hatch: "),

                                            ename,

                                            pt

                                            )))

            {

                acedRetNil();

                return res;

            }



        } else {

            //

            // Analyze parameters

            //

            if (argRb->restype != RTENAME) {

                acutPrintf(_T("\nFirst argument must be an ename."));

                acedRetNil();

                return RTERROR;

            }

            if (argRb->rbnext != NULL) {

                acutPrintf(_T("\nOnly one parameter accepted."));

                acedRetNil();

                return RTERROR;

            }

            acdbNameSet(argRb->resval.rlname, ename);

        }



        // Is the specified entity a hatch?

        acdbGetObjectId(objId, ename);

        if (Acad::eOk != acdbOpenAcDbEntity(   

                                                pEnt,

                                                objId,

                                                AcDb::kForRead

                                            ))

        {

            acedRetNil();

            return RTERROR;

        }



        if (!pEnt->isKindOf(AcDbHatch::desc())) {

            acutPrintf(_T("\nNot a hatch specified."));

            pEnt->close();

            acedRetNil();

            return RTERROR;

        }



        pHatch = (AcDbHatch*) pEnt;



        //

        // Get the hatch lines

        //

        AcGePoint2dArray startPoints,

            endPoints;



        if (Acad::eOk != pHatch->getHatchLinesData

                                                (

                                                    startPoints,

                                                    endPoints

                                                ))

        {

            acutPrintf(_T("\nError extracting hatch lines."));

            pHatch->close();

            acedRetNil();

            return RTERROR;

        }



        pHatch->close();



        //

        // Build a resbuf containing the coordinates

        //



        resbuf *retList = NULL,

            *retIter = NULL,

            *onePoint;

        int length = startPoints.length();



        for (int i = 0; i < length; ++i) {

            onePoint = acutNewRb(RTPOINT);

            onePoint->resval.rpoint[X] = startPoints[i].x;

            onePoint->resval.rpoint[Y] = startPoints[i].y;

            if (!retList) {

                retList = onePoint;

                retIter = retList;

            } else {

                retIter->rbnext = onePoint;

                retIter = retIter->rbnext;

            }

        }



        acedRetList(retList);



        // end of function

        return RTNORM;

    }[/code]

     

     

     

     

    ‎使用 LISP 将剖面线作为单独的线访问图案填充‎
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池| |网站地图

    GMT+8, 2024-9-8 10:59 , Processed in 0.085057 second(s), 25 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表