找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 608|回复: 13

[求助] 求助

[复制链接]
发表于 2018-3-26 12:49:48 | 显示全部楼层 |阅读模式

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

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

×
在生成实体前,如何实现预览下这些实体
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

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

使用道具 举报

 楼主| 发表于 2018-3-26 13:10:24 | 显示全部楼层
本帖最后由 why1025 于 2018-3-26 18:02 编辑

这段代码符合我的要求,生成实体,拖动实体到指定的位置后,点确定生成实体,唯一缺点是,原来的实体还在,拖动时候,两个实体都在画面上,我想只显示拖动的实体

  1. #include "StdAfx.h"
  2. #include "databasejigentity.h"

  3. #if _MSC_VER < 1500  // If prior to VS 2008


  4. Adesk::Boolean CDatabaseJigEntity::worldDraw(AcGiWorldDraw *mode)
  5. {
  6.         
  7.         mode->geometry().pushModelTransform(m_Xform);
  8.         AcDbEntity* pEnt;
  9.         for (int i = 0; i < m_Ids.length(); i++)
  10.         {        
  11.                 //
  12.                 if (Acad::eOk == acdbOpenObject(pEnt, m_Ids[i],AcDb::kForRead))
  13.                 {
  14.                         mode->geometry().draw(pEnt);
  15.                         pEnt->close();
  16.                 }
  17.         }
  18.         //
  19.         mode->geometry().popModelTransform();
  20.         return (AcDbEntity::worldDraw (mode)) ;
  21. }
  22. #else



  23. Adesk::Boolean CDatabaseJigEntity::subWorldDraw(AcGiWorldDraw* mode)
  24. {
  25.         //
  26.         mode->geometry().pushModelTransform(m_Xform);
  27.         AcDbEntity* pEnt;
  28.         for (int i = 0; i < m_Ids.length(); i++)
  29.         {        
  30.                 //
  31.                 if (Acad::eOk == acdbOpenObject(pEnt, m_Ids[i],AcDb::kForRead))
  32.                 {
  33.                         mode->geometry().draw(pEnt);
  34.                         pEnt->close();
  35.                 }
  36.         }
  37.         int length = m_entities.length ();
  38.         mode->geometry().pushModelTransform(m_Trans);               
  39.         // loop the number of entities in the entity list
  40.         for (int i=0; i<length; ++i)
  41.         {
  42.                 AcDbEntity *ent = (AcDbEntity *)m_entities[i];
  43.                 if (ent != NULL)
  44.                 mode->geometry().draw(ent); // draw it
  45.         }
  46.                 mode->geometry().popModelTransform();
  47.                 //return (Adesk::kTrue);
  48.         //
  49.         mode->geometry().popModelTransform();
  50.         return (AcDbEntity::subWorldDraw (mode)) ;
  51. }
  52. #endif
  53. //
  54. BOOL CDatabaseJigEntity::transform()
  55. {
  56.         AcTransaction * pTrans = acTransactionManagerPtr() ->startTransaction();
  57.         if (NULL == pTrans)
  58.                 return FALSE;
  59.         AcDbEntity *pEnt;
  60.         AcDbObject *pObj;
  61.         for (int i= 0; i < m_Ids.length(); i++)
  62.         {
  63.                 if (Acad::eOk != pTrans ->getObject(pObj, m_Ids[i], AcDb::kForWrite))
  64.                 {
  65.                         acTransactionManagerPtr() ->abortTransaction();
  66.                         return FALSE;
  67.                 }
  68.                 pEnt = AcDbEntity::cast(pObj);
  69.                 pEnt ->transformBy(m_Xform);
  70.         }
  71.         acTransactionManagerPtr() ->endTransaction();
  72.         return TRUE;
  73. }
  74. //
  75. BOOL CDatabaseJigEntity::transformedCopy()
  76. {
  77.         AcTransaction * pTrans = acTransactionManagerPtr() ->startTransaction();
  78.         if (NULL == pTrans)
  79.                 return FALSE;
  80.         AcDbEntity *pEnt;
  81.         AcDbEntity *pNewEnt;
  82.         AcDbObject *pObj;
  83.         AcDbBlockTableRecord *pBlkRec;
  84.         AcDbObjectId blkRecId;
  85.         for (int i= 0; i < m_Ids.length(); i++)
  86.         {
  87.                 if (Acad::eOk != pTrans ->getObject(pObj, m_Ids[i], AcDb::kForRead))
  88.                 {
  89.                         acTransactionManagerPtr() ->abortTransaction();
  90.                         return FALSE;
  91.                 }
  92.                 pEnt = AcDbEntity::cast(pObj);
  93.                 if (0 == i)
  94.                 {
  95.                         blkRecId = pEnt ->blockId();
  96.                         if (Acad::eOk != pTrans ->getObject(pObj, blkRecId,

  97.                                 AcDb::kForWrite))
  98.                         {
  99.                                 acTransactionManagerPtr() ->abortTransaction();
  100.                                 return FALSE;
  101.                         }
  102.                         pBlkRec = AcDbBlockTableRecord::cast(pObj);
  103.                 }
  104.                 pEnt ->getTransformedCopy(m_Xform, pNewEnt);
  105.                 pBlkRec ->appendAcDbEntity(pNewEnt);
  106.                 acTransactionManagerPtr() ->addNewlyCreatedDBRObject(pNewEnt);               
  107.         }
  108.         acTransactionManagerPtr() ->endTransaction();
  109.         return TRUE;
  110. }






  111. CMoveJig::~CMoveJig()
  112. {
  113.         if ( NULL != m_pEnt)
  114.         {
  115.                 delete m_pEnt;
  116.                 m_pEnt = NULL;
  117.         }
  118. }
  119. AcEdJig::DragStatus CMoveJig::sampler()
  120. {
  121.         DragStatus stat;
  122.         setUserInputControls((UserInputControls)
  123.                 (AcEdJig::kAccept3dCoordinates
  124.                 | AcEdJig::kNoNegativeResponseAccepted
  125.                 | AcEdJig::kNoZeroResponseAccepted
  126.                 | AcEdJig::kNullResponseAccepted        ));         
  127.         static AcGePoint3d pointTemp;
  128.         stat = acquirePoint(m_ToPoint, m_FromPoint);
  129.         if (pointTemp != m_ToPoint)
  130.                 pointTemp = m_ToPoint;
  131.         else if (stat == AcEdJig::kNormal)
  132.                 stat = AcEdJig::kNoChange;        
  133.         return stat;
  134. }
  135. Adesk::Boolean CMoveJig::update()
  136. {
  137.         m_Xform.setToTranslation(m_ToPoint - m_FromPoint);
  138.         m_pEnt ->setXform(m_Xform);
  139.         return Adesk::kTrue;
  140. }
  141. AcDbEntity * CMoveJig::entity() const
  142. {
  143.         return m_pEnt;
  144. }
  145. void CMoveJig::doIt(const AcDbObjectIdArray &ids, bool bCopy /*= false*/)
  146. {
  147.         if ( 0 == ids.length() )
  148.         {
  149.                 return;
  150.         }
  151.         if (NULL != m_pEnt)
  152.         {
  153.                 delete m_pEnt;
  154.                 m_pEnt = NULL;
  155.         }

  156.         m_pEnt = new CDatabaseJigEntity(ids);
  157.         setDispPrompt(_T("\nmove: "));
  158.         if ( AcEdJig::kNormal == drag() )
  159.         {
  160.                 if (bCopy)
  161.                 {
  162.                         m_pEnt ->transformedCopy();
  163.                 }
  164.                 else
  165.                 {
  166.                         m_pEnt ->transform();
  167.                 }
  168.         }
  169.         delete m_pEnt;
  170.         m_pEnt = NULL;
  171. }


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

