C# CAD坐标转换程序

C# CAD坐标转换程序


尚未解决的问题:
1、polyline2D和polyline3D这类图元如何获取节点坐标进行转换?
2、属性块怎么转换,比如像CASS高程点之类的数据?

using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Autodesk.AutoCAD.ApplicationServices;
using Autodesk.AutoCAD.EditorInput;
using Autodesk.AutoCAD.Runtime;
using Autodesk.AutoCAD.Geometry;
using Autodesk.AutoCAD.DatabaseServices;
using static System.Windows.Forms.VisualStyles.VisualStyleElement;
using System.Security.Cryptography;
using System.Reflection;
using System.Management;
namespace transfertoCGCS2000
{
   

    /// <summary>
    /// 转换坐标系
    /// ff;
    /// </summary>
    public class Class1
    {
   
        [CommandMethod("Ff")]
        public void Ff()
        {
   
            //打开数据表
            Database db = HostApplicationServices.WorkingDatabase;
            //打开事件
            using (Transaction tr = db.TransactionManager.StartTransaction())
            {
   

                    string strMac = string.Empty;
                    ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
                    ManagementObjectCollection moc = mc.GetInstances();
                    foreach (ManagementObject mo in moc)
                    {
   
                        if ((bool)mo["IPEnabled"] == true)
                        {
   
                            strMac = mo["MacAddress"].ToString();
                        }
                    }

                //打开块表记录
                try
                {
   
                    if (strMac == "K0:9A:48:02:93:D1")//比较mac地址是否匹配
                    {
   

                        BlockTableRecord btRecord = (BlockTableRecord)tr.GetObject(SymbolUtilityServices.GetBlockModelSpaceId(db), OpenMode.ForRead);
                        //打开图层
                        LayerTable acLyrTbl;
                        acLyrTbl = tr.GetObject(db.LayerTableId, OpenMode.ForWrite) as LayerTable;
                        LayerTableRecord acLyrTblRcd;
                        //解锁所有图层、打开所有图层
                        foreach (ObjectId id1 in acLyrTbl)
                        {
   
                            acLyrTblRcd = (LayerTableRecord)id1.GetObject(OpenMode.ForWrite);
                            if (acLyrTblRcd.IsOff == true)//打开图层
                            {
   
                                acLyrTblRcd.IsOff = false;
                            }
                            if (acLyrTblRcd.IsFrozen == true)//解冻图层
                            {
   
                                acLyrTblRcd.IsFrozen = false;
                            }
                            if (acLyrTblRcd.IsLocked == true)//解锁图层
                            {
   
                                acLyrTblRcd.IsLocked = false;
                            }

                        }
                        //新建文字输出
                        Editor editor = Autodesk.AutoCAD.ApplicationServices.Application
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值