找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 897|回复: 14

请帮我解决这个问题

[复制链接]
发表于 2002-11-11 18:59:02 | 显示全部楼层 |阅读模式

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

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

×
我编写了如下面的一段代码:

  1. [FONT=century gothic]
  2. struct resbuf *rDim;
  3. ads_name sDim,sName;
  4. rDim=acutBuildList(
  5.                         -4,"< OR",
  6.                         -4,"< AND",
  7.                         RTDXF0,"DIMENSION",
  8.                         100,"AcDbRotateDimension",
  9.                         42,30.0,
  10.                         -4,"AND>",
  11.                         -4,"< AND",
  12.                         RTDXF0,"DIMENSION",
  13.                         100,"AcDbRotateDimension",
  14.                         42,120.0,
  15.                         -4,"AND>",
  16.                         -4,"< AND",
  17.                         RTDXF0,"DIMENSION",
  18.                         100,"AcDbRotateDimension",
  19.                         42,165.0,
  20.                         -4,"AND>",
  21.                         -4,"OR>"
  22.                         RTNONE);
  23.         if(rDim==NULL)
  24.         {
  25.                 acedAlert("不能创建链表");
  26.         }
  27.         long iCount;
  28.         acedSSGet("X",NULL,NULL,rDim,sDim);
  29.         acedSSName(sDim,0,sName);
  30.         acutRelRb(rDim);
  31.         for(int i=0;i<=2;i++)
  32.         {
  33.                 char *pText[3]={"60","180","240"};
  34.                 AcDbObjectId entID;
  35.                 AcDbEntity* pObj;
  36.                 Acad::ErrorStatus res;
  37.                 res=acdbGetObjectId(entID,sName);
  38.                 acdbOpenObject(pObj,entID,AcDb::kForWrite);
  39.                 ((AcDbDimension*) pObj)->setDimensionText(pText[i]);
  40.                 pObj->close();
  41.         }
  42. }
  43. 但是有一个问题就是pText[i]的内容和选择集构造的顺序对不上.比如要想改"60"的标注可能改成"180".不知道为什么.
  44. 请指教.谢谢!.[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-11 19:02:22 | 显示全部楼层
你的:

acedSSName(sDim,0,sName);

这个应该放到循环体里面吧?你现在在外面,循环体里面始终处理第一个0,实体啊。

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

使用道具 举报

 楼主| 发表于 2002-11-11 19:06:36 | 显示全部楼层

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

使用道具 举报

已领礼包: 192个

财富等级: 日进斗金

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

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

使用道具 举报

 楼主| 发表于 2002-11-12 21:28:30 | 显示全部楼层

是这样的

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

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-12 21:30:35 | 显示全部楼层

Re: 是这样的

最初由 zsbzsb 发布
[B]就是30改成60,120改成180,165改成240的顺序。 [/B]


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

使用道具 举报

发表于 2002-11-13 09:24:03 | 显示全部楼层
这样做会好一点:
定义一个AcDbObjectIdArray,new出你想要的标注,加到模型空间,把id放入id数组,再open改它,OK?明白了吗
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-13 09:29:51 | 显示全部楼层
选择集内实体的的顺序每次都是一样的吗?与实体的生成顺序相同的吗?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-11-13 09:50:56 | 显示全部楼层

是这样的

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

使用道具 举报

发表于 2002-11-13 10:19:28 | 显示全部楼层

不知道理解的对不对


  1. [FONT=courier new]
  2. struct resbuf *rDim=NULL;
  3. ads_name sDim,sName;
  4. double dimVal={30.0,120.0,165.0};
  5. char *pText[3]={"60","180","240"};
  6. AcDbObjectId entID;
  7. AcDbEntity* pObj=NULL;
  8. for(int i=0;i< sizeof(dimVal)/sizeof(dimVal[i]);i++)
  9. {
  10.     rDim=acutBuildList(RTDXF0,"DIMENSION",100,"AcDbRotateDimension",
  11.                                 42,dimVal[i],RTNONE);
  12.         if(rDim==NULL)
  13.         {
  14.                 acedAlert("不能创建链表");
  15.         }
  16.         long iCount;
  17.         acedSSGet("X",NULL,NULL,rDim,sDim);
  18.         acedSSLength(sDim,&iCount);
  19.         acutRelRb(rDim);
  20.         for(int j=0;j< =iCount;j++)
  21.         {
  22.                 acedSSName(sDim,j,sName);
  23.                 Acad::ErrorStatus res;
  24.                 res=acdbGetObjectId(entID,sName);
  25.                 acdbOpenObject(pObj,entID,AcDb::kForWrite);
  26.                 ((AcDbDimension*) pObj)->setDimensionText(pText[i]);
  27.                 pObj->close();
  28.         }
  29.         acedSSFree(sDim);
  30. }[/FONT]
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 192个

财富等级: 日进斗金

发表于 2002-11-13 17:11:25 | 显示全部楼层
选择集的顺序和实体生成的顺序相反
最后生成的是第一个
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-11-13 17:13:36 | 显示全部楼层
最初由 照猫画虎 发布
[B]选择集的顺序和实体生成的顺序相反
最后生成的是第一个 [/B]


程序还是别依据这个,生成的顺序看不出来,每个人怎么画都有自己的习惯,要用一个电脑知道的唯一的条件去做。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 192个

财富等级: 日进斗金

发表于 2002-11-15 13:42:12 | 显示全部楼层
既然知道以前的值,要替换为新值
就不要考虑选择集的顺序了
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-11-20 17:41:58 | 显示全部楼层
既然每个参数对应特定的实体标注,就应该给每个实体设置标记,这样才可知道把哪个参数给哪个实体。仅通过选择集,你是不知道该把参数给哪个实体的,除非在循环中获取当前实体的数据,来判断当前实体是不是将要幅值的那个实体。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 15:07 , Processed in 0.288942 second(s), 59 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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