齐天大圣3386 发表于 2011-12-21 20:12:05

自定义实体的问题

Adesk::Boolean lxdxh::worldDraw (AcGiWorldDraw *mode) {
        assertReadEnabled () ;
       
        // 声明下一个输入点.
        double changdu = sqrt((m_PtB.x - m_PtA.x)*(m_PtB.x - m_PtA.x)+(m_PtB.y - m_PtA.y)*(m_PtB.y - m_PtA.y));//A点到B点的距离
        //得到距离B点(圆的中心)为2.5的ptNext点
        AcGePoint3d ptNext(m_PtB.x -m_bl*5 * (m_PtB.x - m_PtA.x)/changdu, m_PtB.y - m_bl*5 * (m_PtB.y - m_PtA.y)/changdu, 0);

    // 添加指引线
        AcGePoint3d pts;
        pts = m_PtA;
        pts = ptNext;
    mode->geometry().worldLine(pts);
    // 添加序号球
        mode->subEntityTraits().setSelectionMarker(1); // Mark 1
    mode->subEntityTraits().setColor(1); // Red
    mode->geometry().circle(m_PtB, m_bl*5, AcGeVector3d::kZAxis);
    // 设置Text
    mode->subEntityTraits().setSelectionMarker(2); // Mark 2
    mode->subEntityTraits().setColor(256); // ByLayer
        AcGiTextStyle style;
    style.setFileName(_T("txt.shx"));
    style.setBigFontFileName(_T(""));
    style.setTextSize(m_bl*3.5);
    style.loadStyleRec();   
        TCHAR buffer ;
        _stprintf (buffer, _T("%d"), m_ID) ;

        size_t max=wcsnlen(buffer, 20);
       
        // 文本插入点
    AcGePoint3d ptText(m_PtB.x-m_bl*1.5, m_PtB.y-m_bl*1.5, 0);
        if (max==1)
        {
          AcGePoint3d ptText1(m_PtB.x-m_bl*1.5, m_PtB.y-m_bl*1.5, 0);
                ptText=ptText1;
        }
        if (max==2)
        {
          AcGePoint3d ptText1(m_PtB.x-m_bl*3, m_PtB.y-m_bl*1.5, 0);
                ptText=ptText1;
        }
        if (max==3)
        {
          AcGePoint3d ptText1(m_PtB.x-m_bl*4.5, m_PtB.y-m_bl*1.5, 0);
                ptText=ptText1;
        }
    // 添加Text
    mode->geometry().text(ptText, AcGeVector3d::kZAxis, AcGeVector3d::kXAxis, buffer, max, Adesk::kFalse, style);

    return Adesk::kTrue;
}我做了一个序号的自定义实体,在做比例时,不能缩放。我加了一个参数,做为缩放比例,但加了以后,在夹点移动时,圆和字就不随着鼠标移动了,当夹点移动结束后,才移动到当前位置,请问:这个应该怎么做?

齐天大圣3386 发表于 2011-12-22 18:25:00

已经解决了

齐天大圣3386 发表于 2011-12-22 18:26:56

但是,新问题又来了,在缩放时,怎么把缩放的参数传递给对象呢?

fpiw 发表于 2011-12-23 13:52:25

重载transformby()函数,在这里进行对象的缩放操作

齐天大圣3386 发表于 2011-12-23 19:18:20

谢谢楼上的朋友,问题又解决了,呵呵,总是问题多多啊。
页: [1]
查看完整版本: 自定义实体的问题