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

[VBA]移动选择集

Dim acadselect As AcadSelectionSet
                       Set acadselect = doc1.SelectionSets.Add("ss1")
       
                       Dim minExt As Variant
                       Dim maxExt As Variant
                       For Each obj In doc0.ModelSpace
                                                       If obj.EntityName = "AcDbPolyline" Then
                                                                                       
                                                                                       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" & vbcr & "p" &vbcr &.................应该可以吧?

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

我是用vb做的,sendcommand也可以,
                       doc1.SendCommand "move" & vbCr & a & minExt(0) & "," & b & maxExt(1) & ",0" & vbCr & vbCr & "p"
但是执行时,老是提示:由于autocad部件忙不能执行该操作,请切换到,按切换到,得手动操作,还得近回车,才执行下面的,这样不好

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


执行时隐藏vb的窗口.

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

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

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

看看这里的Move函数
页: [1]
查看完整版本: [VBA]移动选择集