找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1019|回复: 6

[求助]:ARX函数求助!!

[复制链接]
发表于 2003-8-1 16:27:45 | 显示全部楼层 |阅读模式

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

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

×
请问如何是用transformBy()实现对创建实体的移动和旋转?
能否作出类似MOVE那样,被选择的实体高亮显示,选择实体后根据鼠标的位置动态确定。
刚刚学习ARX各位高手多帮助!
谢谢!!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-8-1 17:02:36 | 显示全部楼层
请用“transformBy”为关键字搜索论坛!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-1 18:55:34 | 显示全部楼层

Re: [求助]:ARX函数求助!!

最初由 ssh 发布
[B]请问如何是用transformBy()实现对创建实体的移动和旋转?
能否作出类似MOVE那样,被选择的实体高亮显示,选择实体后根据鼠标的位置动态确定。
刚刚学习ARX各位高手多帮助!
谢谢!!! [/B]



你需要先构建转换矩阵,比如缩放矩阵,旋转矩阵。

然后用transFromBy作用到实体上就变换了。

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

使用道具 举报

 楼主| 发表于 2003-8-1 19:10:21 | 显示全部楼层
你说一下这种矩阵怎么构造么?据个简单的例子好么?
另外院长你看这段代码怎么总是出错:
        int status;
    struct resbuf *list_line;

        ads_point starP;
        starP[X]=starP[Y]=starP[Z]=0.0;
        ads_point endP;
        endP[X]=10.0;endP[Y]=10.0;endP[Z]=0.0;
        list_line=acutBuildList(
                RTDXF0, "LINE",
                8,  "0",
                10, starP,
                11, endP,
                0);

        status=acdbEntMake(list_line);
        acutRelRb(list_line);
        if (status!=RTNORM){
                acdbFail("Unable to creat this line\n");
                return;
        }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2003-8-1 19:32:12 | 显示全部楼层
你可以用这种方法创建一条直线:
-----------
        AcDbDatabase *pCurDb;
        AcDbBlockTable *pBlkTable;
        AcDbBlockTableRecord *pBlkTableRec;
        AcDbObjectId lineId;
        AcGePoint3d sp, ep;
        sp.set(0,0,0);
        ep.set(10,10,0);
        AcDbLine *pLn = new AcDbLine(sp, ep);


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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2003-8-1 19:34:41 | 显示全部楼层
最初由 ssh 发布
[B]你说一下这种矩阵怎么构造么?据个简单的例子好么?
另外院长你看这段代码怎么总是出错:
        int status;
    struct resbuf *list_line;

        ads_point starP;
        starP[X]=starP[Y]=starP[Z]=0.0;
        ads_point e... [/B]



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

使用道具 举报

 楼主| 发表于 2003-8-1 20:31:57 | 显示全部楼层
现在我想用类似lisp中entmake的东西,生成一个任意块,所以用了acedBuildList(),现在加上院长说的组码能生成一条直线实体了,谢谢院长!你在介绍一下AcGeMatrix3d 这个东西怎么设置才能实现移动和旋转?能产生动态的效果么?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 02:47 , Processed in 0.288411 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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