找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 609|回复: 14

[求助]:如何实现块插入前的预览功能

[复制链接]
发表于 2005-5-27 09:13:27 | 显示全部楼层 |阅读模式

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

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

×
在AcDbBlockReference使用时,无法预览到插入的块的图像,请教高手有什么办法在插入前可以预览到块的图像.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2005-5-27 20:03:18 | 显示全部楼层
使用Jig
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-5-28 12:31:33 | 显示全部楼层
binbin大哥,都知道用jig,可是把论坛的帖子翻了个遍都没有个可以用的参考源码。希望各位高手能够帮助我们这些新手,少走些弯路!!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-5-28 15:36:30 | 显示全部楼层
真的很希望有热心人能帮助一下,对于新手来说,搞懂这些还真不是件易事。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-5-30 15:47:13 | 显示全部楼层
//多谢各位大哥的帮助,让我增长了不少知识,我从网上找了这样一个例子,大家看看还有什么不妥之处,希望能起到抛砖引玉的效果。
#include "StdAfx.h"
#include "StdArx.h"
#include "dbents.h"
#include "actrans.h"

void indrag();
// This is command 'JINGTEST'
void ZzpCommand()
{
        indrag();
}
//-----------------------------------------------------------------------------

void ident_init(ads_matrix id)
{
    int i, j;

    for (i=0; i<=3; i++)
        for (j=0; j<=3; j++)
            id[j] = 0.0;
        for (i=0; i<=3; i++)
                        id = 1.0;
}

int sample_fcn(ads_point usrpt,ads_matrix matrix)
{
        ident_init(matrix);
        matrix[0][T] = usrpt[X];
    matrix[1][T] = usrpt[Y];
    matrix[2][T] = usrpt[Z];
        return RTNORM;
}

int Draggen(ads_name ssname,CString strPrompt,ads_point pt,ads_point ptRet,int nCursor)
{
        LONG sslength;
        if(ads_sslength(ssname,&sslength)!=RTNORM)
        {  
                AfxMessageBox("ads_sslength is faile!");
                return -1;
        }  
        return ads_draggen(ssname,strPrompt,nCursor,sample_fcn,ptRet);
}

void indrag()
{
        AcDbDatabase *pDwg =new AcDbDatabase (Adesk::kFalse) ;
        Acad::ErrorStatus es;
        es=pDwg->readDwgFile ("C:\\c.dwg") ;

        if(es==Acad::eOk)
        {
                AfxMessageBox("readDwgFile Successful!");
                //return;
        }
        AcDbObjectId blockId ;

        es = acdbHostApplicationServices()->workingDatabase()->insert(blockId, LPCTSTR(""), pDwg);
        if ( es != Acad::eOk )
                AfxMessageBox ("插入块错误.") ;
        delete pDwg ;

        AcDbObjectId idBlock;
        AcDbBlockReference*  pBlock=new AcDbBlockReference;
        AcGePoint3d ptCenter=AcGePoint3d(0,0,0);
        pBlock->setPosition(ptCenter);
        pBlock->setBlockTableRecord(blockId);

        AcDbDatabase* pDb=NULL;
        AcDbObjectId idNew=AcDbObjectId::kNull;
        if(pDb==NULL)
                pDb=acdbHostApplicationServices()->workingDatabase();
        AcDbBlockTable *pTable=NULL;
        Acad::ErrorStatus Error=pDb->getBlockTable(pTable, AcDb::kForRead);
        if(pTable==NULL)
        {
                AfxMessageBox("块表打开错误!");
                return;
        }
        AcDbBlockTableRecord *pRecord=NULL;
        Error=pTable->getAt(ACDB_MODEL_SPACE,pRecord,AcDb::kForWrite);
        pTable->close();
        if(pRecord==NULL)
        {
                AfxMessageBox("块纪录打开错误!");
                return;
        }
        Error=pRecord->appendAcDbEntity(idBlock,pBlock);
        pRecord->close();
        pBlock->close();

        actrTransactionManager->flushGraphics();
        ads_name dragname;
        ads_ssadd(NULL,NULL,dragname);
        ads_name locname;
        es=acdbGetAdsName(locname,idBlock);
        ads_redraw(locname,2);
        ads_ssadd(locname,dragname,dragname);
        ads_ssfree(locname);  

        if(es!=Acad::eOk)
                AfxMessageBox("acedGetAdsName fail!");
        ads_point pt,ptRet;
        pt[X]=ptCenter.x;
        pt[Y]=ptCenter.y;
        pt[Z]=ptCenter.z;
        int nReturn=Draggen(dragname,"请选择插入点:",pt,ptRet,0);

        if(nReturn!=RTNORM)
        {
                ads_ssfree(dragname);
        }

        AcGeMatrix3d xform;
        xform.setToTranslation(AcGeVector3d(ptRet[X]-pt[X],ptRet[Y]-pt[Y],ptRet[Z]-pt[Z]));
        ads_xformss(dragname,xform.entry);
        ads_ssfree(dragname);
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

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

使用道具 举报

 楼主| 发表于 2005-5-31 16:44:13 | 显示全部楼层
回10楼兄弟:http://www.easylou.com/bbs/dispbbs.asp?boardid=8&id=74
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

发表于 2005-10-15 17:24:17 | 显示全部楼层
AcEdJig不是处理动态拖动一类的功能吗?看来我还要去看一下了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-16 08:42:34 | 显示全部楼层
8楼楼主的代码好像是我写的呀!谢谢支持,我会再接再厉的
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2005-10-16 17:05:59 | 显示全部楼层
CAD2006工具选项板可以看到图块图像,图块插入也很方便.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-23 00:28 , Processed in 0.229322 second(s), 58 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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