找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1461|回复: 8

[求助]: 紧急求助,在线等待,acedGetPoint函数问题。

[复制链接]
发表于 2003-7-20 11:23:19 | 显示全部楼层 |阅读模式

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

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

×
我想用PLine画线,同时又可输入c或u等实现相关功能,以下是两段代码:
ads_point p1,p2;
acedGetPoint(p1,"\n下一点N/闭合C/回退U/圆弧A/回车结束/<下一点>:",p2);
也就是说既可以用鼠标在屏幕上画线,又可以输入c或u等实现相关功能,应如何处理。应该不难的。谢谢!
不知我说明白了没?很急的,或者有什么其它好的方法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-7-20 11:28:50 | 显示全部楼层

Re: [求助]: 紧急求助,在线等待,acedGetPoint函数问题。

最初由 lihongyu2467 发布
[B]我想用PLine画线,同时又可输入c或u等实现相关功能,以下是两段代码:
ads_point p1,p2;
acedGetPoint(p1,"\n下一点N/闭合C/回退U/圆弧A/回车结束/<下一点>:",p2);
也就是说既可以用鼠标在屏幕上画线,又可以输入... [/B]


输入关键字,让GETPOINT返回,你要先用AcGeInitget 先设置好关键字,具体看看AcGeInitget 函数的用法。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-7-20 12:22:52 | 显示全部楼层
谢谢晓东,这个方法我也试过,但是acedGetPoint()函数只能接受ads_point类型,也就是只能在屏幕上选点,此时键盘不起作用。晓东是否有好的办法,可否详细一点。谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-7-20 12:44:54 | 显示全部楼层
最初由 lihongyu2467 发布
[B]谢谢晓东,这个方法我也试过,但是acedGetPoint()函数只能接受ads_point类型,也就是只能在屏幕上选点,此时键盘不起作用。晓东是否有好的办法,可否详细一点。谢谢。 [/B]



用aceddInitget 搜索帮助文件,有足够的代码说明的,下面摘自帮助文件,所有acedGetXXX 类函数都适用。

  1. [font=courier]
  2. int stat;
  3. ads_real x, pi = 3.14159265;
  4. char kw[20];

  5. // Null input is not allowed.
  6. [color=blue]acedInitGet(RSG_NONULL, "Pi Two-pi"); [/color]

  7. if ((stat = [color=blue]acedGetReal("Pi/Two-pi/<number>: ", &x)) [/color]< 0) {
  8.     if (stat == RTKWORD && acedGetInput(kw) == RTNORM) {
  9.         if (strcmp(kw, "Pi") == 0) {
  10.             x = pi;
  11.             stat = RTNORM;
  12.         } else if (strcmp(kw, "Two-pi") == 0) {
  13.             x = pi * 2;
  14.             stat = RTNORM;
  15.         }
  16.     }
  17. }
  18. if (stat != RTNORM)
  19.     acutPrintf("Error on acedGetReal() input.\n");
  20. else
  21.     acutPrintf("You entered %f\n", x);
  22. [/font]
复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-7-21 21:15:25 | 显示全部楼层
谢谢晓东的解答,可是似乎用acedGetXXX函数只能接受关键字的输入,或者只能接受鼠标在屏幕上选点,而我想同时都实现,应该如何处理,谢谢。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2003-7-28 23:54:38 | 显示全部楼层
基本上是园长的方法。。。但我是实践中的。


  1.   [FONT=courier new]
  2.     ads_initget(RSG_OTHER+RSG_NONEG,NULL);
  3.     int ss = ads_getpoint(asDblArray(intrePt),"\n点取尺寸断开点 /输断开长度 /[/n]-n等分:",adsTmpPt2);
  4.     if(ss == RTKWORD)
  5.     {
  6.         ads_getinput(name);
  7.         ....
  8.     }
  9.     else if (ss == RTNORM)
  10.     {
  11.     }

  12. 上面是不带关键字的,如果要带关键字。。

  13.   ads_initget(RSG_NONEG,"Arc A Halfwidth H ");
  14.     int ss = ads_getpoint(asDblArray(intrePt),"\nArc /Halfwidth <line>:",adsTmpPt2);
  15.     if(ss == RTKWORD)
  16.     {
  17.         ads_getinput(name);
  18.         ....
  19.     }
  20.     else if (ss == RTNORM)
  21.     {
  22.     }

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

使用道具 举报

 楼主| 发表于 2003-7-30 11:54:47 | 显示全部楼层
基本上是wengjaky 的原代码,不过略微整理了一下,你说有更完善的,能否也传上来?万分感谢!
void FW()
{           
        acedCommand(RTSTR,"layer",RTSTR,"m",RTSTR,"JMD",RTSTR,"",RTSTR,"plinewid",RTSTR,"0",0);
        ads_point p1,p2;
        int rc;
        char chose[256];//交互输入缓冲
        acedInitGet( RSG_NONULL, "C U A");
        rc=acedGetPoint(NULL,"\nplease input first point:",p1);
        acedCommand(RTSTR,"PLINE",RTPOINT,p1,0);
        while(rc!=RTCAN && rc!=RTNONE)
        {               
                acedInitGet( NULL, "C U A");
                rc=acedGetPoint(p1,"\n闭合C/回退U/圆弧A/回车结束/<下一点>:",p2);
               
                if(rc==RTCAN || rc==RTNONE)
                {
                        // acedCommand(0,0);
                        break;
                }

                if(rc==RTKWORD)
                {               
                        acedGetInput(chose);
                        if(!strcmp(chose,"C"))
                        {
                                acedCommand(RTSTR,"CLOSE",0);
                                acedCommand(0,0);
                 rc=RTCAN;
                        }
                        if(!strcmp(chose,"U"))
                        {
                                acedCommand(RTSTR,"U",0);
                        }
                        if(!strcmp(chose,"A"))
                        {
                                acedCommand(RTSTR,"ARC",0);
                                acedGetPoint(NULL ,"\n请输入弧的第二点:",p2);
                                acedCommand(RTPOINT,p2,RTSTR,"Line",0);
                        }
                }

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-17 02:59 , Processed in 0.315021 second(s), 48 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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