乐筑天下

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

在线求助各位高手 选择集的操作

[复制链接]

23

主题

30

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
122
发表于 2003-1-13 16:34:00 | 显示全部楼层 |阅读模式
我现在有一选择集,比如是有一些正交的线段组成,我现在要把各线段的端点移动到交点上去,请问,我如何遍历选择集的各实体并编辑之?
  希望高手提供思路一二,不胜感激
  谢谢!!!!!
回复

使用道具 举报

14

主题

230

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
286
发表于 2003-1-14 08:42:00 | 显示全部楼层
首先假定你的选择集为 ads_name e;(用acedSSGet或acedSSAdd函数获得)
利用acedSSLength()可获得选择集内实体数;用acedSSName()获得指定位置的实体。注意:这两个函数都应该使用long类型参数!
代码例子:
ads_name e;
......//获取选择集代码略
ads_name ent;  //这个变量用于存放选择集内实体
long iLen;
if(acedSSLength(e,&iLen)!=RTNORM)
  {  acutPrintf("\n获取选择集长度出错!");
    return;  }
for(long i=0;i<=iLen;i++)
{
   if(acedSSName(e,i,ent)!=RTNORM)
  { acutPrintf("\n获取选择集内第%d个实体出错!",i);
    return;     }
   ...../*现在你可以使用ads_name ent;若要使用AcDb类库,用acdbGetObjectId()函数获取实体ID,用acdbOpenObject()函数获取AcDb实体*/
}
回复

使用道具 举报

23

主题

30

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
122
发表于 2003-1-14 08:57:00 | 显示全部楼层
思路已知,谢谢,问题是在操作实体时的各种小问题,对于这种经验的东西,不知道有何参考?
另外,我现在有一直线(Line),同时该直线和其他直线有实交点、虚交点,我要首先找出各实交点,并利用交点把直线阿打断,并操作各线段,曾问过一人,只是提了一些思路,但想知道具体函数,请教?
回复

使用道具 举报

14

主题

230

帖子

5

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
286
发表于 2003-1-14 09:44:00 | 显示全部楼层
求交点的函数:(要使用AcDb类库)
Virtual Acad::ErrorStatus AcDbEntity::intersectWith(const AcDbEntity* ent,AcDb::intersect intType,AcGePoint3dArray& points,int thisGS=0,int otherGS=0) const;
该函数用于求解图形中两个实体间的交点。调用它时,要提供求交操作的另一个实体及求交点的方式,由points参数返回交点数组。其中求交点的方式可取以下值:kOnBothOperands(在两个实体上,即不延长对象,求实交点)、kExtendThis(延长调用者对象)、kExtendArg(延长目标对象)、kExtendBoth(两个对象都延长)。
该函数的最后两个参数用于指定自定义对象的GS标志,求直线交点不需要。
ARX不提供现成的打断函数,打断直线可用修改一条线,再添加一条线来完成操作。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

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

GMT+8, 2024-11-22 07:18 , Processed in 0.146737 second(s), 60 queries .

© 2020-2024 乐筑天下

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