明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1459|回复: 6

求救啊!?

[复制链接]
发表于 2005-1-5 08:17:00 | 显示全部楼层 |阅读模式
我想在一个图元周围选择其他图元,但又不包括图元本身,有什么方法可以实现呢?
发表于 2005-1-5 10:14:00 | 显示全部楼层
用窗选,然后remove即可。
 楼主| 发表于 2005-1-5 11:54:00 | 显示全部楼层
我不是这个意思!我是问怎样除开那个图元,例如:我要搜索某一点周围一定范围内的其它点,但不包括这点!怎样实现呢?谢了!
发表于 2005-1-5 13:33:00 | 显示全部楼层
Sub test() Dim pt As AcadPoint
Dim point As Variant
Dim minCorner As Variant
Dim maxCorner As Variant
Dim size As Double
Dim entry As AcadEntity
Dim item(0) As AcadEntity
Dim sset1 As AcadSelectionSet
Dim sset2 As AcadSelectionSet
Dim FType(0) As Integer
Dim FData(0) As Variant

FType(0) = 0: FData(0) = "Point"
point = ThisDrawing.Utility.GetPoint()
Set sset1 = ThisDrawing.SelectionSets.Add("Point1")
sset1.SelectAtPoint point, FType, FData
Set item(0) = sset1(0)

size = 10
minCorner = point: minCorner(0) = minCorner(0) - size: minCorner(1) = minCorner(1) - size
maxCorner = point: maxCorner(0) = maxCorner(0) + size: maxCorner(1) = maxCorner(1) + size
Set sset2 = ThisDrawing.SelectionSets.Add("Point2")
sset2.Select acSelectionSetCrossing, minCorner, maxCorner, FType, FData
MsgBox sset2.Count
sset2.RemoveItems item
MsgBox sset2.Count

ThisDrawing.SelectionSets.item("Point1").Delete
ThisDrawing.SelectionSets.item("Point2").Delete
End Sub
 楼主| 发表于 2005-1-5 22:28:00 | 显示全部楼层
sset2.RemoveItems item这个方法需要的是索引参数吗?哪我怎么知道要移除点的索引号?如果是对象参数的话,那到底是单一对象或是对象数组?这个方法的参数类型是什么啊?到底需要什么参数啊?
发表于 2005-1-6 08:36:00 | 显示全部楼层

object.RemoveItems Objects

Object

Group, SelectionSet
使用该方法的对象。

Objects

Variant[变体] (对象数组); 仅用于输入
要删除的对象数组。

在4楼的程序中Dim item(0) As AcadEntity 就是个对象数组,你要选择一点P1周围的其他点,那你一定可以得到P1这个点,然后set item(0)=P1,最后调用sset2.RemoveItems item就OK了.

 楼主| 发表于 2005-1-6 17:06:00 | 显示全部楼层
对!thank you!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-27 21:00 , Processed in 0.166865 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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