找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 789|回复: 5

[ARX程序]:程序横简单,就是不对:(

[复制链接]
发表于 2002-7-1 09:13:49 | 显示全部楼层 |阅读模式

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

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

×
// This is command 'XX, by  [七月/01/2002], ,
void xxxx()
{
#ifdef OARXWIZDEBUG
        acutPrintf ("\nOARXWIZDEBUG - xxxx() called.");
#endif // OARXWIZDEBUG

        // TODO: Implement the command
    AcDbBlockTable *pBlockTable;
        AcDbBlockTableRecord *pBlockTableRecord;
       
    acdbCurDwg()->getSymbolTable(pBlockTable, AcDb::kForRead);
    pBlockTable->getAt(ACDB_MODEL_SPACE, pBlockTableRecord,AcDb::kForWrite);
    pBlockTable->close();   
       
    AcDbPolyline *pPline =new AcDbPolyline();

        AcGePoint2d ptt1(-12,0),ptt2(12,0);
        pPline->addVertexAt(0, ptt1);
        pPline->addVertexAt(0, ptt2);
       
    AcDbObjectId lineObjId;   
    pBlockTableRecord->appendAcDbEntity(lineObjId,pPline);
        pBlockTableRecord->close();   
    pPline->close();
        //选择pline
        AcGePoint3d point(0,0,0);
        ads_point pt1,pt2;
        ads_name ss;
        long len;

        acutPolar(asDblArray(point),0.7853981634,1,pt1);
        acutPolar(asDblArray(point),3.926990817,1,pt2);

        acedSSGet(_T("_C"),pt1,pt2,NULL,ss);
        acedSSLength(ss,&len);
        acedSSFree(ss);
        acutPrintf("%d\n",len);
        //当我第一次运行时,应该有一条直线.它没有选择到这条直线.
        //当我第二次运行时,有两条直线,它选择到一条直线.len=1
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
 楼主| 发表于 2002-7-1 09:17:14 | 显示全部楼层
还有,有什么方法把vc做的对话框,从另一个工程调用
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-7-1 09:22:41 | 显示全部楼层

Re: [ARX程序]:程序横简单,就是不对:(

最初由 binbin 发布
// This is command 'XX, by  [七月/01/2002], ,
void xxxx()
{
#ifdef OARXWIZDEBUG
        acutPrintf ("\nOARXWIZDEBUG - xxxx() called.");
#endif // OARXWIZDEBUG

        // TODO: Implement the command
    Ac...

我在做双线梁墙程序时碰到过这种情况,也是在同一个程序中创建的线,在随后想选中它结果总是失败。我也百思不得其解,只好用了个歪招——随后在随便创建一个实体,再删除之,则前面创建的实体可以选中了。这可是花费了很多时间当学费学到的:)
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-7-1 11:37:23 | 显示全部楼层
1、appendAcDbEntity后,只是往数据库中增加数据,并没有在图形区产生(没有Draw()),因此ssget是得不到的。
2、pPline->close(); 只是关闭指针并发送消息,它本身并不执行Draw的任务,因此这个时候也是从图形区得不到的。
3、主要的问题是acedssget操作的是图形区,而append 和close()操作的是数据库,这两者之间有是时间差的。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 13:20 , Processed in 0.406907 second(s), 42 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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