cad二次 开发 修改块的颜色_[CAD二次开发]沙场秋点兵——CAD中的块(二)

    今天是本篇内容的第二节,在上一节的基础上继续排兵布阵,来扩充在CAD二次开发中可能用到的图块。这一节介绍一下属性块,属性块与普通的图块相比,多了一个字典作为一组属性来存储信息。我们在图纸中看到的这种表格就是一个属性块:

922748988b0ffd63034e26630620ef58.png

    这是一个自控设计中代表一个可燃气体探测器标注信息的图块,其中TAG代表位号,EL是安装标高,JB是接线箱号,MED是检测介质,我们可以在增强属性编辑器中编辑对应的值来标注探测器的信息。这里的属性是一个字典,也就是一组键值对,这里的值属于AttributeDefinition类,它派生自DBText

91ba47efeb96fdefabd6e6ef168f1008.png

    它的构造函数里面:position代表该数值显示的位置;value是数值;tag是标签,即属性的名称;prompt是提示信息,可以再增强属性编辑器中起到提示作用;style是显示值的文字的特性。

    这一节的目标是封装方法并且注册命令,来制作一个类似的属性块,可能代码比较多,限于篇幅,部分代码的解释详见注释。

    首先封装方法,为块表记录添加属性,作为ObjectId的拓展方法,同时需要一个列表存储插入的属性,代码如下:

//为块表记录添加属性public static void AddAttsToBlock(this ObjectId blockId, List atts){
        Database db = blockId.Database;//获取数据库对象    //打开块表记录为写的状态    BlockTableRecord btr = (BlockTableRecord)blockId.GetObject(OpenMode.ForWrite);    //遍历属性定义对象列表    foreach (AttributeDefinition att in atts)    {
            btr.AppendEntity(att);//为块表记录添加属性        db.TransactionManager.AddNewlyCreatedDBObject(att, true);//事务处理    }    btr.DowngradeOpen();//为了安全,将块表记录的状态改为读}

    老规矩,这里重载方法,使其可以接受很多属性而不需要转换为列表:

public static void AddAttsToBlock(this ObjectId blockId, params AttributeDefinition[] atts){
        blockId.AddAttsToBlock(atts.ToList());}

    接下来插入属性块参照的方法,上一节介绍的插入简单块的方法是一个没有返回值的方法,这里因为需要插入属性,所以需要块定义的ObjectId来传递,所以这里以ObjectId为返回类型,返回添加的块参照的Id以便之后的使用:

public static ObjectId InsertBlockReference(this ObjectId spaceId, string layer, string blockName, Point3d position, Scale3d scale, double rotateAngle){
        ObjectId blockRefId;//存储要插入的块参照的Id    Database db = spaceId.Database;//获取数据库对象    //以读的方式打开块表    BlockTable bt = (BlockTable)db.BlockTableId.GetObject(OpenMode.ForRead);    //如果
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,我之前的回答有误,云沙场App不是卖沙子的应用,而是一个针对开发者的云服务平台,主要提供以下功能: 1. 云端开发环境:云沙场App提供了完整的云端开发环境,可以直接在平台上进行编码、调试和测试等工作,无需本地安装开发环境,提高了开发效率和灵活性。 2. 多语言支持:云沙场App支持多种编程语言,包括Java、Python、Node.js等,开发者可以根据自己的需求选择最适合自己的语言进行开发。 3. 云端存储服务:云沙场App提供了云端存储服务,可以将开发者的数据和文件保存在云端,方便进行管理和分享。 4. 云端部署服务:云沙场App提供了云端部署服务,可以将开发者的应用程序直接部署到云端,方便用户的访问和使用。 5. 云端运行监控:云沙场App提供了云端运行监控服务,可以监控应用程序的运行状态,及时发现和解决问题,保证了应用程序的稳定性和可靠性。 6. 云端数据库:云沙场App提供了云端数据库服务,包括MySQL、MongoDB、Redis等多种类型的数据库,方便开发者进行数据存储和管理。 7. 云端API管理:云沙场App提供了云端API管理服务,可以方便地管理和发布API,提高了开发效率和API的可靠性。 总的来说,云沙场App为开发者提供了一站式的云服务,方便快捷地进行开发和部署,大大提高了开发效率和灵活性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值