找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 1095|回复: 6

[ARX程序]:选择交于一点的直线?

[复制链接]
发表于 2002-5-13 21:35:37 | 显示全部楼层 |阅读模式

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

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

×
二条直线交于一点,通过选择交点而得到此二直线的ID
或HANDLE的程序如何实现?
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 13个

财富等级: 恭喜发财

发表于 2002-5-14 00:54:06 | 显示全部楼层
你可以通过ads_ssget构造一个CP选择集,窗口可以用系统变量aperture(捕捉耙框)大小自己建4个点。然后通过过滤条件选择你的实体。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-5-14 21:11:45 | 显示全部楼层
我构造的选择集如下:
Pt为点,&eb表达的是LINE
acedSSGet(NULL,Pt,NULL,&eb,ssname);
想选择通过Pt的几条相交直线,
但结果acedSSLen(ssname,long &len)总为1
问题出在那里呢?
另外,你所说的窗口是什么东东?
谢谢!
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2002-5-15 21:36:00 | 显示全部楼层
我的选择集:
    ads_name ssname;
    char sbuf[10];
    strcpy(sbuf,"LINE");
    struct resbuf eb;
    eb.restype=0;
    eb.resval.rstring=sbuf;
    eb.rbnext=NULL;
    acedSSGet(NULL,joinPt,NULL,&eb,ssname);
测试其长度:
        long len;
        acedSSLength(ssname,&len);
        acutPrintf("\n%d\n",len) ;
len老等于1
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 145个

财富等级: 日进斗金

发表于 2002-5-17 15:02:29 | 显示全部楼层
最初由 bluesolar 发布
[B]我的选择集:
    ads_name ssname;
    char sbuf[10];
    strcpy(sbuf,"LINE");
    struct resbuf eb;
    eb.restype=0;
    eb.resval.rstring=sbuf;
    eb.rbnext=NULL;
    acedSSGet(NULL,joinPt,... [/B]


1、构造过一个点的选择集

   你用ads_ssget 的CP选项,窗口的四个顶点,你用系统变量aperture的值(当前的捕捉窗口的大小),这也是AUTOCAD的实体捕捉用的原理。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

使用道具 举报

已领礼包: 13个

财富等级: 恭喜发财

发表于 2002-5-18 04:07:21 | 显示全部楼层
最初由 XDSoft 发布
[B][QUOTE]最初由 bluesolar 发布
[B]我的选择集:
    ads_name ssname;
    char sbuf[10];
    strcpy(sbuf,"LINE");
    struct resbuf eb;
    eb.restype=0;
    eb.resval.rstring=sbuf;
    eb.... [/B]


补充点:

你根据系统变量aperture得到捕捉框的高度,然后用系统变量screensize得到当前视口的X,Y最大值,根据系统变量VIEWSIZE得到视口的高度值H,然后根据捕捉框的高度,X,Y值和屏幕的高度H得到“捕捉框”的真实高度,然后根据你的点算出捕捉框的四个顶点来,这样的话,不管你的视口缩放到多大,多小,你都能正确的得到捕捉框的高度,从而正确的得到选择集。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-25 01:33 , Processed in 0.419546 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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