找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 668|回复: 2

[求助]:jig问题!救命!

[复制链接]
发表于 2004-1-7 21:27:18 | 显示全部楼层 |阅读模式

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

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

×
arx如何对AcDbBlockReference进行拖动啊?

高手救命!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-1-8 10:57:08 | 显示全部楼层
类似拖动一个固定半径的园,只要在jig派生中,对插入点作处理即可
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-1-8 15:11:13 | 显示全部楼层
我的可以实现移动拖动,但是移动拖动后旋转拖动就不对了,发现是以移动拖动后确定的点为基点,原先块的位置为起始位置,进行旋转。而不是块在我拖动确定的点处为基点进行旋转的
AcEdJig::DragStatus
AsdkMyJig::sampler()
{
    DragStatus stat;
    //setSpecialCursorType(kRotatedCrosshair);
    setUserInputControls((UserInputControls)
        (AcEdJig::kAccept3dCoordinates
         | AcEdJig::kNoNegativeResponseAccepted
         | AcEdJig::kNoZeroResponseAccepted));

    if (mPromptCounter == 0) {

      static AcGePoint3d axisPointTemp(0.0,0.0,0.0);
        stat = acquirePoint(mAxisPt, AcGePoint3d(0.0,0.0,0.0));
        if (axisPointTemp != mAxisPt)
                {
            axisPointTemp = mAxisPt;
                        //AcGeMatrix3d xform;
                        mInsertPt=mAxisPt;
                        AcGeVector3d Vector(mAxisPt[X],mAxisPt[Y],mAxisPt[Z]);//-axisPointTemp;
                        xform.setToTranslation(Vector);
                }
        else if (stat == AcEdJig::kNormal)
            return AcEdJig::kNoChange;
    }
    else if (mPromptCounter == 1) {
        static double angTemp=-1;
                //AcGePoint3d basePnt=mInsertPt;
        stat = acquireAngle(mAng, mInsertPt);
        if (angTemp != mAng)
                {
            //mAng = ang;
                        xform.setToRotation(mAng,mNormal,mInsertPt);
                }
        else if (stat == AcEdJig::kNormal)
            return AcEdJig::kNoChange;
    }
    return stat;
}

// This function is called to update the entity based on the
// input values.
//
Adesk::Boolean
AsdkMyJig::update()
{
    switch (mPromptCounter) {
    case 0:

//                {AcGeVector3d Vector(mInsertPt[X],mInsertPt[Y],mInsertPt[Z]);//-axisPointTemp;
//                xform.setTranslation(Vector);}
               
        break;
    case 1:
                {//acutPrintf("\ninsertPt=%f       %f    %f",mInsertPt[X],mInsertPt[Y],mInsertPt[Z]);
                //mNormal=AcGeVector3d(0,0,1);
                //xform.setToRotation(mAng,mNormal,mInsertPt);
                //.setToProduct(xform,form);
                }
       
        break;
    }
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 10:52 , Processed in 0.190106 second(s), 36 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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