misters 发表于 2005-6-15 11:19:00

[VBA]移动选择集

Dim acadselect As AcadSelectionSet<BR>                       Set acadselect = doc1.SelectionSets.Add("ss1")<BR>        <BR>                       Dim minExt As Variant<BR>                       Dim maxExt As Variant<BR>                       For Each obj In doc0.ModelSpace<BR>                                                       If obj.EntityName = "AcDbPolyline" Then<BR>                                                                                       <BR>                                                                                       obj.GetBoundingBox minExt, maxExt


                                                                                       acadselect.Select acSelectionSetWindow, minExt, maxExt


我想把选择集内所有的对象,移动到某一个位置,以矩形的左上角(188.3626,555.546,0)为参考,移到(0,0,0),选择集中又没有move属性


acadselect.itme(i).move 倒是可以,但计算很复杂,而且移动需要两个点,像附图中的那个复杂的花,算起来可就麻烦了,有没有更好的办法呢?

zhuxuhong 发表于 2005-6-15 12:12:00

用thisdrawing.sendcommand "move" &amp; vbcr &amp; "p" &amp;vbcr &amp;.................应该可以吧?

misters 发表于 2005-6-15 14:36:00

我是用vb做的,sendcommand也可以,


                       doc1.SendCommand "move" &amp; vbCr &amp; a &amp; minExt(0) &amp; "," &amp; b &amp; maxExt(1) &amp; ",0" &amp; vbCr &amp; vbCr &amp; "p"<BR>


但是执行时,老是提示:由于autocad部件忙不能执行该操作,请切换到,按切换到,得手动操作,还得近回车,才执行下面的,这样不好

wyj7485 发表于 2005-6-15 16:44:00

本帖最后由 作者 于 2005-6-15 18:25:34 编辑

执行时隐藏vb的窗口.

misters 发表于 2005-6-15 18:21:00

关掉就中断了,程序就没法运行了

雪山飞狐_lzh 发表于 2005-6-16 20:32:00

看看这里的Move函数


<A href="http://bbs.mjtd.com/forum.php?mod=viewthread&tid=28869" target="_blank" >http://bbs.mjtd.com/forum.php?mod=viewthread&tid=28869</A>
页: [1]
查看完整版本: [VBA]移动选择集