圆的中心
这是我在AutoCAD中的第一个VBA。我试着把中心和直径放在一张桌子上,但我不能处理点。有人能纠正我的密码吗Option Explicit
Private Sub cercuri_Click()
Dim SS As AcadSelectionSet
Dim coords As AcadTable
Dim i As Integer
Dim st As String
Dim p0 As AcadPoint
Dim Code(0) As Integer
Dim Val(0) As Variant
Dim insp(0 To 2) As Double
insp(0) = 0#
insp(1) = 0#
insp(2) = 0#
Code(0) = 0
Val(0) = "CIRCLE"
Set SS = ThisDrawing.SelectionSets.Add("ss")
UserForm1.hide
SS.SelectOnScreen Code, Val
Set coords = ThisDrawing.ModelSpace.AddTable(insp, SS.Count + 2, 5, 10, 30)
For i = 0 To SS.Count - 1
st = CStr(SS.Item(i).Diameter)
coords.SetText i + 2, 3, st
p0 = SS.Item(i).Center ' WHAT'S WRONG HERE?
Next i
SS.Delete
UserForm1.Show
End Sub
**** Hidden Message ***** 我将沿着这条路走代码1]
(未测试)
~'J'~ 谢谢你的回答,菲克索。
明天早上我会试试——那将是12小时后。 Fuccaro,
如果您查看帮助,您会看到Center返回一个数组,而不是AcadPoint,就像定义了p0一样。尝试Dim P0作为变体,看看会发生什么。 修正代码<strong>p0=oCircle。该中心不起作用
Cathy
你说得对,Center返回一个数组Dim p0作为变量并没有解决问题,但我最终找到了正确的代码:,Dim p0(0到2)作为双"
With ThisDrawing.SelectionSets
While .Count > 0
.Item(0).Delete
Wend
Set ss = .Add("mySet")
End With
UserForm1.hide
ss.SelectOnScreen Code, Val
或这个:
ReDim Code(6) As Integer
ReDim Val(6) As Variant
Code(0) = -4
Val(0) = ""
Code(5) = 8
Val(5) = "MyLayer"
Code(6) = -4
Val(6) = "AND>"
~'J'~ 哇!好消息,我非常熟悉Lisp选择集。再次感谢菲修。
您能告诉我为什么使用ReDim吗?帮助文件不建议使用ReDim来声明新变量,它仅用于更改现有变量。
很高兴帮助
我已经从我现有的代码之一自动复制了这个代码截图
更改以适应
~'J'~
页:
[1]