乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 43|回复: 2

【求助】如何修改图层名称

[复制链接]

20

主题

51

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
131
发表于 2014-7-24 00:22:00 | 显示全部楼层 |阅读模式
已知“图层1”存在,如何修改名称为“图层2”,我简单写了个命令,执行就死机,不知道什么情况?请各位不吝赐教。
        // - OperateLayer._ChangeLayer command (do not rename)
        static void OperateLayer_ChangeLayer(void)
        {
                // Add your code for command OperateLayer._ChangeLayer here
                AcDbLayerTable *pLayerTbl;
                AcDbObjectId layerId;
                AcDbLayerTableRecord *pLayerRecord;
                ACHAR *layerName=new ACHAR[100];
                if (acdbCurDwg()->getLayerTable(pLayerTbl,AcDb::kForRead)!=Acad::eOk)
                {
                        pLayerTbl->close();
                        ads_printf(_T("\n错误:打开层表出错! \n"));
                        return;
                }
                //获取层表记录               
                layerName=_T("图层1");
                if (pLayerTbl->getAt(layerName,pLayerRecord,AcDb::kForWrite) != Acad::eOk)
                {
                        pLayerTbl->close();
                        ads_printf(_T("\n错误:获取层表记录出错! \n"));
                        return;
                }
               
                //修改层名
                layerName=_T("图层2");
                pLayerRecord->setName(layerName);
                //获取层表记录ID
               
                if (pLayerTbl->getAt(layerName,layerId,false) != Acad::eOk)
                {
                        pLayerTbl->close();
                        ads_printf(_T("\n错误:获取层表记录出错! \n"));
                        return;
                }
               
                //设置当前层
                acdbCurDwg()->setClayer(layerId);
                delete layerName;
                pLayerTbl->close();
                pLayerRecord->close();
                return;
        }
回复

使用道具 举报

2

主题

165

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
173
发表于 2014-7-25 14:51:00 | 显示全部楼层
//获取层表记录               
                layerName=_T("图层1");
这个是不对的
字符串的初始化,
_tcscpy( layerName, _T("..."));
回复

使用道具 举报

20

主题

51

帖子

5

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
131
发表于 2014-7-26 14:21:00 | 显示全部楼层
谢谢,问题已经解决
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 05:03 , Processed in 0.199118 second(s), 58 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表