- 积分
- 633
- 明经币
- 个
- 注册时间
- 2012-9-30
- 在线时间
- 小时
- 威望
-
- 金钱
- 个
- 贡献
-
- 激情
-
|
本帖最后由 风言无际 于 2019-7-28 18:40 编辑
我用VBA可以实现这样的功能,但是LISP不会
我讲一下思路:
1.首先查找到圆,获取圆的边框的最大和最小点坐标
2.使用过滤选择集方法选择文字:采用acSelectionSetCrossing方式,即窗口相交的方式,以获取到的最大和最小点坐标为范围,以文字为过滤条件。
Dim Sset As AcadSelectionSet
Dim pEnt As AcadEntity
Dim minP As Variant
Dim maxP As Variant
Dim fType(0) As Integer
Dim fData(0) As Variant
fType(0) = 0: fData(0) = "TEXT"
Set Sset = ThisDrawing.SelectionSets.Add(Timer)
For Each pEnt In ThisDrawing.ModelSpace
If pEnt.ObjectName = "AcDbCircle" Then
pEnt.GetBoundingBox minP, maxP
Sset.Select acSelectionSetCrossing, minP, maxP, fType, fData
Sset.Highlight True
End If
Next
lisp怎么实现,你参考一下上面的方法好了。
|
|