明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1903|回复: 5

[求助]已知一线形ID,如何将其加入到线形表中

[复制链接]
发表于 2003-8-27 10:28:00 | 显示全部楼层 |阅读模式
高手:
    我已知一线形ID,如何将其加入到线形表中,查看下列代码哪里有错?万分感谢!
{
pDb->loadLineTypeFile(LinetypeName,"Acadiso.lin");
pLinetypetable->getAt(LinetypeName,linetypeid);
acdbOpenObject(pLinetypeTableRecord,linetypeid,AcDb::kForRead);
pLinetypetable->add(pLinetypeTableRecord);
}
LinetypeName为已知线形名,位于Acadiso.lin中。
发表于 2003-8-27 11:53:00 | 显示全部楼层
当你调用loadLineTypeFile()后,若返回Acad::eOk,LineTypeName线型就已经加入到线型表中去了。getAt()函数得到的线型ID用于给图元对象或者图层指定线型。
 楼主| 发表于 2003-8-29 09:26:00 | 显示全部楼层
可是上述代码acdbOpenObject(pLinetypeTableRecord,linetypeid,AcDb::kForRead)有问题,第三个参数换成AcDb::kForwrite,或AcDb::kForNotify都不可以,如何修改.请高手指教.
发表于 2003-9-2 09:01:00 | 显示全部楼层
acdbOpenObject(pLinetypeTableRecord,linetypeid,AcDb::kForWrite);  //这样调用会出错。
目的是根据线型ID打开线型表记录,并准备修改线型记录,这样将修改你加载的线型。你的目的是这样吗?
如果是这样,你可以使用getAt()函数的另一个重载版本来得到可修改的线型表记录:
Acad::ErrorStatus AcDbLineTypeRecord::getAt( const char* entryName,
    AcDbLinetypeTableRecord*& pRec, AcDb::OpenMode openMode,
    bool openErasedRec = false) const;
例如:
AcDbLinetypeTableRecord* pLTypeRec;
pLinetypetable->getAt(LinetypeName,pLTypeRec,AcDb::kForWrite);
然后,你可以调用pLtypeRec指针指向的对象成员函数来修改线型。
 楼主| 发表于 2003-9-3 19:12:00 | 显示全部楼层
多谢,这个问题已经解决了。
发表于 2012-8-28 16:41:44 | 显示全部楼层
pLinetypetable->getAt(LinetypeName,pLTypeRec,AcDb::kForWrite);
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-29 01:31 , Processed in 0.168848 second(s), 24 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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