找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 944|回复: 11

[编程申请]:如何用arx编程取得方格网的四个角点坐标

[复制链接]
发表于 2003-2-6 14:29:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
再次请教各位高手:如何用arx编程方法,在直线方格网任意选一点后取得方格网的四个角点坐标?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-2-8 09:14:27 | 显示全部楼层
利用CAD本身的功能BOUNDARY,在已知方格网内部点pt后,用BOUNDARY获得封闭pline线,再用entlast函数得到实体,然后求点,就不是难事了。当然,记得删除生成的pline线。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-2-8 11:52:38 | 显示全部楼层
用BOUNDARY命令是可以求的方格网的四个角点坐标,但用ARX编程方法我就真的不知道该如何做。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-8 12:35:39 | 显示全部楼层
ads_point pt;//方格网内部点
ads_name ent;//生成的实体

acedCommand(RTSTR,"BOUNDARY",RT3DPOINT,pt,RTSTR,"",0);//我未测试,大概可用
acdbEntLast(ent);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-2-8 15:16:10 | 显示全部楼层
用ADSRX编程也可以,我去试一试。感谢朋友指点!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-13 17:00:04 | 显示全部楼层
试试这个,选择封闭区域内的一点,会列出各点坐标和封闭区域面积
还要原码吗?
命令是zb
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-13 20:56:12 | 显示全部楼层
我想要源码!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-2-21 12:35:35 | 显示全部楼层
源代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-22 17:31:11 | 显示全部楼层

郁闷啊

我费了十牛三虎之力才找到的贴子,却下载不了,gshengli ,你能找那个源码发给我看看好吗,我正缺它,谢谢了先
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-24 00:29:47 | 显示全部楼层
你的arx文件用什么方法才能打开?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-9-8 14:12:55 | 显示全部楼层
我也看不了,能不能谁吧源码直接帖出来!拜托了,我好想看源码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 1个

财富等级: 恭喜发财

发表于 2003-9-8 14:24:08 | 显示全部楼层
顺便问一下,怎么表示以下为代码?
[\code]
{
        // TODO: Implement the command
        ads_point point;       
        int ret;
        bool ok=false;       
        while(1)
        {
                ok=false;
                {                               
                        while(1)
                        {
                                ret = acedGetPoint(NULL,"\n输入封闭区域内的一点坐标:",point);
                                if(ret == RTNORM)
                                        break;
                                else if(ret == RTCAN )
                                        return;
                        }
                }
               
                ret= acedCommand(RTSTR, "boundary",RTPOINT ,point, RTSTR, "",0) ;
               
               
                if(ret == RTNORM )
                {
                        ok=true;
                        break;
                }
                else
                        acutPrintf("\nSomething is wrong! I am sorry\n");
        }

       

        if(!ok)
        {
                acutPrintf("\nSomething is wrong! I am sorry\n");
                return ;
        }

        acutPrintf("\n你选的点坐标为 x = %.3f y = %.3f",point[0],point[1]);
       
        ads_name  ent;
        acdbEntLast(ent);
        AcDbObjectId eId;
        acdbGetObjectId(eId, ent);
                               
        AcDbEntity * pEnt = NULL;
        acdbOpenObject(pEnt, eId, AcDb::kForWrite);
       
        if(pEnt == NULL)
        {
                acutPrintf("\nSomething is wrong! I am sorry\n");
        }
        else
        {
                if (pEnt->isKindOf(AcDbPolyline::desc()) )
                {
                        AcDbPolyline * pPline = (AcDbPolyline*) pEnt;
                       
                        int numVerts = pPline->numVerts();
                       
                        AcGePoint3d pt;
                        for(int k=0;k<numVerts;k++)
                        {                               
                                pPline->getPointAt(k,pt) ;                                       
                                acutPrintf("\n节点 %d x = %.3f y = %.3f z = %.3f",k+1,pt[0],pt[1],pt[2]);
                        }
                        double area=0;
                        pPline->getArea(area);
                        acutPrintf("\n面积为 %.3f\n",area);
                }
                else
                {
                        acutPrintf("\nSomething is wrong! I am sorry\n");
                }
        }
        pEnt->erase();

        pEnt->close();
}
[code\]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 01:35 , Processed in 0.208305 second(s), 54 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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