|
||
| Правила | Регистрация | Пользователи | Сообщения за день | | Поиск | | Справка по форуму | Файлообменник | |
|
![]() |
Поиск в этой теме |
![]() |
#1 | |
Как при помощи VBA построить конус?
Украина
Регистрация: 02.12.2006
Сообщений: 3
|
||
Просмотров: 4837
|
|
||||
Регистрация: 02.12.2006
Украина
Сообщений: 3
|
Спасибо за листинг, но конус должен быть не только усеченным. Он должен быть скошеным. То есть вершина и центр окружности основания конуса не лежат на одной прямой. Точнее сказать, вершина должна находится на линии перпендикулярной плоскости основания (круга) на расстоянии от центра равном радиусу окружности. Над краем круга, грубо говоря. Эдакая смесь цилиндра с конусом.
А зачем 3DMesh? Меньше ограничений. Единожды разобравшись можно создавать любые фигуры. |
|||
![]() |
|
||||
Регистрация: 02.12.2006
Украина
Сообщений: 3
|
Всё как всегда. Сам себе не поможешь, никто не поможет.
Выкладываю листинг. Авось кому сгодится. Сам вчера наваял. Sub Circle_of_Mesh() Const pi = 3.14159265 Dim Xc As Double 'х центра основания Dim Yc As Double 'y центра Dim L As Double ' высота или длина (как кому) Dim Rc1 As Double ' радиус основания Dim Rc2 As Double ' радиус вершины. Если 0, получится конус Dim t As Double ' Dim n As Integer ' Dim pointObj As AcadPoint ' Dim location(0 To 2) As Double ' Dim meshObj As AcadPolygonMesh ' Dim mSize, nSize, count As Integer ' Dim points(0 To 101) As Double ' L = 20 Xc = 0: Yc = 0 Rc1 = 10 mSize = 2: nSize = 17 n = 0 For t = 0 To 2 * pi + pi / 8 Step pi / 8 points(n) = Rc1 * Cos(t) + Xc: n = n + 1 points(n) = Rc1 * Sin(t) + Yc: n = n + 1 points(n) = 0: n = n + 1 Next t Rc2 = 0 Xc = 0: Yc = 5 For t = 0 To 2 * pi + pi / 8 Step pi / 8 points(n) = Rc2 * Cos(t) + Xc: n = n + 1 points(n) = Rc2 * Sin(t) + Yc: n = n + 1 points(n) = L: n = n + 1 Next t Set meshObj = ThisDrawing.ModelSpace.Add3DMesh(mSize, nSize, points) meshObj.MClose = True meshObj.NClose = True ZoomAll ThisDrawing.Regen acActiveViewport End Sub Может есть библиотека подобных процедур? Чтобы не изобретать велеосипед многократно. А нет, так давайте заведем. |
|||
![]() |