victor_hee 发表于 2002-8-8 16:52:00

please help me!!!!!

各位大虾:
    请帮帮我!
    我怎么把我的选择集放入我的属性块定义中?
                                 谢谢
                                 victor

wxj351 发表于 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();//关闭实体

victor_hee 发表于 2002-8-9 18:05:00

致教师!

教师:
    你所说的我知道,但我现在想把我在CAD界面所选择的选择集放到我的属性块定义里边!而你是画一条直线放进去的。请在帮帮我!谢谢!!

wxj351 发表于 2002-8-10 02:16:00

re

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

victor_hee 发表于 2002-8-10 19:02:00

re: 教师

那你能不能把我这个程序编出来?不胜感激!老板催我!!!

wxj351 发表于 2002-8-11 00:48:00

sorry!

页: [1]
查看完整版本: please help me!!!!!