返回介绍

修改对象颜色

发布于 2023-08-09 23:10:33 字数 1915 浏览 0 评论 0 收藏 0

上一节中:函数McDbObjectId CreateLine1(McGePoint3d pt1,McGePoint3d pt2)会返回新绘制的对象id。

// -------------------------------------------------------------------------
// Summary:
//      改变实体颜色
// Parameters:
//      id          -   实体的id
//      color       -   实体的新颜色
// Returns:
//      成功返回true
// -------------------------------------------------------------------------
bool ChangeColor(McDbObjectId id,const McCmColor& color)
{
    // 用智能指针打开对象,写方式打开。智能指针会自动关闭对象.
    McDbObjectPointer spEnt(id,McDb::kForWrite);
    if(spEnt.openStatus() != Mcad::eOk)
    {
        // 如果对象,在其它地方打开,就会打开的失败.
        return false;
    }
 
    // 设置对象颜色
    spEnt->setColor(color);
 
    return true;
}

COM接口调用方式,如C#代码:

        // -------------------------------------------------------------------------
        // Summary:
        //         改变实体颜色
        // Parameters:
        //         id            -    实体的id.
        //         iR,  iG,iB    -   实体的颜色
        // Returns:
        //         成功返回true
        // -------------------------------------------------------------------------
        bool ChangeColor(Int64 id,int iR,int iG,int iB)
        {
            // 由id得到实体对象.
            MxDrawEntity ent = (MxDrawEntity)axMxDrawX1.ObjectIdToObject(id);
            if (ent == null)
                return false;
            MxDrawMcCmColor color = new MxDrawMcCmColor();
            color.SetRGB(iR, iG, iB);
 
            // 设置实体颜色。
            ent.TrueColor = color;
            return true;
        }

COM接口调用方式,如js代码:

        // 向当前空间增加直线 newline 是增加的新直线。
	var newline = curSpace.AddLine(point1.x,point1.y,point2.x,point2.y);

	var color = MxDrawXCtrl_Obj.NewComObject("IMxDrawMcCmColor");
	color.SetRGB(255,77,0);
	newline.TrueColor = color;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文