Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/265.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 通过Matrix3d插入的块是否可以具有属性?_C#_Autocad - Fatal编程技术网

C# 通过Matrix3d插入的块是否可以具有属性?

C# 通过Matrix3d插入的块是否可以具有属性?,c#,autocad,C#,Autocad,你好 我正在尝试创建一个csharp程序,以便在Autocad图形中插入多个块,每个块具有不同的插入点。为了简单起见,给定的块是另一个图形,我正在使用矩阵插入,我将在下面粘贴。 问题是我引入的块具有文本属性,我需要我的程序能够更改这些属性 在我插入块属性时,是否有办法继续使用下面的插入方法,同时仍能编辑块属性?然后在第二次插入时对其进行不同的编辑 using (tr) { Vector3d blockDisplacement1 = new

你好

我正在尝试创建一个csharp程序,以便在Autocad图形中插入多个块,每个块具有不同的插入点。为了简单起见,给定的块是另一个图形,我正在使用矩阵插入,我将在下面粘贴。 问题是我引入的块具有文本属性,我需要我的程序能够更改这些属性

在我插入块属性时,是否有办法继续使用下面的插入方法,同时仍能编辑块属性?然后在第二次插入时对其进行不同的编辑

        using (tr)
        {
            Vector3d blockDisplacement1 = new Vector3d(ptInsert.Value.X, ptInsert.Value.Y, ptInsert.Value.Z);

            double blockScale = 1.0;

            string blockPath = @"T:\test.dwg";

            Database tmpDb = new Database(false, true);
            tmpDb.ReadDwgFile(blockPath, System.IO.FileShare.Read, true, "");

            Matrix3d Transform = Matrix3d
                        .Scaling(blockScale, Point3d.Origin)
                        .PreMultiplyBy(Matrix3d.Displacement(blockDisplacement1))
                        .PreMultiplyBy(ed.CurrentUserCoordinateSystem);

            db.Insert(Transform, tmpDb, true);

            tr.Commit();
            tr.Dispose();
        }
    }

这绝对有可能。将块插入激活图形后,可以修改现有属性值或打开块表记录并添加全新的图元

以下是几篇博客文章,让您开始学习: