明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1617|回复: 5

please help me!!!!!

[复制链接]
发表于 2002-8-8 16:52:00 | 显示全部楼层 |阅读模式
各位大虾:
    请帮帮我!
    我怎么把我的选择集放入我的属性块定义中?
                                 谢谢
                                 victor
发表于 2002-8-8 17:39:00 | 显示全部楼层

您的程序有几个概念错误。我给您一个标准程序。仅供参考。

AcDbBlockTable *pBlockTable;
    AcDbObjectId Id;
    double ht=5.0;
    acdbHostApplicationServices()->workingDatabase()
       ->getSymbolTable(pBlockTable, AcDb::kForWrite);//以写模式打开图块表
    AcDbBlockTableRecord *pBlockTableRecord=new AcDbBlockTableRecord;
        pBlockTableRecord->setName("表面粗糙度代号");
    pBlockTable->add(Id, pBlockTableRecord);//添加图块表记录
    pBlockTable->close();//关闭图块表
    AcDbLine* pLine1=new AcDbLine();//直线
    pLine1->setStartPoint(AcGePoint3d(0,0,0));
    pLine1->setEndPoint(AcGePoint3d(-sqrt(2.0)/2.0*ht,
        sqrt(6.0)/2.0*ht,0));
    AcDbLine* pLine2=new AcDbLine();//直线
    pLine2->setStartPoint(AcGePoint3d(0,0,0));
    pLine2->setEndPoint(AcGePoint3d(sqrt(2.0)*ht,sqrt(6.0)*ht,0));
    pBlockTableRecord->appendAcDbEntity(Id, pLine1);//添加实体返回ID
    pBlockTableRecord->appendAcDbEntity(Id, pLine2);//添加实体返回ID

    AcDbAttributeDefinition* pAttDef=new AcDbAttributeDefinition;
    pAttDef->setTag("表面粗糙度");
    pAttDef->setPrompt("请输入表面粗糙度的值:");
    pAttDef->setTextString("3.2");
    pAttDef->setPosition(AcGePoint3d(-sqrt(2.0)/2.0*ht,
         sqrt(6.0)/2.0*ht*1.3,0));
    pAttDef->setHeight(ht*0.8);
    pAttDef->setConstant(Adesk::kFalse);
    pAttDef->setInvisible(Adesk::kFalse);
    pAttDef->setPreset(Adesk::kFalse);
   
    pBlockTableRecord->appendAcDbEntity(Id, pAttDef);//添加实体返回ID

    pBlockTableRecord->close();//关闭图块表记录
    pLine1->close();//关闭实体
    pLine2->close();//关闭实体
    pAttDef->close();//关闭实体
 楼主| 发表于 2002-8-9 18:05:00 | 显示全部楼层

致教师!

教师:
    你所说的我知道,但我现在想把我在CAD界面所选择的选择集放到我的属性块定义里边!而你是画一条直线放进去的。请在帮帮我!谢谢!!
发表于 2002-8-10 02:16:00 | 显示全部楼层

re

我知道,你是要把选择的实体加上属性。
这里有几个概念需要明白:
1。属性只能和块连用。
2。块:在图块表中有缺省的两个图块表纪录:模型空间(ACDB_MODEL_SPACE)和图纸空间(ACDB_PAPER_SPACE)。用户也可以自己创建新的图块表纪录,即块也相当于是在AutoCAD使用的Block命令。
所以,你只能这样做;
1。选择对象。
2。判断对象的类型,和几何参数。
3。在新的图块表纪录中添加上述对象和属性。
4。删除原对象。
 楼主| 发表于 2002-8-10 19:02:00 | 显示全部楼层

re: 教师

那你能不能把我这个程序编出来?不胜感激!老板催我!!!
发表于 2002-8-11 00:48:00 | 显示全部楼层

sorry!

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

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-25 07:12 , Processed in 0.184963 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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