其他分享
首页 > 其他分享> > CAD.NET二次开发过程中的记录

CAD.NET二次开发过程中的记录

作者:互联网

一、关于块的坐标转换

                    
//以块基点为起点,X轴方向镜像块
using (var plane = new Plane(reference.Position, Vector3d.XAxis.TransformBy(ed.CurrentUserCoordinateSystem))) { reference.TransformBy(Matrix3d.Mirroring(plane)); }
//获取块内除标注外的图元的包围框,注意结果需要按照brf.BlockTransform 属性进行变换
//注意:extend必须初始化,否则变换结果不准确
            var btr = brf.BlockTableRecord.GetObject<BlockTableRecord>();
            //获取边界包围盒
            foreach (var itemId in btr)
            {
                var ent = itemId.GetObject();
                if (!(ent is RotatedDimension))
                    extend.AddExtents((ent as Entity).GeometricExtents);
                if (ent is Circle)
                    HasCircle = true;
                ent.Dispose();
            }
            extend.TransformBy(brf.BlockTransform);

 

标签:reference,extend,var,ent,TransformBy,二次开发,brf,NET,CAD
来源: https://www.cnblogs.com/taogeli/p/15420307.html