使用道具 举报

 楼主| 发表于 2018-3-26 13:14:49 | 显示全部楼层
  1. ads_name ename;
  2.                 ads_point pt;
  3.                 ads_name ss;
  4.                 int rt;

  5.                 if (rt = acedSSGet(NULL, NULL, NULL, NULL, ss) == RTCAN)
  6.                         return;
  7.                 long len;
  8.                 acedSSLength(ss, &len);
  9.                 if (0 == len) return;

  10.                 AcDbObjectId id;
  11.                 //acdbGetObjectId(id,ename);
  12.                 AcDbObjectIdArray ids;
  13.                 for (int i = 0; i < len; i++)
  14.                 {
  15.                         acedSSName(ss, i , ename);
  16.                         acdbGetObjectId(id, ename);
  17.                         ids.append(id);
  18.                 }
  19.                 acedSSFree(ss);
  20.                 acedGetPoint(NULL, _T("\n起点:"), pt);

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

使用道具 举报

 楼主| 发表于 2018-3-26 13:36:12 | 显示全部楼层
大师指点下,如何改

点评

你把实体生成到离图很远的地方不碍眼,然后再拖动不就行了,这个是DRAGGEN决定的,你还不能隐藏,隐藏拖动也不显示。 要不就换个方案,用点监视器拖动。  详情 回复 发表于 2018-3-26 14:01
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-3-26 14:01:19 | 显示全部楼层
why1025 发表于 2018-3-26 13:36
大师指点下,如何改

你把实体生成到离图很远的地方不碍眼,然后再拖动不就行了,这个是DRAGGEN决定的,你还不能隐藏,隐藏拖动也不显示。
要不就换个方案,用点监视器拖动。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 17:58:21 | 显示全部楼层
不会吧,这么惨,点监视器有例子吗,看看

点评

CAD的MOVE命令,就是留着原来的啊,DRAG机理是一个的。 [attachimg]75390[/attachimg]  详情 回复 发表于 2018-3-26 18:29
点监视器搜索论坛  详情 回复 发表于 2018-3-26 18:26
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2018-3-26 18:26:41 | 显示全部楼层
why1025 发表于 2018-3-26 17:58
不会吧,这么惨,点监视器有例子吗,看看

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-3-26 18:29:45 | 显示全部楼层
why1025 发表于 2018-3-26 17:58
不会吧,这么惨,点监视器有例子吗,看看

CAD的MOVE命令,就是留着原来的啊,DRAG机理是一个的。

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

使用道具 举报

 楼主| 发表于 2018-3-26 19:15:22 | 显示全部楼层
论坛什么都搜索不到,这论坛20年了,怎么这么惨淡

点评

呵呵,找东西也是门学问。  详情 回复 发表于 2018-3-26 19:23
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-3-26 19:23:30 | 显示全部楼层
why1025 发表于 2018-3-26 19:15
论坛什么都搜索不到,这论坛20年了,怎么这么惨淡

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

使用道具 举报

已领礼包: 40个

财富等级: 招财进宝

发表于 2018-3-26 19:35:25 | 显示全部楼层
搜狗截图20180326193523.png
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 21:50:32 | 显示全部楼层
#if defined(_DEBUG) && !defined(AC_FULL_DEBUG)
#error _DEBUG should not be defined except in internal Adesk debug builds
#endif

#include "acdbabb.h"
#include "adeskabb.h"
#include "aced.h"
#include "dbents.h"
#include "dbosnap.h"
#include "tchar.h"

#include "monitor.h"


