deegeecees 发表于 2007-12-6 12:44:23

设置移动并使基点为 0,0

**** Hidden Message *****

deegeecees 发表于 2007-12-6 12:54:11

张贴你有什么,我们可以改变它。看起来你就快到了。
dim ZeroZero(2) as Double
ZeroZero(0)=0:ZeroZero(1)=0:ZeroZero(2)=0
For each Obj in SS
obj.move YourPickedPoint, ZeroZero
next obj

deegeecees 发表于 2007-12-6 12:56:27

我所知道的唯一能让0,0成为你在VBA的基点的方法就是:
这张图。SendCommand "base" & vbCr "0,0" &vbCr(未测试)
很粗糙但很有效。将它添加到CmdrDuhs的代码中,就可以了。

deegeecees 发表于 2007-12-6 12:58:41

是的,从帮助屏幕
,我已经在看
,我需要移动一个选择集,而且我知道没有一种方法可以做到这一点,
我尝试了一些奇怪的方法
,比如Dim Ent,因为Acadentity
Ent = Sset
Ent.move Pnt1,Pnt2
因为实体可以移动,但这可能不是最好的方法。
还有其他建议吗?
谢谢
马克

deegeecees 发表于 2007-12-6 12:59:29

那么setvar INSBASE呢?
ThisDrawing.Set可变的“INSBASE”,“0,0,0”

deegeecees 发表于 2007-12-6 13:02:45


嘿,deegeecee
有时候我们必须这么做!
谢谢
马克

deegeecees 发表于 2007-12-6 13:04:19

是的,先生!
CM!你就是那个人!

deegeecees 发表于 2007-12-6 13:06:17

很高兴它成功了

deegeecees 发表于 2007-12-6 13:06:38


这一举动效果很好,谢谢你们!
现在我知道如何移动一个set,但仍然没有设置inbase变量?
这是我得到的
Sub MoveSsettoZeroZero()
On Error Resume Next
ThisDrawing.SelectionSets.Item("Selection1").Delete

Dim Sset As AcadSelectionSet
Dim Obj As AcadObject
Dim ZeroZero(0 To 2) As Double
Dim Pnt As Variant

ZeroZero(0) = 0: ZeroZero(1) = 0: ZeroZero(2) = 0
Set Sset = ThisDrawing.SelectionSets.Add("Selection1")
Sset.SelectOnScreen
Debug.Print "Selection Set " & "("; Sset.Name; ")" & " was created"

Pnt = ThisDrawing.Utility.GetPoint(, vbCrLf & "Pickpoint")
Debug.Print "Point = "; Pnt(0) & " , " & Pnt(1)

For Each Obj In Sset
Obj.Move Pnt, ZeroZero
Next Obj


ThisDrawing.SetVariable "INSBASE", ("0, 0, 0")

ThisDrawing.SelectionSets.Item("Selection1").Delete
End Sub

deegeecees 发表于 2007-12-6 13:06:45

如果在命令行中键入 INSBASE,会发生什么情况?
页: [1] 2
查看完整版本: 设置移动并使基点为 0,0