cxf11991 发表于 2004-5-20 10:44:00

判断直线

判断一个选取的物体是不是一条直线,写了这样一个条件,为什么不可以!



        objselectionset as acadselectionset


选取直线       


set objselectionset=thisdrawing.selectionsets.add("sset")


        thisdrawing.utility.prompt"请选择作为边界的直线:"


objselectionset.selectonscreen


判断直线


while objselectionset.item(0).objectname<>"acadline"


               objselectionset.item(0).delete


               thisdrawing.utility.prompt"没有选择任何对象,或者不是直线对象,请重新选择:"


       objselectionset.selectonscreen


wend


这是明经通道强力推荐的 "autocad vba 开发精彩实例教程"第134页的一个判断语句


不过我照抄过来,就是用不起来,每次都不能正确的判断直线,高手指教,特急,要做毕业设计用!

雪山飞狐_lzh 发表于 2004-5-20 10:54:00

直接用过滤器



                       Dim ft(0) As Integer, fd(0)<BR>                       ft(0) = 0: fd(0) = "Line"<BR>                       ss.SelectOnScreen ft, fd<BR>

cxf11991 发表于 2004-5-20 11:01:00

过滤器是放在哪个语句里的啊??


帮我写一个判断语句,谢谢!!!


还有怎样移动一个选择好的物体:选择好了一个选择集,和移动基点,是用什么语句把这个选择集,按照这个基点,全部移动到另一个基点上,!


这两个问题是我毕业设计中我最搞不清楚的,谢谢指教

雪山飞狐_lzh 发表于 2004-5-20 11:05:00

过滤器不用判断语句,它只会选择过滤器指定条件的对象


ft(0) = 0: fd(0) = "Line"<BR>表示只选择直线


可以直接调用“Move”命令移动选择集,或用


For Each i in ss


i.move p1,p2


next i

cxf11991 发表于 2004-5-20 11:05:00

谢谢,选取过滤直线可以了,呵呵!!!


不知道书上为什么错了,让我郁闷了很久!

雪山飞狐_lzh 发表于 2004-5-20 11:08:00

while objselectionset.item(0).objectname&lt;&gt;"acadline"


这里应该是


while objselectionset.item(0).objectname&lt;&gt;"AcDbLine"

cxf11991 发表于 2004-5-20 11:13:00

我也想到了用acdbline


不过效果还是不好,可能有错误,我试过了


不如过滤器好

cxf11991 发表于 2004-5-20 11:31:00

太感谢了,我也能移动物体了,呵呵!<BR>就差一点了,在请教一下!<BR>接着刚才移动之后,怎么自动剪切移动后相交的直线!<BR>我的思路是判断相交点,不过我不知道怎么提取一条直线的方程,,



或者您有什么更好的方法思路,提点我一下,写上用什么语句!<BR>在次感谢!!!!!!!!!!!!!!!!!


说实话导师都怎么不懂的,所以只有麻烦您了

雪山飞狐_lzh 发表于 2004-5-20 11:56:00

自动剪切移动后相交的直线?



有条件么,最好有个图说明一下


以前的帖子里有介绍直线剪切的问题,你搜搜

cxf11991 发表于 2004-5-20 12:09:00

刚才我出现一个问题,就是!<BR>我要两次选取物体,就是说创建两个选择集!<BR>但是这样两个选择集有冲突,,因为我的程序里会把上次的选择集合清空!


如:i as integer: number as integer<BR>'i = 0<BR>        'number = ThisDrawing.SelectionSets.Count<BR>'While i &lt; number<BR>        'Set objselectionset = ThisDrawing.SelectionSets.Item(0)<BR>        'objselectionset.Delete<BR>        'i = i + 1<BR>        'Wend


我想知道,能不能在安全创建一次选择集后,在安全创建一个不同的选择集,而不冲突
页: [1] 2
查看完整版本: 判断直线