Acad::ErrorStatus
AsdkInputPointMonitor::monitorInputPoint(const AcEdInputPoint& input, AcEdInputPointMonitorResult& output)
{
    if ( !input.pointComputed() )
    {
        // Points cannot be computed in the Monitor
        // Forced picking may be enabled

        if ( input.history() & Acad::eCyclingPt)
            acutPrintf( _T("\nNo point computed, but new cycling osnap: %.2f, %.2f, %.2f\n"),
                input.osnappedPoint()[X], input.osnappedPoint()[Y], input.osnappedPoint()[Z] );

        return Acad::eOk;
    }

    // Show historical point selection information
    //
#define HISTORY_CHECK(x)  if (input.history() & Acad:: ## x) acutPrintf(_T("%s "), _T(#x))

    acutPrintf( _T("\nHistory: %d, "), input.history() );

    HISTORY_CHECK(eTablet);
    HISTORY_CHECK(eNotDigitizer);
    HISTORY_CHECK(eLastPt);
    HISTORY_CHECK(eGripped);
    HISTORY_CHECK(eCartSnapped);
    HISTORY_CHECK(eOrtho);
    HISTORY_CHECK(eCyclingPt);
    HISTORY_CHECK(eOsnapped);
    HISTORY_CHECK(ePolarAngle);
    HISTORY_CHECK(eAligned);
    HISTORY_CHECK(eAppFiltered);
    HISTORY_CHECK(eForcedPick);
    HISTORY_CHECK(ePickMask);
    HISTORY_CHECK(eDidNotPick);
    HISTORY_CHECK(eUsedPickBox);
    HISTORY_CHECK(eUsedOsnapBox);
    HISTORY_CHECK(ePickAborted);
    HISTORY_CHECK(eXPending);
    HISTORY_CHECK(eYPending);
    HISTORY_CHECK(eZPending);
    HISTORY_CHECK(eCoordPending);

#undef HISTORY_CHECK

    acutPrintf( _T("\n") );

    // Show more point input information
    //
    if ( input.history() & Acad::eLastPt )
        acutPrintf( _T("Last point:              %.2f, %.2f, %.2f\n"), input.lastPoint()[X], input.lastPoint()[Y], input.lastPoint()[Z] );

    acutPrintf( _T("Raw point:               %.2f, %.2f, %.2f\n"), input.rawPoint()[X], input.rawPoint()[Y], input.rawPoint()[Z] );
    acutPrintf( _T("Computed point:          %.2f, %.2f, %.2f\n"), input.computedPoint()[X], input.computedPoint()[Y], input.computedPoint()[Z] );

    if ( input.history() & Acad::eGripped )
        acutPrintf( _T("Gripped point:           %.2f, %.2f, %.2f\n"), input.grippedPoint()[X], input.grippedPoint()[Y], input.grippedPoint()[Z] );
        
    if ( input.history() & Acad::eCartSnapped )
        acutPrintf( _T("Cartesian snapped point: %.2f, %.2f, %.2f\n"), input.cartesianSnappedPoint()[X], input.cartesianSnappedPoint()[Y], input.cartesianSnappedPoint()[Z] );

    if ( input.history() & Acad::eOsnapped )
    {
        acutPrintf( _T("Osnapped point:          %.2f, %.2f, %.2f\n"), input.osnappedPoint()[X], input.osnappedPoint()[Y], input.osnappedPoint()[Z] );

        acutPrintf( _T("Object snap masks: ") );

#define OSMASK_CHECK(x)  if (input.osnapMask() & AcDb:: ## x) acutPrintf(_T("%s "), _T(#x))

        OSMASK_CHECK(kOsMaskEnd);
        OSMASK_CHECK(kOsMaskMid);
        OSMASK_CHECK(kOsMaskCen);
        OSMASK_CHECK(kOsMaskNode);
        OSMASK_CHECK(kOsMaskQuad);
        OSMASK_CHECK(kOsMaskInt);
        OSMASK_CHECK(kOsMaskIns);
        OSMASK_CHECK(kOsMaskPerp);
        OSMASK_CHECK(kOsMaskTan);
        OSMASK_CHECK(kOsMaskNear);
        OSMASK_CHECK(kOsMaskQuick);
        OSMASK_CHECK(kOsMaskApint);
        OSMASK_CHECK(kOsMaskImmediate);
        OSMASK_CHECK(kOsMaskAllowTan);
        OSMASK_CHECK(kOsMaskDisablePerp);
        OSMASK_CHECK(kOsMaskRelCartesian);
        OSMASK_CHECK(kOsMaskRelPolar);

#undef OSMASK_CHECK

        if ( 0 == input.osnapMask() )
        {
            for ( int i = 0; i < input.customOsnapModes().length(); i++ )
                acutPrintf( _T("%s\n"), input.customOsnapModes()[i]->globalModeString() );
        }
        acutPrintf( _T("\n") );
    }

    // Show the object snap overrides
    //
    if ( 0 != input.osnapOverrides() )
    {

        acutPrintf( _T("Object snap overrides: ") );

#define OSMASK_CHECK(x)  if (input.osnapOverrides() & AcDb:: ## x) acutPrintf(_T("%s "), _T(#x))

        OSMASK_CHECK(kOsMaskEnd);
        OSMASK_CHECK(kOsMaskMid);
        OSMASK_CHECK(kOsMaskCen);
        OSMASK_CHECK(kOsMaskNode);
        OSMASK_CHECK(kOsMaskQuad);
        OSMASK_CHECK(kOsMaskInt);
        OSMASK_CHECK(kOsMaskIns);
        OSMASK_CHECK(kOsMaskPerp);
        OSMASK_CHECK(kOsMaskTan);
        OSMASK_CHECK(kOsMaskNear);
        OSMASK_CHECK(kOsMaskQuick);
        OSMASK_CHECK(kOsMaskApint);
        OSMASK_CHECK(kOsMaskImmediate);
        OSMASK_CHECK(kOsMaskAllowTan);
        OSMASK_CHECK(kOsMaskDisablePerp);
        OSMASK_CHECK(kOsMaskRelCartesian);
        OSMASK_CHECK(kOsMaskRelPolar);

#undef OSMASK_CHECK

        acutPrintf(_T("\n"));
    }

    // Show custom object snap overrides
    //
    if ( 0 != input.customOsnapOverrides().length() )
    {
        acutPrintf( _T("Custom object snap overrides: ") );
        for ( int x = 0; x < input.customOsnapOverrides().length(); x++)
            acutPrintf( _T("%s "), input.customOsnapOverrides()[x]->globalModeString() );
        acutPrintf( _T("\n") );
    }

    // Show object snap or forced pick information: the entities in the aperture
    acutPrintf( _T("%d apertured entities, "), input.pickedEntities().length() );
    acutPrintf( _T("%d nested apertured entities\n"), input.nestedPickedEntities().length() );

    // Show AutoSnap information
    // Note: nestedKeyPointEntities.length() == keyPointGsSelectionMark.length()
    //
    acutPrintf( _T("%d key point entities, "), input.keyPointEntities().length() );
    acutPrintf( _T("%d nested key point entities\n"), input.nestedKeyPointEntities().length() );
    acutPrintf( _T("%d alignment paths\n"), input.alignmentPaths().length() );

    // Add an additional comment to the tootip string
    //
    if ( NULL != input.tooltipString() )
    {
        output.setAdditionalTooltipString(_T(", Additional comment!"));
        acutPrintf( _T("Appending \"%s\" to \"%s\"\n"), _T(", Additional comment!"), input.tooltipString() );
    }
    else
        acutPrintf( _T("Tooltip is NULL\n") );

    acedPostCommandPrompt();
    return Acad::eOk;
}

bool
AsdkInputPointMonitor::excludeFromOsnapCalculation (const AcArray<AcDbObjectId>& nestedEntity, INT_PTR gsSelectionMark)
{
    acutPrintf( _T("\nExcludeFromOsnapCalculation called on monitor...\n") );
    acutPrintf( _T("%d nested entities under cursor\n"), nestedEntity.length() );
    return false;
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2018-3-26 21:52:04 | 显示全部楼层
创建点监视器了,怎么和拖动实体联系起来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 06:38 , Processed in 0.197411 second(s), 57 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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