找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2809|回复: 6

[分享]:生成图层和设置线型(类型、颜色、线宽)

[复制链接]
发表于 2006-5-26 16:10:46 | 显示全部楼层 |阅读模式

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

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

×
和大家一起分享生成图层和设置线型(类型、颜色、线宽)的简单东东。

        AcDbLayerTable *pLayerTable;
        acdbCurDwg()->getLayerTable(pLayerTable, AcDb::kForWrite);   

    AcDbLayerTableRecord *pLayerTableRecord1 = new AcDbLayerTableRecord;
        AcDbLayerTableRecord *pLayerTableRecord2 = new AcDbLayerTableRecord;
        AcDbLayerTableRecord *pLayerTableRecord3 = new AcDbLayerTableRecord;
        AcDbLayerTableRecord *pLayerTableRecord4 = new AcDbLayerTableRecord;
        AcDbLayerTableRecord *pLayerTableRecord5 = new AcDbLayerTableRecord;
        AcDbLayerTableRecord *pLayerTableRecord6 = new AcDbLayerTableRecord;

                     pLayerTableRecord1->setName("A");
        pLayerTableRecord2->setName("B");
        pLayerTableRecord3->setName("C");
        pLayerTableRecord4->setName("D");
        pLayerTableRecord5->setName("E");
        pLayerTableRecord6->setName("F");

        AcCmColor color;
        color.setColorIndex(1);
        pLayerTableRecord1->setColor(color);
        pLayerTableRecord1->setLineWeight(AcDb::LineWeight::kLnWt018);//

        color.setColorIndex(5);
        pLayerTableRecord2->setColor(color);
        pLayerTableRecord2->setLineWeight(AcDb::LineWeight::kLnWt050);

        color.setColorIndex(4);
        pLayerTableRecord3->setColor(color);
        pLayerTableRecord3->setLineWeight(AcDb::LineWeight::kLnWt018);

        color.setColorIndex(6);
        pLayerTableRecord4->setColor(color);
        pLayerTableRecord4->setLineWeight(AcDb::LineWeight::kLnWt018);

        color.setColorIndex(3);
        pLayerTableRecord5->setColor(color);
        pLayerTableRecord5->setLineWeight(AcDb::LineWeight::kLnWt018);

        color.setColorIndex(2);
        pLayerTableRecord6->setColor(color);
        pLayerTableRecord6->setLineWeight(AcDb::LineWeight::kLnWt018);

        AcDbLinetypeTable *pLinetypeTbl;       
        AcDbObjectId DashedLineId, CenterLineId,DivideLineId;

        acdbCurDwg()->getLinetypeTable(pLinetypeTbl,AcDb::kForRead);

    if ((pLinetypeTbl->getAt("DASHED",DashedLineId))!=Acad::eOk);
        {
                pLinetypeTbl->close();
                acdbCurDwg()->loadLineTypeFile("DASHED","acadiso.lin");
                acdbCurDwg()->getLinetypeTable(pLinetypeTbl,AcDb::kForRead);
                pLinetypeTbl->getAt("DASHED",DashedLineId);
        }
        if ((pLinetypeTbl->getAt("CENTER",CenterLineId))!=Acad::eOk);
        {
                pLinetypeTbl->close();
                acdbCurDwg()->loadLineTypeFile("CENTER","acadiso.lin");
                acdbCurDwg()->getLinetypeTable(pLinetypeTbl,AcDb::kForRead);
                pLinetypeTbl->getAt("CENTER",CenterLineId);
        }
        if ((pLinetypeTbl->getAt("DIVIDE",DivideLineId))!=Acad::eOk);
        {
                pLinetypeTbl->close();
                acdbCurDwg()->loadLineTypeFile("DIVIDE","acadiso.lin");
                acdbCurDwg()->getLinetypeTable(pLinetypeTbl,AcDb::kForRead);
                pLinetypeTbl->getAt("DIVIDE",DivideLineId);
        }

        pLinetypeTbl->close();
        pLayerTableRecord1->setLinetypeObjectId(CenterLineId);
        pLayerTableRecord4->setLinetypeObjectId(DashedLineId);
        pLayerTableRecord5->setLinetypeObjectId(DivideLineId);

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

使用道具 举报

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

使用道具 举报

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

使用道具 举报

发表于 2014-10-16 19:09:54 | 显示全部楼层
要是把acdbCurDWg()换成pDb会更好,如下所示:
  方案一 AcDbDatabase *pDb=acdbCurDwg(); //该函数返回指向当前图形数据库的指针

  方案二 AcDbDatabase *pDb=acdbHostApplicationServices()->workingDatabase();
向楼主学习。{:soso_e179:}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 112个

财富等级: 日进斗金

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-21 08:14 , Processed in 0.201374 second(s), 44 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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