Как использовать введенную точку в качестве вершины конуса вместо основания конуса? - PullRequest
0 голосов
/ 14 января 2019

Я написал следующий код для создания сплошного конуса, и вводимый мной центр конуса является базовой точкой, но мне нужно использовать введенную точку в качестве вершины конуса.

Какую часть кода я должен изменить?

Public Sub Drawcone()
    Dim coneobject As Acad3DSolid
    Dim cinecenter As Variant
    Dim coneradius As Double
    Dim coneheight As Double
    With ThisDrawing.Utility
        conecenter = .GetPoint(, vbCr & "select position for base of cone:")
        coneradius = .GetDistance(conecenter, vbCr & "Enter radius of base :")
        coneheight = .GetDistance(conecenter, vbCr & "enter geight of cone:")
    End With
    conecenter(2) = conecenter(2) + coneheight / 2#
    Set cneobject = ThisDrawing.ModelSpace.AddCone(conecenter, coneradius, coneheight)
    coneobject.Update
    ChangeViewDirection
End Sub

Ссылочная ссылка

1 Ответ

0 голосов
/ 14 января 2019

Изменение:

conecenter(2) = conecenter(2) + coneheight / 2#

до:

conecenter(2) = conecenter(2) - coneheight / 2#

То есть центр конуса (центр ограничивающей рамки конуса), требуемый методом addcone, представляет собой точку с координатой z, равной половине высоты конуса ниже вершины конуса.

...