找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1992|回复: 9

[ARX程序]:关于AcDbObjectId 的问题

[复制链接]
发表于 2004-5-16 23:23:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
求教:将AcDbObjectId 类型以字符串输出后, 再从文件中读入,如何才能将读入的字符串再转回AcDbObjectId 类型呢?我是要从文件中读出实体AcDbText 信息,调用新建AcDbText 实体的函数,需要用到AcDbObjectId 类型的参数,但不知如何输入该参数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2004-5-17 00:09:20 | 显示全部楼层
To try an  unusual , but easy way (may be called C2C++ way):

class AcDbObjectId  only have a normal (un-static) protected  member_var:     unsigned  long mId;

So try to  In/Out the value of this member_var as below: (avoiding  protected limit)

unsigned  long   Tmp;
AcDbObjectId    Id;

memcpy( &Tmp, &Id,  sizeof(AcDbObjectId));   //   Id --> Tmp;

memcpy( &Id,  &Tmp, sizeof(AcDbObjectId));   //   Tmp --> Id;

then, you can use Tmp to In/Out  file.
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-17 10:49:40 | 显示全部楼层
thank you very much !
I will try it!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-17 11:09:32 | 显示全部楼层
其实有更简单的方法:使用AcDbObjectId 自己的成员函数就可以实现
long  id;
AcDbObjectId objId;
id=objId.asOldId();
objId.setFromOldId(id);
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-17 11:15:06 | 显示全部楼层
不错 我要的就是这个 !
真心感谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-17 12:28:22 | 显示全部楼层
還有你不能用ID輸出,你必須轉成Handle輸出,否則AutoCAD不認喔!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-17 23:16:07 | 显示全部楼层
我不知道如何将char *  型转为long型 ,因为从文本文件中读出来的就是字符串型的!
冒昧请问多一句,如何转成Handle 输出呢?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-18 09:19:39 | 显示全部楼层
查文檔!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2004-5-19 22:42:14 | 显示全部楼层
最初由 nnwu 发布
[B]我不知道如何将char *  型转为long型 ,因为从文本文件中读出来的就是字符串型的!
冒昧请问多一句,如何转成Handle 输出呢? [/B]


You can use atol():
long atol( const char *string );[/COLOR]

or you can use the function str2long()  defined as follow:


  1. long  str2long(const  char * lstr)
  2. {
  3.     char     *sp, cc;
  4.     long     value=0;

  5.     for (sp = lstr; *sp; sp++)
  6.     {
  7.          value *= 10;
  8.          cc = *sp;
  9.          if (cc >= '0'  && cc <= '9') {
  10.               value += cc - '0';
  11.          } else {
  12.             // Error....
  13.         }
  14.     }
  15.      return  value;
  16. }

复制代码
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2004-5-19 23:15:36 | 显示全部楼层
谢谢大家了 我的毕业设计的最后几个问题也差不多解决了 多亏了大家的帮助啊!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 17:25 , Processed in 0.245342 second(s), 49 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表