将块插入到(p1,p2)点和除法(p1,p2)距离的中点和插入块

  • 本文关键字:p1 p2 插入 距离 除法 vba autocad
  • 更新时间 :
  • 英文 :


我正在寻找将块插入到我选择的两点(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#)

最新更新