乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 136|回复: 8

请问如何获取对象的唯一标识的ID号

[复制链接]

17

主题

49

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
116
发表于 2014-3-4 22:59:00 | 显示全部楼层 |阅读模式
请问如何获取对象的唯一标识的ID号。想把对象关联到数据库,作为主键
回复

使用道具 举报

11

主题

2420

帖子

11

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2463
发表于 2014-3-5 08:38:00 | 显示全部楼层

vp4zo2xsgd2.GIF

vp4zo2xsgd2.GIF

Dxf 5
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2014-3-5 08:43:00 | 显示全部楼层
Handle   句柄
回复

使用道具 举报

17

主题

49

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
116
发表于 2014-3-5 09:47:00 | 显示全部楼层
可以了,非常感谢,可以获取唯一值了。
还想麻烦大侠解决一个问题,如何在程序中指定Handle值,获取对象。
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2014-3-5 10:08:00 | 显示全部楼层
handle可以换,不可以指定
回复

使用道具 举报

17

主题

49

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
116
发表于 2014-3-5 10:12:00 | 显示全部楼层
不好意思,可能我没说清楚
比如我现在获得的一条直线对象的handle是8C,如何通过8c这个值,获取直线这个对象,对这个对象进行操作
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2014-3-5 10:51:00 | 显示全部楼层
public Autodesk.AutoCAD.DatabaseServices.ObjectId GetObjectId(bool createIfNotFound, Autodesk.AutoCAD.DatabaseServices.Handle objHandle, int identifier)
    Autodesk.AutoCAD.DatabaseServices.Database 的成员
回复

使用道具 举报

32

主题

651

帖子

8

银币

中流砥柱

Rank: 25

铜币
779
发表于 2014-3-5 10:54:00 | 显示全部楼层
///
    /// 从句柄转换成ObjectId
    /// Version : 2010.03.29 Sieben
    ///
    /// 句柄,可以是Handle,string,int,long数据类型
    /// 成功返回句柄所对应的ObjectId,否则返回ObjectId.Null
    public static ObjectId HandleToObjectId(object handle)
    {
      try
      {
        if (handle == null) return ObjectId.Null;
        ObjectId tId2 = ObjectId.Null;
        if (handle is Handle)
          return sc.db.GetObjectId(false, (Handle)handle, 0);
        else if (handle is string)
        {
          string tStr = handle.ToString().Trim();
          if (tStr == "")
            return ObjectId.Null;
          else if (tStr == "0")
            return ObjectId.Null;
          else
          {
            long lNum = Convert.ToInt64(tStr, 16);
            if (lNum == 0L)
              return ObjectId.Null;
            else
              return sc.db.GetObjectId(false, new Handle(lNum), 0);
          }
        }
        else if (handle is int || handle is long)
        {
          long lNum = (long)handle;
          if (lNum == 0L)
            return ObjectId.Null;
          else
            return sc.db.GetObjectId(false, new Handle(lNum), 0);
        }
        else
          return ObjectId.Null;
      }
      catch
      {
        return ObjectId.Null;
      }
    }
回复

使用道具 举报

17

主题

49

帖子

8

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
116
发表于 2014-3-5 14:40:00 | 显示全部楼层
谢谢,我试试看!
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-13 23:13 , Processed in 0.579744 second(s), 84 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表