找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 804|回复: 4

[求助]:如何做一个闭合多义线内的实体选择集

[复制链接]
发表于 2002-12-17 09:08:28 | 显示全部楼层 |阅读模式

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

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

×
我想将某一个闭合多义线包含的所有实体做一个选择集,希望大家能够推荐好的做法。
我初步是这样想的,首先获得多义线的各点,然后,好象可以将这些点做的链表,再用这个点的链表构成选择集。
但是我对链表的操作不是很懂,不知道怎么将这些点给串起来,指针没学好啊!麻烦给我示范一下,谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2002-12-17 11:51:11 | 显示全部楼层
简单的用lisp
(ssget [sel-method] [pt1 [pt2]] [pt-list] [filter-list])
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-12-17 13:09:38 | 显示全部楼层
用:AcGeCurve3d::getSamplePoints 得到样本点数组,然后转换成resbuf 链表,作为ads_ssget 的 CP,WP的参数。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

发表于 2002-12-17 15:55:24 | 显示全部楼层

用AcGePoint2d(3d)Array生成链表


  1. struct resbuf* BuildRb_AcGePtArray(const AcGePoint2dArray& ptArray)
  2. {
  3.         struct resbuf *retRb=NULL;
  4.         int arrayLen=ptArray.length();
  5.         if(arrayLen<2)
  6.                 return retRb;
  7.         ads_point adsPt;
  8.         adsPt[X]=ptArray.at(0).x;
  9.         adsPt[Y]=ptArray.at(0).y;
  10.         struct resbuf *tmpRb=NULL,*nextRb=NULL;
  11.         retRb=nextRb=acutBuildList(RTPOINT,adsPt,RTNONE);
  12.         for(int i=1;i<arrayLen;i++)
  13.         {
  14.                 adsPt[X]=ptArray.at(i).x;
  15.             adsPt[Y]=ptArray.at(i).y;
  16.                 tmpRb=acutBuildList(RTPOINT,adsPt,RTNONE);
  17.                 nextRb->rbnext=tmpRb;
  18.                 nextRb=nextRb->rbnext;
  19.         }
  20.         return retRb;
  21. }
复制代码

注意AcGePointArray里不能有重点,否则用链表生成选择集失败。
不知道是怎么回事:(
奇怪,我按XD说的代码保持格式缩进的方法做了阿?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-12-17 16:23:37 | 显示全部楼层
多谢各位!
但是还有个问题:
我用getSamplePoints(
    double fromParam,
    double toParam,
    double approxEps,
    AcGePoint2dArray& pointArray,
    AcGeDoubleArray& paramArray) const;
取样本点,fromParam用的是起点参数, toParam,用的是终点参数,
//起点、终点
        pGeCurve->hasStartPoint(startPnt);
        pGeCurve->hasEndPoint(endPnt);
//起点、终点参数
        AcGeTol tol = AcGeContext::gTol;
        startParam = pGeCurve->paramOf(startPnt,tol);
        endParam = pGeCurve->paramOf(endPnt,tol);
取出来的fromParam、toParam都等于0.0(是不是有问题,这里多义线是封闭的);
这样取得的样本点只有一个(重合的startPnt,endPnt),显然是不对的,不知道该怎么做了!
另外approxEps该取多少合适?
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-28 11:18 , Processed in 0.313594 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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