rliuyong2 发表于 2005-5-3 21:21:00

能否根据直线坐标框选位于该直线上下的文字?

能否根据直线坐标框选位于该直线上下的文字?
        我是初学vba的新手,特别是在用选择集时遇到很多难题.我想请教各位高手,用选择集是否能实现
利用已知直线的两端点坐标,计算出文本选择框,然后分别在框1,框2内选出框内文字进入选择集,
见我的附图.
C:\Documents and Settings\rliu\桌面\rein8.wmf

rliuyong2 发表于 2005-5-4 10:52:00

啊,天哪!!! 我的rein8.wmf图像(附图)怎么传不到,不知别人的图是怎么粘上去的?因为我是新手,有那位高手帮我解决这个问题?不胜感激!!!

hangc 发表于 2005-5-7 21:08:00

首先通过直线坐标构建一个选择区域,然后采用
       
                       Dim sss As Object, Myss As Object, mode As Integer, en As AcadEntity
                       Dim myRec As AcadLine
                       Set sss = AcadDoc.SelectionSets
                       Set Myss = sss.Add("my7ss")
                       mode = acSelectionSetWindow
                       Dim point(0 To 2) As Double, point2(0 To 2) As Double
                       'point,point2为直线的两个端点坐标
                       point(0) = InsPnt(0) - 2: point(1) = InsPnt(1) - 1
                       point2(0) = InsPnt(0) + 3: point2(1) = InsPnt(1) + 10
                       '加减的值是查找文字的范围,根据实际需要确定
                       Myss.Select mode, point, point2
                       '-------------------------------------------------------------
                       For Each en In Myss
                                                       'en包含范围内所有对象,然后针对其中的文本进行处理即可
                       Next
                       Myss.Delete

rliuyong2 发表于 2005-5-8 21:13:00

精辟!!多谢hangc高手无私的帮忙!

rliuyong2 发表于 2005-5-8 21:29:00

hangc高手,又要麻烦你了,我拿你的原码来调试,在( 'point,point2为直线的两个端点坐标                         point(0) = InsPnt(0) - 2: point(1) = InsPnt(1) - 1)这句出现错误:编译错误--inspnt位置显亮,"子过程或函数未定义",是否还要引用别的函数?麻烦你指教.
页: [1]
查看完整版本: 能否根据直线坐标框选位于该直线上下的文字?