|
发表于 2004-10-29 16:33:00
|
显示全部楼层
我大概明白 tfod2000 老兄的意思了!好像我没发现在VBA里没有点的坐标属性所以在已创建的点上好像不能获取的!还好点的属性并不多!我想了个傻办法就是把原来的物体选取后创建一个新的点,再把原来点的属性赋予它!再把原来的点删除!呵呵!实在惭愧小弟我只能像出这个傻办法来解决这个问题!不知道哪位大虾有更好的办法请告诉小弟!
下面是小弟的代码有不对的地方请各位指正:
Sub test()
On Error Resume Next
Dim sset As AcadSelectionSet
Set sset = ThisDrawing.SelectionSets.Add("test")
sset.SelectOnScreen
Dim entry As AcadEntity
For Each entry In sset
Name1 = entry.ObjectName
If Name1 = "AcDbPoint" Then
Dim pointObj As AcadPoint
Dim point1(0 To 2) As Double
' 定义点的位置
point1(0) = 0#: point1(1) = 0#: point1(2) = 0# '可以改为你需要的点
' 创建点
Set pointObj = ThisDrawing.ModelSpace.AddPoint(point1)
pointObj.Color = entry.Color
pointObj.Layer = entry.Layer
pointObj.Linetype = entry.Linetype '可以不需要
pointObj.LinetypeScale = entry.LinetypeScale '可以不需要
pointObj.Lineweight = entry.Lineweight '可以不需要
pointObj.Thickness = entry.Thickness '可以不需要
entry.Delete
Else
MsgBox "没有点被选去,请检查", vbOKOnly
End If
Next entry
sset.Delete
End Sub
在point1的3个点的定义中可以加入你对话框里点的3个坐标数据! |
|