Как создать объект Solid3d в виде кольца? Или сделать из цилиндра кольцо

Автор Тема: Как создать объект Solid3d в виде кольца? Или сделать из цилиндра кольцо  (Прочитано 9849 раз)

0 Пользователей и 3 Гостей просматривают эту тему.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Дорого времени суток.
Рисую цилиндр (AutoCAD 2012 -2015), как частный случай усеченного конуса.
Вот фрагмент кода.

Код - vb.net [Выбрать]
  1. Imports CAD_DBS = Autodesk.AutoCAD.DatabaseServices
  2.  
  3. Dim R As Double  = 1
  4. Dim aLen as Double = 5
  5. Dim Body_3d = New CAD_DBS.Solid3d
  6. Body_3d.CreateFrustum(aLen, R, R, R)
  7. ' добавляю примитив в базу "мой метод"
  8. Dim id = acadnet_add_entity(Body_3d)
  9.  
                               
Не могу подобрать метод который делает цилиндр.
Есть ли такой метод или нужно выдавливать тело, что бы получить полую часть?
« Последнее редактирование: 04-02-2015, 01:56:30 от Алексей (IdeaSoft) »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Есть ли такой метод или нужно выдавливать тело, что бы получить полую часть?
Думаю что или выдавливать область в виде кольца или вращать прямоугольную область или вычесть из одного цилиндра другой.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Отмечено как Решение Алексей Кулик 04-02-2015, 01:51:51

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Нашёл вот такой метод. Делать над объектом логическую операцию.

Код - vb.net [Выбрать]
  1. Imports CAD_DBS = Autodesk.AutoCAD.DatabaseServices
  2.  
  3. Dim aLen As Double = 10
  4. Dim R As Double = 2
  5. Dim Body_3d = New CAD_DBS.Solid3d
  6. Dim Body_3d_1 = New CAD_DBS.Solid3d
  7.  
  8. Body_3d.CreateFrustum(aLen,R,R,R)
  9. Body_3d_1.CreateFrustum(aLen,R-0.2,R-0.2,R-0.2)
  10.  
  11. Body_3d.BooleanOperation(CAD_DBS.BooleanOperationType.BoolSubtract, _ ' Было BoolIntersect, что неправильно!!!
  12.                                         Body_3d_1)

« Последнее редактирование: 04-02-2015, 02:36:03 от Александр Ривилис »

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
1. Проверяй пожалуйста как отформатировался код.
2. Подозреваю, что не BooleanOperationType.BoolIntersect, а BooleanOperationType.BoolSubtract, так как кольцо получается вычитанием из большего цилиндра меньшего соосного.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Саша, не могу понять почему вставка тега "vbnet" на предварительном просмотре не делает форматирование кода?
Может что-то я не так делаю или это формирование должен подтвердить администратор.

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
BooleanOperationType.BoolSubtract
Ну это я проверю у меня тоже предположение, что скорее нужно BoolSubtract

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Это никак не зависит от администратора. Код форматируется сразу. У тебя почему-то вместо [code=vbnet] было [code = vbnet], а пробелы недопустимы. И кроме того есть же специальный выпадающий список Код, из которого достаточно выбрать VB.NET, предварительно выделив кусок кода.
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
« Последнее редактирование: 04-02-2015, 01:35:15 от Александр Ривилис »
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
Вот так следует форматировать
Спасибо, все понял!

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Я сделал специальную тему на форуме, так как слишком часто приходится править чужое форматирование:
Форматирование кода на форуме
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Алексей (IdeaSoft)Автор темы

  • ADN
  • *
  • Сообщений: 1189
  • Карма: 9
    • idea-soft.ru
  • Skype: makar_govorun
2. Подозреваю, что не BooleanOperationType.BoolIntersect, а BooleanOperationType.BoolSubtract
Я проверил, все получилось. Нужно использовать BoolSubtract, а объект Body_3d_1 нужно создавать с меньшим диаметром.
У меня:
- объект Body_3d - это для наружного диаметра трубы
- Body_3d_1 - это для выреза по внутреннему диаметру трубы

Обязательно ли объектам Body_3d , Body_3d_1 делать Dispose?

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
И этого следовало ожидать. :)
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн Андрей Бушман

  • ADN Club
  • *****
  • Сообщений: 2000
  • Карма: 163
  • Пишу программки...
    • Блог
  • Skype: Compositum78
Offtop: Как же Александр Наумович любит большие буквы и красный цвет...  :D

Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Offtop: Как же Александр Наумович любит большие буквы и красный цвет...  :D
Offtop: Александр Наумович к ночи отформатировал столько чужого кода на форуме, что он понял, что без красного цвета, больших букв, а главное ролика о том, как нужно форматировать, ему  не обойтись!
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение