我正在寻找将块插入到我选择的两点(p1,p2(的中点。然而,我遇到了一些麻烦,这应该很简单,但它不起作用。
在下一个阶段,我想添加一个除法部分,我想用我定义的d数来除以[p1,p2]距离,并在那里放置相同的块。但我被卡住了。
如果你能帮忙,我将不胜感激。谢谢
这是我的代码:
Sub line()
Dim p1, p2, pTotal(0 To 2), pT(0 To 2) As Variant, b1 As AcadBlockReference
p1 = ThisDrawing.Utility.GetPoint(, "p1")
p2 = ThisDrawing.Utility.GetPoint(, "p2")
For i = 0 To 2
pT(i) = p1(i) + p2(i)
pTotal(i) = pT(i) / 2
Next i
Set b1 = ThisDrawing.ModelSpace.InsertBlock(pTotal, "BLOCKNAME123", 1#, 1#, 1#, 0#)
End Sub
这应该从您经过的2个3D数组的中点返回一个3D数组。
Public Function GetMidPoint(p1, p2) As Variant
Dim midX As Double: Dim midY As Double: Dim midZ As Double
midX = (p2(0) - p1(0)) / 2 + p1(0)
midY = (p2(1) - p1(1)) / 2 + p1(1)
midZ = (p2(2) - p1(2)) / 2 + p1(2)
GetMidPoint = Array(midX, midY, midZ)
End Function
用法:
Set b1 = ThisDrawing.ModelSpace.InsertBlock(GetMidPoint(p1, p2), "BLOCKNAME123", 1#, 1#, 1#, 0#)